diff --git a/.drone.yml b/.drone.yml index 8ea23a42..0cd7e197 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,7 +11,7 @@ steps: - name: Run Tests commands: - ./ci.py --ci-run-tests - - sonar-scanner -Dsonar.projectKey=SelfPrivacy-Flutter-App -Dsonar.sources=. -Dsonar.host.url=http://analyzer.lan:9000 -Dsonar.login="$SONARQUBE_TOKEN" +# - sonar-scanner -Dsonar.projectKey=SelfPrivacy-Flutter-App -Dsonar.sources=. -Dsonar.host.url=http://analyzer.lan:9000 -Dsonar.login="$SONARQUBE_TOKEN" environment: SONARQUBE_TOKEN: from_secret: SONARQUBE_TOKEN diff --git a/android/build.gradle b/android/build.gradle index 13645686..b1ba7da3 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,5 +1,5 @@ buildscript { - ext.kotlin_version = '1.6.10' + ext.kotlin_version = '1.9.21' ext.getVersionCode = { -> try { def stdout = new ByteArrayOutputStream() diff --git a/appimage.yml b/appimage.yml index 9e783283..40bcc3c3 100644 --- a/appimage.yml +++ b/appimage.yml @@ -10,7 +10,7 @@ AppDir: id: org.selfprivacy.app name: SelfPrivacy icon: org.selfprivacy.app - version: 0.9.0 + version: 0.9.1 exec: selfprivacy exec_args: $@ apt: diff --git a/assets/translations/az.json b/assets/translations/az.json index 763d6b61..d340f9da 100644 --- a/assets/translations/az.json +++ b/assets/translations/az.json @@ -237,7 +237,6 @@ "subtitle": "Microsoft-a deyil, sizə məxsus şəxsi Github alternativi." }, "users": { - "not_ready": "Birinci istifadəçini əlavə etmək üçün Provayderlər bölməsində server, domen və DNS-ni birləşdirin", "could_not_fetch_description": "İnternet bağlantısını yoxlayın və yenidən cəhd edin", "username_rule": "Adda yalnız kiçik Latın hərfləri, rəqəmlər, alt xətt ola bilər, rəqəmlərlə başlaya bilməz", "add_new_user": "İlk istifadəçini əlavə edin", diff --git a/assets/translations/be.json b/assets/translations/be.json index d634d64b..957856cc 100644 --- a/assets/translations/be.json +++ b/assets/translations/be.json @@ -473,7 +473,6 @@ "add_new_user": "Дадайце першага карыстальніка", "new_user": "Новы карыстальнік", "delete_user": "Выдаліць карыстальніка", - "not_ready": "Падлучыце сервер, дамен і DNS у раздзеле Правайдэры каб дадаць першага карыстальніка", "nobody_here": "Тут будуць адлюстроўвацца карыстальнікі", "login": "Логін", "new_user_info_note": "Новы карыстальнік аўтаматычна атрымае доступ да ўсіх сэрвісаў", diff --git a/assets/translations/cs.json b/assets/translations/cs.json index d989c463..a82d7a3b 100644 --- a/assets/translations/cs.json +++ b/assets/translations/cs.json @@ -226,7 +226,6 @@ "could_not_delete_user": "Nepodařilo se odstranit uživatele", "email_login": "Přihlášení e-mailem", "delete_user": "Odstranění uživatele", - "not_ready": "Připojte prosím server, doménu a DNS na kartě Poskytovatelé, abyste mohli přidat prvního uživatele", "could_not_add_ssh_key": "Nepodařilo se přidat klíč SSH", "username_rule": "Uživatelské jméno musí obsahovat pouze malá písmena latinky, číslice a podtržítka, nesmí začínat číslicí", "details_title": "Údaje o uživateli" diff --git a/assets/translations/de.json b/assets/translations/de.json index 4a39b818..2e4eb195 100644 --- a/assets/translations/de.json +++ b/assets/translations/de.json @@ -23,7 +23,7 @@ "username": "Benutzername", "loading": "Laden…", "later": "Überspringen und später einstellen", - "connect_to_existing": "Mit einem existierenden Server verbinden", + "connect_to_existing": "Verbinde mit einem existierenden SelfPrivacy Server", "reset": "Zurücksetzen", "details": "Einzelheiten", "no_data": "Keine Daten", @@ -34,7 +34,9 @@ "alert": "Alarm", "services_title": "Ihre persönliche, private und unabhängige Dienste.", "apply": "Anwenden", - "app_name": "SelfPrivacy" + "app_name": "SelfPrivacy", + "copied_to_clipboard": "Zur Zwischenablage kopiert!", + "please_connect": "Bitte stellen sie eine Verbindung zu ihrem Server, Domain und DNS Betreiber her um zu beginnen!" }, "more_page": { "configuration_wizard": "Setup-Assistent", @@ -81,7 +83,7 @@ "no_key_name": "Unbennanter Schlüssel", "root_title": "Das sind superuser Schlüsseln", "root_subtitle": "Besitzer dieser Schlüssel erhalten vollen Zugriff auf den Server und können alles darauf tun. Fügen Sie dem Server nur Ihre eigenen Schlüssel hinzu.", - "input_label": "Öffentlicher ED25519 oder RSA Schlüssel" + "input_label": "Öffentlicher ED25519, ECDSA oder RSA Schlüssel" }, "onboarding": { "page2_server_provider_text": "Ein Serveranbieter unterhält Ihren Server in einem eigenen Rechenzentrum. SelfPrivacy verbindet sich automatisch mit dem Anbieter und richtet alle notwendigen Dinge ein.", @@ -129,7 +131,10 @@ "few": "{} Kerne", "many": "{} Kerne", "other": "{} Kerne" - } + }, + "server_provider": "Serverprovider", + "dns_provider": "DNS-Provider", + "pricing_error": "Konnte Providerpreise nicht abrufen" }, "record": { "root": "Root Domain", @@ -175,7 +180,47 @@ "refetch_backups": "Backupliste neuladen", "waiting_for_rebuild": "In wenigen Minuten können Sie Ihren ersten Backup erstellen.", "error_pending": "Server hat einen Fehler zurückgegeben, überprüfen Sie es unten", - "refetching_list": "In wenigen Minuten wird die Liste neugeladen" + "refetching_list": "In wenigen Minuten wird die Liste neugeladen", + "card_subtitle": "Verwalte deine Backups", + "refetch_backups_subtitle": "Cache überprüfen und Daten vom Speicherprovider neu abrufen. Könnte zusätzliche Kosten verursachen.", + "reupload_key_subtitle": "Weist den Server an, Backupseicher zu initialisieren. Benutze diese Option, wenn etwas kaputt ist.", + "select_all": "Alles backupen", + "create_new_select_heading": "Wähle aus, was zum Backup dazugehören soll", + "show_more": "Mehr anzeigen", + "start": "Backup starten", + "service_busy": "Eine andere Backupoperation wird ausgeführt", + "latest_snapshots": "Neuster Snapshot", + "latest_snapshots_subtitle": "Zeige die letzten 15 Snapshots", + "autobackup_period_title": "Automatische Backup-Zeitspanne", + "autobackup_period_subtitle": "Backups werden erstellt, jede {period}", + "autobackup_period_never": "Automatische Backups sind deaktiviert", + "autobackup_period_every": "Jede {period}", + "autobackup_period_disable": "Deaktiviere automatische Backups", + "autobackup_custom": "Eigene", + "autobackup_custom_hint": "Eigenen Zeitraum in Minuten eingeben", + "autobackup_set_period": "Setze Zeitraum", + "autobackup_period_set": "Zeitraum setzen", + "backups_encryption_key": "Verschlüsselungsschlüssel", + "backups_encryption_key_subtitle": "Bewahre es gut auf.", + "backups_encryption_key_copy": "Kopiere den Verschlüselungsschlüssel", + "backups_encryption_key_show": "Zeige den Verschlüsselungschlüssel", + "pending_jobs": "Backup Arbeiten werden ausgeführt", + "backups_encryption_key_description": "Dieser Schlüssel wird verwendet um ihre Backups zu verschlüsseln. Wenn sie ihn verlieren, wird es ihnen unmöglich ihre Backups wieder herzustellen.\nBitte bewahren sie ihn an einem sicheren Ort auf, da sie ihn benötigen sofern sie einmal ihre Backups manuell wiederherstellen müssen.", + "snapshot_modal_service_not_found": "Dies ist ein Snapshot von einem Service den sie nicht mehr auf ihrem Server haben. Normalerweise sollte dies nicht passieren, und wir können keine automatische Wiederherstellung durchführen. Sie können den Snapshot immer noch herunterladen und manuell wiederherstellen. Kontaktieren sie den SelfPrivacy Support, wenn sie Hilfe brauchen.", + "snapshot_modal_download_verify_option_description": "Niedrigeres Risiko, aber es wird mehr freier Speicherplatz benötigt. Lädt den vollständigen Snapshot in den temporären Speicher, verifiziert ihn und ersetzt dann die vorhandenen Daten.", + "snapshots_title": "Snapshot Liste", + "snapshot_service_title": "Service", + "snapshot_creation_time_title": "Zeit der Erstellung", + "snapshot_id_title": "Snapshot ID", + "snapshot_modal_select_strategy": "Wählen sie die Art der Wiederherstellung", + "snapshot_modal_download_verify_option_title": "Herunterladen, verifizieren und dann ersetzen", + "backups_encryption_key_not_found": "Verschlüsselungscode noch nicht gefunden, bitte versuchen sie es später noch einmal.", + "forget_snapshot": "Vergiss diesen Snapshot", + "forget_snapshot_alert": "Sie sind im Begriff dazu diesen Snapshot zu löschen. Sind sie sicher? Diese Aktion kann nicht rückgängig gemacht werden.", + "forget_snapshot_error": "Dieser Snapshot konnte nicht vergessen werden", + "snapshot_modal_heading": "Snapshot Details", + "snapshot_modal_inplace_option_title": "An Ort und Stelle ersetzen", + "snapshot_modal_inplace_option_description": "Weniger freier Speicherplatz benötigt, aber höheres Risiko. Ersetzt die vorhanden Daten, während dem Herunterladen, mit den Daten des Snapshots." }, "storage": { "card_title": "Serverspeicher", @@ -197,7 +242,7 @@ "start_migration_button": "Migration starten", "migration_process": "Migrieren…", "migration_done": "Beenden", - "extending_volume_price_info": "Der Preis enthält die gesetzliche Mehrwertsteuer und wird anhand der von Hetzner bereitgestellten Preisangaben geschätzt. Der Server wird nach der Größenänderung neu gestartet." + "extending_volume_price_info": "Der Preis enthält die gesetzliche Mehrwertsteuer und wird geschätzt nach den Preisangaben die ihr Serverbetreiber bereitstellt. Der Server wird nach der Größenänderung neu gestartet." }, "not_ready_card": { "in_menu": "Server ist noch nicht eingerichtet. Bitte beenden Sie die Einrichtung mit dem Einrichtungsassistenten, um fortzufahren." @@ -366,7 +411,6 @@ "add_new_user": "Fügen Sie den ersten Benutzer hinzu", "new_user": "Neuer Benutzer", "delete_user": "Benutzer löschen", - "not_ready": "Bitte verbinden Sie Server, Domain und DNS im Providertab, um den ersten Benutzer hinzufügen zu können", "nobody_here": "Hier werden Benutzer angezeigt", "login": "Login", "new_user_info_note": "Neuen Benutzern wird automatisch Zugang zu allen Diensten gewährt", diff --git a/assets/translations/en.json b/assets/translations/en.json index 9b23b874..1465dab7 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -25,7 +25,7 @@ "username": "Username", "loading": "Loading…", "later": "Skip to setup later", - "connect_to_existing": "Connect to an existing server", + "connect_to_existing": "I already have a SelfPrivacy server!", "reset": "Reset", "details": "Details", "no_data": "No data", @@ -635,4 +635,4 @@ "reset_onboarding_description": "Reset onboarding switch to show onboarding screen again", "cubit_statuses": "Cubit loading statuses" } -} \ No newline at end of file +} diff --git a/assets/translations/es.json b/assets/translations/es.json index 2c240edd..ce007fb5 100644 --- a/assets/translations/es.json +++ b/assets/translations/es.json @@ -31,7 +31,10 @@ "remove": "Eliminar", "apply": "Solicitar", "done": "Hecho", - "connect_to_existing": "Conectarse a un servidor existente" + "connect_to_existing": "Conectarse a un servidor de SelfPrivacy existente", + "app_name": "SelfPrivacy", + "please_connect": "¡Conecta tu servidor y dominio para sumergirte!", + "copied_to_clipboard": "¡Copiado al portapapeles!" }, "test": "es-test", "locale": "es", @@ -57,9 +60,9 @@ "input_label": "Clave pública ED25519 o RSA" }, "about_application_page": { - "application_version_text": "Versión de la aplicación v.{}", + "application_version_text": "Versión de la aplicación {}", "title": "Sobre", - "api_version_text": "Versión API del servidor v.{}", + "api_version_text": "Versión API del servidor {}", "privacy_policy": "Política de privacidad" }, "onboarding": { @@ -84,9 +87,10 @@ }, "console_page": { "title": "Consola", - "waiting": "Esperando la inicialización…" + "waiting": "Esperando la inicialización…", + "copy": "Copiar" }, "about_us_page": { "title": "Sobre nosotros" } -} \ No newline at end of file +} diff --git a/assets/translations/fr.json b/assets/translations/fr.json index 5fa6d1cc..f34e5a8e 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -24,7 +24,7 @@ "username": "Nom d'utilisateur", "loading": "Chargement…", "later": "Passer à la configuration plus tard", - "connect_to_existing": "Se connecter à un server existant", + "connect_to_existing": "Se connecter à un serveur SelfPrivacy existant", "reset": "Réinitialiser", "details": "Détails", "no_data": "Pas de données", @@ -34,7 +34,9 @@ "continue": "Continuer", "apply": "Appliquer", "done": "Effectué", - "app_name": "SelfPrivacy" + "app_name": "SelfPrivacy", + "please_connect": "Veuillez connecter votre serveur, domaine et fournisseur DNS pour vous lancer dans le bain !", + "copied_to_clipboard": "Copié dans le presse-papier !" }, "more_page": { "about_application": "À propos", @@ -47,7 +49,8 @@ }, "console_page": { "title": "Console", - "waiting": "En attente de l'initialisation…" + "waiting": "En attente de l'initialisation…", + "copy": "Copier" }, "about_us_page": { "title": "À propos de nous" @@ -87,14 +90,17 @@ "page2_dns_provider_title": "Fournisseur de DNS", "page2_backup_provider_title": "Fournisseur de sauvegarde", "page2_text": "SelfPrivacy fonctionne uniquement avec les fournisseurs que vous choisissez. Si vous n'avez pas de compte sur ceux-ci, nous allons vous aider à en créer.", - "page2_dns_provider_text": "Vous avez besoin d'un domaine pour avoir un espace sur l'Internet. Il est également nécessaire de disposer d'un fournisseur de DNS fiable pour que votre domaine pointe sur votre serveur. Nous allons vous suggérer de choisir des fournisseurs DNS supportés pour automatiquement configurer le réseau." + "page2_dns_provider_text": "Vous avez besoin d'un domaine pour avoir un espace sur l'Internet. Il est également nécessaire de disposer d'un fournisseur de DNS fiable pour que votre domaine pointe sur votre serveur. Nous allons vous suggérer de choisir des fournisseurs DNS supportés pour automatiquement configurer le réseau.", + "page2_backup_provider_text": "Et s'il se passait quelque chose avec votre serveur ? Imaginez une attaque par un hackeur, une suppression accidentelle de vos données ou un dénis de service ? Vos données seront conservées en toute sécurité chez votre fournisseur de sauvegardes. Elles seront chiffrées et accessibles à tout moment pour être restaurées sur vos serveurs." }, "resource_chart": { "month": "Mois", "day": "Jour", "hour": "Heure", "cpu_title": "Utilisation du CPU", - "network_title": "Utilisation du réseau" + "network_title": "Utilisation du réseau", + "in": "Entré", + "out": "Sorti" }, "server": { "card_title": "Serveur", @@ -119,7 +125,8 @@ "few": "{} cœurs" }, "server_timezone": "Fuseau horaire du serveur", - "select_timezone": "Sélectionner le fuseau horaire" + "select_timezone": "Sélectionner le fuseau horaire", + "description": "Tous vos services en direct ici" }, "record": { "root": "Domaine racine", diff --git a/assets/translations/he.json b/assets/translations/he.json new file mode 100644 index 00000000..43b6e3a2 --- /dev/null +++ b/assets/translations/he.json @@ -0,0 +1,631 @@ +{ + "test": "he-test", + "locale": "he", + "more_page": { + "application_settings": "הגדרות יישום", + "configuration_wizard": "אשף הקמה", + "about_project": "עלינו", + "about_application": "על אודות", + "create_ssh_key": "מפתחות SSH למשתמשי על", + "console": "מסוף", + "onboarding": "קבלת פנים" + }, + "basis": { + "app_name": "SelfPrivacy", + "providers": "ספקים", + "providers_title": "חוות השרתים שלך", + "select": "בחירה", + "services": "שירותים", + "services_title": "השירותים האישיים, הפרטיים והעצמאיים שלך.", + "users": "משתמשים", + "more": "עוד", + "next": "הבא", + "got_it": "הבנתי", + "settings": "הגדרות", + "password": "סיסמה", + "create": "הוספת חדש", + "confirmation": "אישור", + "cancel": "ביטול", + "delete": "מחיקה", + "close": "סגירה", + "connect": "התחברות", + "domain": "שם תחום", + "saving": "מתבצעת שמירה…", + "username": "שם משתמש", + "loading": "בטעינה…", + "later": "דילוג כדי להגדיר אחר כך", + "connect_to_existing": "התחברות לשרת SelfPrivacy קיים", + "reset": "איפוס", + "details": "פרטים", + "no_data": "אין נתונים", + "wait": "להמתין", + "remove": "הסרה", + "apply": "החלה", + "done": "בוצע", + "continue": "להמשיך", + "alert": "התראה", + "copied_to_clipboard": "הועתק ללוח הגזירים!", + "please_connect": "נא לחבר את השרת, שם התחום וספק ה־DNS שלך לפני שצוללים פנימה!" + }, + "about_application_page": { + "privacy_policy": "מדיניות פרטיות", + "title": "על אודות", + "application_version_text": "היישום בגרסה {}", + "api_version_text": "גרסת ה־API של השרת היא {}" + }, + "ssh": { + "root_subtitle": "בעלי המפתחות האלו יקבלו גישה מלאה לשרת ויוכלו לעשות איתו כל העולה על רוחם. יש להוסיף רק את המפתחות שלך לשרת.", + "title": "מפתחות SSH", + "create": "יצירת מפתח SSH", + "delete": "מחיקת מפתח SSH", + "delete_confirm_question": "למחוק את מפתח ה־SSH?", + "subtitle_with_keys": "{} מפתחות", + "subtitle_without_keys": "אין מפתחות", + "no_key_name": "מפתח ללא שם", + "root_title": "אלו מפתחות משתמש על", + "input_label": "מפתח ED25519,‏ ECDSA או RSA ציבורי" + }, + "domain": { + "ok": "הרשומות תקינות", + "email_subtitle": "רשומות שנחוצות לתכתובת דוא״ל מאובטחת.", + "card_title": "שם תחום", + "screen_title": "שם תחום ו־DNS", + "error": "נמצאו בעיות", + "error_subtitle": "יש לגעת כאן כדי לתקן אותן. הרשומות שהותאמו אישית תוסרנה.", + "refreshing": "המצב מתעדכן…", + "uninitialized": "הנתונים לא נמשכו עדיין", + "services_title": "שירותים", + "services_subtitle": "רשומות מסוג „A” נחוצות לכל אחד מהשירותים.", + "email_title": "דוא״ל", + "update_list": "עדכון הרשימה" + }, + "console_page": { + "title": "מסוף", + "waiting": "בהמתנה לאתחול…", + "copy": "העתקה" + }, + "about_us_page": { + "title": "עלינו" + }, + "application_settings": { + "title": "הגדרות יישום", + "system_dark_theme_title": "ערכת העיצוב כברירת המחדל של המערכת", + "system_dark_theme_description": "להשתמש בערכות עיצוב בהירה או כהה בהתאם להגדרות המערכת שלך", + "dark_theme_title": "ערכת עיצוב כהה", + "dark_theme_description": "החלפת ערכת העיצוב של המערכת שלך", + "dangerous_settings": "הגדרות מסוכנות", + "reset_config_title": "איפוס הגדרות היישומון", + "reset_config_description": "איפוס מפתחות ה־API ומשתמש העל.", + "delete_server_title": "מחיקת שרת", + "delete_server_description": "מסיר את השרת שלך. הוא לא יהיה זמין עוד." + }, + "backup": { + "waiting_for_rebuild": "אפשר ליצור את הגיבוי הראשון שלך בעוד כמה דקות.", + "error_pending": "השרת החזיר שגיאה, היא מופיעה להלן", + "create_new_select_heading": "לבחור מה לגבות", + "autobackup_period_subtitle": "גיבויים נוצרים כל {period}", + "autobackup_set_period": "הגדרת הפרש", + "backups_encryption_key_show": "הצגת מפתח ההצפנה", + "card_title": "גיבוי", + "card_subtitle": "ניהול הגיבויים שלך", + "description": "יציל לך את היום במקרים של אירועים חריגים: תקיפות האקרים, מחיקת השרת וכו׳.", + "reuploaded_key": "המפתח הועלה מחדש", + "initialize": "אתחול", + "restore": "שחזור מגיבוי", + "no_backups": "אין גיבויים עדיין", + "create_new": "יצירת גיבוי חדש", + "creating": "גיבוי חדש נוצר: {}%", + "restoring": "גיבוי משוחזר", + "refresh": "רענון מצב", + "refetch_backups": "משיכת רשימת הגיבויים מחדש", + "reupload_key": "אילוץ העלאת מפתח מחדש", + "refetch_backups_subtitle": "ביטול תוקף המטמון ומשיכת הנתונים מחדש מספק האחסון שלך. עשוי לגרור חיובים נוספים.", + "select_all": "לגבות הכול", + "start": "התחלת גיבוי", + "service_busy": "גיבוי נוסף מתבצע כרגע", + "show_more": "להציג עוד", + "autobackup_period_title": "משך גיבויים אוטומטיים", + "autobackup_period_never": "גיבויים אוטומטיים מושבתים", + "autobackup_period_every": "כל {period}", + "autobackup_period_disable": "השבתת גיבויים אוטומטיים", + "autobackup_custom": "התאמה אישית", + "autobackup_custom_hint": "נא למלא הפרשים מותאמים אישית בדקות", + "backups_encryption_key": "מפתח הצפנה", + "autobackup_period_set": "הפרש הוגדר", + "backups_encryption_key_subtitle": "יש לשמור עליו במקום בטוח.", + "backups_encryption_key_copy": "העתקת מפתח ההצפנה", + "reupload_key_subtitle": "ינחה את השרת להתחיל את אחסון הגיבוי שוב. כדאי להשתמש אם משהו לא תקין.", + "refetching_list": "תוך כמה דקות הרשימה תתעדכן", + "latest_snapshots": "תמונות המצב העדכניות ביותר", + "latest_snapshots_subtitle": "15 תמונות המצב העדכניות ביותר מוצגות", + "pending_jobs": "משימות גיבוי שפועלות כרגע", + "snapshot_service_title": "שירות", + "snapshot_creation_time_title": "מועד היצירה", + "snapshot_modal_select_strategy": "נא לבחור את אסטרטגיית השחזור", + "snapshots_title": "רשימת תמונות מצב", + "forget_snapshot": "התעלמות מתמונת המצב", + "forget_snapshot_error": "לא ניתן להתעלם מתמונת מצב", + "snapshot_modal_heading": "פרטי תמונת המצב", + "snapshot_id_title": "מזהה תמונת מצב", + "snapshot_modal_inplace_option_title": "החלפה במקום", + "snapshot_modal_inplace_option_description": "דורש פחות מקום בכונן אך יותר מסוכן. מחליף את הנתונים הנוכחיים בנתוני תמונת המצב במהלך ההורדה.", + "restore_started": "השחזור התחיל, יש לעיין ברשימת המשימות לצפייה במצב הנוכחי", + "snapshot_reason_title": "סיבת היצירה", + "snapshot_reasons": { + "auto": "נוצרה אוטומטית", + "unknown": "לא ידוע", + "explicit": "נוצרה לבקשתך המפורשת", + "pre_restore": "נוצרה מטעמי זהירות יתר בטרם שחזור מסוכן" + }, + "quota_subtitles": { + "last": { + "zero": "הכלל מושבת", + "two": "שני הגיבויים האחרונים יישמרו ללא תלות בגילם", + "few": "{} הגיבויים האחרונים יישמרו ללא תלות בגילם", + "many": "{} הגיבויים האחרונים יישמרו ללא תלות בגילם", + "other": "{} הגיבויים האחרונים יישמרו ללא תלות בגילם", + "one": "הגיבוי האחרון יישמר ללא תלות בגילו" + }, + "daily": { + "zero": "הכלל מושבת", + "one": "הגיבוי היומי האחרון יישמר", + "few": "{} הגיבויים היומיים האחרונים יישמרו", + "many": "{} הגיבויים היומיים האחרונים יישמרו", + "two": "שני הגיבויים היומיים האחרונים יישמרו", + "other": "{} הגיבויים היומיים האחרונים יישמרו" + }, + "daily_infinite": "כל הגיבויים היומיים יישמרו", + "weekly": { + "zero": "הכלל מושבת", + "one": "הגיבוי השבועי האחרון יישמר", + "two": "שני הגיבויים השבועיים האחרונים יישמרו", + "many": "{} הגיבויים השבועיים האחרונים יישמרו", + "other": "{} הגיבויים השבועיים האחרונים יישמרו", + "few": "{} הגיבויים השבועיים האחרונים יישמרו" + }, + "yearly": { + "zero": "הכלל מושבת", + "one": "הגיבוי השנתי האחרון יישמר", + "two": "שני הגיבויים השנתיים האחרונים יישמרו", + "many": "{} הגיבויים השנתיים האחרונים יישמרו", + "few": "{} הגיבויים השנתיים האחרונים יישמרו", + "other": "{} הגיבויים השנתיים האחרונים יישמרו" + }, + "weekly_infinite": "כל הגיבויים השבועיים יישמרו", + "monthly": { + "zero": "הכלל מושבת", + "one": "הגיבוי החודש האחרון יישמר", + "few": "{} הגיבויים החודשיים האחרונים יישמרו", + "many": "{} הגיבויים החודשיים האחרונים יישמרו", + "two": "שני הגיבויים החודשיים האחרונים יישמרו", + "other": "{} הגיבויים החודשיים האחרונים יישמרו" + }, + "monthly_infinite": "כל הגיבויים החודשיים יישמרו", + "yearly_infinite": "כל הגיבויים השנתיים יישמרו", + "last_infinite": "כל הגיבויים יישמרו", + "no_effect": "לכלל הזה אין שום השפעה כיוון שכלל אחר ישמור יותר גיבויים" + }, + "quotas_only_applied_to_autobackups": "הגדרות אלו חלות רק על גיבויים אוטמטיים. גיבויים ידניים לא יימחקו.", + "quota_titles": { + "last": "כמה גיבויים אחרונים לשמור", + "daily": "כמה גיבויים יומיים לשמור", + "monthly": "כמה גיבויים חודשיים לשמור", + "yearly": "כמה גיבויים שנתיים לשמור", + "weekly": "כמה גיבוים שבועיים לשמור" + }, + "rotation_quotas_title": "הגדרות מחזוריות תמונות מצב", + "set_rotation_quotas": "הגדרת מכסות מחזוריות חדשות", + "quotas_set": "הוגדרו מכסות מחזוריות גיבוי חדשות", + "backups_encryption_key_description": "המפתח הזה משמש להצפנת הגיבויים שלך. אם יאבד, לא יהיה לך איך לשחזר את הגיבויים שלך. רצוי לשמור אותו במקום בטוח כיוון שהוא יועיל לך מאוד במקרה שצריך לשחזר גיבויים ידנית.", + "backups_encryption_key_not_found": "מפתח ההצפנה לא נמצא, נא לנסות שוב מאוחר יותר.", + "snapshot_modal_download_verify_option_title": "להוריד, לאמת ואז להחליף", + "forget_snapshot_alert": "פעולה זו תמחק תמונת מצב. להמשיך? זאת בדרך כלל פעולה בלתי הפיכה.", + "snapshot_modal_download_verify_option_description": "פחות מסוכן אך דורש יותר מקום בכונן. מוריד את כל תמונת המצב לאחסון האזמנה, מאמת אותה ומחליף את הנתונים הנוכחיים.", + "snapshot_modal_service_not_found": "זאת תמונת מצב של שירות שאין לך יותר על השרת. בדרך כלל זה לא אמור לקרות אך אין לנו אפשרות לבצע את השחזור האוטומטי. עדיין ניתן להוריד את תמונת המצב כדי לשחזר אותה ידנית. אפשר ליצור קשר עם SelfPrivacy לקבלת תמיכה במקרה הצורך.", + "restore_alert": "פעולה זו תשחזר מגיבוי שנוצר ב־{}. כל הנתונים הנוכחיים יאבדו. להמשיך?" + }, + "onboarding": { + "page1_title": "עצמאות דיגיטלית, לכל אחד מאתנו", + "page2_title": "SelfPrivacy זה לא ענן, זאת חוות השרתים האישית שלך", + "page2_server_provider_title": "ספק שרתים", + "page2_dns_provider_title": "ספק DNS", + "page2_backup_provider_title": "ספק גיבויים", + "page1_text": "דוא״ל, VPN, יישום תכתובות, רשת חברתית ועוד בשרת פרטי מחדש, תחת שליטתך.", + "page2_text": "SelfPrivacy עובד רק עם ספקים לבחירתך. אם אין לך חשבונות נחוצים אצלם, אנו נסייע לך ליצור אותם.", + "page2_server_provider_text": "ספק שרתים מתחזק את השרת שלך בחוות שרתים משלו. SelfPrivacy תתחבר אוטומטית לספק ותגדיר את כל מה שצריך.", + "page2_dns_provider_text": "צריך שם תחום כדי שיהיה לך מקום באינטרנט. וצריך גם ספק DNS אמין שיפנה משם התחום לשרת שלך. אנו מציעים לך לבחור מבין ספקי ה־DNS הנתמכים כדי להגדיר תקשורת אוטומטית.", + "page2_backup_provider_text": "מה אם משהו יקרה לשרת שלך? למשל תקיפת האקרים, מחיקת מידע בשוגג או מניעת שירות? הנתונים שלך יישמרו בצורה בטוחה בגיבויי הספק שלך. הם יוצפנו בצורה מאובטחת ויהיו נגישים בכל עת כדי לשחזר את השרת שלך מהם." + }, + "resource_chart": { + "month": "חודש", + "day": "יום", + "hour": "שעה", + "network_title": "ניצולת רשת", + "in": "נכנס", + "out": "יוצא", + "cpu_title": "ניצולת מעבד" + }, + "server": { + "card_title": "שרת", + "description": "כל השירותים שלך חיים כאן", + "general_information": "מידע כללי", + "resource_usage": "ניצולת משאבים", + "allow_autoupgrade": "לאפשר שדרוג אוטומטי", + "allow_autoupgrade_hint": "לאפשר שדרוגי חבילות אוטומטיים בשרת", + "reboot_after_upgrade": "להפעיל מחדש לאחר שדרוג", + "reboot_after_upgrade_hint": "להפעיל מחדש ללא בקשה לאחר החלת השינויים בשרת", + "server_timezone": "אזור הזמן של השרת", + "select_timezone": "בחירת אזור זמן", + "timezone_search_bar": "שם אזור הזמן או ערך הזחת השעה", + "server_id": "מזהה שרת", + "status": "מצב", + "cpu": "מעבד", + "ram": "זיכרון", + "disk": "כונן מקומי", + "monthly_cost": "עלות חודשית", + "location": "מקום", + "pricing_error": "לא ניתן למשוך את מחירי הספקים", + "server_provider": "ספק שרתים", + "dns_provider": "ספק DNS", + "core_count": { + "one": "ליבה אחת", + "two": "{} ליבות", + "few": "{} ליבות", + "many": "{} ליבות", + "other": "{} ליבות" + } + }, + "record": { + "root": "שם תחום על", + "api": "ה־API של SelfPrivacy", + "cloud": "ענן קבצים", + "git": "שרת Git", + "meet": "ועידת וידאו", + "social": "רשת חברתית", + "password": "מנהל סיסמאות", + "vpn": "VPN", + "mx": "רשומת MX", + "dmarc": "רשומת DMARC", + "spf": "רשומת SPF", + "dkim": "מפתח DKIM" + }, + "storage": { + "card_title": "אחסון בשרת", + "status_ok": "ניצולת הכונן תקינה", + "price": "מחיר", + "status_error": "חסר מקום בכונן", + "disk_usage": "{} מנוצלים", + "disk_total": "{} בסך הכול · {}", + "data_migration_title": "הסבת נתונים", + "gb": "{} ג״ב", + "mb": "{} מ״ב", + "kb": "{} ק״ב", + "bytes": "בתים", + "extend_volume_button": "הרחבת כרך", + "extending_volume_title": "הרחבת כרך", + "extending_volume_description": "שינוי גודל כרך מאפשר לך לאחסן יותר נתונים בשרת שלך מבלי להגדיר את השרת עצמו. אפשר רק להרחיב כרכים: אי אפשר לכווץ אותם.", + "extending_volume_price_info": "המחיר כולל מע״מ והוא משוערך על בסיס נתוני החיוב שמסופקים על ידי ספק השרת שלך. השרת יופעל מחדש לאחר שינוי הגודל.", + "extending_volume_error": "לא ניתן לאתחל את הרחבת הכרך.", + "size": "גודל", + "data_migration_notice": "במהלך ההסבה כל השירותים ייכבו.", + "start_migration_button": "התחלת הסבה", + "migration_process": "הסבה מתבצעת…", + "migration_done": "הסתיימה", + "extending_volume_modal_description": "לשדרג ל־{} בתוכנית של {} לחודש." + }, + "service_page": { + "enable": "הפעלת שירות", + "move": "העברה לכרך אחר", + "uses": "משתמש ב־{usage} על גבי {volume}", + "status": { + "active": "פעיל", + "inactive": "נעצר", + "failed": "התחלה נכשלה", + "off": "מושבת", + "activating": "מופעל", + "deactivating": "נעצר", + "reloading": "מופעל מחדש" + }, + "snapshots": "תמונות מצב של גיבוי", + "nothing_here": "אין כאן כלום", + "open_in_browser": "פתיחה בדפדפן", + "restart": "הפעלת השירות מחדש", + "disable": "השבתת שירות" + }, + "not_ready_card": { + "in_menu": "השרת לא מוגדר עדיין. נא לסיים את ההגדרה באמצעות אשף ההקמה כדי להמשיך בהקמה." + }, + "mail": { + "login_info": "להשתמש בשם המשתמש והסיסמה מלשונית המשתמשים. פתחת ה־IMAP היא 143 עם STARTTLS, פתחת ה־SMTP היא 587 עם STARTTLS.", + "subtitle": "דוא״ל לחברה ולמשפחה.", + "title": "דוא״ל" + }, + "password_manager": { + "title": "מנהל סיסמאות", + "subtitle": "בסיס האטבחה שלך. Bitwarden יסייע לך ליצור, לאחסן ולעביר סיסמאות בין מכשירים ואף למלא אותן כשיש צורך בזה עם השלמה אוטומטית.", + "login_info": "צריך ליצור חשבון באתר." + }, + "video": { + "title": "ועידת וידאו", + "subtitle": "Zoom ו־Google Meet הם אחלה שירותים אבל Jitsi Meet הוא חלופה ראויה שגם מבטיחה שלא מאזינים לך.", + "login_info": "לא צריך חשבון." + }, + "vpn": { + "subtitle": "שרת VPN פרטי", + "title": "שרת VPN" + }, + "git": { + "subtitle": "חלופה פרטית ל־GitHub ששייכת לך, אך לא ל־Microsoft.", + "login_info": "צריך ליצור חשבון באתר. המשתמש הראשון יהיה המנהל.", + "title": "שרת Git" + }, + "users": { + "login": "כניסה", + "new_user_info_note": "למשתמש חדש תוענק אוטומטית גישה לכל השירותים", + "delete_confirm_question": "להמשיך?", + "reset_password": "איפוס סיסמה", + "account": "חשבון", + "send_registration_data": "שיתוף פרטי גישה", + "no_ssh_notice": "למשתמש זה נוצרים רק חשבונות דוא״ל ו־SSH. כניסה אחודה לכל השירותים מגיעה בקרוב.", + "details_title": "פרטי משתמש", + "add_new_user": "הוספת המשתמש הראשון", + "new_user": "משתמש חדש", + "delete_user": "מחיקת משתמש", + "nobody_here": "אי כאן אף אחד", + "could_not_fetch_users": "לא ניתן למשוך את רשימת המשתמשים", + "could_not_fetch_description": "נא לבדוק את החיבור שלך לאינטרנט ולנסות שוב", + "refresh_users": "רענון רשימת המשתמשים", + "could_not_create_user": "לא ניתן ליצור משתמש", + "could_not_delete_user": "לא ניתן למחוק משתמש", + "could_not_add_ssh_key": "לא ניתן להוסיף מפתח SSH", + "email_login": "כניסה עם דוא״ל", + "username_rule": "שם המשתמש חייב להכיל אותיות לטיניות קטנות, ספרות וקווים תחתיים ואסור לו להתחיל בספרה" + }, + "initializing": { + "dns_provider_description": "שירות שמאפשר ל־IP שלך להצביע על שמות תחום:", + "select_provider_countries_text_hetzner": "גרמניה, פינלנד, ארה״ב", + "select_provider_countries_text_do": "ארה״ב, הולנד, סינגפור, אנגליה, גרמניה, קנדה, הודו, אוסטרליה", + "select_provider": "יש לבחור ספק מהרשימה שלהלן, כולם תומכים ב־SelfPrivacy", + "select_provider_notice": "הכוונה ב‚יחסית קטן’ היא מכונה עם 2 ליבות מעבד ו־2 גיגה בתים של זיכרון.", + "select_provider_countries_title": "מדינות זמינות", + "select_provider_price_text_hetzner": "€‎8 לחודש לשרת קטן יחסית עם 50 ג״ב של כונן אחסון", + "select_provider_payment_text_hetzner": "כרטיסי אשראי, העברה בנקאית, SEPA,‏ PayPal", + "select_provider_payment_text_cloudflare": "כרטיסי אשראי", + "select_provider_price_text_do": "17$ לחודש לשרת קטן יחסית עם 50 ג״ב של כונן אחסון", + "select_provider_payment_title": "שיטות תשלום", + "select_provider_payment_text_do": "כרטיסי אשראי, Google Pay,‏ PayPal", + "how": "איך לקבל אסימון API", + "provider_bad_key_error": "מפתח ה־API של הספק שגוי", + "could_not_connect": "לא ניתן להתחבר לספק.", + "locations_not_found": "אופס!", + "choose_location_type": "איפה להזמין את השרת שלך?", + "connect_to_server_provider_text": "עם אסימון API יכול SelfPrivacy לשכור מכונה ולהקים את השרת שלך עליה", + "no_server_types_found": "לא נמצאו סוגי שרתים. נא לוודא שהחשבון שלך נגיש ולנסות לשנות את מקום השרת שלך.", + "multiple_domains_found_text": "האסימון שסיפקת מעניק גישה לשמות התחום הבאים. נא לבחור את האחד לשימוש. כדי לשמור על אבטחת שאר שמות התחום שלך, כדאי להגביל את הגישה של האסימון הזה רק לשם התחום שמיועד לשימוש עם SelfPrivacy.", + "use_this_domain_text": "האסימון שסיפקת מעניק גישה לשם התחום הבא", + "multiple_domains_found": "נמצאו מגוון שמות תחום", + "connect_backblaze_storage": "חיבור אחסון של Backblaze", + "no_connected_domains": "אין שמות תחום מחוברים כרגע", + "one_more_restart": "הפעלה נוספת מחדש כדי להחיל את אישורי האבטחה שלך.", + "what": "מה זה אומר?", + "server_rebooted": "השרת הופעל מחדש. בהמתנה לאימות האחרון…", + "server_started": "השרת הופעל. הוא יאומת ויופעל מחדש כעת…", + "server_created": "השרת נוצר. בדיקות ה־DNS וטעינת השרת מתבצעות…", + "until_the_next_check": "עד לבדיקה הבאה: ", + "check": "בדיקה", + "steps": { + "server": "שרת", + "server_type": "סוג שרת", + "dns_provider": "ספק DNS", + "backups_provider": "גיבויים", + "domain": "שם תחום", + "master_account": "חשבון ראשי", + "hosting": "אירוח", + "dns_setup": "הגדרת DNS", + "nixos_installation": "התקנת NixOS", + "final_checks": "בדיקות אחרונות", + "server_reboot": "השרת מופעל מחדש" + }, + "select_provider_email_notice": "אירוח דוא״ל לא יהיה זמין ללקוחות חדשים. עם זאת, אפשרות זו תיפתח לאחר השלמת התשלום הראשון שלך.", + "choose_server_type_text": "קיבולות משאבים שונות תומכות בשירותים שונים. אל חשש, אפשר להגדיל את השרת שלך בכל עת", + "found_more_domains": "נמצא יותר משם תחום אחד. מטעמי אבטחה, נבקש ממך למחוק שמות תחום שאינם נחוצים", + "server_provider_description": "מקום בו הנתונים ושירותי ה־SelfPrivacy שלך יאוחסנו:", + "connect_to_server": "הבה נתחיל עם שרת.", + "select_provider_price_title": "מחיר ממוצע", + "select_provider_price_free": "חינם", + "select_provider_site_button": "ביקור באתר", + "connect_to_server_provider": "כעת יש להיכנס דרך ", + "choose_location_type_text": "מקומות שונים מציעים הגדרות, מחירים ומהירויות חיבור שונות לשרת.", + "locations_not_found_text": "אין שרתים זמינים להשכרה", + "back_to_locations": "נא לבחור משהו אחר", + "no_locations_found": "לא נמצאו מקומות זמינים, נא לוודא שהחשבון שלך זמין", + "choose_server_type_payment_storage": "{} לשטח אחסון נוסף", + "choose_server_type_payment_ip": "{} לכתובת ה־IPv4 הציבורית", + "dns_provider_bad_key_error": "מפתח ה־API שגוי", + "connect_to_dns": "חיבור לספק ה־DNS", + "select_dns": "עכשיו נבחר ספק DNS", + "manage_domain_dns": "כדי לנהל את ה־DNS של שם התחום שלך", + "use_this_domain": "להשתמש בשם התחום הזה?", + "loading_domain_list": "רשימת שמות התחום נטענת", + "choose_server_type": "איזה סוג של שרת נחוץ לך?", + "choose_server_type_ram": "{} ג״ב זיכרון", + "choose_server_type_storage": "{} ג״ב אחסון מערכת", + "choose_server_type_payment_per_month": "{} לחודש", + "choose_server_type_payment_server": "{} לשרת", + "backblaze_bad_key_error": "פרטי האחסון שלך ב־Backblaze שגויים", + "choose_server_type_notice": "הדברים החשובים לעקוב אחריהם הם המעבד והזיכרון. הנתונים של השירותים שלך יאוחסנו בכונן מעוגן שאפשר להגדיל בקלות והתשלום עליו נפרד.", + "connect_to_dns_provider_text": "עם מפתח API ינהל SelfPrivacy את כל רשומות ה־DNS שלו", + "save_domain": "שמירת שם התחום", + "final": "צעד אחרון", + "create_server": "יצירת שרת", + "enter_username_and_password": "נא למלא שם משתמש וסיסמה חזקה", + "finish": "הכול מאותחל", + "create_master_account": "יצירת חשבון ראשי", + "checks": "בדיקות הושלמו \n{} מתוך {}" + }, + "recovering": { + "method_select_other_device": "יש לי גישה דרך מכשיר אחר", + "method_select_recovery_key": "יש לי מפתח שחזור", + "method_recovery_input_description": "נא לספק את מפתח השחזור שלך", + "fallback_select_description": "מה יש לך בדיוק? נא לבחור את האפשרות הזמינה הראשונה:", + "method_device_description": "יש לפתוח את היישום במכשיר אחר, לאחר מכן לגשת לעמוד המכשירים. שם ללחוץ על „הוספת מכשיר” כדי לקבל את האסימון שלך.", + "method_select_nothing": "אין לי אף אחד מאלה", + "method_device_button": "קיבלתי את האסימון שלי", + "method_device_input_description": "נא לספק את אסימון האימות שלך", + "method_device_input_placeholder": "אסימון", + "authorization_failed": "אי אפשר להיכנס עם המפתח הזה", + "fallback_select_provider_console_hint": "למשל: Hetzner.", + "fallback_select_root_ssh": "גישת על (root) ב־SSH לשרת.", + "fallback_select_provider_console": "גישה למסוף השרת של הספק שלי.", + "modal_confirmation_ip_valid": "ה־IP זהה לזה שברשומת ה־DNS", + "modal_confirmation_ip_invalid": "ה־IP שונה מזה שברשומת ה־DNS", + "generic_error": "הפעולה בוטלה, נא לנסות שוב.", + "recovery_main_header": "התחברות לשרת SelfPrivacy קיים", + "domain_recover_placeholder": "שם התחום שלך", + "domain_recover_error": "לא נמצא שרת עם שם תחום כזה", + "method_select_description": "נא לבחור שיטת שחזור:", + "provider_connected": "התחברות אל {}", + "domain_recovery_description": "נא למלא את שם תחום השרת לאספקת גישה:", + "fallback_select_token_copy": "העתקת אסימון האימות מגרסה אחרת של היישומון.", + "confirm_server": "אישור השרת", + "confirm_server_description": "השרת שלך נמצא! עכשיו צריך לוודא שזה הנכון:", + "confirm_server_accept": "כן! זה הנכון", + "provider_connected_placeholder": "אסימון {}", + "provider_connected_description": "נא לספק את האסימון עם גישה אל {}:", + "confirm_server_decline": "בחירה בשרת אחר", + "choose_server": "בחירה בשרת שלך", + "choose_server_description": "לא הצלחנו לפענח לאיזה מהשרתים ניסית להתחבר.", + "no_servers": "אין שרתים זמינים בחשבון שלך.", + "domain_not_available_on_token": "שם התחום הנבחר לא זמין לאסימון הזה.", + "modal_confirmation_title": "זה באמת השרת שלך?", + "modal_confirmation_description": "אם בחרת להתחבר לשרת הלא נכון הנתונים שלך עלולים להימחק לצמיתות.", + "modal_confirmation_dns_valid": "ה־DNS ההפוך תקף", + "modal_confirmation_dns_invalid": "ה־DNS ההפוך מצביע לשם תחום אחר" + }, + "devices": { + "main_screen": { + "tip": "לחיצה על המכשיר תשלול לו את הגישה.", + "header": "מכשירים", + "description": "למכשירים האלה יש גישה מלאה לשרת דרך יישומון SelfPrivacy.", + "this_device": "המכשיר הזה", + "other_devices": "מכשירים אחרים", + "authorize_new_device": "אימות מכשיר חדש", + "access_granted_on": "הוענקה גישה דרך {}" + }, + "add_new_device_screen": { + "header": "אימות מכשיר חדש", + "description": "נא לספק את המפתח במכשיר לאישור:", + "please_wait": "נא להמתין", + "tip": "המפתח תקף ל־10 דקות.", + "expired": "תוקף המפתח פג.", + "get_new_key": "הנפקת מפתח חדש" + }, + "revoke_device_alert": { + "header": "לשלול גישה?", + "description": "למכשיר {} לא תהיה עוד גישה לשרת.", + "yes": "שלילה", + "no": "ביטול" + } + }, + "recovery_key": { + "key_amount_toggle": "הגבלה לפי מספר שימושים", + "key_amount_field_title": "מספר שימושים מרבי", + "key_duedate_toggle": "הגבלה בזמן", + "key_duedate_field_title": "מועד תום התוקף", + "key_receive_button": "קבלת מפתח", + "key_receiving_done": "בוצע!", + "key_connection_error": "לא ניתן להתחבר לשרת.", + "key_synchronizing": "מתבצע סנכרון…", + "key_main_header": "ממפתח שחזור", + "key_valid_until": "תקף עד {}", + "key_main_description": "נחוץ לאימות SelfPrivacy כאשר כל שאר המכשירים שאינם מאומתים אינם זמינים.", + "key_valid": "המפתח שלך תקף", + "key_invalid": "המפתח שלך לא תקף עוד", + "key_valid_for": "תקף לטובת {} שימושים", + "key_creation_date": "נוצר ב־{}", + "key_replace_button": "הנפקת מפתח חדש", + "key_receiving_description": "יש לכתוב לך את המפתח הזה ולאחסן במקום בטוח. הוא משמש לשחזור הגישה המלאה לשרת שלך:", + "generation_error": "לא ניתן לייצר מפתח שחזור. {}", + "key_receiving_info": "המפתח לא יופיע עוד לעולם, אך אפשר להחליף אותו באחר." + }, + "modals": { + "purge_all_keys": "למחוק לחלוטין את כל מפתחות האימות?", + "try_again": "לנסות שוב?", + "unexpected_error": "שגיאת פתע במהלך הצבה מצד הספק.", + "are_you_sure": "לנסות שוב?", + "destroy_server": "להשמיד את השרת וליצור אחד חדש?", + "purge_all_keys_confirm": "כן, למחוק לחלוטין את כל האסימונים שלי", + "delete_server_volume": "למחוק את השרת והכרך?", + "reboot": "להפעיל מחדש", + "yes": "כן", + "dns_removal_error": "לא ניתן להסיר רשומת DNS.", + "server_deletion_error": "לא ניתן למחוק שרת פעיל.", + "volume_creation_error": "לא ניתן ליצור כרך.", + "server_validators_error": "לא ניתן למשוך את השרתים הזמינים.", + "already_exists": "כבר קיים שרת כזה.", + "you_cant_use_this_api": "אי אפשר להשתמש ב־API הזה לשמות תחום עם TLD (סיומת על) שכזאת.", + "no": "לא" + }, + "jobs": { + "service_turn_off": "גיבוי", + "service_turn_on": "הפעלה", + "job_added": "נוספה משימה", + "run_jobs": "הפעלת משימות", + "generic_error": "לא ניתן להתחבר לשרת!", + "title": "רשימת משימות", + "start": "התחלה", + "empty": "אין משימות", + "create_user": "יצירת משתמש", + "delete_user": "מחיקת משתמש", + "reboot_success": "השרת מופעל מחדש", + "upgrade_success": "החל שדרוג השרת", + "upgrade_failed": "שדרוג השרת נכשל", + "upgrade_server": "שדרוג שרת", + "reboot_server": "הפעלת שרת מחדש", + "create_ssh_key": "יצירת מפתח SSH עבור {}", + "delete_ssh_key": "מחיקת מפתח SSH עבור {}", + "server_jobs": "משימות בשרת", + "reset_user_password": "איפוס סיסמת משתמש", + "reboot_failed": "לא ניתן להפעיל את השרת מחדש. נא לעיין ביומני היישום.", + "config_pull_failed": "משיכת שדרוג ההגדרות נכשלה. שדרוג התוכנה החל בכל זאת." + }, + "validations": { + "required": "נחוץ", + "already_exist": "כבר קיים", + "invalid_format": "תבנית שגויה", + "invalid_format_password": "הסיסמה לא יכולה להכיל רווחים", + "invalid_format_ssh": "חייב לעקוב אחר תבנית מפתח ה־SSH", + "root_name": "לא יכול להיות ‚root’ (משתמש העל)", + "length_not_equal": "האורך הוא [], אמור להיות {}", + "length_longer": "האורך הוא [], אמור להיות קצר או שווה ל־{}" + }, + "developer_settings": { + "cubit_statuses": "מצבי טעינת Cubit", + "routing": "ניתוב יישומים", + "reset_onboarding": "איפוס מתג קבלת פנים", + "reset_onboarding_description": "יש לאפס את מתג קבלת הפנים כדי להציג שוב את מסך קבלת הפנים", + "title": "הגדרות מפתחים", + "subtitle": "ההגדרות האלו הן לניפוי שגיאות בלבד. לא לשנות אותן אלא אם כן ברור לך לחלוטין מה כל דבר עושה.", + "server_setup": "הגדרת שרת", + "use_staging_acme_description": "חל על הקמת שרתים חדשים.", + "use_staging_acme": "להשתמש בשרת ACME לבדיקות", + "ignore_tls": "לא לאמת אישורי TLS", + "ignore_tls_description": "היישום לא יאמת אישורי RLS בעת התחברות לשרת." + }, + "cloud": { + "title": "אחסון בענן", + "subtitle": "לא לאפשר לשירותי ענן לקרוא את הנתונים שלך באמצעות Nextcloud.", + "login_info": "שם המשתמש הוא admin, הסיסמה זהה לזאת של המשתמש הראשי שלך. אפשר ליצור חשבונות חדשים דרך המנשק של ה־Nextcloud שלך." + }, + "social_network": { + "title": "רשת חברתית", + "login_info": "צריך ליצור חשבון באתר.", + "subtitle": "אומנם קשה להאמין אבל אפשר ליצור רשת חברתית משלך, עם כללים וקהל יעד משלך." + }, + "timer": { + "sec": "{} שנ׳" + }, + "support": { + "title": "תמיכה של SelfPrivacy" + } +} diff --git a/assets/translations/pl.json b/assets/translations/pl.json index ce1158ed..8c0d99bd 100644 --- a/assets/translations/pl.json +++ b/assets/translations/pl.json @@ -254,7 +254,6 @@ "add_new_user": "Dodaj pierwszego użytkownika", "new_user": "Nowy użytkownik", "delete_user": "Usuń użytkownika", - "not_ready": "Połącz serwer, domenę I DNS w zakładce dostawcy, aby mieć możliwość dodać pierwszego użytkownika", "nobody_here": "Tu będą pojawią się użytkownicy", "login": "Login", "new_user_info_note": "Nowy użytkownik automatycznie otrzyma dostęp do wszystkich serwisów", diff --git a/assets/translations/ru.json b/assets/translations/ru.json index 2371da85..89770fff 100644 --- a/assets/translations/ru.json +++ b/assets/translations/ru.json @@ -24,7 +24,7 @@ "username": "Имя пользователя", "loading": "Загрузка…", "later": "Пропустить и настроить потом", - "connect_to_existing": "Подключиться к существующему серверу", + "connect_to_existing": "Подключиться к существующему серверу SelfPrivacy", "reset": "Сбросить", "details": "Детальная информация", "no_data": "Нет данных", @@ -35,7 +35,8 @@ "continue": "Продолжить", "alert": "Уведомление", "copied_to_clipboard": "Скопировано в буфер обмена!", - "app_name": "SelfPrivacy" + "app_name": "SelfPrivacy", + "please_connect": "Настройте ваш сервер и подключите домен для полного погружения!" }, "more_page": { "configuration_wizard": "Мастер настройки", @@ -82,7 +83,7 @@ "no_key_name": "Безымянный ключ", "root_title": "Это ключи суперпользователя", "root_subtitle": "Владельцы указанных здесь ключей получают полный доступ к данным и настройкам сервера. Добавляйте исключительно свои ключи.", - "input_label": "Публичный ED25519 или RSA ключ" + "input_label": "Публичный ED25519, ECDSA или RSA ключ" }, "onboarding": { "page1_title": "Цифровая независимость доступна каждому", @@ -222,7 +223,7 @@ "snapshot_modal_inplace_option_description": "Требуется меньше свободного места, но выше риск. При загрузке данных из резервной копии заменяют текущие данные сразу.", "restore_started": "Восстановление началось, проверьте текущий статус в списке заданий", "quota_subtitles": { - "no_effect": "Это правило не имеет эффекта, так ак перекрыто другим правилом", + "no_effect": "Это правило не имеет эффекта, так как перекрыто другим правилом", "last": { "two": "Последние {} снимка будут сохраняться вне зависимости от даты создания", "many": "Последние {} снимков будут сохраняться вне зависимости от даты создания", @@ -308,7 +309,9 @@ "data_migration_notice": "На время миграции данных все сервисы будут выключены.", "start_migration_button": "Начать миграцию", "migration_process": "Мигрируем…", - "migration_done": "Завершить" + "migration_done": "Завершить", + "price": "Цена", + "extending_volume_modal_description": "Хранилище будет расширено до {}, новая стоимость {} в месяц." }, "not_ready_card": { "in_menu": "Сервер ещё не настроен, воспользуйтесь мастером подключения." @@ -329,7 +332,8 @@ "deactivating": "Выключается", "reloading": "Перезапускается" }, - "snapshots": "Снимки резервных копий" + "snapshots": "Снимки резервных копий", + "nothing_here": "Здесь ничего нет" }, "mail": { "title": "Почта", @@ -369,8 +373,7 @@ "add_new_user": "Добавьте первого пользователя", "new_user": "Новый пользователь", "delete_user": "Удалить пользователя", - "not_ready": "Подключите сервер, домен и DNS в разделе Провайдеры чтобы добавить первого пользователя", - "nobody_here": "Здесь будут отображаться пользователи", + "nobody_here": "Здесь никого нет", "login": "Логин", "new_user_info_note": "Новый пользователь автоматически получит доступ ко всем сервисам", "delete_confirm_question": "Вы действительно хотите удалить учетную запись?", @@ -472,7 +475,7 @@ }, "recovering": { "generic_error": "Ошибка проведения операции, попробуйте ещё раз.", - "recovery_main_header": "Подключиться к существующему серверу", + "recovery_main_header": "Подключение к существующему серверу SelfPrivacy", "domain_recovery_description": "Введите домен, по которому вы хотите получить доступ к серверу:", "domain_recover_placeholder": "Домен", "domain_recover_error": "Не удалось найти сервер с таким доменом", diff --git a/assets/translations/sk.json b/assets/translations/sk.json index 514b47eb..7d490a9b 100644 --- a/assets/translations/sk.json +++ b/assets/translations/sk.json @@ -360,7 +360,6 @@ "login_info": "Musíte vytvoriť účet na webovej stránke." }, "users": { - "not_ready": "Pripojte server, doménu a DNS v sekcii Poskytovatelia a pridajte prvého používateľa", "could_not_fetch_users": "Nepodarilo sa načítať používateľov", "could_not_delete_user": "Nepodarilo sa vymazať účet", "could_not_add_ssh_key": "Nepodarilo sa pridať kľúč SSH", diff --git a/assets/translations/th.json b/assets/translations/th.json index de7c5082..b50526bf 100644 --- a/assets/translations/th.json +++ b/assets/translations/th.json @@ -217,7 +217,6 @@ "users": { "login": "เข้าสู่ระบบ", "add_new_user": "เพิ่มผู้ใช้แรก", - "not_ready": "โปรดเชื่อมต่อเซิร์ฟเวอร์ โดเมน และ DNS ในแท็บผู้ให้บริการ เพื่อให้สามารถเพิ่มผู้ใช้รายแรกได้", "delete_confirm_question": "คุณแน่ใจใช่ไหม?", "could_not_fetch_users": "ไม่สามารถดึงรายชื่อผู้ใช้", "refresh_users": "รีเฟรชรายชื่อผู้ใช้", diff --git a/assets/translations/uk.json b/assets/translations/uk.json index 4ddfe3ff..90f62613 100644 --- a/assets/translations/uk.json +++ b/assets/translations/uk.json @@ -391,7 +391,6 @@ "could_not_delete_user": "Не зміг видалити користувача", "could_not_add_ssh_key": "Не зміг додати SSH-ключ", "email_login": "Увійти через Email", - "not_ready": "Будь ласка, підключіть сервер, домен і DNS на вкладці \"Сервери\", щоб мати можливість додати першого користувача", "could_not_fetch_description": "Перевірте підключення до Інтернету і спробуйте ще раз", "username_rule": "Ім'я користувача має містити лише малі латинські літери, цифри і підкреслення, не слід починати з цифри", "no_ssh_notice": "Для цього користувача створюються тільки поштові та SSH-акаунти. Єдина реєстрація для всіх сервісів незабаром." diff --git a/ci.py b/ci.py index b2403bfe..72339c3a 100755 --- a/ci.py +++ b/ci.py @@ -179,7 +179,8 @@ def ci_build_apk(): "&& flutter build apk --flavor nightly") def ci_run_tests(): - podman_online(f"{CONTAINER_HOME}/src", "flutter test", + podman_online(f"{CONTAINER_HOME}/src", "chown -R $(id -u):$(id -g) /tmp/gradle /tmp/flutter_pub_cache", + "&& flutter test", "&& flutter test --machine --coverage > tests.output") # Arguments diff --git a/fastlane/metadata/android/en-US/changelogs/0.9.1.txt b/fastlane/metadata/android/en-US/changelogs/0.9.1.txt new file mode 100644 index 00000000..59b28862 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/0.9.1.txt @@ -0,0 +1,20 @@ +### Bug Fixes + +- Fix volume resizing on Digital Ocean ([#368](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/368), resolves [#367](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/367)) +- Disable the storage card while volume information is being fetched ([#369](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/369), resolves [#317](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/317)) + + +### Features + +- Add copy-to-clipboard for email on user page ([#329](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/329), resolves [#287](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/287)) +- Add support for ECDSA SSH keys ([#362](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/362), resolves [#319](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/319)) +- Implement confirmation modal for the volume resize ([#372](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/372), resolves [#308](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/308)) + +### Other changes + +- Move service descriptions above login info for service cards ([#342](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/342), resolves [#341](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/341)) +- Add measure units to 'Extending volume' page ([#344](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/344), resolves [#301](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/301)) +- Make users to be ordered properly on users page ([#343](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/343), resolves [#340](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/340)) +- Move service card name to its icon row ([#352](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/352), resolves [#350](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/350)) +- Reorganize placeholders for empty pages ([#359](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/359), resolves [#348](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/348)) +- Remove redundant zone id cache for Cloudflare ([#371](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/371)) diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt index f5ba9142..e352e3df 100644 --- a/fastlane/metadata/android/en-US/full_description.txt +++ b/fastlane/metadata/android/en-US/full_description.txt @@ -1,6 +1,6 @@

SelfPrivacy — is a platform on your cloud hosting, that allows to deploy your own private services and control them using mobile application.

-

To use this application, you'll be required to create accounts of different service providers. Please reffer to this manual: https://selfprivacy.org/en/second

+

To use this application, you'll be required to create accounts of different service providers. Please reffer to this manual: https://selfprivacy.org/docs/getting-started/

Application will do the following things for you:

@@ -17,7 +17,5 @@
  • Pleroma — your private fediverse space for blogging
  • Jitsi — awesome Zoom alternative
  • Gitea — your own Git server
  • -
  • OpenConnect — Personal VPN server
  • -

    Project is currently in open beta state. Feel free to try it. It would be much appreciated if you would provide us with some feedback.

    diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg new file mode 100644 index 00000000..c9a747f5 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png deleted file mode 100644 index 3ffd726f..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg new file mode 100644 index 00000000..292aee31 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png deleted file mode 100644 index 6886e9b1..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg new file mode 100644 index 00000000..bffdf10a Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png deleted file mode 100644 index e2024cbd..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg new file mode 100644 index 00000000..11477ad3 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png deleted file mode 100644 index 3d3b2b37..00000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.jpg new file mode 100644 index 00000000..11477ad3 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.jpg differ diff --git a/lib/logic/api_maps/graphql_maps/server_api/server_actions_api.dart b/lib/logic/api_maps/graphql_maps/server_api/server_actions_api.dart index 05269d33..51a893c0 100644 --- a/lib/logic/api_maps/graphql_maps/server_api/server_actions_api.dart +++ b/lib/logic/api_maps/graphql_maps/server_api/server_actions_api.dart @@ -29,7 +29,7 @@ mixin ServerActionsApi on GraphQLApiMap { print(response.exception.toString()); } if (response.parsedData!.rebootSystem.success) { - time = DateTime.now(); + time = DateTime.now().toUtc(); } } catch (e) { print(e); diff --git a/lib/logic/api_maps/graphql_maps/server_api/server_api.dart b/lib/logic/api_maps/graphql_maps/server_api/server_api.dart index bc28a681..fcf3db05 100644 --- a/lib/logic/api_maps/graphql_maps/server_api/server_api.dart +++ b/lib/logic/api_maps/graphql_maps/server_api/server_api.dart @@ -248,7 +248,7 @@ class ServerApi extends GraphQLApiMap final GraphQLClient client = await getClient(); final input = Input$RecoveryKeyLimitsInput( - expirationDate: expirationDate, + expirationDate: expirationDate?.toUtc(), uses: numberOfUses, ); final variables = Variables$Mutation$GetNewRecoveryApiKey( diff --git a/lib/logic/api_maps/rest_maps/backblaze.dart b/lib/logic/api_maps/rest_maps/backblaze.dart index d908cd26..f622a2fd 100644 --- a/lib/logic/api_maps/rest_maps/backblaze.dart +++ b/lib/logic/api_maps/rest_maps/backblaze.dart @@ -137,7 +137,7 @@ class BackblazeApi extends RestApiMap { { 'daysFromHidingToDeleting': 30, 'daysFromUploadingToHiding': null, - 'fileNamePrefix': '' + 'fileNamePrefix': '', } ], }, diff --git a/lib/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean_api.dart b/lib/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean_api.dart index 9ffdb666..bd453dee 100644 --- a/lib/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean_api.dart +++ b/lib/logic/api_maps/rest_maps/server_providers/digital_ocean/digital_ocean_api.dart @@ -5,7 +5,6 @@ import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/logic/api_maps/generic_result.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/rest_api_map.dart'; import 'package:selfprivacy/logic/api_maps/tls_options.dart'; -import 'package:selfprivacy/logic/models/disk_size.dart'; import 'package:selfprivacy/logic/models/hive/user.dart'; import 'package:selfprivacy/logic/models/json/digital_ocean_server_info.dart'; import 'package:selfprivacy/utils/password_generator.dart'; diff --git a/lib/logic/api_maps/rest_maps/server_providers/hetzner/hetzner_api.dart b/lib/logic/api_maps/rest_maps/server_providers/hetzner/hetzner_api.dart index 5029561d..3778498a 100644 --- a/lib/logic/api_maps/rest_maps/server_providers/hetzner/hetzner_api.dart +++ b/lib/logic/api_maps/rest_maps/server_providers/hetzner/hetzner_api.dart @@ -360,21 +360,14 @@ class HetznerApi extends RestApiMap { return GenericResult(success: true, data: pricing); } - Future>> getVolumes({ - final String? status, - }) async { + Future>> getVolumes() async { final List volumes = []; - Response? getVolumesResonse; + Response? getVolumesResponse; final Dio client = await getClient(); try { - getVolumesResonse = await client.get( - '/volumes', - queryParameters: { - 'status': status, - }, - ); - for (final volume in getVolumesResonse.data['volumes']) { + getVolumesResponse = await client.get('/volumes'); + for (final volume in getVolumesResponse.data['volumes']) { volumes.add(HetznerVolume.fromJson(volume)); } } catch (e) { @@ -391,8 +384,8 @@ class HetznerApi extends RestApiMap { return GenericResult( data: volumes, success: true, - code: getVolumesResonse.statusCode, - message: getVolumesResonse.statusMessage, + code: getVolumesResponse.statusCode, + message: getVolumesResponse.statusMessage, ); } @@ -409,7 +402,7 @@ class HetznerApi extends RestApiMap { 'labels': {'labelkey': 'value'}, 'location': region, 'automount': false, - 'format': 'ext4' + 'format': 'ext4', }, ); volume = HetznerVolume.fromJson(createVolumeResponse.data['volume']); @@ -586,7 +579,7 @@ class HetznerApi extends RestApiMap { final Map queryParameters = { 'start': start.toUtc().toIso8601String(), 'end': end.toUtc().toIso8601String(), - 'type': type + 'type': type, }; final Response res = await client.get( '/servers/$serverId/metrics', diff --git a/lib/logic/cubit/server_installation/server_installation_state.dart b/lib/logic/cubit/server_installation/server_installation_state.dart index 4673e021..3c169603 100644 --- a/lib/logic/cubit/server_installation/server_installation_state.dart +++ b/lib/logic/cubit/server_installation/server_installation_state.dart @@ -24,7 +24,7 @@ abstract class ServerInstallationState extends Equatable { serverDetails, isServerStarted, isServerResetedFirstTime, - installationDialoguePopUp + installationDialoguePopUp, ]; final String? providerApiToken; @@ -299,7 +299,7 @@ class ServerInstallationRecovery extends ServerInstallationState { isServerStarted, isServerResetedFirstTime, currentStep, - installationDialoguePopUp + installationDialoguePopUp, ]; ServerInstallationRecovery copyWith({ diff --git a/lib/logic/cubit/server_jobs/server_jobs_cubit.dart b/lib/logic/cubit/server_jobs/server_jobs_cubit.dart index 4cc0cf97..09d77b14 100644 --- a/lib/logic/cubit/server_jobs/server_jobs_cubit.dart +++ b/lib/logic/cubit/server_jobs/server_jobs_cubit.dart @@ -90,7 +90,7 @@ class ServerJobsCubit ServerJobsState( serverJobList: [ for (final ServerJob job in state.serverJobList) - if (job.uid != uid) job + if (job.uid != uid) job, ], ), ); diff --git a/lib/logic/providers/dns_providers/cloudflare.dart b/lib/logic/providers/dns_providers/cloudflare.dart index 6cf4a494..de30ca3c 100644 --- a/lib/logic/providers/dns_providers/cloudflare.dart +++ b/lib/logic/providers/dns_providers/cloudflare.dart @@ -385,7 +385,7 @@ class CloudflareDnsProvider extends DnsProvider { mx, txt1, txt2, - vpn + vpn, ]; } diff --git a/lib/logic/providers/dns_providers/desec.dart b/lib/logic/providers/dns_providers/desec.dart index a5e3e8d7..37d39776 100644 --- a/lib/logic/providers/dns_providers/desec.dart +++ b/lib/logic/providers/dns_providers/desec.dart @@ -323,7 +323,7 @@ class DesecDnsProvider extends DnsProvider { mx, txt1, txt2, - vpn + vpn, ]; } diff --git a/lib/logic/providers/dns_providers/digital_ocean_dns.dart b/lib/logic/providers/dns_providers/digital_ocean_dns.dart index 4fac4b65..a721a8c6 100644 --- a/lib/logic/providers/dns_providers/digital_ocean_dns.dart +++ b/lib/logic/providers/dns_providers/digital_ocean_dns.dart @@ -276,7 +276,7 @@ class DigitalOceanDnsProvider extends DnsProvider { mx, txt1, txt2, - vpn + vpn, ]; } diff --git a/lib/ui/components/progress_bar/progress_bar.dart b/lib/ui/components/progress_bar/progress_bar.dart index 7f743f44..1861bd0b 100644 --- a/lib/ui/components/progress_bar/progress_bar.dart +++ b/lib/ui/components/progress_bar/progress_bar.dart @@ -78,7 +78,7 @@ class _ProgressBarState extends State { end: Alignment.bottomRight, colors: [ Theme.of(context).colorScheme.primary, - Theme.of(context).colorScheme.secondary + Theme.of(context).colorScheme.secondary, ], ), ), @@ -110,7 +110,7 @@ class _ProgressBarState extends State { style: progressTextStyleLight, children: [ TextSpan(text: '${index + 1}.', style: style), - TextSpan(text: step, style: style) + TextSpan(text: step, style: style), ], ), ), diff --git a/lib/ui/helpers/empty_page_placeholder.dart b/lib/ui/helpers/empty_page_placeholder.dart index e1bb0d7b..e96f91f9 100644 --- a/lib/ui/helpers/empty_page_placeholder.dart +++ b/lib/ui/helpers/empty_page_placeholder.dart @@ -32,7 +32,7 @@ class EmptyPagePlaceholder extends StatelessWidget { child: _expandedContent(context), ), ), - ) + ), ], ); diff --git a/lib/ui/pages/backups/backup_details.dart b/lib/ui/pages/backups/backup_details.dart index 43abd077..5a48a863 100644 --- a/lib/ui/pages/backups/backup_details.dart +++ b/lib/ui/pages/backups/backup_details.dart @@ -170,7 +170,7 @@ class BackupDetailsPage extends StatelessWidget { autobackupPeriod != null ? 'backup.autobackup_period_subtitle'.tr( namedArgs: { - 'period': autobackupPeriod.toPrettyString(context.locale) + 'period': autobackupPeriod.toPrettyString(context.locale), }, ) : 'backup.autobackup_period_never'.tr(), @@ -352,7 +352,7 @@ class BackupDetailsPage extends StatelessWidget { actionButtonOnPressed: () => { context.read().forgetSnapshot( backup.id, - ) + ), }, ); }, @@ -400,7 +400,7 @@ class BackupDetailsPage extends StatelessWidget { ), onTap: () => context.pushRoute(BackupsListRoute(service: null)), - ) + ), ], ), const SizedBox(height: 8), diff --git a/lib/ui/pages/backups/backups_list.dart b/lib/ui/pages/backups/backups_list.dart index 4af870ef..128c8ed6 100644 --- a/lib/ui/pages/backups/backups_list.dart +++ b/lib/ui/pages/backups/backups_list.dart @@ -31,6 +31,7 @@ class BackupsListPage extends StatelessWidget { context.watch().state.preventActions; return BrandHeroScreen( heroTitle: 'backup.snapshots_title'.tr(), + hasFlashButton: true, children: [ if (backups.isEmpty) Center( @@ -39,68 +40,70 @@ class BackupsListPage extends StatelessWidget { ), ) else - ...backups.map((final Backup backup) { - final service = context - .read() - .state - .getServiceById(backup.serviceId); - return ListTile( - onTap: preventActions - ? null - : () { - showModalBottomSheet( - useRootNavigator: true, - context: context, - isScrollControlled: true, - builder: (final BuildContext context) => - DraggableScrollableSheet( - expand: false, - maxChildSize: 0.9, - minChildSize: 0.5, - initialChildSize: 0.7, - builder: (final context, final scrollController) => - SnapshotModal( - snapshot: backup, - scrollController: scrollController, + ...backups.map( + (final Backup backup) { + final service = context + .read() + .state + .getServiceById(backup.serviceId); + return ListTile( + onTap: preventActions + ? null + : () { + showModalBottomSheet( + useRootNavigator: true, + context: context, + isScrollControlled: true, + builder: (final BuildContext context) => + DraggableScrollableSheet( + expand: false, + maxChildSize: 0.9, + minChildSize: 0.5, + initialChildSize: 0.7, + builder: (final context, final scrollController) => + SnapshotModal( + snapshot: backup, + scrollController: scrollController, + ), ), + ); + }, + onLongPress: preventActions + ? null + : () { + showPopUpAlert( + alertTitle: 'backup.forget_snapshot'.tr(), + description: 'backup.forget_snapshot_alert'.tr(), + actionButtonTitle: 'backup.forget_snapshot'.tr(), + actionButtonOnPressed: () => { + context.read().forgetSnapshot( + backup.id, + ), + }, + ); + }, + title: Text( + '${MaterialLocalizations.of(context).formatShortDate(backup.time)} ${TimeOfDay.fromDateTime(backup.time).format(context)}', + ), + subtitle: Text( + service?.displayName ?? backup.fallbackServiceName, + ), + leading: service != null + ? SvgPicture.string( + service.svgIcon, + height: 24, + width: 24, + colorFilter: ColorFilter.mode( + Theme.of(context).colorScheme.onBackground, + BlendMode.srcIn, ), - ); - }, - onLongPress: preventActions - ? null - : () { - showPopUpAlert( - alertTitle: 'backup.forget_snapshot'.tr(), - description: 'backup.forget_snapshot_alert'.tr(), - actionButtonTitle: 'backup.forget_snapshot'.tr(), - actionButtonOnPressed: () => { - context.read().forgetSnapshot( - backup.id, - ) - }, - ); - }, - title: Text( - '${MaterialLocalizations.of(context).formatShortDate(backup.time)} ${TimeOfDay.fromDateTime(backup.time).format(context)}', - ), - subtitle: Text( - service?.displayName ?? backup.fallbackServiceName, - ), - leading: service != null - ? SvgPicture.string( - service.svgIcon, - height: 24, - width: 24, - colorFilter: ColorFilter.mode( - Theme.of(context).colorScheme.onBackground, - BlendMode.srcIn, + ) + : const Icon( + Icons.question_mark_outlined, ), - ) - : const Icon( - Icons.question_mark_outlined, - ), - ); - }) + ); + }, + ), ], ); } diff --git a/lib/ui/pages/backups/snapshot_modal.dart b/lib/ui/pages/backups/snapshot_modal.dart index 9d714c25..37b10a17 100644 --- a/lib/ui/pages/backups/snapshot_modal.dart +++ b/lib/ui/pages/backups/snapshot_modal.dart @@ -172,7 +172,7 @@ class _SnapshotModalState extends State { isWarning: true, text: 'backup.snapshot_modal_service_not_found'.tr(), ), - ) + ), ], ), ); diff --git a/lib/ui/pages/more/app_settings/app_settings.dart b/lib/ui/pages/more/app_settings/app_settings.dart index 6ab69f40..9d7edf6b 100644 --- a/lib/ui/pages/more/app_settings/app_settings.dart +++ b/lib/ui/pages/more/app_settings/app_settings.dart @@ -62,7 +62,7 @@ class _AppSettingsPageState extends State { ), const _ResetAppTile(), // const Divider(height: 0), - _deleteServer(context) + _deleteServer(context), ], ); } diff --git a/lib/ui/pages/more/more.dart b/lib/ui/pages/more/more.dart index 3d85b093..0e96d340 100644 --- a/lib/ui/pages/more/more.dart +++ b/lib/ui/pages/more/more.dart @@ -118,7 +118,7 @@ class MorePage extends StatelessWidget { ), ], ), - ) + ), ], ), ); diff --git a/lib/ui/pages/server_details/charts/chart.dart b/lib/ui/pages/server_details/charts/chart.dart index 774dcf75..76576261 100644 --- a/lib/ui/pages/server_details/charts/chart.dart +++ b/lib/ui/pages/server_details/charts/chart.dart @@ -113,7 +113,7 @@ class _Chart extends StatelessWidget { titles: [ 'resource_chart.month'.tr(), 'resource_chart.day'.tr(), - 'resource_chart.hour'.tr() + 'resource_chart.hour'.tr(), ], ), const SizedBox(height: 8), diff --git a/lib/ui/pages/server_details/charts/cpu_chart.dart b/lib/ui/pages/server_details/charts/cpu_chart.dart index a11361d4..7350f003 100644 --- a/lib/ui/pages/server_details/charts/cpu_chart.dart +++ b/lib/ui/pages/server_details/charts/cpu_chart.dart @@ -86,7 +86,9 @@ class CpuChart extends StatelessWidget { maxY: 100, minX: 0, titlesData: FlTitlesData( - topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + topTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), bottomTitles: AxisTitles( sideTitles: SideTitles( interval: 40, diff --git a/lib/ui/pages/server_details/charts/network_charts.dart b/lib/ui/pages/server_details/charts/network_charts.dart index 946d0247..08747192 100644 --- a/lib/ui/pages/server_details/charts/network_charts.dart +++ b/lib/ui/pages/server_details/charts/network_charts.dart @@ -113,12 +113,14 @@ class NetworkChart extends StatelessWidget { minY: 0, maxY: [ ...listData[0].map((final e) => e.value), - ...listData[1].map((final e) => e.value) + ...listData[1].map((final e) => e.value), ].reduce(max) * 1.2, minX: 0, titlesData: FlTitlesData( - topTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + topTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), bottomTitles: AxisTitles( sideTitles: SideTitles( interval: 40, @@ -139,7 +141,9 @@ class NetworkChart extends StatelessWidget { showTitles: true, ), ), - leftTitles: AxisTitles(sideTitles: SideTitles(showTitles: false)), + leftTitles: AxisTitles( + sideTitles: SideTitles(showTitles: false), + ), rightTitles: AxisTitles( sideTitles: SideTitles( reservedSize: 50, @@ -154,7 +158,7 @@ class NetworkChart extends StatelessWidget { ), interval: [ ...listData[0].map((final e) => e.value), - ...listData[1].map((final e) => e.value) + ...listData[1].map((final e) => e.value), ].reduce(max) * 2 / 6.5, @@ -168,7 +172,7 @@ class NetworkChart extends StatelessWidget { verticalInterval: 40, horizontalInterval: [ ...listData[0].map((final e) => e.value), - ...listData[1].map((final e) => e.value) + ...listData[1].map((final e) => e.value), ].reduce(max) * 2 / 6.5, diff --git a/lib/ui/pages/services/service_page.dart b/lib/ui/pages/services/service_page.dart index e1e00ec0..37f9515c 100644 --- a/lib/ui/pages/services/service_page.dart +++ b/lib/ui/pages/services/service_page.dart @@ -134,7 +134,7 @@ class _ServicePageState extends State { .read() .state .getVolume(service.storageUsage.volume ?? '') - .displayName + .displayName, }, ), style: Theme.of(context).textTheme.bodyMedium, diff --git a/lib/ui/pages/services/services.dart b/lib/ui/pages/services/services.dart index 36af585f..2aa31d8b 100644 --- a/lib/ui/pages/services/services.dart +++ b/lib/ui/pages/services/services.dart @@ -69,7 +69,7 @@ class _ServicesPageState extends State { ), child: _Card(service: service), ), - ) + ), ], ), ), @@ -179,7 +179,7 @@ class _Card extends StatelessWidget { ), const SizedBox(height: 8), ], - ) + ), ], ), ), diff --git a/lib/ui/pages/setup/initializing/initializing.dart b/lib/ui/pages/setup/initializing/initializing.dart index 704ca65c..9de8e0ac 100644 --- a/lib/ui/pages/setup/initializing/initializing.dart +++ b/lib/ui/pages/setup/initializing/initializing.dart @@ -47,7 +47,7 @@ class InitializingPage extends StatelessWidget { () => _stepCheck(cubit), () => _stepCheck(cubit), () => _stepCheck(cubit), - () => _stepCheck(cubit) + () => _stepCheck(cubit), ][cubit.state.progress.index](); } @@ -191,7 +191,7 @@ class InitializingPage extends StatelessWidget { .replace(const RecoveryRoute()); }, ), - ) + ), ], ), ], @@ -452,7 +452,7 @@ class InitializingPage extends StatelessWidget { BrandTimer( startDateTime: state.timerStart!, duration: state.duration!, - ) + ), ], ), if (state.isLoading) diff --git a/lib/ui/pages/setup/initializing/server_type_picker.dart b/lib/ui/pages/setup/initializing/server_type_picker.dart index 3ce0f94b..932cbd93 100644 --- a/lib/ui/pages/setup/initializing/server_type_picker.dart +++ b/lib/ui/pages/setup/initializing/server_type_picker.dart @@ -9,6 +9,7 @@ import 'package:selfprivacy/logic/models/server_type.dart'; import 'package:selfprivacy/ui/components/buttons/brand_button.dart'; import 'package:selfprivacy/ui/components/info_box/info_box.dart'; import 'package:selfprivacy/ui/layouts/responsive_layout_with_infobox.dart'; +import 'package:selfprivacy/utils/ui_helpers.dart'; class ServerTypePicker extends StatefulWidget { const ServerTypePicker({ @@ -329,7 +330,7 @@ class SelectTypePage extends StatelessWidget { 'initializing.choose_server_type_payment_per_month' .tr( args: [ - '${(type.price.value + storagePrice + publicIpPrice).toStringAsFixed(4)} ${type.price.currency.shortcode}' + '${UiHelpers.formatWithPrecision(type.price.value + storagePrice + publicIpPrice)} ${type.price.currency.shortcode}', ], ), style: Theme.of(context) @@ -370,8 +371,10 @@ class SelectTypePage extends StatelessWidget { 'initializing.choose_server_type_payment_server' .tr( args: [ - type.price.value - .toString() + UiHelpers + .formatWithPrecision( + type.price.value, + ), ], ), style: Theme.of(context) @@ -401,7 +404,10 @@ class SelectTypePage extends StatelessWidget { 'initializing.choose_server_type_payment_storage' .tr( args: [ - storagePrice.toString() + UiHelpers + .formatWithPrecision( + storagePrice, + ), ], ), style: Theme.of(context) @@ -432,7 +438,10 @@ class SelectTypePage extends StatelessWidget { 'initializing.choose_server_type_payment_ip' .tr( args: [ - publicIpPrice.toString() + UiHelpers + .formatWithPrecision( + publicIpPrice, + ), ], ), style: Theme.of(context) diff --git a/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart b/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart index d1dce974..12c412e6 100644 --- a/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart +++ b/lib/ui/pages/setup/recovering/recover_by_new_device_key.dart @@ -25,7 +25,7 @@ class RecoverByNewDeviceKeyInstruction extends StatelessWidget { child: Text('recovering.method_device_button'.tr()), onPressed: () => Navigator.of(context) .push(materialRoute(const RecoverByNewDeviceKeyInput())), - ) + ), ], ); } @@ -81,7 +81,7 @@ class RecoverByNewDeviceKeyInput extends StatelessWidget { : () => context.read().trySubmit(), child: Text('basis.continue'.tr()), - ) + ), ], ); }, diff --git a/lib/ui/pages/setup/recovering/recover_by_old_token.dart b/lib/ui/pages/setup/recovering/recover_by_old_token.dart index 1a777f83..76bf6b4d 100644 --- a/lib/ui/pages/setup/recovering/recover_by_old_token.dart +++ b/lib/ui/pages/setup/recovering/recover_by_old_token.dart @@ -41,7 +41,7 @@ class RecoverByOldTokenInstruction extends StatelessWidget { onPressed: () => context .read() .selectRecoveryMethod(ServerRecoveryMethods.oldToken), - ) + ), ], ), ); @@ -90,7 +90,7 @@ class RecoverByOldToken extends StatelessWidget { ? null : () => context.read().trySubmit(), child: Text('basis.continue'.tr()), - ) + ), ], ); }, diff --git a/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart b/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart index ad18bc95..8633ad59 100644 --- a/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart +++ b/lib/ui/pages/setup/recovering/recover_by_recovery_key.dart @@ -50,7 +50,7 @@ class RecoverByRecoveryKey extends StatelessWidget { ? null : () => context.read().trySubmit(), child: Text('basis.continue'.tr()), - ) + ), ], ); }, diff --git a/lib/ui/pages/setup/recovering/recovery_confirm_server.dart b/lib/ui/pages/setup/recovering/recovery_confirm_server.dart index 2efcff87..3c0ade69 100644 --- a/lib/ui/pages/setup/recovering/recovery_confirm_server.dart +++ b/lib/ui/pages/setup/recovering/recovery_confirm_server.dart @@ -81,7 +81,7 @@ class _RecoveryConfirmServerState extends State { ); } }, - ) + ), ], ); diff --git a/lib/ui/pages/setup/recovering/recovery_method_select.dart b/lib/ui/pages/setup/recovering/recovery_method_select.dart index f8cec44a..dd5d77bd 100644 --- a/lib/ui/pages/setup/recovering/recovery_method_select.dart +++ b/lib/ui/pages/setup/recovering/recovery_method_select.dart @@ -51,7 +51,7 @@ class RecoveryMethodSelect extends StatelessWidget { title: 'recovering.method_select_nothing'.tr(), onPressed: () => Navigator.of(context) .push(materialRoute(const RecoveryFallbackMethodSelect())), - ) + ), ], ); } diff --git a/lib/ui/pages/setup/recovering/recovery_routing.dart b/lib/ui/pages/setup/recovering/recovery_routing.dart index 4018a6d8..82291190 100644 --- a/lib/ui/pages/setup/recovering/recovery_routing.dart +++ b/lib/ui/pages/setup/recovering/recovery_routing.dart @@ -132,7 +132,7 @@ class SelectDomainToRecover extends StatelessWidget { : () => context.read().trySubmit(), child: Text('basis.continue'.tr()), - ) + ), ], ), ); diff --git a/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart b/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart index 40f13eaa..1c9411c6 100644 --- a/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart +++ b/lib/ui/pages/setup/recovering/recovery_server_provider_connected.dart @@ -23,7 +23,7 @@ class RecoveryServerProviderConnected extends StatelessWidget { heroTitle: 'recovering.provider_connected'.tr( args: [ appConfig.state.serverDetails?.provider.displayName ?? - 'Server Provider' + 'Server Provider', ], ), heroSubtitle: 'recovering.provider_connected_description'.tr( @@ -45,7 +45,7 @@ class RecoveryServerProviderConnected extends StatelessWidget { labelText: 'recovering.provider_connected_placeholder'.tr( args: [ appConfig.state.serverDetails?.provider.displayName ?? - 'Server Provider' + 'Server Provider', ], ), ), diff --git a/lib/ui/pages/users/user_details.dart b/lib/ui/pages/users/user_details.dart index 90ab1603..9523ccf4 100644 --- a/lib/ui/pages/users/user_details.dart +++ b/lib/ui/pages/users/user_details.dart @@ -124,7 +124,7 @@ class _DeleteUserTile extends StatelessWidget { ), ], ), - ) + ), }, leading: const Icon(Icons.person_remove_outlined), title: Text( diff --git a/lib/utils/breakpoints.dart b/lib/utils/breakpoints.dart index 0e9104e2..88eca747 100644 --- a/lib/utils/breakpoints.dart +++ b/lib/utils/breakpoints.dart @@ -7,7 +7,7 @@ import 'package:flutter/material.dart'; const Set _desktop = { TargetPlatform.linux, TargetPlatform.macOS, - TargetPlatform.windows + TargetPlatform.windows, }; const Set _mobile = { diff --git a/lib/utils/extensions/text_extensions.dart b/lib/utils/extensions/text_extensions.dart deleted file mode 100644 index a00f7096..00000000 --- a/lib/utils/extensions/text_extensions.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'package:flutter/material.dart'; - -extension TextExtension on Text { - Text withColor(final Color color) => Text( - data!, - key: key, - strutStyle: strutStyle, - textAlign: textAlign, - textDirection: textDirection, - locale: locale, - softWrap: softWrap, - overflow: overflow, - textScaleFactor: textScaleFactor, - maxLines: maxLines, - semanticsLabel: semanticsLabel, - textWidthBasis: textWidthBasis ?? textWidthBasis, - style: style != null - ? style!.copyWith(color: color) - : TextStyle(color: color), - ); - - Text copyWith({ - final Key? key, - final StrutStyle? strutStyle, - final TextAlign? textAlign, - final TextDirection? textDirection, - final Locale? locale, - final bool? softWrap, - final TextOverflow? overflow, - final double? textScaleFactor, - final int? maxLines, - final String? semanticsLabel, - final TextWidthBasis? textWidthBasis, - final TextStyle? style, - }) => - Text( - data!, - key: key ?? this.key, - strutStyle: strutStyle ?? this.strutStyle, - textAlign: textAlign ?? this.textAlign, - textDirection: textDirection ?? this.textDirection, - locale: locale ?? this.locale, - softWrap: softWrap ?? this.softWrap, - overflow: overflow ?? this.overflow, - textScaleFactor: textScaleFactor ?? this.textScaleFactor, - maxLines: maxLines ?? this.maxLines, - semanticsLabel: semanticsLabel ?? this.semanticsLabel, - textWidthBasis: textWidthBasis ?? this.textWidthBasis, - style: style != null ? this.style?.merge(style) ?? style : this.style, - ); -} diff --git a/lib/utils/ui_helpers.dart b/lib/utils/ui_helpers.dart index f4d58a05..10f7419d 100644 --- a/lib/utils/ui_helpers.dart +++ b/lib/utils/ui_helpers.dart @@ -1,3 +1,4 @@ +import 'package:intl/intl.dart'; import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart'; /// it's ui helpers use only for ui components, don't use for logic components. @@ -5,4 +6,14 @@ import 'package:selfprivacy/logic/cubit/server_installation/server_installation_ class UiHelpers { static String getDomainName(final ServerInstallationState config) => config.isDomainSelected ? config.serverDomain!.domainName : 'example.com'; + + static String formatWithPrecision( + final double value, { + final int fraction = 2, + }) { + final NumberFormat formatter = NumberFormat(); + formatter.minimumFractionDigits = 0; + formatter.maximumFractionDigits = fraction; + return formatter.format(value); + } } diff --git a/metadata/org.selfprivacy.app.nightly/en-US/full_description.txt b/metadata/org.selfprivacy.app.nightly/en-US/full_description.txt deleted file mode 100644 index 018c94ca..00000000 --- a/metadata/org.selfprivacy.app.nightly/en-US/full_description.txt +++ /dev/null @@ -1 +0,0 @@ -Nightly builds of SelfPrivacy app. diff --git a/metadata/org.selfprivacy.app.nightly/en-US/images/icon.png b/metadata/org.selfprivacy.app.nightly/en-US/images/icon.png deleted file mode 100644 index bceb0253..00000000 Binary files a/metadata/org.selfprivacy.app.nightly/en-US/images/icon.png and /dev/null differ diff --git a/metadata/org.selfprivacy.app.nightly/en-US/short_description.txt b/metadata/org.selfprivacy.app.nightly/en-US/short_description.txt deleted file mode 100644 index 18bbf5ab..00000000 --- a/metadata/org.selfprivacy.app.nightly/en-US/short_description.txt +++ /dev/null @@ -1 +0,0 @@ -Self-hosted services without pain diff --git a/metadata/org.selfprivacy.app.nightly/en-US/title.txt b/metadata/org.selfprivacy.app.nightly/en-US/title.txt deleted file mode 100644 index 7eb10ccc..00000000 --- a/metadata/org.selfprivacy.app.nightly/en-US/title.txt +++ /dev/null @@ -1 +0,0 @@ -SelfPrivacy (Nightly) diff --git a/metadata/org.selfprivacy.app/en-US/full_description.txt b/metadata/org.selfprivacy.app/en-US/full_description.txt deleted file mode 100644 index f5ba9142..00000000 --- a/metadata/org.selfprivacy.app/en-US/full_description.txt +++ /dev/null @@ -1,23 +0,0 @@ -

    SelfPrivacy — is a platform on your cloud hosting, that allows to deploy your own private services and control them using mobile application.

    - -

    To use this application, you'll be required to create accounts of different service providers. Please reffer to this manual: https://selfprivacy.org/en/second

    - -

    Application will do the following things for you:

    - -
      -
    1. Create your personal server
    2. -
    3. Setup NixOS
    4. -
    5. Bring all services to the ready-to-use state. Services include:
    6. -
    - -
      -
    • E-mail, ready to use with DeltaChat
    • -
    • NextCloud — your personal cloud storage
    • -
    • Bitwarden — secure and private password manager
    • -
    • Pleroma — your private fediverse space for blogging
    • -
    • Jitsi — awesome Zoom alternative
    • -
    • Gitea — your own Git server
    • -
    • OpenConnect — Personal VPN server
    • -
    - -

    Project is currently in open beta state. Feel free to try it. It would be much appreciated if you would provide us with some feedback.

    diff --git a/metadata/org.selfprivacy.app/en-US/images/icon.png b/metadata/org.selfprivacy.app/en-US/images/icon.png deleted file mode 100644 index fee217d6..00000000 Binary files a/metadata/org.selfprivacy.app/en-US/images/icon.png and /dev/null differ diff --git a/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/1.png b/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/1.png deleted file mode 100644 index 3ffd726f..00000000 Binary files a/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/1.png and /dev/null differ diff --git a/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/2.png b/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/2.png deleted file mode 100644 index 6886e9b1..00000000 Binary files a/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/2.png and /dev/null differ diff --git a/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/3.png b/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/3.png deleted file mode 100644 index e2024cbd..00000000 Binary files a/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/3.png and /dev/null differ diff --git a/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/4.png b/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/4.png deleted file mode 100644 index 3d3b2b37..00000000 Binary files a/metadata/org.selfprivacy.app/en-US/images/phoneScreenshots/4.png and /dev/null differ diff --git a/metadata/org.selfprivacy.app/en-US/short_description.txt b/metadata/org.selfprivacy.app/en-US/short_description.txt deleted file mode 100644 index 18bbf5ab..00000000 --- a/metadata/org.selfprivacy.app/en-US/short_description.txt +++ /dev/null @@ -1 +0,0 @@ -Self-hosted services without pain diff --git a/metadata/org.selfprivacy.app/en-US/title.txt b/metadata/org.selfprivacy.app/en-US/title.txt deleted file mode 100644 index adc138c5..00000000 --- a/metadata/org.selfprivacy.app/en-US/title.txt +++ /dev/null @@ -1 +0,0 @@ -SelfPrivacy diff --git a/pubspec.lock b/pubspec.lock index 05045a0a..e1874330 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,42 +5,42 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a + sha256: eb376e9acf6938204f90eb3b1f00b578640d3188b4c8a8ec054f9f479af8d051 url: "https://pub.dev" source: hosted - version: "61.0.0" + version: "64.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 + sha256: "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893" url: "https://pub.dev" source: hosted - version: "5.13.0" + version: "6.2.0" animations: dependency: "direct main" description: name: animations - sha256: fe8a6bdca435f718bb1dc8a11661b2c22504c6da40ef934cee8327ed77934164 + sha256: ef57563eed3620bd5d75ad96189846aca1e033c0c45fc9a7d26e80ab02b88a70 url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.8" archive: dependency: transitive description: name: archive - sha256: d6347d54a2d8028e0437e3c099f66fdb8ae02c4720c1e7534c9f24c10351f85d + sha256: "7b875fd4a20b165a3084bd2d210439b22ebc653f21cea4842729c0c30c82596b" url: "https://pub.dev" source: hosted - version: "3.3.6" + version: "3.4.9" args: dependency: transitive description: name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" + sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.2" async: dependency: transitive description: @@ -53,18 +53,18 @@ packages: dependency: "direct main" description: name: auto_route - sha256: cf6cda303fd98608426fa429692a04f643146f981b1c0ac1033e3f0e11a1ed9c + sha256: "82f8df1d177416bc6b7a449127d0270ff1f0f633a91f2ceb7a85d4f07c3affa1" url: "https://pub.dev" source: hosted - version: "7.3.2" + version: "7.8.4" auto_route_generator: dependency: "direct dev" description: name: auto_route_generator - sha256: d0555913cc54153c38b1dd4f69e0d6a623818ca7195e7c1437901d52b2596eec + sha256: "11067a3bcd643812518fe26c0c9ec073990286cabfd9d74b6da9ef9b913c4d22" url: "https://pub.dev" source: hosted - version: "7.1.1" + version: "7.3.2" auto_size_text: dependency: "direct main" description: @@ -93,10 +93,10 @@ packages: dependency: transitive description: name: build - sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" build_config: dependency: transitive description: @@ -109,34 +109,34 @@ packages: dependency: transitive description: name: build_daemon - sha256: "5f02d73eb2ba16483e693f80bee4f088563a820e47d1027d4cdfe62b5bb43e65" + sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" url: "https://pub.dev" source: hosted - version: "4.0.0" + version: "4.0.1" build_resolvers: dependency: transitive description: name: build_resolvers - sha256: "7c35a3a7868626257d8aee47b51c26b9dba11eaddf3431117ed2744951416aab" + sha256: "64e12b0521812d1684b1917bc80945625391cb9bdd4312536b1d69dcb6133ed8" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.4.1" build_runner: dependency: "direct dev" description: name: build_runner - sha256: "220ae4553e50d7c21a17c051afc7b183d28a24a420502e842f303f8e4e6edced" + sha256: "67d591d602906ef9201caf93452495ad1812bea2074f04e25dbd7c133785821b" url: "https://pub.dev" source: hosted - version: "2.4.4" + version: "2.4.7" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" + sha256: c9e32d21dd6626b5c163d48b037ce906bbe428bc23ab77bcd77bb21e593b6185 url: "https://pub.dev" source: hosted - version: "7.2.7" + version: "7.2.11" built_collection: dependency: transitive description: @@ -149,10 +149,10 @@ packages: dependency: transitive description: name: built_value - sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725" + sha256: "69acb7007eb2a31dc901512bfe0f7b767168be34cb734835d54c070bfa74c1b2" url: "https://pub.dev" source: hosted - version: "8.4.3" + version: "8.8.0" characters: dependency: transitive description: @@ -165,10 +165,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.3" cli_util: dependency: transitive description: @@ -189,34 +189,34 @@ packages: dependency: transitive description: name: code_builder - sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" + sha256: b2151ce26a06171005b379ecff6e08d34c470180ffe16b8e14b6d52be292b55f url: "https://pub.dev" source: hosted - version: "4.4.0" + version: "4.8.0" collection: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.18.0" connectivity_plus: dependency: transitive description: name: connectivity_plus - sha256: "745ebcccb1ef73768386154428a55250bc8d44059c19fd27aecda2a6dc013a22" + sha256: "224a77051d52a11fbad53dd57827594d3bd24f945af28bd70bab376d68d437f0" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "5.0.2" connectivity_plus_platform_interface: dependency: transitive description: name: connectivity_plus_platform_interface - sha256: b8795b9238bf83b64375f63492034cb3d8e222af4d9ce59dda085edf038fa06f + sha256: cf1d1c28f4416f8c654d7dc3cd638ec586076255d407cef3ddbdaf178272a71a url: "https://pub.dev" source: hosted - version: "1.2.3" + version: "1.2.4" convert: dependency: transitive description: @@ -229,26 +229,26 @@ packages: dependency: transitive description: name: coverage - sha256: "961c4aebd27917269b1896382c7cb1b1ba81629ba669ba09c27a7e5710ec9040" + sha256: ac86d3abab0f165e4b8f561280ff4e066bceaac83c424dd19f1ae2c2fcd12ca9 url: "https://pub.dev" source: hosted - version: "1.6.2" + version: "1.7.1" crypt: dependency: "direct main" description: name: crypt - sha256: fef2b24f8fb73b626224b207b2e57ac139d38b63dc7428257f820a2fd9e4688b + sha256: f8726c819c306ea4ae952baed3aa9a1d6736f4437fae567691592c1cc4f1feac url: "https://pub.dev" source: hosted - version: "4.3.0" + version: "4.3.1" crypto: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" cubit_form: dependency: "direct main" description: @@ -261,26 +261,26 @@ packages: dependency: transitive description: name: dart_style - sha256: "5be16bf1707658e4c03078d4a9b90208ded217fb02c163e207d334082412f2fb" + sha256: "40ae61a5d43feea6d24bd22c0537a6629db858963b99b4bc1c3db80676f32368" url: "https://pub.dev" source: hosted - version: "2.2.5" + version: "2.3.4" dbus: dependency: transitive description: name: dbus - sha256: "6f07cba3f7b3448d42d015bfd3d53fe12e5b36da2423f23838efc1d5fb31a263" + sha256: "365c771ac3b0e58845f39ec6deebc76e3276aa9922b0cc60840712094d9047ac" url: "https://pub.dev" source: hosted - version: "0.7.8" + version: "0.7.10" device_info_plus: dependency: "direct main" description: name: device_info_plus - sha256: "2c35b6d1682b028e42d07b3aee4b98fa62996c10bc12cb651ec856a80d6a761b" + sha256: "0042cb3b2a76413ea5f8a2b40cec2a33e01d0c937e91f0f7c211fde4f7739ba6" url: "https://pub.dev" source: hosted - version: "9.0.2" + version: "9.1.1" device_info_plus_platform_interface: dependency: transitive description: @@ -293,34 +293,34 @@ packages: dependency: "direct main" description: name: dio - sha256: "347d56c26d63519552ef9a569f2a593dda99a81fdbdff13c584b7197cfe05059" + sha256: "797e1e341c3dd2f69f2dad42564a6feff3bfb87187d05abb93b9609e6f1645c3" url: "https://pub.dev" source: hosted - version: "5.1.2" + version: "5.4.0" duration: dependency: "direct main" description: name: duration - sha256: d0b29d0a345429e3986ac56d60e4aef65b37d11e653022b2b9a4b361332b777f + sha256: "0548a12d235dab185c677ef660995f23fdc06a02a2b984aa23805f6a03d82815" url: "https://pub.dev" source: hosted - version: "3.0.12" + version: "3.0.13" dynamic_color: dependency: "direct main" description: name: dynamic_color - sha256: "74dff1435a695887ca64899b8990004f8d1232b0e84bfc4faa1fdda7c6f57cc1" + sha256: "8b8bd1d798bd393e11eddeaa8ae95b12ff028bf7d5998fc5d003488cd5f4ce2f" url: "https://pub.dev" source: hosted - version: "1.6.5" + version: "1.6.8" easy_localization: dependency: "direct main" description: name: easy_localization - sha256: "30ebf25448ffe169e0bd9bc4b5da94faa8398967a2ad2ca09f438be8b6953645" + sha256: de63e3b422adfc97f256cbb3f8cf12739b6a4993d390f3cadb3f51837afaefe5 url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" easy_logger: dependency: transitive description: @@ -365,18 +365,18 @@ packages: dependency: transitive description: name: ffi - sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 + sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.0" file: dependency: transitive description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" fixnum: dependency: transitive description: @@ -389,10 +389,10 @@ packages: dependency: "direct main" description: name: fl_chart - sha256: "48a1b69be9544e2b03d9a8e843affd89e43f3194c9248776222efcb4206bb1ec" + sha256: "5a74434cc83bf64346efb562f1a06eefaf1bcb530dc3d96a104f631a1eff8d79" url: "https://pub.dev" source: hosted - version: "0.62.0" + version: "0.65.0" flutter: dependency: "direct main" description: flutter @@ -410,10 +410,10 @@ packages: dependency: transitive description: name: flutter_hooks - sha256: "2b202559a4ed3656bbb7aae9d8b335fb0037b23acc7ae3f377d1ba0b95c21aec" + sha256: "7c8db779c2d1010aa7f9ea3fbefe8f86524fcb87b69e8b0af31e1a4b55422dec" url: "https://pub.dev" source: hosted - version: "0.18.5+1" + version: "0.20.3" flutter_launcher_icons: dependency: "direct dev" description: @@ -426,10 +426,10 @@ packages: dependency: "direct dev" description: name: flutter_lints - sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c + sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7 url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" flutter_localizations: dependency: transitive description: flutter @@ -439,74 +439,74 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: "7b25c10de1fea883f3c4f9b8389506b54053cd00807beab69fd65c8653a2711f" + sha256: "35108526a233cc0755664d445f8a6b4b61e6f8fe993b3658b80b4a26827fc196" url: "https://pub.dev" source: hosted - version: "0.6.14" + version: "0.6.18+2" flutter_plugin_android_lifecycle: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "60fc7b78455b94e6de2333d2f95196d32cf5c22f4b0b0520a628804cb463503b" + sha256: b068ffc46f82a55844acfa4fdbb61fad72fa2aef0905548419d97f0f95c456da url: "https://pub.dev" source: hosted - version: "2.0.7" + version: "2.0.17" flutter_secure_storage: dependency: "direct main" description: name: flutter_secure_storage - sha256: "98352186ee7ad3639ccc77ad7924b773ff6883076ab952437d20f18a61f0a7c5" + sha256: ffdbb60130e4665d2af814a0267c481bcf522c41ae2e43caf69fa0146876d685 url: "https://pub.dev" source: hosted - version: "8.0.0" + version: "9.0.0" flutter_secure_storage_linux: dependency: transitive description: name: flutter_secure_storage_linux - sha256: "0912ae29a572230ad52d8a4697e5518d7f0f429052fd51df7e5a7952c7efe2a3" + sha256: "3d5032e314774ee0e1a7d0a9f5e2793486f0dff2dd9ef5a23f4e3fb2a0ae6a9e" url: "https://pub.dev" source: hosted - version: "1.1.3" + version: "1.2.0" flutter_secure_storage_macos: dependency: transitive description: name: flutter_secure_storage_macos - sha256: "083add01847fc1c80a07a08e1ed6927e9acd9618a35e330239d4422cd2a58c50" + sha256: bd33935b4b628abd0b86c8ca20655c5b36275c3a3f5194769a7b3f37c905369c url: "https://pub.dev" source: hosted - version: "3.0.0" + version: "3.0.1" flutter_secure_storage_platform_interface: dependency: transitive description: name: flutter_secure_storage_platform_interface - sha256: b3773190e385a3c8a382007893d678ae95462b3c2279e987b55d140d3b0cb81b + sha256: "0d4d3a5dd4db28c96ae414d7ba3b8422fd735a8255642774803b2532c9a61d7e" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.0.2" flutter_secure_storage_web: dependency: transitive description: name: flutter_secure_storage_web - sha256: "42938e70d4b872e856e678c423cc0e9065d7d294f45bc41fc1981a4eb4beaffe" + sha256: "30f84f102df9dcdaa2241866a958c2ec976902ebdaa8883fbfe525f1f2f3cf20" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" flutter_secure_storage_windows: dependency: transitive description: name: flutter_secure_storage_windows - sha256: fc2910ec9b28d60598216c29ea763b3a96c401f0ce1d13cdf69ccb0e5c93c3ee + sha256: "5809c66f9dd3b4b93b0a6e2e8561539405322ee767ac2f64d084e2ab5429d108" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "3.0.0" flutter_svg: dependency: "direct main" description: name: flutter_svg - sha256: "6ff8c902c8056af9736de2689f63f81c42e2d642b9f4c79dbf8790ae48b63012" + sha256: d39e7f95621fc84376bc0f7d504f05c3a41488c562f4a8ad410569127507402c url: "https://pub.dev" source: hosted - version: "2.0.6" + version: "2.0.9" flutter_test: dependency: "direct dev" description: flutter @@ -529,74 +529,74 @@ packages: dependency: "direct main" description: name: get_it - sha256: "529de303c739fca98cd7ece5fca500d8ff89649f1bb4b4e94fb20954abcd7468" + sha256: f79870884de16d689cf9a7d15eedf31ed61d750e813c538a6efb92660fea83c3 url: "https://pub.dev" source: hosted - version: "7.6.0" + version: "7.6.4" glob: dependency: transitive description: name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" gql: dependency: "direct main" description: name: gql - sha256: "7dd48a2632103154186bf77adb850489efdabe65c05313eab784657df800794a" + sha256: aa3e0be4548353007b6e6fd24fcad0ce8c1179f9cb2ae5239d392fddb84a5ce5 url: "https://pub.dev" source: hosted - version: "1.0.1-alpha+1682715291314" + version: "1.0.1-alpha+1700868214564" gql_code_builder: dependency: transitive description: name: gql_code_builder - sha256: "6e386a85f5d91daae82915337f566a43dfeb0a0df38caa372387fbc07d31b8c1" + sha256: b70e17fe62af58c3a9a3dfd619bf0b07ca15afe4d285001fbcd0852a40538401 url: "https://pub.dev" source: hosted - version: "0.7.2" + version: "0.9.1+1" gql_dedupe_link: dependency: transitive description: name: gql_dedupe_link - sha256: "2c76b1006cd7445e026d3bc46c6336f28cbcf3711326f128839cfc746f9e2ec9" + sha256: e97e3f9490add43ba96cf5cc02d9d10a3723965c0bcc7bb1e04ef4f2e7a31a00 url: "https://pub.dev" source: hosted - version: "2.0.4-alpha+1682715291398" + version: "2.0.4-alpha+1700868214643" gql_error_link: dependency: transitive description: name: gql_error_link - sha256: bfdb543137da89448cc5d003fd029c2e8718931d39d4a7dedb16f9169862fbb9 + sha256: "93901458f3c050e33386dedb0ca7173e08cebd7078e4e0deca4bf23ab7a71f63" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.0+1" gql_exec: dependency: transitive description: name: gql_exec - sha256: "07f73f4edc00698f67c3fb5bda0d95ab7e6ea844572a670ef270154244fae6d4" + sha256: "394944626fae900f1d34343ecf2d62e44eb984826189c8979d305f0ae5846e38" url: "https://pub.dev" source: hosted - version: "1.0.1-alpha+1682715291324" + version: "1.1.1-alpha+1699813812660" gql_http_link: dependency: transitive description: name: gql_http_link - sha256: "365c0e72da7e29e007c4a0ed7a470f6c03af1ef00acd2af3c22157c8bb47f314" + sha256: "1f922eed1b7078fdbfd602187663026f9f659fe9a9499e2207b5d5e01617f658" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.1+1" gql_link: dependency: transitive description: name: gql_link - sha256: ee781e59527240adf69e044389a7d0a19b890a6e76b6dfff969ef56ba8d4fea7 + sha256: "48dbf63b4831d800a2ce9675c9fecea3c9f2801de92072c7644a4bc52aa26c13" url: "https://pub.dev" source: hosted - version: "1.0.1-alpha+1682715291332" + version: "1.0.1-alpha+1700868214578" gql_transform_link: dependency: transitive description: @@ -605,38 +605,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" + gql_tristate_value: + dependency: transitive + description: + name: gql_tristate_value + sha256: ae045e7e272fbfd030084315140c683c9b032a9861a37165f68c2ecd8a759664 + url: "https://pub.dev" + source: hosted + version: "1.0.0" graphql: dependency: "direct main" description: name: graphql - sha256: f2529e2f606f445bbb38b92c6eb18dd4c11196ca638421fe5aaab62140ac3106 + sha256: "4ac531068107dffef188c74e7ff662777b729e9d5e0686f71623d4af1e3751c8" url: "https://pub.dev" source: hosted - version: "5.2.0-beta.3" + version: "5.2.0-beta.6" graphql_codegen: dependency: "direct main" description: name: graphql_codegen - sha256: "773dce58e9bce208a8694badc1af9fe39870bb2cb18078474ba5c2b6a535f87c" + sha256: "6702f85cfdf46cd416c3de3a4fcfecc482f15db23058178e4142fb24e604fb0c" url: "https://pub.dev" source: hosted - version: "0.13.0" + version: "0.13.9" graphql_flutter: dependency: "direct main" description: name: graphql_flutter - sha256: "9de0365b58c8733130a706e9fddb33f6791d9bbbee45e1cd1bc2ca0920941a19" + sha256: "39b5e830bc654ab02c5b776c31675841d1a8c95840fdd284efba713b1d47e65d" url: "https://pub.dev" source: hosted - version: "5.2.0-beta.3" + version: "5.2.0-beta.6" graphs: dependency: transitive description: name: graphs - sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 + sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.1" hive: dependency: "direct main" description: @@ -657,18 +665,18 @@ packages: dependency: "direct dev" description: name: hive_generator - sha256: "65998cc4d2cd9680a3d9709d893d2f6bb15e6c1f92626c3f1fa650b4b3281521" + sha256: "06cb8f58ace74de61f63500564931f9505368f45f98958bd7a6c35ba24159db4" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" http: dependency: "direct main" description: name: http - sha256: "6aa2946395183537c8b880962d935877325d6a09a2867c3970c05c0fed6ac482" + sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139 url: "https://pub.dev" source: hosted - version: "0.13.5" + version: "1.1.2" http_multi_server: dependency: transitive description: @@ -689,18 +697,18 @@ packages: dependency: transitive description: name: image - sha256: a72242c9a0ffb65d03de1b7113bc4e189686fc07c7147b8b41811d0dd0e0d9bf + sha256: "028f61960d56f26414eb616b48b04eb37d700cbe477b7fb09bf1d7ce57fd9271" url: "https://pub.dev" source: hosted - version: "4.0.17" + version: "4.1.3" intl: dependency: "direct main" description: name: intl - sha256: a3715e3bc90294e971cb7dc063fbf3cd9ee0ebf8604ffeafabd9e6f16abbdbe6 + sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d" url: "https://pub.dev" source: hosted - version: "0.18.0" + version: "0.18.1" io: dependency: transitive description: @@ -737,106 +745,106 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: "61a60716544392a82726dd0fa1dd6f5f1fd32aec66422b6e229e7b90d52325c4" + sha256: aa1f5a8912615733e0fdc7a02af03308933c93235bdc8d50d0b0c8a8ccb0b969 url: "https://pub.dev" source: hosted - version: "6.7.0" + version: "6.7.1" lints: dependency: transitive description: name: lints - sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.0" local_auth: dependency: "direct main" description: name: local_auth - sha256: "0cf238be2bfa51a6c9e7e9cfc11c05ea39f2a3a4d3e5bb255d0ebc917da24401" + sha256: "7e6c63082e399b61e4af71266b012e767a5d4525dd6e9ba41e174fd42d76e115" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.1.7" local_auth_android: dependency: transitive description: name: local_auth_android - sha256: ba48fe0e1cae140a0813ce68c2540250d7f573a8ae4d4b6c681b2d2583584953 + sha256: df4ccb3193525b8a60c78a5ca7bf188a47705bcf77bcc837a6b2cf6da64ae0e2 url: "https://pub.dev" source: hosted - version: "1.0.17" + version: "1.0.35" local_auth_ios: dependency: transitive description: name: local_auth_ios - sha256: aa32478d7513066564139af57e11e2cad1bbd535c1efd224a88a8764c5665e3b + sha256: "8293faf72ef0ac4710f209edd03916c2d4c1eeab0483bdcf9b2e659c2f7d737b" url: "https://pub.dev" source: hosted - version: "1.0.12" + version: "1.1.5" local_auth_platform_interface: dependency: transitive description: name: local_auth_platform_interface - sha256: fbb6973f2fd088e2677f39a5ab550aa1cfbc00997859d5e865569872499d6d61 + sha256: fc5bd537970a324260fda506cfb61b33ad7426f37a8ea5c461cf612161ebba54 url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "1.0.8" local_auth_windows: dependency: transitive description: name: local_auth_windows - sha256: "888482e4f9ca3560e00bc227ce2badeb4857aad450c42a31c6cfc9dc21e0ccbc" + sha256: "505ba3367ca781efb1c50d3132e44a2446bccc4163427bc203b9b4d8994d97ea" url: "https://pub.dev" source: hosted - version: "1.0.5" + version: "1.0.10" logging: dependency: transitive description: name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" markdown: dependency: transitive description: name: markdown - sha256: "8e332924094383133cee218b676871f42db2514f1f6ac617b6cf6152a7faab8e" + sha256: acf35edccc0463a9d7384e437c015a3535772e09714cf60e07eeef3a15870dcd url: "https://pub.dev" source: hosted - version: "7.1.0" + version: "7.1.1" mask_text_input_formatter: dependency: transitive description: name: mask_text_input_formatter - sha256: "19bb7809c3c2559277e95521b3ee421e1409eb2cc85efd2feb191696c92490f4" + sha256: "8182cae94ff153e70071f86523d0d09112094e9de366a2e749e6aa9c865e70f2" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.7.0" matcher: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: "direct main" description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: name: meta - sha256: "3c74dbf8763d36539f114c799d8a2d87343b5067e9d796ca22b5eb8437090ee3" + sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" mime: dependency: transitive description: @@ -881,10 +889,10 @@ packages: dependency: transitive description: name: node_preamble - sha256: "8ebdbaa3b96d5285d068f80772390d27c21e1fa10fb2df6627b1b9415043608d" + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.0.2" normalize: dependency: transitive description: @@ -929,74 +937,74 @@ packages: dependency: transitive description: name: path_provider - sha256: dcea5feb97d8abf90cab9e9030b497fb7c3cbf26b7a1fe9e3ef7dcb0a1ddec95 + sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa url: "https://pub.dev" source: hosted - version: "2.0.12" + version: "2.1.1" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: a776c088d671b27f6e3aa8881d64b87b3e80201c64e8869b811325de7a76c15e + sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 url: "https://pub.dev" source: hosted - version: "2.0.22" + version: "2.2.1" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "62a68e7e1c6c459f9289859e2fae58290c981ce21d1697faf54910fe1faa4c74" + sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.3.1" path_provider_linux: dependency: transitive description: name: path_provider_linux - sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379 + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 url: "https://pub.dev" source: hosted - version: "2.1.7" + version: "2.2.1" path_provider_platform_interface: dependency: transitive description: name: path_provider_platform_interface - sha256: f0abc8ebd7253741f05488b4813d936b4d07c6bae3e86148a09e342ee4b08e76 + sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.1.1" path_provider_windows: dependency: transitive description: name: path_provider_windows - sha256: d3f80b32e83ec208ac95253e0cd4d298e104fbc63cb29c5c69edaed43b0c69d6 + sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" url: "https://pub.dev" source: hosted - version: "2.1.6" + version: "2.2.1" petitparser: dependency: transitive description: name: petitparser - sha256: cb3798bef7fc021ac45b308f4b51208a152792445cce0448c9a4ba5879dd8750 + sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27 url: "https://pub.dev" source: hosted - version: "5.4.0" + version: "6.0.2" platform: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.3" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a + sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8 url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.7" pointycastle: dependency: transitive description: @@ -1021,22 +1029,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" - process: - dependency: transitive - description: - name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" - url: "https://pub.dev" - source: hosted - version: "4.2.4" provider: dependency: "direct main" description: name: provider - sha256: cdbe7530b12ecd9eb455bdaa2fcb8d4dad22e80b8afb4798b41479d5ce26847f + sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096" url: "https://pub.dev" source: hosted - version: "6.0.5" + version: "6.1.1" pub_semver: dependency: "direct main" description: @@ -1049,10 +1049,10 @@ packages: dependency: transitive description: name: pubspec_parse - sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a" + sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.3" recase: dependency: transitive description: @@ -1073,90 +1073,90 @@ packages: dependency: transitive description: name: shared_preferences - sha256: "5949029e70abe87f75cfe59d17bf5c397619c4b74a099b10116baeb34786fad9" + sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02" url: "https://pub.dev" source: hosted - version: "2.0.17" + version: "2.2.2" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "955e9736a12ba776bdd261cf030232b30eadfcd9c79b32a3250dd4a494e8c8f7" + sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06" url: "https://pub.dev" source: hosted - version: "2.0.15" + version: "2.2.1" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "2b55c18636a4edc529fa5cd44c03d3f3100c00513f518c5127c951978efcccd0" + sha256: "7bf53a9f2d007329ee6f3df7268fd498f8373602f943c975598bbb34649b62a7" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.3.4" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: f8ea038aa6da37090093974ebdcf4397010605fd2ff65c37a66f9d28394cb874 + sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.3.2" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: da9431745ede5ece47bc26d5d73a9d3c6936ef6945c101a5aca46f62e52c1cf3 + sha256: d4ec5fc9ebb2f2e056c617112aa75dcf92fc2e4faaf2ae999caa297473f75d8a url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.3.1" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: a4b5bc37fe1b368bbc81f953197d55e12f49d0296e7e412dfe2d2d77d6929958 + sha256: "7b15ffb9387ea3e237bb7a66b8a23d2147663d391cafc5c8f37b2e7b4bde5d21" url: "https://pub.dev" source: hosted - version: "2.0.4" + version: "2.2.2" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: "5eaf05ae77658d3521d0e993ede1af962d4b326cd2153d312df716dc250f00c9" + sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.3.2" shelf: dependency: transitive description: name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" shelf_packages_handler: dependency: transitive description: name: shelf_packages_handler - sha256: aef74dc9195746a384843102142ab65b6a4735bb3beea791e63527b88cc83306 + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" url: "https://pub.dev" source: hosted - version: "3.0.1" + version: "3.0.2" shelf_static: dependency: transitive description: name: shelf_static - sha256: e792b76b96a36d4a41b819da593aff4bdd413576b3ba6150df5d8d9996d2e74c + sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 + sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" sky_engine: dependency: transitive description: flutter @@ -1166,18 +1166,18 @@ packages: dependency: transitive description: name: source_gen - sha256: "373f96cf5a8744bc9816c1ff41cf5391bbdbe3d7a96fe98c622b6738a8a7bd33" + sha256: fc0da689e5302edb6177fdd964efcb7f58912f43c28c2047a808f5bfff643d16 url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.4.0" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.4" source_map_stack_trace: dependency: transitive description: @@ -1190,34 +1190,34 @@ packages: dependency: transitive description: name: source_maps - sha256: "490098075234dcedb83c5d949b4c93dad5e6b7702748de000be2b57b8e6b2427" + sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" url: "https://pub.dev" source: hosted - version: "0.10.11" + version: "0.10.12" source_span: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: name: stack_trace - sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.11.1" stream_channel: dependency: transitive description: name: stream_channel - sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" stream_transform: dependency: transitive description: @@ -1246,26 +1246,26 @@ packages: dependency: transitive description: name: test - sha256: "3dac9aecf2c3991d09b9cdde4f98ded7b30804a88a0d7e4e7e1678e78d6b97f4" + sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f url: "https://pub.dev" source: hosted - version: "1.24.1" + version: "1.24.9" test_api: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.1" test_core: dependency: transitive description: name: test_core - sha256: "5138dbffb77b2289ecb12b81c11ba46036590b72a64a7a90d6ffb880f1a29e93" + sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.5.9" timezone: dependency: "direct main" description: @@ -1286,74 +1286,74 @@ packages: dependency: transitive description: name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" url_launcher: dependency: "direct main" description: name: url_launcher - sha256: eb1e00ab44303d50dd487aab67ebc575456c146c6af44422f9c13889984c00f3 + sha256: b1c9e98774adf8820c96fbc7ae3601231d324a7d5ebd8babe27b6dfac91357ba url: "https://pub.dev" source: hosted - version: "6.1.11" + version: "6.2.1" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "3e2f6dfd2c7d9cd123296cab8ef66cfc2c1a13f5845f42c7a0f365690a8a7dd1" + sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def" url: "https://pub.dev" source: hosted - version: "6.0.23" + version: "6.2.0" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: bb328b24d3bccc20bdf1024a0990ac4f869d57663660de9c936fb8c043edefe3 + sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3 url: "https://pub.dev" source: hosted - version: "6.0.18" + version: "6.2.1" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: "318c42cba924e18180c029be69caf0a1a710191b9ec49bb42b5998fdcccee3cc" + sha256: "9f2d390e096fdbe1e6e6256f97851e51afc2d9c423d3432f1d6a02a8a9a8b9fd" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.1.0" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "41988b55570df53b3dd2a7fc90c76756a963de6a8c5f8e113330cb35992e2094" + sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.1.0" url_launcher_platform_interface: dependency: transitive description: name: url_launcher_platform_interface - sha256: "4eae912628763eb48fc214522e58e942fd16ce195407dbf45638239523c759a6" + sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.2.0" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "44d79408ce9f07052095ef1f9a693c258d6373dc3944249374e30eff7219ccb0" + sha256: "138bd45b3a456dcfafc46d1a146787424f8d2edfbf2809c9324361e58f851cf7" url: "https://pub.dev" source: hosted - version: "2.0.14" + version: "2.2.1" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: b6217370f8eb1fd85c8890c539f5a639a01ab209a36db82c921ebeacefc7a615 + sha256: "7754a1ad30ee896b265f8d14078b0513a4dba28d358eabb9d5f339886f4a1adc" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.1.0" uuid: dependency: transitive description: @@ -1366,26 +1366,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: b96f10cbdfcbd03a65758633a43e7d04574438f059b1043104b5d61b23d38a4f + sha256: "0f0c746dd2d6254a0057218ff980fc7f5670fd0fcf5e4db38a490d31eed4ad43" url: "https://pub.dev" source: hosted - version: "1.1.6" + version: "1.1.9+1" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: "57a8e6e24662a3bdfe3b3d61257db91768700c0b8f844e235877b56480f31c69" + sha256: "0edf6d630d1bfd5589114138ed8fada3234deacc37966bec033d3047c29248b7" url: "https://pub.dev" source: hosted - version: "1.1.6" + version: "1.1.9+1" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "7430f5d834d0db4560d7b19863362cd892f1e52b43838553a3c5cdfc9ab28e5b" + sha256: d24333727332d9bd20990f1483af4e09abdb9b1fc7c3db940b56ab5c42790c26 url: "https://pub.dev" source: hosted - version: "1.1.6" + version: "1.1.9+1" vector_math: dependency: transitive description: @@ -1398,18 +1398,26 @@ packages: dependency: transitive description: name: vm_service - sha256: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "9.4.0" + version: "13.0.0" watcher: dependency: transitive description: name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + url: "https://pub.dev" + source: hosted + version: "0.3.0" web_socket_channel: dependency: transitive description: @@ -1422,50 +1430,50 @@ packages: dependency: transitive description: name: webkit_inspection_protocol - sha256: "67d3a8b6c79e1987d19d848b0892e582dbb0c66c57cc1fef58a177dd2aa2823d" + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.2.1" win32: dependency: transitive description: name: win32 - sha256: "5a751eddf9db89b3e5f9d50c20ab8612296e4e8db69009788d6c8b060a84191c" + sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574 url: "https://pub.dev" source: hosted - version: "4.1.4" + version: "5.1.1" win32_registry: dependency: transitive description: name: win32_registry - sha256: "1c52f994bdccb77103a6231ad4ea331a244dbcef5d1f37d8462f713143b0bfae" + sha256: "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.2" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86 + sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" url: "https://pub.dev" source: hosted - version: "0.2.0+3" + version: "1.0.3" xml: dependency: transitive description: name: xml - sha256: "5bc72e1e45e941d825fd7468b9b4cc3b9327942649aeb6fc5cdbf135f0a86e84" + sha256: af5e77e9b83f2f4adc5d3f0a4ece1c7f45a2467b695c2540381bac793e34e556 url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.4.2" yaml: dependency: transitive description: name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" sdks: - dart: ">=3.0.2 <4.0.0" - flutter: ">=3.10.2" + dart: ">=3.2.1 <4.0.0" + flutter: ">=3.16.1" diff --git a/pubspec.yaml b/pubspec.yaml index 23ddac1e..2ae559b0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,65 +1,65 @@ name: selfprivacy description: selfprivacy.org publish_to: 'none' -version: 0.9.0+18 +version: 0.9.1+19 environment: - sdk: '>=3.0.2 <4.0.0' - flutter: ">=3.10.2" + sdk: '>=3.2.1 <4.0.0' + flutter: ">=3.16.1" dependencies: - animations: ^2.0.7 - auto_route: ^7.3.2 + animations: ^2.0.8 + auto_route: ^7.8.4 auto_size_text: ^3.0.0 - crypt: ^4.3.0 + crypt: ^4.3.1 cubit_form: ^2.0.1 - device_info_plus: ^9.0.2 - dio: ^5.1.2 - duration: 3.0.12 - dynamic_color: ^1.6.5 - easy_localization: ^3.0.2 + device_info_plus: ^9.1.1 + dio: ^5.4.0 + duration: ^3.0.13 + dynamic_color: ^1.6.8 + easy_localization: ^3.0.3 either_option: ^2.0.1-dev.1 equatable: ^2.0.5 - fl_chart: ^0.62.0 + fl_chart: ^0.65.0 flutter: sdk: flutter flutter_bloc: ^8.1.3 - flutter_markdown: ^0.6.14 - flutter_secure_storage: ^8.0.0 - flutter_svg: ^2.0.6 - get_it: ^7.6.0 + flutter_markdown: ^0.6.18+2 + flutter_secure_storage: ^9.0.0 + flutter_svg: ^2.0.9 + get_it: ^7.6.4 gql: ^1.0.0 - graphql: ^5.1.2 - graphql_codegen: ^0.13.0 + graphql: ^5.1.3 + graphql_codegen: ^0.13.9 graphql_flutter: ^5.1.2 hive: ^2.2.3 hive_flutter: ^1.1.0 - http: ^0.13.5 + http: ^1.1.2 intl: ^0.18.0 ionicons: ^0.2.2 json_annotation: ^4.8.1 - local_auth: ^2.1.6 - material_color_utilities: ^0.2.0 + local_auth: ^2.1.7 + material_color_utilities: ^0.5.0 modal_bottom_sheet: ^3.0.0-pre nanoid: ^1.0.0 package_info: ^2.0.2 pretty_dio_logger: ^1.3.1 - provider: ^6.0.5 + provider: ^6.1.1 pub_semver: ^2.1.4 timezone: ^0.9.2 - url_launcher: ^6.1.11 + url_launcher: ^6.2.1 # TODO: Developer is not available, update later. # wakelock: ^0.6.2 dev_dependencies: - auto_route_generator: ^7.1.1 + auto_route_generator: ^7.3.2 flutter_test: sdk: flutter - build_runner: ^2.4.4 + build_runner: ^2.4.7 flutter_launcher_icons: ^0.13.1 - hive_generator: ^2.0.0 - json_serializable: ^6.7.0 - flutter_lints: ^2.0.1 + hive_generator: ^2.0.1 + json_serializable: ^6.7.1 + flutter_lints: ^3.0.1 flutter_icons: android: "launcher_icon"