diff --git a/README.md b/README.md index 88750d19..ef89794e 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ -**eNuts** is a strictly typed mobile [**Cashu**](https://github.com/cashubtc) wallet that has Lightning support and can connect to multiple mints. A [**NOSTR**](https://nostr-resources.com/) integration allows seemless transactions between you and your contacts. We aim to provide a great user experience by implementing features that make the usage of Ecash easier and safer at the same time. The [**cashu-ts**](https://github.com/cashubtc/cashu-ts) library and SQLite are used to manage the Cashu related features. This project is in early stage and we **strongly** encourage you to exercise caution and only use it for **experimental** or **educational** purposes. Read more about Cashu at [https://docs.cashu.space/](https://docs.cashu.space/) or learn more about eNuts via the **eNuts website** at [https://www.enuts.cash/](https://www.enuts.cash/) +**eNuts** is a strictly typed mobile [**Cashu**](https://github.com/cashubtc) wallet that has Lightning support and can connect to multiple mints. The [**Nostr**](https://nostr-resources.com/) integration allows seemless transactions between you and your contacts. We aim to provide a great user experience by implementing features that make the usage of Ecash easier and safer at the same time. The [**cashu-ts**](https://github.com/cashubtc/cashu-ts) library and SQLite are used to manage the Cashu related features. This project is in early stage and we **strongly** encourage you to exercise caution and only use it for **experimental** or **educational** purposes. Read more about Cashu at [https://docs.cashu.space/](https://docs.cashu.space/) or learn more about eNuts via the **eNuts website** at [https://www.enuts.cash/](https://www.enuts.cash/) ## 🐿️ Join the research and development groups @@ -71,6 +71,8 @@ The NUT documents (**N**otation, **U**sage and **T**erminology) each specify par - [x] [NUT-07](https://github.com/cashubtc/nuts/blob/main/07.md) - [x] [NUT-08](https://github.com/cashubtc/nuts/blob/main/08.md) - [x] [NUT-09](https://github.com/cashubtc/nuts/blob/main/09.md) +- [ ] [NUT-10](https://github.com/cashubtc/nuts/blob/main/10.md) +- [ ] [NUT-11](https://github.com/cashubtc/nuts/blob/main/11.md) ## 📋 Requirements diff --git a/assets/app-icon-all.png b/assets/app-icon-all.png index 8274aaaa..f39739b3 100644 Binary files a/assets/app-icon-all.png and b/assets/app-icon-all.png differ diff --git a/assets/app-icon-android-adaptive-background.png b/assets/app-icon-android-adaptive-background.png index 9ac6fa14..438bfc32 100644 Binary files a/assets/app-icon-android-adaptive-background.png and b/assets/app-icon-android-adaptive-background.png differ diff --git a/assets/app-icon-android-legacy.png b/assets/app-icon-android-legacy.png index 8274aaaa..f39739b3 100644 Binary files a/assets/app-icon-android-legacy.png and b/assets/app-icon-android-legacy.png differ diff --git a/assets/app-qr-icon.png b/assets/app-qr-icon.png new file mode 100644 index 00000000..8274aaaa Binary files /dev/null and b/assets/app-qr-icon.png differ diff --git a/main/assets/lottie/success/confetti.json b/assets/lottie/success/confetti.json similarity index 100% rename from main/assets/lottie/success/confetti.json rename to assets/lottie/success/confetti.json diff --git a/main/assets/lottie/success/success.json b/assets/lottie/success/success.json similarity index 100% rename from main/assets/lottie/success/success.json rename to assets/lottie/success/success.json diff --git a/assets/translations/de.json b/assets/translations/de.json index 7208a650..e66fde9e 100644 --- a/assets/translations/de.json +++ b/assets/translations/de.json @@ -1,14 +1,18 @@ { "addrBook": { - "addContactErr": "Kontakt konnte nicht hinzugefügt werden. Möglicher Name oder LNURL Duplikat.", - "addedContact": "Neuer Kontakt hinzugefügt", - "addOwnLnurl": "Füge dein NPUB hinzu", - "editContact": "Kontakt bearbeiten", - "invalidLnurl": "Invalide LNURL!", - "invalidName": "Invalider Name!", - "newContact": "Neuer Kontakt", - "personalLnurl": "Persönliche LNURL", - "yourProfile": "Dein Profil" + "addOwnNpub": "Füge dein NPUB hinzu", + "favorite": "Favorit", + "removeFav": "Favorite entfernen", + "showProfile": "Profil anzeigen", + "copyNpub": "NPUB kopieren", + "npubCopied": "NPUB kopiert!", + "syncContacts": "Kontakte synchronisieren", + "startSync": "Synchronisierung Starten", + "synchronizing": "Synchronisiert...", + "finished": "Fertig!", + "syncHint": "Um eine genaue Suchfunktion bereitzustellen, müssen alle Ihre Kontakte synchronisiert werden. Dies kann einige Sekunden dauern.", + "receiverNoLnurl": "Empfänger hat keine LNURL", + "noResults": "Keine Ergebnisse" }, "auth": { "confirmAction": "Bitte bestätigen Sie die Aktion.", @@ -34,7 +38,6 @@ "aboutToLeaveTo": "Sie sind im Begriff die App zu verlassen", "accept": "Annehmen", "addMemo": "Fügen Sie ein Memo mit max. 21 Zeichen hinzu.", - "addMint": "Erste Mint hinzufügen", "addEnutsMint": "eNuts mint verwenden", "amount": "Betrag", "back": "Zurück", @@ -48,23 +51,16 @@ "cancel": "Abbrechen", "cashOut": "Auszahlen", "cashOutFromMint": "Mint Auszahlung", - "cashuRandD": "Cashu Telegram", "change": "Rückgeld", - "checkPayment": "Zahlung prüfen", "claimed": "beansprucht", "claimSuccess": "{{amount}} Satoshi erhalten:\n{{mintUrl}}\nMemo: {{memo}}", "claimToken": "Token in Anspruch nehmen", "clear": "Löschen", "clipboardInvalid": "Deine Zwischenablage beinhaltet einen invaliden Cashu Token", - "close": "Schließen", "coinSelection": "Coin-Auswahl", "confirm": "Bestätigen", "contact": "Kontakt", - "contact_one": "1 Kontakt", - "contact_other": "{{count}} Kontakte", - "contactDel": "Kontakt konnte nicht gelöscht werden", "mintDelErr": "Eine Mint mit verbleibendem Guthaben zu entfernen ist nicht möglich", - "contactNotSaved": "Kontakt konnte nicht gespeichert werden. Möglicher Duplikat.", "continue": "Fortfahren", "copied": "Kopiert", "shareInvoice": "Rechnung teilen", @@ -75,34 +71,31 @@ "createTokenErr": "Es konnte kein Cashu-Token erstellt werden. Bitte versuchen Sie es später noch einmal.", "eventError": "Ein Fehler ist aufgetreten während dem veröffentlichen der Nachricht.", "createViaLn": "Rechnung Erstellen", - "creating": "Erstellen", "darkMode": "Dunkler Modus", "dbErr": "Etwas ist schief gelaufen während der Initialisierung der Datenbank!", "deepLinkErr": "Link konnte nicht geöffnet werden", "default": "Standard", - "delete": "Löschen", - "delHistory": "Transaktionsverlauf löschen", + "delHistory": "Verlauf löschen", "factoryReset": "Wallet zurücksetzen", "delHistoryErr": "Verlauf konnte nicht gelöscht werden", - "delHistoryQ": "Sind Sie sicher, dass Sie den Verlauf löschen möchten?", - "resetQ": "Sind Sie sicher, dass Sie Ihre Wallet zurücksetzen möchten?", + "delHistoryQ": "Verlauf löschen?", + "resetQ": "Wallet zurücksetzen?", "delHistoryTxt": "Die Daten können nachträglich nicht wiederhergestellt werden.", "plsRestart": "Bitte starten Sie die App neu", "disclaimer": "Haftungsausschluss", "ecashPayment": "Ecash Zahlung", - "edit": "Bearbeiten", "english": "Englisch", + "swahili": "Suaheli", "enutsRandD": "eNuts Telegram", "estimatedFees": "Geschätzte Gebühr", "estimateFee": "Gebühren schätzen", "expired": "Abgelaufen", "fee": "Gebühr", "feeErr": "Gebühr kann nicht geschätzt werden. Ist \"{{input}}\" eine valide LNURL?", - "foundCashuClipboard": "In Ihrer Zwischenablage wurde ein Cashu-Token gefunden", + "foundCashuClipboard": "Cashu-Token gefunden", "french": "Französisch", "from": "von", "fromMint": "von folgende Mint", - "generateInvoiceErr": "Rechnung für \"{{input}}\" konnte nicht erstellt werden.", "german": "Deutsch", "getStarted": "Loslegen", "githubIssues": "Melden Sie Fehler auf Github", @@ -112,27 +105,19 @@ "invalidOrSpent": "Invalider Token oder bereits ausgegeben", "invalidToken": "Token invalid", "invoice": "Rechnung", - "invoiceErr": "Rechnung konnte nicht bezahlt werden. Bitte versuchen Sie es später noch einmal.", "invoiceExpired": "Rechnung abgelaufen", "invoiceInclFee": "Rechnung inkl. Gebühr", - "invoiceIncoming": "Rechnung unterwegs", - "invoiceLowFunds": "Nicht genügend Guthaben! Gesamt nach Gebühr: {{totalToPay}} Satoshi. Betrag ausgewähl: {{LNURLAmount}} Satoshi", "invoiceOrLnurl": "LN Rechnung oder LNURL", - "invoicePayErr": "Ein Fehler ist aufgetreten während der Zahlung.", "keysetID": "Schlüsselsatz", "lnInvoice": "Lightning Rechnung", "lnPayment": "Lightning Zahlung", - "lnPaymentReq": "Zahlungsanforderung", - "manageMints": "Mints verwalten", "mint": "Mint", - "mintBalance": "Mint Guthaben", "minted": "erhalten", "multimintSwap": "Multimint-Tausch", "n/a": "Nicht verfügbar", "name": "Name", "no": "Nein", "noCamAccess": "Kein Zugriff auf die Kamera", - "noEnoughFunds": "Nicht genügend Guthaben", "noFunds": "Nicht genügend Guthaben", "noFundsForFee": "Nicht genug Guthaben, bitte lassen Sie Platz für eventuelle Gebühren: ~{{fee}} Sat.", "noMint": "Keine Mint gefunden", @@ -142,29 +127,23 @@ "noTX": "Noch keine Transaktionen", "optionalMemo": "Optionales Memo", "paste": "Einfügen", - "pay": "Zahlen", "paymentPending": "Zahlung ausstehend", "paymentSuccess": "Zahlung erfolgreich!", - "nostrPaymentSuccess": "via NOSTR versendet!", + "nostrPaymentSuccess": "via Nostr versendet!", "paymentType": "Zahlungstyp", "payWithLn": "Zahle mit deiner LN wallet", - "processingPayment": "Zahlung wird ausgeführt", "readme": "Lies mich", "sender": "Absender", "recipient": "Empfänger", "reqTimeout": "Timeout für Netzwerkanfragen", - "risks": "Verstehen Sie die derzeitige Risiken", "save": "Speichern", "scanAgain": "Hier tippen, um erneut zu scannen", - "scanTokenOrLn": "Cashu Token oder LN Rechnung scannen", - "scanLn": "Lightning Rechnung scannen", "scan": "Scannen", "enutsBeta": "eNuts ist beta Software", "seconds": "Sekunden", "selectAmount": "Betrag auswählen", "selected": "Ausgewählt", "selectMint": "Mint für Zahlung auswählen", - "sendBtcHint": "Sende bitcoin von \"{{mintUrl}}\" zu einer Lightning wallet.", "sendEcash": "Ecash senden", "share": "Teilen", "smthWrong": "Etwas is schief gelaufen", @@ -173,36 +152,30 @@ "to": "bis", "today": "Heute", "tokenInfoErr": "Ein Fehler ist aufgetreten während der Token-Info-Abfrage", - "tokensIssued": "Für diese Rechnung wurden bereits Token ausgestellt.", - "total": "Gesamt", "totalInclFee": "Gesamt inkl. Gebühr", "trustMint": "Möchten Sie dieser Mint vertrauen", "tryLater": "Bitte versuchen Sie es später noch einmal.", "unknownType": "Unbekannter Code-Typ", "version": "Version", "willDoLater": "Mache ich später", - "addOwn": "Mint URL hinzufügen", + "addMintUrl": "Mint URL hinzufügen", "yes": "Ja", "invalidPubKey": "Invalider öffentlicher Schlüssel!", - "whatsNostr": "Was ist NOSTR?", "walletLocked": "Wallet gesperrt", "explainer1": "eNuts ist eine treuhänderische Lightning-Wallet, die private und sofortige Transaktionen mit dem Cashu-Protokoll ermöglicht. Ihre Gelder werden von Mints verwaltet, mit denen Sie interagieren, und Ecash wird lokal auf Ihrem Gerät gespeichert.", "explainer2": "Cashu ist ein neues Ecash-Protokoll für treuhänderische Bitcoin-Apps, bei denen Mints nur Lightning-Knoten sind, die Bitcoin-Transaktionen durchführen und Ihnen Ecash zur Verfügung stellen. Seien Sie versichert, die Mints bleiben unwissend über Ihre Ecash-Zahlungen.", "explainer3": "Fügen Sie einfach eine Mint über die URL hinzu und zahlen Sie eine Lightning-Rechnung, um Ecash zu erhalten. eNuts führt Sie, ermöglicht Ihnen sofortiges Empfangen von jedem und fügt automatisch verbundene Mints hinzu – mit Ihrer Zustimmung. Tauschen Sie Guthaben zwischen Mints aus und senden Sie Ecash, sobald Sie ein Guthaben haben.", "send&receive": "Senden & Empfangen", - "contactsNostr": "Kontakte & NOSTR", - "nostrExplainer": "Die NOSTR-Implementierung ermöglicht eine reibungslose Synchronisierung Ihrer Kontakte, ohne dass Sie Ihren privaten Schlüssel eingeben müssen, da wir einen neuen für Sie generieren. Ihre Daten werden mithilfe des öffentlichen Schlüssels angezeigt, während der neue private Schlüssel Ihre Nachrichten verschlüsselt/entschlüsselt.", + "contactsNostr": "Kontakte & Nostr", + "nostrExplainer": "Die Nostr-Implementierung ermöglicht eine reibungslose Synchronisierung Ihrer Kontakte, ohne dass Sie Ihren privaten Schlüssel eingeben müssen, da wir einen neuen für Sie generieren. Ihre Daten werden mithilfe des öffentlichen Schlüssels angezeigt, während der neue private Schlüssel Ihre Nachrichten verschlüsselt/entschlüsselt.", "send": "Senden", - "FoundNoLnurl": "Keine LNURL gefunden", - "invalidNpub": "invalider NPUB!", - "invalidNpubHex": "Invalider hex!", "sendEcashDashboard": "Erstellen Sie ein Cashu-Token und senden Sie es an jeden beliebigen.", - "payInvoiceDashboard": "Senden Sie Ihr Guthaben von einer Mint an eine Lightning-Adresse.", + "payInvoiceDashboard": "Senden Sie Ihr Guthaben von einer Mint an eine Lightning-Node.", "receiveEcashDashboard": "Fügen Sie ein Cashu-Token aus Ihrer Zwischenablage ein.", - "receiveEcashNostr": "NOSTR Nachrichten", - "receiveEcashNostrHint": "Überprüfen Sie Ihre NOSTR Nachrichten auf eingehende Cashu-Token.", + "receiveEcashNostr": "Nostr Nachrichten", + "receiveEcashNostrHint": "Überprüfen Sie Ihre Nostr Nachrichten auf eingehende Cashu-Token.", "createInvoiceDashboard": "Empfangen Sie Ecash von einer Mint, indem Sie eine Lightning-Rechnung bezahlen.", - "hideNuts": "Verbergen Sie Ihren Gesamtsaldo", + "hideNuts": "Gesamtsaldo verbergen", "checkingDms": "Ihre Nachrichten werden auf Ecash überprüft...", "clearOverHere": "Sie sind auf dem neusten Stand!", "totalDmsReceived": "Sie haben {{totalDms}} Cashu token erhalten.", @@ -212,28 +185,48 @@ "zapSoon": "Zaps werden bald hinzugefügt...", "enutsPub": "eNuts: ", "seeFullHistory": "Gesamter Transaktionsverlauf", - "hideLatestTxs": "Aktuellste Transaktionen verbergen", - "hiddenTxs": "Transaktionsverlauf", + "hideLatestTxs": "Transaktionen verbergen", "next": "Weiter", "skip": "Überspringen", - "donateLn": "Spenden über Lightning", - "supportDev": "Zap die Entwicklung", + "donateLn": "Spenden", "supportHint": "Jeder Beitrag, ganz gleich in welcher Höhe, hat eine bedeutende Auswirkung. Die Bestätigungsseite befindet sich in der Entwicklung.", "newToken": "Neuer Cashu Token", - "disclaimerHint": "Dieser Haftungsausschluss sollte ernst genommen und nicht ignoriert oder unterschätzt werden. Wir schätzen Ihr Interesse an diesem Projekt und werden weiterhin daran arbeiten, es zu verbessern." + "disclaimerHint": "Dieser Haftungsausschluss sollte ernst genommen und nicht ignoriert oder unterschätzt werden. Wir schätzen Ihr Interesse an diesem Projekt und werden weiterhin daran arbeiten, es zu verbessern.", + "searchContacts": "Suchen or NPUB eingeben", + "submit": "Hinzufügen", + "clearMetadataCache": "Metadata Cache bereinigen", + "clearMetadataCacheHint": "Metadatencache löschen?", + "clearImageCache": "Bilder Cache bereinigen", + "clearImageCacheHint": "Bildercache löschen?", + "pullRefresh": "Zum Aktualisieren ziehen", + "processTestPay": "Testzahlung wird ausgeführt...", + "confirmMint": "Mint bestätigen", + "confirmMintHint": "Sind Sie sicher, dass Sie diese Mint hinzufügen möchten?", + "confirmNpub": "NPUB bestätigen", + "confirmNpubHint": "Sind Sie sicher, dass Sie den NPUB benutzen möchten?", + "npubAlreadyAdded": "NPUB bereits hinzugefügt", + "replaceNpub": "NPUB ersetzen", + "replaceNpubTxt": "Ein NPUB ist bereits vorhanden. Möchten Sie ihn ersetzen?", + "npubAdded": "NPUB hinzugefügt!", + "showContacts": "Kontakte ansehen", + "topUpNow": "Jetzt Ecash anfordern", + "scanAnother": "Weiteren QR-Code scannen", + "deleteNpub": "NPUB löschen?", + "delNpubHint": "Alle Kontakte und zugehörigen Daten werden gelöscht.", + "addNewNpub": "Neuen NPUB hinzufügen?", + "addNpubHint": "Dadurch werden alle Daten, die mit Ihrem aktuellen NPUB verbunden sind, gelöscht." }, "error": { - "addAllMintIdsErr": "Fehler beim Abrufen der Schlüsselsatz-IDs von Mint", "checkSpendableErr": "Fehler beim Überprüfen, ob der Token ausgegeben werden kann", "claimTokenErr": "Fehler beim Beanspruchen des Tokens", "header": "Ein Fehler ist aufgetreten", - "meltingErr": "Ein Fehler ist während der Zahlung aufgetreten", "msg": "Es tut uns leid, dass dieses Problem bei Ihnen aufgetreten ist. Sie können uns helfen, die Software zu verbessern, indem Sie einen Screenshot machen und einen kurzen Fehlerbericht erstellen.", "reportBug": "Fehler melden", "requestMintErr": "Fehler beim Abrufen der Rechnung von der Mint.", "stackNA": "Ursprung des Fehlers nicht verfügbar", "generalMeltingErr": "Die Mint konnte keine geeignete Lightning-Zahlungsroute zu Ihrer Node finden.", - "invoiceFromLnurlError": "Es konnte keine Rechnung erstellt werden mit deiner LNURL." + "invoiceFromLnurlError": "Es konnte keine Rechnung erstellt werden mit deiner LNURL.", + "invoiceScanError": "Die gescannte Rechnung konnte nicht bearbeitet werden." }, "history": { "checkSpent": "Überprüfen ob Token ausgegeben wurde", @@ -260,21 +253,20 @@ "backupNotCreated": "Mint-Sicherung konnte nicht erstellt werden.", "cashOutAmountHint": "Es können Lightning-Gebühren anfallen, daher wird eine geschätzte Gebühr hinzugefügt und eventuell zu viel gezahlte Gebühren werden erstattet.", "checkProofs": "Proofs überprüfen", - "checkProofsQ": "Sind Sie sicher, dass Sie alle Proofs überprüfen möchten?", + "checkProofsQ": "Alle Proofs überprüfen?", "checkProofsTxt": "Dadurch wird überprüft, ob Ihre Token ausgegeben werden können und werden andernfalls gelöscht.", "chooseMeltMintHint": "Wählen Sie eine Mint aus, von der aus Sie Ihre Gelder abheben möchten.", "chooseMintHint": "Wählen Sie eine Mint aus, von der Sie Ecash erhalten möchten. Die Mint wird zum Verwalter Ihrer Gelder.", "chooseTarget": "Wählen Sie den Empfänger der Zahlung aus.", "coinSelectionHint": "Ihr Ecash-Guthaben ist im Wesentlichen eine Sammlung von Coin-sets. Die Coin Auswahl ermöglicht es Ihnen, die Coins auszuwählen, die Sie ausgeben möchten. Coin-sets erhalten von der Mint eine Schlüsselsatz-ID, die sich im Laufe der Zeit ändern kann. Neu hinzugefügte Sets werden grün hervorgehoben. Es wird empfohlen, zuerst ältere Sets auszugeben.", "creatingEcashToken": "Der Cashu-Token wird erstellt.", - "sendingEcashViaNostr": "Der Cashu-Token wird via NOSTR versendet!", + "sendingEcashViaNostr": "Der Cashu-Token wird via Nostr versendet!", "customName": "Benutzerdefinierter Name", "cutomNameAdded": "Benutzerdefinierter Name hinzugefügt", "dangerZone": "Gefahrenzone", "deletedProofs": "{{proofsToDel}} Proofs gelöscht.", "delMint": "Mint löschen", - "delMintHint": "Das Löschen einer Mint mit Guthaben kann zu einem unerwarteten Gesamtguthaben führen. Sie behalten die Mint-verbundenen Token, können sie jedoch erst einlösen, wenn Sie die Mint erneut hinzufügen.", - "delMintSure": "Sind Sie sicher, dass Sie diese Mint löschen möchten?", + "delMintSure": "Mint löschen?", "ecashAmountHint": "Wählen Sie den Betrag an Ecash aus, den Sie senden möchten.", "editMintName": "Mint Name bearbeiten", "errDelProofs": "Etwas ist schief gelaufen während dem Löschen der Proofs.", @@ -285,7 +277,6 @@ "invalidUrl": "URL invalid", "invoiceAmountHint": "Wählen Sie den Betrag an Ecash aus, den Sie erhalten möchten. Die Mint wird eine Rechnung erstellen, die Sie mit einer Lightning-Wallet bezahlen müssen.", "invoiceHint": "Das kann einige Sekunden dauern...", - "invoiceInputHint": "Beachten Sie, dass Lightning Gebühren fallen können. Die zu viel bezahlten Gebühren werden Ihnen zurückerstattet.", "lowBackupBal": "Kein Guthaben für eine Mint-Sicherung", "lowBal": "Kein Guthaben verfügbar", "meltAddressbookHint": "Wählen Sie Ihre eigene LNURL oder einen anderen Kontakt als Zahlungsempfänger aus.", @@ -294,20 +285,18 @@ "meltSwapHint": "Wählen Sie eine andere Mint aus Ihrer vertrauenswürdigen Liste als Zahlungsempfänger aus.", "copyShareToken": "Kopieren & teilen", "copyShareTokenHint": "Kopieren Sie den Ecash-Token und teilen Sie ihn über eine Messenger App.", - "sendNostr": "Senden via NOSTR", - "sendNostrHint": "Senden Sie Ecash ohne Umwege an eins Ihrer Kontakte in NOSTR.", + "sendNostr": "Senden via Nostr", + "sendNostrHint": "Senden Sie Ecash ohne Umwege an eins Ihrer Kontakte in Nostr.", "meltToken": "Satoshi zurückfordern", "mintConnectionFail": "Verbindung zu Mint fehlgeschlagen", "mintInfo": "Mint Info", "mintNewTokens": "Neues Ecash anfordern", "mintNoContact": "Diese Mint verfügt über keine Kontakt Informationen", "mntAlreadyAdded": "Mint bereits vorhanden", - "newMintSuccess": "{{mintUrl}} erfolgreich hinzugefügt", "noAdditional": "Diese Mint verfügt über keine zusätzlichen Informationen", "noInfo": "Keine Informationen verfügbar", "noProofs": "Diese Mint verfügt über keine Proofs.", "paymentOverview": "Zahlungsübersicht", - "performingSwap": "Wird ausgeführt", "processingPaymentByMint": "Die Mint bearbeitet die Zahlung gemäß Ihrem Antrag", "processingSwap": "Verarbeitung eines Multimint-Swaps gemäß Ihrem Antrag", "pubKey": "Öffentlicher Schlüssel", @@ -316,15 +305,13 @@ "sendEcashHint": "Wählen Sie eine Mint aus, aus der Sie gerne einen Cashu-Token erstellen möchten.", "setDefault": "Als Standard-Mint festlegen", "supportedNuts": "Unterstütze NUTs", - "swapFail": "Multimint-Tausch konnte nicht vollbracht werden", "swapNotAllowed": "Multimint-Tausch von einer Test-Mint ist nicht möglich.", - "swapRisk": "Senden Sie Token von einer Mint zu einer anderen Mint. Für einen kurzen Moment werden Sie zwei Mints gleichzeitig vertrauen. Es gibt Dinge, die schief gehen können. Verwendung auf eigene Gefahr.", - "swapSuccess": "{{amount}} Satoshi erfolgreich von {{srcMint}} zu {{targetMint}} getauscht", "testMintHint": "Dies ist eine Test-Mint für Simulationszwecke. Trotzdem hinzufügen?", - "trustMintSure": "Sind Sie sicher, dass Sie dieser Mint vertrauen möchten?", + "trustMintSure": "Mint vertrauen?", "updatedDefault": "Änderungen gespeichert", "newMintAdded": "Mint hinzugefügt!", - "newMintAddedQuestion": "Möchten Sie jetzt Ecash empfangen?" + "newMintAddedQuestion": "Möchten Sie jetzt Ecash empfangen?", + "selectSwapReceiver": "Wählen Sie eine Mint als Zahlungsempfänger aus." }, "topNav": { "about": "Über uns", @@ -345,7 +332,8 @@ "cashuContent": "Die Autoren von Cashu und eNuts sind keine Kryptografen und das Cashu-Protokoll wird noch überprüft. Es bestehen Bedenken hinsichtlich möglicher schwerwiegender Mängel. Daher ist Cashu noch nicht für den produktiven Einsatz bereit.", "cashuExperiment": "Cashu ist immer noch experimentell.", "claiming": "Überprüft...", - "createLnInvoice": "Lightning Rechnung erstellen", + "processingInvoice": "Rechnung wird verarbeitet...", + "createLnInvoice": "Aufladen", "custodialRisk": "Verwahrrisiko, Mints halten die Schlüssel.", "custodialRiskContent": "Mit eNuts haben Sie nicht die Kontrolle über die Bitcoin-Schlüssel; die Mint fungiert als Verwahrer. Wenn Sie einer Mint nicht vertrauen, ist es ratsam, nicht mit ihr zu interagieren.", "disclaimer": "Bitte beachten Sie, dass es sich hierbei um eine Beta-Version in einem frühen Stadium handelt und diese noch vor der offiziellen Veröffentlichung getestet wird. Die Software und alle darauf enthaltenen Inhalte werden als „wie besehen“ und „wie verfügbar“ bereitgestellt. Wir geben keine Garantien, ob ausdrücklich oder stillschweigend, hinsichtlich der Eignung oder Verwendbarkeit der Software oder deren Inhalte.", @@ -355,14 +343,11 @@ "enutsMint": "Die standardmäßige eNuts-Mint", "mintDisclaimer": "Die Verwendung der standardmäßigen eNuts-Mint erfolgt vollständig auf eigenes Risiko. Wir empfehlen dringend, Vorsicht walten zu lassen und sie nur für experimentelle oder Bildungszwecke zu nutzen. Es gibt keine Garantien hinsichtlich ihrer Funktionalität, Sicherheit oder Verfügbarkeit, und sie kann ohne Vorankündigung verschwinden. Einlagen, die in diese Mint getätigt werden, sollten als Spenden betrachtet werden und können möglicherweise nicht zurückgegeben werden, sondern eventuell für die Weiterentwicklung verwendet werden. Seien Sie sich der mit Beta-Software verbundenen Risiken bewusst, und es liegt in Ihrer Verantwortung, Ihre Vermögenswerte beim Gebrauch dieser Mint zu schützen.", "paidOut": "Ausbezahlt", - "pasteToken": "Ecash aus Zwischenablage", + "pasteToken": "Ecash einlösen", "payInvoice": "Rechnung bezahlen", "payLNInvoice": "Lightning Rechnung bezahlen", "receive": "Empfangen", - "receiveHint": "Ecash aus der Zwischenablage einfügen oder eine Mint aufladen.", "send": "Senden", - "sendHint": "Senden Sie Ecash oder lassen Sie sich von einer Mint auszahlen.", - "sent": "Ausgezahlt", - "submitIssue": "Problem auf GitHub melden" + "sent": "Ausgezahlt" } } diff --git a/assets/translations/en.json b/assets/translations/en.json index 21f90aa0..7008dfbb 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -1,14 +1,18 @@ { "addrBook": { - "addContactErr": "Contact can not be added. Possible name or LNURL duplication.", - "addedContact": "New contact added", - "addOwnLnurl": "Add your NPUB", - "editContact": "Edit contact", - "invalidLnurl": "Invalid LNURL!", - "invalidName": "Invalid name!", - "newContact": "New contact", - "personalLnurl": "Personal LNURL", - "yourProfile": "Your profile" + "addOwnNpub": "Add your NPUB", + "favorite": "Favorite", + "removeFav": "Remove favorite", + "showProfile": "Show profile", + "copyNpub": "Copy NPUB", + "npubCopied": "NPUB copied!", + "syncContacts": "Sync Contacts", + "startSync": "Start Synchronization", + "synchronizing": "Synchronizing...", + "finished": "Finished!", + "syncHint": "To provide an accurate search function, all your contacts have to be synced. This may take a few seconds.", + "receiverNoLnurl": "Recipient has no LNURL", + "noResults": "No results" }, "auth": { "confirmAction": "Please confirm the action.", @@ -34,7 +38,6 @@ "aboutToLeaveTo": "You are about to leave", "accept": "Accept", "addMemo": "Add a memo with max. 21 chars.", - "addMint": "Add a mint", "addEnutsMint": "Use the eNuts mint", "amount": "Amount", "back": "Back", @@ -48,23 +51,16 @@ "cancel": "Cancel", "cashOut": "Cash out", "cashOutFromMint": "Cash out from mint", - "cashuRandD": "Cashu Telegram", "change": "Change", - "checkPayment": "Check payment", "claimed": "claimed", "claimSuccess": "Claimed {{amount}} Satoshi:\n{{mintUrl}}\nMemo: {{memo}}", "claimToken": "Claim token", "clear": "Clear", "clipboardInvalid": "Your clipboard contains an invalid Cashu token!", - "close": "Close", "coinSelection": "Coin selection", "confirm": "Confirm", "contact": "Contact", - "contact_one": "1 Contact", - "contact_other": "{{count}} Contacts", - "contactDel": "Could not delete contact", "mintDelErr": "Unable to remove a mint with remaining balance", - "contactNotSaved": "Contact could not be saved. Possible name or address duplication.", "continue": "Continue", "copied": "Copied", "shareInvoice": "Share invoice", @@ -75,34 +71,31 @@ "createTokenErr": "Could not create a cashu token. Please try again later.", "eventError": "Something went wrong while publishing the event.", "createViaLn": "Create Invoice", - "creating": "Creating", "darkMode": "Dark mode", "dbErr": "Something went wrong while initializing the DB!", "deepLinkErr": "Link could not be opened", "default": "Default", - "delete": "Delete", - "delHistory": "Delete transaction history", + "delHistory": "Delete history", "factoryReset": "Factory reset", "delHistoryErr": "Could not delete the history.", - "delHistoryQ": "Are you sure that you want to delete the history?", - "resetQ": "Are you sure that you want to reset your wallet?", + "delHistoryQ": "Delete history?", + "resetQ": "Reset your wallet?", "delHistoryTxt": "The data can not be retrieved afterwards.", "plsRestart": "Please restart the app now", "disclaimer": "Disclaimer", "ecashPayment": "Ecash payment", - "edit": "Edit", "english": "English", + "swahili": "Swahili", "enutsRandD": "eNuts Telegram", "estimatedFees": "Estimated fees", "estimateFee": "Estimate fee", "expired": "Expired", "fee": "Fee", "feeErr": "Unable to estimate fee. Is \"{{input}}\" a valid LNURL?", - "foundCashuClipboard": "Found a cashu token in your clipboard", + "foundCashuClipboard": "Cashu token detected", "french": "French", "from": "from", "fromMint": "from the following mint", - "generateInvoiceErr": "Unable to generate invoice for \"{{input}}\"", "german": "German", "getStarted": "Get started", "githubIssues": "Report bugs on Github", @@ -112,27 +105,19 @@ "invalidOrSpent": "Token invalid or already claimed", "invalidToken": "Invalid token", "invoice": "Invoice", - "invoiceErr": "Invoice could not be payed. Please try again later.", "invoiceExpired": "Invoice expired", "invoiceInclFee": "Invoice incl. fee", - "invoiceIncoming": "Invoice incoming", - "invoiceLowFunds": "Not enough funds! Total after fee: {{totalToPay}} Satoshi. Amount selected: {{LNURLAmount}} Satoshi", "invoiceOrLnurl": "LN invoice or LNURL", - "invoicePayErr": "An error occured while paying the invoice.", "keysetID": "Keyset ID", "lnInvoice": "Lightning invoice", "lnPayment": "Lightning payment", - "lnPaymentReq": "Payment request", - "manageMints": "Manage mints", "mint": "Mint", - "mintBalance": "Mint balance", "minted": "minted", "multimintSwap": "Multimint swap", "n/a": "Not available", "name": "Name", "no": "No", "noCamAccess": "No access to camera", - "noEnoughFunds": "Chosen mint has not enough funds", "noFunds": "Not enough funds", "noFundsForFee": "Not enough funds, please leave room for potential fees: ~{{fee}} Sat.", "noMint": "Found no mint", @@ -142,29 +127,23 @@ "noTX": "No transactions yet", "optionalMemo": "Optional memo", "paste": "Paste", - "pay": "Pay", "paymentPending": "Payment pending", "paymentSuccess": "Payment successfull!", - "nostrPaymentSuccess": "sent via NOSTR", + "nostrPaymentSuccess": "sent via Nostr", "paymentType": "Payment type", "payWithLn": "Pay with your LN wallet", - "processingPayment": "Processing payment", "readme": "Read me", "sender": "Sender", "recipient": "Recipient", "reqTimeout": "Network request timeout", - "risks": "Understand the current risks", "save": "Save", "scanAgain": "Tap to Scan Again", - "scanTokenOrLn": "Scan Cashu token or Lightning invoice", - "scanLn": "Scan Lightning invoice", "scan": "Scan", "enutsBeta": "eNuts is beta software", "seconds": "seconds", "selectAmount": "Select amount", "selected": "Selected", "selectMint": "Select a mint to send from", - "sendBtcHint": "Send bitcoin from \"{{mintUrl}}\" to a Lightning wallet.", "sendEcash": "Send Ecash", "share": "Share", "smthWrong": "Something went wrong", @@ -173,36 +152,30 @@ "to": "to", "today": "Today", "tokenInfoErr": "Error while getting token info", - "tokensIssued": "Tokens already issued for this invoice.", - "total": "Total", "totalInclFee": "Total incl. fee", "trustMint": "Do you want to trust this mint", "tryLater": "Please try again later.", "unknownType": "Unknown data", "version": "Version", "willDoLater": "Will do later", - "addOwn": "Add mint URL", + "addMintUrl": "Add mint URL", "yes": "Yes", "invalidPubKey": "Invalid public key!", - "whatsNostr": "What is NOSTR?", "walletLocked": "Wallet locked", "explainer1": "eNuts is a custodial Lightning wallet, allowing private and instant transactions using the Cashu protocol. Your funds are held by mints you interact with, and Ecash is stored locally on your device.", "explainer2": "Cashu is a new Ecash protocol for custodial Bitcoin apps, where mints are Lightning nodes performing Bitcoin transactions and offer you Ecash. Rest assured, the mint remains unaware of your Ecash payments.", "explainer3": "Simply add a mint via URL and pay a Lightning invoice to get Ecash. eNuts guides you, lets you receive from anyone instantly and with your permission, automatically adds related mints. Swap funds between mints and send Ecash once you have a balance.", "send&receive": "Send & receive", - "contactsNostr": "Contacts & NOSTR", - "nostrExplainer": "The NOSTR implementation enables seamless synchronization of your contacts without the need for you to enter your private key, as we generate a new one for you. Your data is displayed using the public key, while the new private key encrypts/decrypts your messages.", + "contactsNostr": "Contacts & Nostr", + "nostrExplainer": "The Nostr implementation enables seamless synchronization of your contacts without the need for you to enter your private key, as we generate a new one for you. Your data is displayed using the public key, while the new private key encrypts/decrypts your messages.", "send": "Send", - "FoundNoLnurl": "Found no LNURL", - "invalidNpub": "NPUB invalid!", - "invalidNpubHex": "Hex invalid!", "sendEcashDashboard": "Create a Cashu token and send it to anyone.", - "payInvoiceDashboard": "Send your funds from a mint to a Lightning address.", + "payInvoiceDashboard": "Send your funds from a mint to any Lightning node.", "receiveEcashDashboard": "Paste and redeem a Cashu token from your clipboard.", - "receiveEcashNostr": "NOSTR messages", - "receiveEcashNostrHint": "Check your personal NOSTR messages for incoming Cashu tokens.", + "receiveEcashNostr": "Nostr messages", + "receiveEcashNostrHint": "Check your personal Nostr messages for incoming Cashu tokens.", "createInvoiceDashboard": "Receive Ecash from a mint by paying a Lightning invoice.", - "hideNuts": "Hide your total balance", + "hideNuts": "Hide balance", "checkingDms": "Checking your DMs for Ecash...", "clearOverHere": "Everything is clear over here!", "totalDmsReceived": "You received {{totalDms}} Cashu token.", @@ -212,28 +185,48 @@ "zapSoon": "Zaps will be added soon...", "enutsPub": "eNuts public key: ", "seeFullHistory": "See full transaction history", - "hideLatestTxs": "Hide your latest transactions", - "hiddenTxs": "Transaction history", + "hideLatestTxs": "Hide transactions", "next": "Next", "skip": "Skip", - "donateLn": "Donate via Lightning", - "supportDev": "Zap the devs", + "donateLn": "Donate", "supportHint": "Every contribution, no matter the size, makes a significant impact. Confirmation screen is under development.", "newToken": "New Cashu token", - "disclaimerHint": "This disclaimer should be taken seriously and should not be ignored or underestimated. We appreciate your interest in this project and will continue to work on improving it." + "disclaimerHint": "This disclaimer should be taken seriously and should not be ignored or underestimated. We appreciate your interest in this project and will continue to work on improving it.", + "searchContacts": "Search or type NPUB", + "submit": "Submit", + "clearMetadataCache": "Clear metadata cache", + "clearMetadataCacheHint": "Clear metadata cache?", + "clearImageCache": "Clear image cache", + "clearImageCacheHint": "Clear image cache?", + "pullRefresh": "Pull to refresh", + "processTestPay": "Processing test payment...", + "confirmMint": "Confirm new mint", + "confirmMintHint": "Are you sure that you want to add this mint?", + "confirmNpub": "Confirm NPUB", + "confirmNpubHint": "Are you sure that you want to use this NPUB?", + "npubAlreadyAdded": "NPUB already added", + "replaceNpub": "Replace NPUB", + "replaceNpubTxt": "Are you sure that you want to replace the current NPUB?", + "npubAdded": "NPUB added!", + "showContacts": "Show contacts", + "topUpNow": "Top up now", + "scanAnother": "Scan another QR code", + "deleteNpub": "Delete NPUB?", + "delNpubHint": "All the contacts and related data will be deleted.", + "addNewNpub": "Add a new NPUB?", + "addNpubHint": "This will delete all the data associated with your current NPUB." }, "error": { - "addAllMintIdsErr": "Error while getting keyset ids from mint", "checkSpendableErr": "Error while checking if token is spendable", "claimTokenErr": "Error while claiming token", "header": "An error occured", - "meltingErr": "An Error occured during the melting process", "msg": "We are sorry that you encountered this problem. You can help us improve the software by taking a screenshot and creating a short bug report.", "reportBug": "Report the bug", "requestMintErr": "Error while requesting invoice from mint.", "stackNA": "Error stack not available", "generalMeltingErr": "The mint was not able to find a proper Lightning payment route to your node.", - "invoiceFromLnurlError": "Could not create an invoice using your LNURL." + "invoiceFromLnurlError": "Could not create an invoice using your LNURL.", + "invoiceScanError": "Could not use the invoice from the scanned QR code." }, "history": { "checkSpent": "Check if token has been spent", @@ -260,21 +253,20 @@ "backupNotCreated": "Backup token could not be created.", "cashOutAmountHint": "Lightning fees may occur, so an estimated fee is added, and any overpaid fees will be refunded.", "checkProofs": "Check proofs", - "checkProofsQ": "Are you sure that you want to check all the proofs?", + "checkProofsQ": "Check all the proofs?", "checkProofsTxt": "This will check if your token are spendable and will otherwise delete them.", "chooseMeltMintHint": "Choose a mint from which you would like to cash out your funds.", "chooseMintHint": "Choose a mint from which you would like to receive Ecash. The mint becomes custodian of your funds.", "chooseTarget": "Choose the receiver of the payment.", "coinSelectionHint": "Your Ecash balance is essentially a collection of coin-sets. Coin selection allows you to choose the coins you want to spend. Coin-sets are assigned a keyset-ID by the mint, which may change over time. Newly added keysets are highlighted in green. It is advisable to spend older sets first.", "creatingEcashToken": "Cashu token is being created", - "sendingEcashViaNostr": "Sending Cashu token via NOSTR!", + "sendingEcashViaNostr": "Sending Cashu token via Nostr!", "customName": "Custom name", "cutomNameAdded": "Added a custom name", "dangerZone": "Danger zone", "deletedProofs": "Deleted {{proofsToDel}} proofs.", "delMint": "Delete mint", - "delMintHint": "Deleting a mint with balance can result in an unexpected total balance. You will keep the token associated with the mint, but you will not be able to redeem them until you re-add the mint.", - "delMintSure": "Are you sure that you want to remove this mint?", + "delMintSure": "Remove this mint?", "ecashAmountHint": "Select the amount of Ecash you would like to send.", "editMintName": "Edit mint name", "errDelProofs": "Something went wrong while deleting proofs.", @@ -285,7 +277,6 @@ "invalidUrl": "Invalid URL", "invoiceAmountHint": "Select the amount of Ecash you would like to receive. The mint will then create an invoice which you will have to pay using a Lightning wallet.", "invoiceHint": "This can take a few seconds...", - "invoiceInputHint": "Note that Lightning fees can occur. The overpaid fees will be refunded to you.", "lowBackupBal": "The mint has no balance for a backup!", "lowBal": "Mint balance too low!", "meltAddressbookHint": "Choose your own LNURL or any other contact as a payment receiver.", @@ -294,20 +285,18 @@ "meltSwapHint": "Pick another mint from your trusted list as the payment receiver.", "copyShareToken": "Copy & quickshare", "copyShareTokenHint": "Copy the generated token and share it via any messenger app.", - "sendNostr": "Send via NOSTR", - "sendNostrHint": "Send Ecash directly to one of your NOSTR contacts.", + "sendNostr": "Send via Nostr", + "sendNostrHint": "Send Ecash directly to one of your Nostr contacts.", "meltToken": "Cash out", "mintConnectionFail": "Connection to mint failed", "mintInfo": "Mint info", "mintNewTokens": "Mint New Token", "mintNoContact": "The mint has no contact info", "mntAlreadyAdded": "Mint already added", - "newMintSuccess": "{{mintUrl}} added successfully", "noAdditional": "This mint has no additional info", "noInfo": "Mint has no info", "noProofs": "Found no proofs for this mint.", "paymentOverview": "Payment overview", - "performingSwap": "Performing swap", "processingPaymentByMint": "The mint is processing the payment according to your request", "processingSwap": "Processing multimint-swap according to your request", "pubKey": "Public key", @@ -316,15 +305,13 @@ "sendEcashHint": "Choose a mint from which you would like to create a Cashu token.", "setDefault": "Set as default mint", "supportedNuts": "Supported NUTs", - "swapFail": "Could not perform an multimint-swap", "swapNotAllowed": "Swap out from a test mint is not possible.", - "swapRisk": "Swap token from one mint for token from another mint. For a brief moment, you will be trusting two mints at the same time. There is things that can go wrong. Use at own risk.", - "swapSuccess": "Successfully swaped {{amount}} Satoshi from {{srcMint}} to {{targetMint}}", "testMintHint": "This is a test mint to play around with. Add it anyway?", - "trustMintSure": "Are you sure that you want to trust this mint?", + "trustMintSure": "Trust this mint?", "updatedDefault": "Updated the default mint", "newMintAdded": "Mint added!", - "newMintAddedQuestion": "Do you want to receive Ecash from it now?" + "newMintAddedQuestion": "Do you want to receive Ecash from it now?", + "selectSwapReceiver": "Select a mint as the payment receiver." }, "topNav": { "about": "About us", @@ -345,7 +332,8 @@ "cashuContent": "The author of Cashu is not a cryptographer and the protocol is still under review. It raises concerns about the potential existence of fatal flaws. As a result, Cashu is not yet production-ready.", "cashuExperiment": "Cashu is still experimental.", "claiming": "Claiming...", - "createLnInvoice": "Create Lightning invoice", + "processingInvoice": "Processing invoice...", + "createLnInvoice": "Top up", "custodialRisk": "Custodial risk, mints hold the keys.", "custodialRiskContent": "With eNuts, you don't hold the keys to the Bitcoin; the mint acts as the custodian. Therefore, if you lack trust in a mint, it's advisable to avoid interacting with it.", "disclaimer": "Please note that this is beta version in its early stage and is still undergoing testing before its official release. The software and all content found on it are provided on an “as is” and “as available” basis. We do not give any warranties, whether express or implied, as to the suitability or usability of the software or any of its content.", @@ -355,13 +343,10 @@ "enutsMint": "The default eNuts mint", "mintDisclaimer": "The usage of the default eNuts mint is entirely at your own risk. We strongly encourage you to exercise caution and only use it for experimental or educational purposes. There are no guarantees regarding its functionality, security, or availability, and it may vanish without notice. Deposits made to this mint should be considered as donations and may not be returned, potentially used for further development. Be aware of the risks associated with beta software, and it's your responsibility to safeguard your assets while using this mint.", "paidOut": "Paid out", - "pasteToken": "Paste & redeem Ecash", + "pasteToken": "Redeem Ecash", "payInvoice": "Pay invoice", "payLNInvoice": "Pay Lightning invoice", "receive": "Receive", - "receiveHint": "Paste Ecash from your clipboard or top up a mint.", - "send": "Send", - "sendHint": "Send Ecash or cash out from a mint.", - "submitIssue": "Submit issue on GitHub" + "send": "Send" } } diff --git a/assets/translations/fr.json b/assets/translations/fr.json index 0df97820..afeed019 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -1,14 +1,18 @@ { "addrBook": { - "addContactErr": "Le contact ne peut pas être ajouté. Duplication possible du nom ou du LNURL.", - "addedContact": "Nouveau contact ajouter", - "addOwnLnurl": "Ajouter votre NPUB", - "editContact": "Modifier le contact", - "invalidLnurl": "Invalide LNURL!", - "invalidName": "Nom invalide!", - "newContact": "Nouveau contact", - "personalLnurl": "LNURL personnel", - "yourProfile": "Votre profil" + "addOwnNpub": "Ajouter votre NPUB", + "favorite": "Favori", + "removeFav": "Supprimer favori", + "showProfile": "Afficher", + "copyNpub": "Copier NPUB", + "npubCopied": "NPUB copié!", + "syncContacts": "Synchroniser les contacts", + "startSync": "Démarrer la synchronisation", + "synchronizing": "Synchronisation en cours...", + "finished": "Terminé!", + "syncHint": "Pour fournir une fonction de recherche précise, tous vos contacts doivent être synchronisés. Cela peut prendre quelques secondes.", + "receiverNoLnurl": "Destinataire n'a pas de LNURL", + "noResults": "Aucun résultat trouvé" }, "auth": { "confirmAction": "Veuillez confirmer votre action.", @@ -34,7 +38,6 @@ "aboutToLeaveTo": "Vous êtes sur le point de quitter", "accept": "Accepter", "addMemo": "Ajouter une note avec un maximum de 21 caractères.", - "addMint": "Ajouter une mint", "addEnutsMint": "Utiliser eNuts mint", "amount": "Montant", "back": "Retour", @@ -48,23 +51,16 @@ "cancel": "Annuler", "cashOut": "Retirer votre argent", "cashOutFromMint": "Retirer de la mint", - "cashuRandD": "Cashu Telegram", "change": "Changer", - "checkPayment": "Vérifier le paiement", "claimed": "récupéré", "claimSuccess": "{{amount}} Satoshi récupérés:\n{{mintUrl}}\nNote: {{memo}}", "claimToken": "Obtenir le token", "clear": "Effacer", "clipboardInvalid": "Le presse-papiers contient un Cashu token invalide!", - "close": "Fermer", "coinSelection": "Coin sélection", "confirm": "Confirmer", "contact": "Contact", - "contact_one": "1 Contact", - "contact_other": "{{count}} Contacts", - "contactDel": "Impossible de supprimer le contact", "mintDelErr": "Impossible de supprimer une mint avec un solde restant", - "contactNotSaved": "Le contact n'a pas pu être enregistré. Possibilité de doublon de nom ou d'adresse.", "continue": "Continuer", "copied": "Copié", "shareInvoice": "Partager la facture", @@ -75,34 +71,31 @@ "createTokenErr": "Impossible de créer un Cashu token. Veuillez réessayer ultérieurement.", "eventError": "Une erreur s'est produite lors de la publication du message.", "createViaLn": "Créer Une Facture", - "creating": "Création en cours", "darkMode": "Mode sombre", "dbErr": "Une erreur s'est produite lors de l'initialisation de la base de données!", "deepLinkErr": "Impossible d'ouvrir le lien", "default": "Par défaut", - "delete": "Supprimer", - "delHistory": "Supprimer l'historique transactions", + "delHistory": "Supprimer l'historique", "factoryReset": "Réinitialisation", "delHistoryErr": "Impossible de supprimer l'historique.", - "resetQ": "Êtes-vous sûr de vouloir réinitialiser?", - "delHistoryQ": "Êtes-vous sûr de vouloir supprimer l'historique?", + "resetQ": "Réinitialiser?", + "delHistoryQ": "Supprimer l'historique?", "delHistoryTxt": "Les données ne pourront pas être récupérées ultérieurement.", "plsRestart": "Veuillez redémarrer l'application maintenant", "disclaimer": "Clause de non-responsabilité", "ecashPayment": "Paiement Ecash", - "edit": "Modifier", "english": "Anglais", + "swahili": "Swahili", "enutsRandD": "eNuts Telegram", "estimatedFees": "Frais estimés", "estimateFee": "Estimer les frais.", "expired": "Expiré", "fee": "Frais", "feeErr": "Impossible d'estimer les frais. \"{{input}}\" est-il un LNURL valide?", - "foundCashuClipboard": "Un Cashu token a été trouvé dans votre presse-papiers", + "foundCashuClipboard": "Cashu token a été trouvé", "french": "Français", "from": "de", "fromMint": "de la Mint suivante", - "generateInvoiceErr": "Impossible de générer la facture pour \"{{input}}\"", "german": "Allemand", "getStarted": "Commencer", "githubIssues": "Signalez des bugs sur Github", @@ -112,27 +105,19 @@ "invalidOrSpent": "Token invalide ou déjà utilisé", "invalidToken": "Token invalide", "invoice": "Facture", - "invoiceErr": "La facture n'a pas pu être payée. Veuillez réessayer ultérieurement.", "invoiceExpired": "Facture expirée", "invoiceInclFee": "Facture incl. frais", - "invoiceIncoming": "Facture en cours", - "invoiceLowFunds": "Fonds insuffisants! Total après les frais: {{totalToPay}} Satoshi. Montant sélectionné: {{LNURLAmount}} Satoshi", "invoiceOrLnurl": "Facture LN ou LNURL", - "invoicePayErr": "Une erreur s'est produite lors du paiement de la facture.", "keysetID": "ID de clés", "lnInvoice": "Facture Lightning", "lnPayment": "Paiement Lightning", - "lnPaymentReq": "Demande de paiement", - "manageMints": "Gérer les Mints", "mint": "Mint", - "mintBalance": "Solde de la Mint", "minted": "émis", "multimintSwap": "Multimint-échange.", "n/a": "Pas disponible", "name": "Nom", "no": "Non", "noCamAccess": "Accès à la caméra non autorisé", - "noEnoughFunds": "La Mint choisie n'a pas suffisamment de fonds", "noFunds": "Fonds insuffisants", "noFundsForFee": "Solde insuffisant, veuillez prévoir de la marge pour les frais éventuels: ~{{fee}} Sat.", "noMint": "Aucune Mint trouvée", @@ -142,29 +127,23 @@ "noTX": "Pas encore de transactions", "optionalMemo": "Mémo facultatif", "paste": "Coller", - "pay": "Payer", "paymentPending": "Paiement en attente", "paymentSuccess": "Paiement réussi!", - "nostrPaymentSuccess": "envoyé via NOSTR!", + "nostrPaymentSuccess": "envoyé via Nostr!", "paymentType": "Type de paiement", "payWithLn": "Payer avec votre portefeuille LN", - "processingPayment": "Traitement du paiement", "readme": "Lisez-moi", "sender": "Expéditeur", "recipient": "Bénéficiaire", "reqTimeout": "Délais de la requête réseau", - "risks": "Comprendre les risques actuels", "save": "Enregistrer", "scanAgain": "Appuyez pour scanner à nouveau", - "scanTokenOrLn": "Scanner le Cashu token ou facture Lightning", - "scanLn": "Scanner la facture Lightning", "scan": "Scanner", "enutsBeta": "enuts est une version bêta", "seconds": "secondes", "selectAmount": "Sélectionner le montant", "selected": "Sélectionné", "selectMint": "Sélectionnez une Mint à partir de laquelle envoyer", - "sendBtcHint": "Envoyez des bitcoins de \"{{mintUrl}}\" vers un portefeuille Lightning.", "sendEcash": "Envoyer Ecash", "share": "Partager", "smthWrong": "Quelque chose s'est mal passé", @@ -173,36 +152,30 @@ "to": "à", "today": "Aujourd'hui", "tokenInfoErr": "Erreur lors de l'obtention des informations sur le token", - "tokensIssued": "Tokens déjà émis pour cette facture.", - "total": "Total", "totalInclFee": "Total incl. frais", "trustMint": "Voulez-vous faire confiance à cette mint", "tryLater": "Veuillez réessayer ultérieurement.", "unknownType": "Données inconnues", "version": "Version", "willDoLater": "Je ferai plus tard", - "addOwn": "Ajouter mint URL", + "addMintUrl": "Ajouter mint URL", "yes": "Oui", "invalidPubKey": "Clé publique invalide!", - "whatsNostr": "C'est quoi NOSTR?", "walletLocked": "Wallet verrouillé", "explainer1": "eNuts est une wallet Lightning sous garde, permettant des transactions privées et instantanées en utilisant le protocole Cashu. Vos fonds sont détenus par des mints avec lesquels vous interagissez, et l'Ecash est stocké localement sur votre appareil.", "explainer2": "Cashu est un nouveau protocole Ecash pour les applications Bitcoin sous garde, où les mints sont des nœuds Lightning facilitant les transactions Bitcoin pour vous offrir de l'Ecash. Soyez rassuré, les mints reste ignorant de vos paiements Ecash.", "explainer3": "Ajouter simplement une mint via URL et payez une facture Lightning pour obtenir de l'Ecash. eNuts vous guide, vous permet de recevoir instantanément de n'importe qui et ajoute automatiquement les mints liés avec votre permission. Échangez des fonds entre les mints et envoyez de l'Ecash une fois que vous avez un solde.", "send&receive": "Envoyer et recevoir", - "contactsNostr": "Contacts & NOSTR", - "nostrExplainer": "L'implémentation NOSTR permet une synchronisation transparente de vos contacts sans que vous ayez besoin d'entrer votre clé privée, car nous en générons une nouvelle pour vous. Vos données sont affichées à l'aide de la clé publique, tandis que la nouvelle clé privée chiffre/déchiffre vos messages.", + "contactsNostr": "Contacts & Nostr", + "nostrExplainer": "L'implémentation Nostr permet une synchronisation transparente de vos contacts sans que vous ayez besoin d'entrer votre clé privée, car nous en générons une nouvelle pour vous. Vos données sont affichées à l'aide de la clé publique, tandis que la nouvelle clé privée chiffre/déchiffre vos messages.", "send": "Envoyer", - "FoundNoLnurl": "Pas trouver votre LNURL", - "invalidNpub": "NPUB invalid!", - "invalidNpubHex": "Hex invalid!", "sendEcashDashboard": "Créez un Cashu token et envoyez-le à n'importe qui.", "payInvoiceDashboard": "Envoyez vos fonds depuis une mint vers une adresse Lightning.", "receiveEcashDashboard": "Collez et utilisez un Cashu token depuis votre presse-papiers.", - "receiveEcashNostr": "NOSTR messages", - "receiveEcashNostrHint": "Vérifiez vos messages sur NOSTR pour les Cashu token entrants.", + "receiveEcashNostr": "Nostr messages", + "receiveEcashNostrHint": "Vérifiez vos messages sur Nostr pour les Cashu token entrants.", "createInvoiceDashboard": "Recevez l'Ecash depuis une mint en payant une facture Lightning.", - "hideNuts": "Masquer votre solde total", + "hideNuts": "Masquer solde", "checkingDms": "Vérification de vos DM pour l'Ecash...", "swapNow": "Échanger maintenant", "swap": "Échange", @@ -210,27 +183,50 @@ "zapSoon": "Les zaps seront bientôt ajoutés...", "enutsPub": "eNuts clé public: ", "seeFullHistory": "Historique des transactions", - "hiddenTxs": "Historique des transactions", "next": "Suivant", "skip": "Sauter", - "donateLn": "Faire un don via Lightning", - "supportDev": "Zap le développement", + "donateLn": "Faire un don", "supportHint": "Chaque contribution, quelle que soit sa taille, a un impact significatif. L'écran de confirmation est en cours de développement.", "newToken": "Nouveau Cashu Token", - "disclaimerHint": "Cette clause de non-responsabilité doit être prise au sérieux et ne doit pas être ignorée ni sous-estimée. Nous apprécions votre intérêt pour ce projet et continuerons à travailler à son amélioration." + "disclaimerHint": "Cette clause de non-responsabilité doit être prise au sérieux et ne doit pas être ignorée ni sous-estimée. Nous apprécions votre intérêt pour ce projet et continuerons à travailler à son amélioration.", + "searchContacts": "Recherchez ou saisissez NPUB", + "submit": "Soumettre", + "clearMetadataCache": "Vider le cache", + "clearMetadataCacheHint": "Vider le cache des métadonnées?", + "clearImageCache": "Vider le cache", + "clearImageCacheHint": "Vider le cache des images?", + "pullRefresh": "Tirer pour rafraîchir", + "processTestPay": "Traitement du paiement de test...", + "confirmMint": "Confirmer la mint", + "confirmMintHint": "Êtes-vous sûr(e) de vouloir faire confiance à cette mint?", + "confirmNpub": "Confirmer NPUB", + "confirmNpubHint": "Êtes-vous sûr(e) de vouloir usé cette NPUB?", + "npubAlreadyAdded": "NPUB déjà ajoutée", + "replaceNpub": "Remplacer NPUB", + "replaceNpubTxt": "Voulez-vous remplacer le NPUB existant?", + "npubAdded": "NPUB ajouté!", + "showContacts": "Afficher les contacts", + "topUpNow": "Recharger maintenant", + "scanAnother": "Scanner un autre code QR", + "clearOverHere": "Tout est clair de ce côté-ci!", + "totalDmsReceived": "Vous avez reçu 4 Cashu token.", + "hideLatestTxs": "Masquer transactions", + "deleteNpub": "Supprimer NPUB?", + "delNpubHint": "Tous les contacts et les données associées seront supprimés.", + "addNewNpub": "Ajouter un nouveau NPUB?", + "addNpubHint": "Cela supprimera toutes les données associées à votre NPUB actuel." }, "error": { - "addAllMintIdsErr": "Erreur lors de l'obtention de l'ensemble de clés de la mint", "checkSpendableErr": "Erreur lors de la vérification si le token est dépensable", "claimTokenErr": "Erreur lors de la réclamation du token", "header": "Une erreur est survenue", - "meltingErr": "Une erreur s'est produite lors du paiement.", "msg": "Nous sommes désolés que vous ayez rencontré ce problème. Vous pouvez nous aider à améliorer le logiciel en prenant une capture d'écran et en créant un court rapport de bug.", "reportBug": "Signaler le bug", "requestMintErr": "Erreur lors de la demande de la facture à partir de mint.", "stackNA": "Pile d'erreur non disponible", "generalMeltingErr": "La mint n'a pas pu trouver un itinéraire de paiement Lightning approprié vers votre nœud.", - "invoiceFromLnurlError": "Impossible de créer une facture à l'aide de votre LNURL." + "invoiceFromLnurlError": "Impossible de créer une facture à l'aide de votre LNURL.", + "invoiceScanError": "Impossible de lire la facture à partir du code QR." }, "history": { "checkSpent": "Vérifier si le token a été dépensé", @@ -257,21 +253,20 @@ "backupNotCreated": "La sauvegarde n'a pas pu être créé.", "cashOutAmountHint": "Des frais Lightning peuvent survenir, donc des frais estimés sont ajoutés, et tout excédent de frais sera remboursé.", "checkProofs": "Vérifier les preuves", - "checkProofsQ": "Êtes-vous sûr de vouloir vérifier toutes les preuves?", + "checkProofsQ": "Vérifier toutes les preuves?", "checkProofsTxt": "Cela vérifiera si vos token peuvent être dépensés et les supprimera sinon.", "chooseMeltMintHint": "Veuillez choisir une mint à partir de laquelle vous souhaitez retirer vos fonds.", "chooseMintHint": "Veuillez choisir une mint auprès de laquelle vous souhaitez recevoir de l'Ecash. La mint devient dépositaire de vos fonds.", "chooseTarget": "Veuillez choisir le destinataire du paiement.", "coinSelectionHint": "Votre solde Ecash est essentiellement une collection d'ensembles de Coins. La sélection de Coins vous permet de choisir les Coins que vous souhaitez dépenser. Les ensembles de Coins se voient attribuer des clés identifiant par la mint, qui peut changer avec le temps. Les nouveaux ensembles sont mis en évidence en vert. Il est conseillé de dépenser les anciens ensembles en premier.", "creatingEcashToken": "Le Cashu token est en train d'être créé.", - "sendingEcashViaNostr": "Le Cashu-Token est envoyé via NOSTR!", + "sendingEcashViaNostr": "Le Cashu-Token est envoyé via Nostr!", "customName": "Nom personnalisé", "cutomNameAdded": "Ajouté un nom personnalisé", "dangerZone": "Zone dangereuse", "deletedProofs": "Supprimé {{proofsToDel}} proofs.", "delMint": "Supprimer la mint", - "delMintHint": "Supprimer une mint avec un solde peut entraîner un solde total inattendu. Vous conserverez les token associés à la mint, mais vous ne pourrez pas les échanger tant que vous n'aurez pas réajouté la mint.", - "delMintSure": "Êtes-vous sûr de vouloir supprimer cette mint?", + "delMintSure": "Supprimer cette mint?", "ecashAmountHint": "Sélectionnez le montant d'Ecash que vous souhaitez envoyer.", "editMintName": "Modifier le nom de la mint", "errDelProofs": "Une erreur s'est produite lors de la suppression des proofs.", @@ -282,7 +277,6 @@ "invalidUrl": "URL invalide", "invoiceAmountHint": "Veuillez sélectionner le montant d'Ecash que vous souhaitez recevoir. La mint produira ensuite une facture que vous devrez régler à l'aide d'un portefeuille Lightning.", "invoiceHint": "Cela peut prendre quelques secondes...", - "invoiceInputHint": "Notez que des frais Lightning peuvent survenir. Les frais surpayés vous seront remboursés.", "lowBackupBal": "La mint n'a pas de solde pour une sauvegarde!", "lowBal": "Solde trop bas!", "meltAddressbookHint": "Sélectionnez votre propre LNURL ou tout autre contact comme destinataire du paiement.", @@ -291,20 +285,18 @@ "meltSwapHint": "Sélectionnez une autre mint de votre liste de confiance comme destinataire du paiement.", "copyShareToken": "Copier et partager", "copyShareTokenHint": "Copiez le Ecash token généré et partagez-le via n'importe quelle application de messagerie.", - "sendNostr": "Envoyer via NOSTR", - "sendNostrHint": "Envoyez Ecash directement à l'un de vos contacts NOSTR.", + "sendNostr": "Envoyer via Nostr", + "sendNostrHint": "Envoyez Ecash directement à l'un de vos contacts Nostr.", "meltToken": "Retirer vos Satoshi", "mintConnectionFail": "Échec de la connexion à la mint", "mintInfo": "Informations sur la mint", "mintNewTokens": "Créer de nouveaux token", "mintNoContact": "La mint n'a aucune information de contact", "mntAlreadyAdded": "Mint déjà ajoutée", - "newMintSuccess": "{{mintUrl}} ajoutée avec succès", "noAdditional": "Cette mint n'a aucune information supplémentaire", "noInfo": "Aucune information disponible", "noProofs": "Aucune preuve trouvée pour cette mint.", "paymentOverview": "Aperçu du paiement", - "performingSwap": "Échange en cours", "processingPaymentByMint": "La mint traite le paiement selon votre demande", "processingSwap": "Traitement d'un échange multimint selon votre demande", "pubKey": "Clé publique", @@ -313,19 +305,14 @@ "sendEcashHint": "Choisissez une mint à partir de laquelle vous souhaitez créer un token Cashu", "setDefault": "Définir comme mint par défaut", "supportedNuts": "NUTs pris en charge", - "swapFail": "Impossible d'effectuer une multimint-échange", "swapNotAllowed": "Multimint-échange à partir d'une mint de test n'est pas possible.", - "swapRisk": "Échangez des token d'une mint contre des token d'une autre mint. Pendant un court instant, vous ferez confiance à deux mints en même temps. Des problèmes peuvent survenir. Utilisez à vos propres risques.", - "swapSuccess": "{{amount}} Satoshi échangés avec succès de {{srcMint}} à {{targetMint}}", "testMintHint": "Il s'agit d'une mint de test pour jouer. Voulez-vous quand même l'ajouter?", - "trustMintSure": "Êtes-vous sûr de vouloir faire confiance à cette mint?", + "trustMintSure": "Faire confiance à cette mint?", "updatedDefault": "Modifications enregistrées", "newMintAdded": "Mint ajoutée!", - "newMintAddedQuestion": "Voulez-vous recevoir Ecash maintenant ?", - "clearOverHere": "Tout est clair de ce côté-ci!", - "totalDmsReceived": "Vous avez reçu 4 Cashu token.", + "newMintAddedQuestion": "Voulez-vous recevoir Ecash maintenant?", "seeFullHistory": "Voir l'historique complet", - "hideLatestTxs": "Masquer vos dernières transactions" + "selectSwapReceiver": "Sélectionnez une mint en tant que destinataire du paiement." }, "topNav": { "about": "À propos de nous", @@ -346,7 +333,8 @@ "cashuContent": "Bien que l'auteur de Cashu ne soit pas un cryptographe et que le protocole soit encore en cours d'examen, cela suscite des inquiétudes quant à l'existence potentielle de défauts graves. En conséquence, Cashu n'est pas encore prêt pour une utilisation en production.", "cashuExperiment": "Cashu est toujours expérimental.", "claiming": "En cours...", - "createLnInvoice": "Créer une facture Lightning", + "processingInvoice": "Traitement de la facture...", + "createLnInvoice": "Recharger", "custodialRisk": "Risque de garde, les mints détiennent les clés.", "custodialRiskContent": "Avec eNuts, vous ne détenez pas les clés du Bitcoin; la mint agit en tant que dépositaire. Par conséquent, si vous n'avez pas confiance en une mint, il est conseillé d'éviter d'interagir avec elle.", "disclaimer": "Veuillez noter qu'il s'agit d'une version beta à un stade précoce et qu'elle est encore en cours de test avant sa sortie officielle. Le logiciel et tous les contenus qui s'y trouvent sont fournis « tels quels » et « tels que disponibles ». Nous n'offrons aucune garantie, expresse ou implicite, quant à l'adéquation ou à l'utilisabilité du logiciel ou de l'un de ses contenus.", @@ -356,13 +344,10 @@ "enutsMint": "Die standardmäßige eNuts-Mint", "mintDisclaimer": "L'utilisation de la mint eNuts par défaut se fait entièrement à vos propres risques. Nous vous encourageons vivement à faire preuve de prudence et à ne l'utiliser que à des fins expérimentales ou éducatives. Aucune garantie n'est donnée quant à sa fonctionnalité, sa sécurité ou sa disponibilité, et elle peut disparaître sans préavis. Les dépôts effectués dans cette mint doivent être considérés comme des dons et ne pourront éventuellement pas être restitués, mais pourraient être utilisés pour le développement ultérieur. Soyez conscient des risques associés aux logiciels en version bêta, et il est de votre responsabilité de protéger vos actifs lors de l'utilisation de cette mint.", "paidOut": "Payé", - "pasteToken": "Coller et échanger Ecash", + "pasteToken": "Recevoir de l'Ecash", "payInvoice": "Payer une facture", "payLNInvoice": "Payer une facture Lightning", "receive": "Recevoir", - "receiveHint": "Collez l'Ecash depuis votre presse-papiers ou rechargez une mint.", - "send": "Envoyer", - "sendHint": "Envoyez de l'Ecash ou retirez votre argent d'une mint.", - "submitIssue": "Problem auf GitHub melden" + "send": "Envoyer" } } diff --git a/assets/translations/sw.json b/assets/translations/sw.json index 7a181ce2..850f2608 100644 --- a/assets/translations/sw.json +++ b/assets/translations/sw.json @@ -1,28 +1,32 @@ { "addrBook": { - "addContactErr": "Mwasiliano hawezi kuongezwa. Inawezekana jina au LNURL imefanana.", - "addedContact": "Mwasiliano mpya ameongezwa", - "addOwnLnurl": "Ongeza NPUB yako", - "editContact": "Hariri mwasiliano", - "invalidLnurl": "LNURL batili!", - "invalidName": "Jina batili!", - "newContact": "Mwasiliano mpya", - "personalLnurl": "LNURL ya kibinafsi", - "yourProfile": "Profaili yako" + "addOwnNpub": "Ongeza NPUB yako", + "favorite": "Pendwa", + "removeFav": "Ondoa Pendwa", + "showProfile": "Onyesha wasifu", + "copyNpub": "Nakili NPUB", + "npubCopied": "NPUB imenakiliwa!", + "syncContacts": "Sawazisha Mawasiliano", + "startSync": "Anza kusawazisha", + "synchronizing": "Inasawazisha...", + "finished": "Imekamilika!", + "syncHint": "Ili kutoa kazi sahihi ya utafutaji, mawasiliano yako yote lazima yasawazishwe. Hii inaweza kuchukua sekunde chache.", + "receiverNoLnurl": "Mpokeaji hana LNURL", + "noResults": " Hakuna matokeo" }, "auth": { - "confirmAction": "Tafadhali thibitisha hatua.", - "createPin": "Tengeneza PIN", - "editPin": "Hariri PIN", - "pinMismatch": "PIN isiyo sahihi!", - "pinSetup": "Unaweza hiari kuweka PIN kwa usalama wa programu yako.\n\nTAHADHARI: Ikiwa PIN itasahaulika, kurejesha sasa haipatikani!", - "pleaseConfirm": "Tafadhali thibitisha PIN yako.", - "pleaseConfirmNewPin": "Tafadhali thibitisha PIN mpya yako.", - "pleaseEnter": "Tafadhali ingiza PIN yako sasa.", - "pleaseNewPin": "Tafadhali ingiza PIN mpya sasa.", - "removePin": "Futa PIN", - "welcome": "Karibu", - "welcomeBack": "Karibu tena!" + "confirmAction": "Tafadhali thibitisha hatua.", + "createPin": "Tengeneza PIN", + "editPin": "Hariri PIN", + "pinMismatch": "PIN isiyo sahihi!", + "pinSetup": "Unaweza hiari kuweka PIN kwa usalama wa programu yako.\n\nTAHADHARI: Ikiwa PIN itasahaulika, kurejesha sasa haipatikani!", + "pleaseConfirm": "Tafadhali thibitisha PIN yako.", + "pleaseConfirmNewPin": "Tafadhali thibitisha PIN mpya yako.", + "pleaseEnter": "Tafadhali ingiza PIN yako sasa.", + "pleaseNewPin": "Tafadhali ingiza PIN mpya sasa.", + "removePin": "Futa PIN", + "welcome": "Karibu", + "welcomeBack": "Karibu tena!" }, "backup": { "copyBackup": "Nakili lebo na uihifadhi mahali salama." @@ -31,337 +35,318 @@ "contacts": "Mawasiliano" }, "common": { - "aboutToLeaveTo": "Unaenda kuondoka", - "accept": "Kubali", - "addMemo": "Ongeza maelezo mafupi yenye herufi 21.", - "addMint": "Ongeza sarafu", - "addEnutsMint": "Tumia sarafu ya eNuts", - "amount": "Kiasi", - "back": "Rudi", - "backToDashboard": "Rudi kwenye dashibodi", - "backupErr": "Kuna tatizo lililotokea wakati wa kuunda kitufe cha kuhifadhi.", - "balance": "Salio", - "balanceAfterTX": "Salio baada ya TX", - "balTooLow": "Salio ni dogo mno", - "bigQrMsg": "Kiasi cha data ni kikubwa sana kwa nambari ya QR.", - "calculateFeeEst": "Kuhesabu ada", - "cancel": "Ghairi", - "cashOut": "Kutoa pesa", - "cashOutFromMint": "Kutoa pesa kutoka sarafu", - "cashuRandD": "Cashu Telegram", - "change": "Badilisha", - "checkPayment": "Angalia malipo", - "claimed": "imewezeshwa", - "claimSuccess": "Imewezeshwa {{amount}} Satoshi:\n{{mintUrl}}\nMaelezo: {{memo}}", - "claimToken": "Imewezesha kijenzi", - "clear": "Ondoa", - "clipboardInvalid": "Ubao wako wa kunakili una kitufe cha Cashu batili!", - "close": "Funga", - "coinSelection": "Uteuzi wa sarafu", - "confirm": "Thibitisha", - "contact": "Mwasiliano", - "contact_one": "Mwasiliano 1", - "contact_other": "{{count}} Mawasiliano", - "contactDel": "Haiwezekani kufuta mwasiliano", - "mintDelErr": "Haiwezekani kuondoa sarafu na salio lililobaki", - "contactNotSaved": "Mwasiliano haiwezi kuokolewa. Inawezekana kuna jina au anwani inayofanana.", - "continue": "Endelea", - "copied": "Imenakiliwa", - "shareInvoice": "Shiriki ankara", - "copyToken": "Nakili kijenzi", - "createBackup": "Unda kitufe cha kuhifadhi", - "createInvoice": "Unda ankara", - "createToken": "Unda Kijenzi", - "createTokenErr": "Haiwezekani kuunda kijenzi cha Cashu. Tafadhali jaribu tena baadaye.", - "eventError": "Kuna tatizo lililotokea wakati wa kuchapisha tukio.", - "createViaLn": "Unda ankara", - "creating": "Inaundwa", - "darkMode": "Mode ya giza", - "dbErr": "Kuna tatizo lililotokea wakati wa kuanzisha DB!", - "deepLinkErr": "Kiungo hakikuweza kufunguliwa", - "default": "Chaguo-msingi", - "delete": "Futa", - "delHistory": "Futa historia ya miamala", - "factoryReset": "Kurejesha kiwanda", - "delHistoryErr": "Haiwezekani kufuta historia.", - "delHistoryQ": "Una uhakika unataka kufuta historia?", - "resetQ": "Una uhakika unataka kurejesha kiwanda cha pochi yako?", - "delHistoryTxt": "Data haiwezi kurudishwa baadaye.", - "plsRestart": "Tafadhali anzisha tena programu sasa", - "disclaimer": "Taarifa ya kutumia", - "ecashPayment": "Malipo ya Ecash", - "edit": "Hariri", - "english": "Kiingereza", - "enutsRandD": "eNuts Telegram", - "estimatedFees": "Ada zilizokadiriwa", - "estimateFee": "Kadiri ada", - "expired": "Imeisha muda wake", - "fee": "Ada", - "feeErr": "Haiwezekani kuhesabu ada. Je, \"{{input}}\" ni LNURL halali?", - "foundCashuClipboard": "Nimepata kijenzi cha Cashu kwenye ubao wako wa kunakili", - "french": "Kifaransa", - "from": "kutoka", - "fromMint": "kutoka kwa sarafu ifuatayo", - "generateInvoiceErr": "Haiwezekani kuunda ankara kwa \"{{input}}\"", - "german": "Kijerumani", - "getStarted": "Anza", - "githubIssues": "Ripoti matatizo kwenye Github", - "shareOrReport": "Shiriki maoni au ripoti matatizo", - "historyDeleted": "Historia imefutwa", - "invalidInvoice": "Ankara batili", - "invalidOrSpent": "Kijenzi batili au tayari kimewezeshwa", - "invalidToken": "Kijenzi batili", - "invoice": "Ankara", - "invoiceErr": "Ankara haiwezi kulipwa. Tafadhali jaribu tena baadaye.", - "invoiceExpired": "Ankara imeisha muda wake", - "invoiceInclFee": "Ankara pamoja na ada", - "invoiceIncoming": "Ankara inayokuja", - "invoiceLowFunds": "Fondi hazitoshi! Jumla baada ya ada: {{totalToPay}} Satoshi. Kiasi kilichochaguliwa: {{LNURLAmount}} Satoshi", - "invoiceOrLnurl": "Ankara ya LN au LNURL", - "invoicePayErr": "Kumekuwa na hitilafu wakati wa kulipa ankara.", - "keysetID": "Kitufe cha Kitambulisho", - "lnInvoice": "Ankara ya Lightning", - "lnPayment": "Malipo ya Lightning", - "lnPaymentReq": "Ombi la malipo", - "manageMints": "Simamia sarafu", - "mint": "Sarafu", - "mintBalance": "Salio la sarafu", - "minted": "imeshughulikiwa", - "multimintSwap": "Kubadilishana sarafu", - "n/a": "Haitopatikana", - "name": "Jina", - "no": "Hapana", - "noCamAccess": "Hakuna upatikanaji wa kamera", - "noEnoughFunds": "Sarafu uliyochagua haina pesa za kutosha", - "noFunds": "Hakuna pesa za kutosha", - "noFundsForFee": "Hakuna pesa za kutosha, tafadhali acha nafasi kwa ada inayowezekana: ~{{fee}} Sat.", - "noMint": "Haijapatikana sarafu", - "noProofsToBackup": "Haijapatikana uthibitisho wa kujenga kitufe cha kuhifadhi.", - "notClaim": "Ikiwa utachagua \"Hapana\", kijenzi hakitawezeshwa", - "notQrCode": "Sio nambari ya QR!", - "noTX": "Hakuna miamala bado", - "optionalMemo": "Maelezo ya hiari", - "paste": "Bandika", - "pay": "Lipa", - "paymentPending": "Malipo yanangojea", - "paymentSuccess": "Malipo yamefanikiwa!", - "nostrPaymentSuccess": "imetumwa kupitia NOSTR", - "paymentType": "Aina ya malipo", - "payWithLn": "Lipa na pochi yako ya LN", - "processingPayment": "Malipo yanashughulikiwa", - "readme": "Soma maelezo", - "sender": "Mtumaji", - "recipient": "Mpokeaji", - "reqTimeout": "Ombi la mtandao limekwisha muda", - "risks": "Elewa hatari za sasa", - "save": "Hifadhi", - "scanAgain": "Gusa kusoma tena", - "scanTokenOrLn": "Soma kijenzi cha Cashu au ankara ya Lightning", - "scanLn": "Soma ankara ya Lightning", - "scan": "Soma", - "enutsBeta": "eNuts ni programu ya beta", - "seconds": "sekunde", - "selectAmount": "Chagua kiasi", - "selected": "Kimechaguliwa", - "selectMint": "Chagua sarafu ya kutuma kutoka", - "sendBtcHint": "Tuma bitcoin kutoka \"{{mintUrl}}\" kwa pochi ya Lightning.", - "sendEcash": "Tuma Ecash", - "share": "Shiriki", - "smthWrong": "Kitu kimekwenda vibaya", - "startHint": "Unaweza kutumia sarafu ya eNuts iliyopo au kuongeza sarafu nyingine ya desturi.", - "submitPaymentReq": "Kutoa pesa", - "to": "kwa", - "today": "Leo", - "tokenInfoErr": "Hitilafu wakati wa kupata habari ya kijenzi", - "tokensIssued": "Vidakuzi tayari vimetolewa kwa ankara hii.", - "total": "Jumla", - "totalInclFee": "Jumla pamoja na ada", - "trustMint": "Je, unataka kuiamini sarafu hii", - "tryLater": "Tafadhali jaribu tena baadaye.", - "unknownType": "Aina isiyojulikana", - "version": "Toleo", - "willDoLater": "Nitafanya baadaye", - "addOwn": "Ongeza URL ya sarafu", - "yes": "Ndio", - "invalidPubKey": "Kitufe cha umma batili!", - "whatsNostr": "NOSTR ni nini?", - "walletLocked": "Pochi imefungwa", - "explainer1": "eNuts ni pochi ya Lightning inayoshikilia pesa zako na kuruhusu miamala ya faragha na papo hapo kwa kutumia itifaki ya Cashu. Pesa zako zinashikiliwa na sarafu unazoshirikiana nazo, na Ecash inahifadhiwa kwenye kifaa chako.", - "explainer2": "Cashu ni itifaki mpya ya Ecash kwa programu za Bitcoin zinazoshikilia pesa, ambapo sarafu ni nodi za Lightning zinazotekeleza miamala ya Bitcoin na kutoa Ecash. Hakikisha, sarafu haijui malipo yako ya Ecash.", - "explainer3": "Tuongeze sarafu kupitia URL na lipa ankara ya Lightning ili upate Ecash. eNuts inakuongoza, inakuwezesha kupokea kutoka kwa yeyote papo hapo na kwa idhini yako, na kiotomatiki inaongeza sarafu zinazohusiana. Badilisha pesa kati ya sarafu na tuma Ecash mara unapo na salio.", - "send&receive": "Tuma na Pokea", - "contactsNostr": "Mawasiliano & NOSTR", - "nostrExplainer": "Utekelezaji wa NOSTR unaruhusu kusawazisha mawasiliano yako bila haja ya kuingiza kitufe chako cha faragha, kwani tunazalisha kipya kwako. Data yako inaonyeshwa kwa kutumia kitufe cha umma, wakati kitufe kipya cha faragha kinachofuta/fungua ujumbe wako kwa kutumia usimbuaji.", - "send": "Tuma", - "FoundNoLnurl": "Hakuna LNURL iliyopatikana", - "invalidNpub": "NPUB batili!", - "invalidNpubHex": "Hex batili!", - "sendEcashDashboard": "Unda kijenzi cha Cashu na kumtumia yeyote.", - "payInvoiceDashboard": "Tuma pesa kutoka kwa sarafu kwenda kwenye anwani ya Lightning.", - "receiveEcashDashboard": "Bandika na ukomboe kijenzi cha Cashu kutoka ubao wako wa kunakili.", - "receiveEcashNostr": "Ujumbe wa NOSTR", - "receiveEcashNostrHint": "Angalia ujumbe wako wa kibinafsi wa NOSTR kwa Cashu token inayokuja.", - "createInvoiceDashboard": "Pokea Ecash kutoka kwa sarafu kwa kulipa ankara ya Lightning.", - "hideNuts": "Ficha salio lako jumla", - "checkingDms": "Kuangalia ujumbe wako wa moja kwa moja kwa Ecash...", - "clearOverHere": "Kila kitu kipo wazi hapa!", - "totalDmsReceived": "Umepokea {{totalDms}} kitufe cha Cashu.", - "swapNow": "Badilisha sasa", - "swap": "Badilisha", - "emptyMint": "Sarafu haina pesa", - "zapSoon": "Zap zitaongezwa hivi karibuni...", - "enutsPub": "Kitufe cha umma cha eNuts: ", - "seeFullHistory": "Angalia historia kamili ya miamala", - "hideLatestTxs": "Ficha miamala yako ya hivi karibuni", - "hiddenTxs": "Historia ya miamala", - "next": "Ifuatayo", - "skip": "Ruka", - "donateLn": "Toa kwa njia ya Lightning", - "supportDev": "Zap watengenezaji", - "supportHint": "Kila mchango, bila kujali ukubwa wake, una athari kubwa. Skrini ya uthibitisho inaendelea kuandaliwa.", - "newToken": "Kijenzi cha Cashu kipya", - "disclaimerHint": "Taarifa hii ya kutumia inapaswa kuchukuliwa kwa uzito na isipuuzwe au kupunguziwa umuhimu. Tunashukuru kwa kuvutiwa na mradi huu na tutakuwa tukifanya kazi kuuboresha." -}, + "aboutToLeaveTo": "Unaenda kuondoka", + "accept": "Kubali", + "addMemo": "Ongeza maelezo mafupi yenye herufi 21.", + "addEnutsMint": "Tumia sarafu ya eNuts", + "amount": "Kiasi", + "back": "Rudi", + "backToDashboard": "Rudi kwenye dashibodi", + "backupErr": "Kuna tatizo lililotokea wakati wa kuunda kitufe cha kuhifadhi.", + "balance": "Salio", + "balanceAfterTX": "Salio baada ya TX", + "balTooLow": "Salio ni dogo mno", + "bigQrMsg": "Kiasi cha data ni kikubwa sana kwa nambari ya QR.", + "calculateFeeEst": "Kuhesabu ada", + "cancel": "Ghairi", + "cashOut": "Kutoa pesa", + "cashOutFromMint": "Kutoa pesa kutoka sarafu", + "change": "Badilisha", + "claimed": "imewezeshwa", + "claimSuccess": "Imewezeshwa {{amount}} Satoshi:\n{{mintUrl}}\nMaelezo: {{memo}}", + "claimToken": "Imewezesha kijenzi", + "clear": "Ondoa", + "clipboardInvalid": "Ubao wako wa kunakili una kitufe cha Cashu batili!", + "coinSelection": "Uteuzi wa sarafu", + "confirm": "Thibitisha", + "contact": "Mwasiliano", + "mintDelErr": "Haiwezekani kuondoa sarafu na salio lililobaki", + "continue": "Endelea", + "copied": "Imenakiliwa", + "shareInvoice": "Shiriki ankara", + "copyToken": "Nakili kijenzi", + "createBackup": "Unda kitufe cha kuhifadhi", + "createInvoice": "Unda ankara", + "createToken": "Unda Kijenzi", + "createTokenErr": "Haiwezekani kuunda kijenzi cha Cashu. Tafadhali jaribu tena baadaye.", + "eventError": "Kuna tatizo lililotokea wakati wa kuchapisha tukio.", + "createViaLn": "Unda ankara", + "darkMode": "Mode ya giza", + "dbErr": "Kuna tatizo lililotokea wakati wa kuanzisha DB!", + "deepLinkErr": "Kiungo hakikuweza kufunguliwa", + "default": "Chaguo-msingi", + "delHistory": "Futa historia", + "factoryReset": "Kurejesha kiwanda", + "delHistoryErr": "Haiwezekani kufuta historia.", + "delHistoryQ": "Futa historia?", + "resetQ": "Weka upya mkoba wako?", + "delHistoryTxt": "Data haiwezi kurudishwa baadaye.", + "plsRestart": "Tafadhali anzisha tena programu sasa", + "disclaimer": "Taarifa ya kutumia", + "ecashPayment": "Malipo ya Ecash", + "english": "Kiingereza", + "swahili": "Kiswahili", + "enutsRandD": "eNuts Telegram", + "estimatedFees": "Ada zilizokadiriwa", + "estimateFee": "Kadiri ada", + "expired": "Imeisha muda wake", + "fee": "Ada", + "feeErr": "Haiwezekani kuhesabu ada. Je, \"{{input}}\" ni LNURL halali?", + "foundCashuClipboard": "Token ya Cashu imegunduliwa", + "french": "Kifaransa", + "from": "kutoka", + "fromMint": "kutoka kwa sarafu ifuatayo", + "german": "Kijerumani", + "getStarted": "Anza", + "githubIssues": "Ripoti matatizo kwenye Github", + "shareOrReport": "Shiriki maoni au ripoti matatizo", + "historyDeleted": "Historia imefutwa", + "invalidInvoice": "Ankara batili", + "invalidOrSpent": "Kijenzi batili au tayari kimewezeshwa", + "invalidToken": "Kijenzi batili", + "invoice": "Ankara", + "invoiceExpired": "Ankara imeisha muda wake", + "invoiceInclFee": "Ankara pamoja na ada", + "invoiceOrLnurl": "Ankara ya LN au LNURL", + "keysetID": "Kitufe cha Kitambulisho", + "lnInvoice": "Ankara ya Lightning", + "lnPayment": "Malipo ya Lightning", + "mint": "Sarafu", + "minted": "imeshughulikiwa", + "multimintSwap": "Kubadilishana sarafu", + "n/a": "Haitopatikana", + "name": "Jina", + "no": "Hapana", + "noCamAccess": "Hakuna upatikanaji wa kamera", + "noFunds": "Hakuna pesa za kutosha", + "noFundsForFee": "Hakuna pesa za kutosha, tafadhali acha nafasi kwa ada inayowezekana: ~{{fee}} Sat.", + "noMint": "Haijapatikana sarafu", + "noProofsToBackup": "Haijapatikana uthibitisho wa kujenga kitufe cha kuhifadhi.", + "notClaim": "Ikiwa utachagua \"Hapana\", kijenzi hakitawezeshwa", + "notQrCode": "Sio nambari ya QR!", + "noTX": "Hakuna miamala bado", + "optionalMemo": "Maelezo ya hiari", + "paste": "Bandika", + "paymentPending": "Malipo yanangojea", + "paymentSuccess": "Malipo yamefanikiwa!", + "nostrPaymentSuccess": "imetumwa kupitia Nostr", + "paymentType": "Aina ya malipo", + "payWithLn": "Lipa na pochi yako ya LN", + "readme": "Soma maelezo", + "sender": "Mtumaji", + "recipient": "Mpokeaji", + "reqTimeout": "Ombi la mtandao limekwisha muda", + "save": "Hifadhi", + "scanAgain": "Gusa kusoma tena", + "scan": "Soma", + "enutsBeta": "eNuts ni programu ya beta", + "seconds": "sekunde", + "selectAmount": "Chagua kiasi", + "selected": "Kimechaguliwa", + "selectMint": "Chagua sarafu ya kutuma kutoka", + "sendEcash": "Tuma Ecash", + "share": "Shiriki", + "smthWrong": "Kitu kimekwenda vibaya", + "startHint": "Unaweza kutumia sarafu ya eNuts iliyopo au kuongeza sarafu nyingine ya desturi.", + "submitPaymentReq": "Kutoa pesa", + "to": "kwa", + "today": "Leo", + "tokenInfoErr": "Hitilafu wakati wa kupata habari ya kijenzi", + "totalInclFee": "Jumla pamoja na ada", + "trustMint": "Je, unataka kuiamini sarafu hii", + "tryLater": "Tafadhali jaribu tena baadaye.", + "unknownType": "Aina isiyojulikana", + "version": "Toleo", + "willDoLater": "Nitafanya baadaye", + "addMintUrl": "Ongeza URL ya sarafu", + "yes": "Ndio", + "invalidPubKey": "Kitufe cha umma batili!", + "walletLocked": "Pochi imefungwa", + "explainer1": "eNuts ni pochi ya Lightning inayoshikilia pesa zako na kuruhusu miamala ya faragha na papo hapo kwa kutumia itifaki ya Cashu. Pesa zako zinashikiliwa na sarafu unazoshirikiana nazo, na Ecash inahifadhiwa kwenye kifaa chako.", + "explainer2": "Cashu ni itifaki mpya ya Ecash kwa programu za Bitcoin zinazoshikilia pesa, ambapo sarafu ni nodi za Lightning zinazotekeleza miamala ya Bitcoin na kutoa Ecash. Hakikisha, sarafu haijui malipo yako ya Ecash.", + "explainer3": "Tuongeze sarafu kupitia URL na lipa ankara ya Lightning ili upate Ecash. eNuts inakuongoza, inakuwezesha kupokea kutoka kwa yeyote papo hapo na kwa idhini yako, na kiotomatiki inaongeza sarafu zinazohusiana. Badilisha pesa kati ya sarafu na tuma Ecash mara unapo na salio.", + "send&receive": "Tuma na Pokea", + "contactsNostr": "Mawasiliano & Nostr", + "nostrExplainer": "Utekelezaji wa Nostr unaruhusu kusawazisha mawasiliano yako bila haja ya kuingiza kitufe chako cha faragha, kwani tunazalisha kipya kwako. Data yako inaonyeshwa kwa kutumia kitufe cha umma, wakati kitufe kipya cha faragha kinachofuta/fungua ujumbe wako kwa kutumia usimbuaji.", + "send": "Tuma", + "sendEcashDashboard": "Unda kijenzi cha Cashu na kumtumia yeyote.", + "payInvoiceDashboard": "Tuma pesa kutoka kwa sarafu kwenda kwenye anwani ya Lightning.", + "receiveEcashDashboard": "Bandika na ukomboe kijenzi cha Cashu kutoka ubao wako wa kunakili.", + "receiveEcashNostr": "Ujumbe wa Nostr", + "receiveEcashNostrHint": "Angalia ujumbe wako wa kibinafsi wa Nostr kwa Cashu token inayokuja.", + "createInvoiceDashboard": "Pokea Ecash kutoka kwa sarafu kwa kulipa ankara ya Lightning.", + "hideNuts": "Jificha salio", + "checkingDms": "Kuangalia ujumbe wako wa moja kwa moja kwa Ecash...", + "clearOverHere": "Kila kitu kipo wazi hapa!", + "totalDmsReceived": "Umepokea {{totalDms}} kitufe cha Cashu.", + "swapNow": "Badilisha sasa", + "swap": "Badilisha", + "emptyMint": "Sarafu haina pesa", + "zapSoon": "Zap zitaongezwa hivi karibuni...", + "enutsPub": "Kitufe cha umma cha eNuts: ", + "seeFullHistory": "Angalia historia kamili ya miamala", + "hideLatestTxs": "Ficha shughuli", + "next": "Ifuatayo", + "skip": "Ruka", + "donateLn": "Toa kwa njia", + "supportHint": "Kila mchango, bila kujali ukubwa wake, una athari kubwa. Skrini ya uthibitisho inaendelea kuandaliwa.", + "newToken": "Kijenzi cha Cashu kipya", + "disclaimerHint": "Taarifa hii ya kutumia inapaswa kuchukuliwa kwa uzito na isipuuzwe au kupunguziwa umuhimu. Tunashukuru kwa kuvutiwa na mradi huu na tutakuwa tukifanya kazi kuuboresha.", + "searchContacts": "Tafuta au andika NPUB", + "submit": "Tuma", + "clearMetadataCache": "Ondoa metadata ya sarafu", + "clearMetadataCacheHint": "Hifadhi ya metadata?", + "clearImageCache": "Ondoa picha ya sarafu", + "clearImageCacheHint": "ifadhi ya picha?", + "pullRefresh": "Buruta ili kusasisha", + "processTestPay": "Inaprocessisha malipo ya majaribio", + "confirmMint": "Thibitisha sarafu", + "confirmMintHint": "Je, uko hakika unataka kuongeza sarafu hii?", + "confirmNpub": "Thibitisha NPUB", + "confirmNpubHint": "Je, uko hakika unataka kuongeza NPUB hii?", + "npubAlreadyAdded": "NPUB tayari imeongezwa", + "replaceNpub": "Je, unataka kubadilisha NPUB hii?", + "replaceNpubTxt": "NPUB hii tayari imeongezwa. Je, unataka kubadilisha?", + "npubAdded": "NPUB imeongezwa!", + "showContacts": "Onyesha mawasiliano", + "topUpNow": "Weka pesa sasa", + "scanAnother": "Soma nambari nyingine ya QR", + "deleteNpub": "Futa NPUB?", + "delNpubHint": "Mawasiliano yote na data zinazohusiana zitafutwa.", + "addNewNpub": "Ongeza NPUB mpya?", + "addNpubHint": "Hii itafuta data yote inayohusiana na NPUB yako ya sasa." + }, "error": { - "addAllMintIdsErr": "Kumetokea kosa wakati wa kupata vitambulisho vya keyset kutoka kwa sarafu", - "checkSpendableErr": "Kumetokea kosa wakati wa kuangalia ikiwa kijenzi kina pesa za kutumiwa", - "claimTokenErr": "Kumetokea kosa wakati wa kudai kijenzi", - "header": "Kumetokea kosa", - "meltingErr": "Kumetokea kosa wakati wa mchakato wa kuyeyusha", - "msg": "Tunasikitika kwamba umekutana na shida hii. Unaweza kutusaidia kuboresha programu kwa kuchukua picha ya skrini na kutengeneza ripoti fupi ya kosa.", - "reportBug": "Ripoti kosa", - "requestMintErr": "Kumetokea kosa wakati wa kuomba ankara kutoka kwa sarafu.", - "stackNA": "Kosa la mtiririko wa maelezo haipo", - "generalMeltingErr": "Sarafu haikuweza kupata njia sahihi ya malipo ya Lightning kwa nodi yako.", - "invoiceFromLnurlError": "Haiwezi kutengeneza ankara kwa kutumia LNURL yako." -}, -"history": { - "checkSpent": "Angalia ikiwa kijenzi kimekwisha tumika", - "isPending": "Kijenzi kinaendelea", - "isSpent": "Kijenzi kimekwisha tumika", - "justNow": "Sasa hivi", - "memo": "Memo", - "nHrsAgo": "{{hrs}} masaa yaliyopita", - "nMinsAgo": "{{mins}} dakika zilizopita", - "noMemo": "Hakuna memo", - "oneHrAgo": "Saa 1 iliyopita", - "oneMinAgo": "Dakika 1 iliyopita", - "paymentHash": "Hash ya malipo", - "settleTime": "Wakati wa kufafanua", - "showQr": "Onyesha nambari ya QR" -}, -"mints": { - "addCustomName": "Ongeza jina la desturi", - "additionalInfo": "Maelezo zaidi", - "addMintBtn": "Ongeza sarafu", - "addNewMint": "Ongeza sarafu mpya", - "atLeast2Mints": "Unahitaji angalau sarafu 2 kufanya kubadilishana kwa multimint.", - "awaitingInvoice": "Inangoja ankara", - "backupNotCreated": "Kitufe cha kuhifadhi hakikuweza kuundwa.", - "cashOutAmountHint": "Ada za Lightning zinaweza kutokea, kwa hivyo ada ya makadirio imeongezwa, na ada zozote zilizolipwa zitarudishwa.", - "checkProofs": "Angalia uthibitisho", - "checkProofsQ": "Una uhakika kwamba unataka kuangalia uthibitisho wote?", - "checkProofsTxt": "Hii itaangalia ikiwa kijenzi chako kinaweza kutumiwa na vinginevyo kufuta.", - "chooseMeltMintHint": "Chagua sarafu ambayo ungependa kutoa pesa zako kutoka kwake.", - "chooseMintHint": "Chagua sarafu ambayo ungependa kupokea Ecash. Sarafu inakuwa mlinzi wa pesa zako.", - "chooseTarget": "Chagua mpokeaji wa malipo.", - "coinSelectionHint": "Salio lako la Ecash kimsingi ni mkusanyiko wa seti za sarafu. Uchaguzi wa sarafu unaruhusu kuchagua sarafu unayotaka kutumia. Seti za sarafu zinapewa kitambulisho cha keyset na sarafu, ambacho kinaweza kubadilika kwa wakati. Seti za keyset zilizoongezwa hivi karibuni zinaonekana kwa rangi ya kijani. Ni vyema kutumia seti za zamani kwanza.", - "creatingEcashToken": "Kijenzi cha Cashu kinachojengwa", - "sendingEcashViaNostr": "Kutuma kijenzi cha Cashu kupitia NOSTR!", - "customName": "Jina la desturi", - "cutomNameAdded": "Jina la desturi limeongezwa", - "dangerZone": "Eneo hatari", - "deletedProofs": "{{proofsToDel}} uthibitisho umeondolewa.", - "delMint": "Futa sarafu", - "delMintHint": "Kufuta sarafu na salio kunaweza kusababisha salio la jumla lisilotarajiwa. Utahifadhi kijenzi kinachohusiana na sarafu, lakini hautaweza kuvirejesha hadi uongeze tena sarafu hiyo.", - "delMintSure": "Una uhakika kwamba unataka kuondoa sarafu hii?", - "ecashAmountHint": "Chagua kiasi cha Ecash unachotaka kutuma.", - "editMintName": "Hariri jina la sarafu", - "errDelProofs": "Kumetokea kosa wakati wa kufuta uthibitisho.", - "funds": "Pesa", - "general": "Jumla", - "importantNotice": "Taarifa muhimu", - "inputField": "LN ankara au LNURL", - "invalidUrl": "URL batili", - "invoiceAmountHint": "Chagua kiasi cha Ecash unachotaka kupokea. Sarafu itaunda ankara ambayo utalazimika kulipa kwa kutumia mkoba wa Lightning.", - "invoiceHint": "Hii inaweza kuchukua sekunde kadhaa...", - "invoiceInputHint": "Tafadhali elewa kuwa ada za Lightning zinaweza kutokea. Ada iliyolipwa zaidi itarudishwa kwako.", - "lowBackupBal": "Sarafu haina pesa za kuhifadhi!", - "lowBal": "Salio la sarafu limepungua sana!", - "meltAddressbookHint": "Chagua LNURL yako mwenyewe au mawasiliano mengine yoyote kama mpokeaji wa malipo.", - "meltInputHint": "Unda ankara ya Lightning au weka LNURL kwenye uga wa kuingiza.", - "meltScanQRHint": "Unda ankara ya Lightning kwa kutumia kifaa kingine na ui-scan tu.", - "meltSwapHint": "Chagua sarafu nyingine kutoka kwa orodha yako ya sarafu za kuaminika kama mpokeaji wa malipo.", - "copyShareToken": "Nakili & Shiriki kwa haraka", - "copyShareTokenHint": "Nakili kitufe kilichozalishwa na kishiriki kupitia programu ya ujumbe yoyote.", - "sendNostr": "Tuma kupitia NOSTR", - "sendNostrHint": "Tuma Ecash moja kwa moja kwa moja kwa moja kwa moja kupitia NOSTR.", - "meltToken": "Kutoa", - "mintConnectionFail": "Unganisho kwa sarafu limekataliwa", - "mintInfo": "Maelezo ya sarafu", - "mintNewTokens": "Sarafu Mpya za Kuchonga", - "mintNoContact": "Sarafu haina maelezo ya mawasiliano", - "mntAlreadyAdded": "Sarafu tayari imeongezwa", - "newMintSuccess": "{{mintUrl}} imeongezwa kwa mafanikio", - "noAdditional": "Sarafu hii haina maelezo zaidi", - "noInfo": "Sarafu haina maelezo", - "noProofs": "Hakuna uthibitisho uliopatikana kwa sarafu hii.", - "paymentOverview": "Muhtasari wa malipo", - "performingSwap": "Inatekeleza multimint-swap", - "processingPaymentByMint": "Sarafu inachakata malipo kulingana na ombi lako", - "processingSwap": "Inatekeleza multimint-swap kulingana na ombi lako", - "pubKey": "Kitufe cha umma", - "removeDefault": "Ondoa kutoka kwa chaguo-msingi", - "scanQR": "Skeni nambari ya QR", - "sendEcashHint": "Chagua sarafu ambayo ungependa kutumia kujenga kijenzi cha Cashu.", - "setDefault": "Weka kama sarafu chaguo-msingi", - "supportedNuts": "NUTs zinazoungwa mkono", - "swapFail": "Haiwezi kutekeleza multimint-swap", - "swapNotAllowed": "Kubadilishana kutoka kwa sarafu ya majaribio sio kawaida.", - "swapRisk": "Badilisha kijenzi kutoka kwa sarafu moja hadi kwa sarafu nyingine. Kwa muda mfupi, utakuwa ukiamini sarafu mbili kwa wakati mmoja. Kuna mambo yanayoweza kwenda vibaya. Tumia kwa hatari yako mwenyewe.", - "swapSuccess": "Kubadilisha kwa mafanikio {{amount}} Satoshi kutoka {{srcMint}} hadi {{targetMint}}", - "testMintHint": "Hii ni sarafu ya majaribio kucheza nayo. Je, uiongeze kwa njia yoyote?", - "trustMintSure": "Una uhakika kwamba unataka kuamini sarafu hii?", - "updatedDefault": "Imesasishwa kama sarafu chaguo-msingi", - "newMintAdded": "Sarafu imeongezwa!", - "newMintAddedQuestion": "Unataka kupokea Ecash kutoka kwake sasa?" -}, -"topNav": { - "about": "Kuhusu sisi", - "addressBook": "Anuani kitabu", - "advancedFunctions": "Vipengele vya juu", - "backup": "Hifadhi", - "display": "Onyesha", - "history": "Historia ya shughuli", - "language": "Lugha", - "mintBackup": "Hifadhi pesa", - "mintSettings": "Usimamizi wa sarafu", - "security": "Usalama", - "settings": "Chaguo", - "privacy": "Faragha", - "general": "Jumla" -}, -"wallet": { - "cashuContent": "Mwandishi wa Cashu sio mtaalam wa kificho na itifaki bado inapitiwa upya. Inasababisha wasiwasi juu ya uwezekano wa kasoro za kifataliki. Kwa hivyo, Cashu bado sio tayari kwa matumizi.", - "cashuExperiment": "Cashu bado ni majaribio.", - "claiming": "Inadaiwa...", - "createLnInvoice": "Unda ankara ya Lightning", - "custodialRisk": "Hatari ya usimamizi, sarafu wanashikilia funguo.", - "custodialRiskContent": "Na eNuts, hauwezi kushika funguo za Bitcoin; sarafu inatenda kama mlinzi. Kwa hivyo, ikiwa huna imani na sarafu, ni vyema kuepuka kuingiliana nayo.", - "disclaimer": "Tafadhali kumbuka kuwa hii ni toleo la beta katika hatua za awali na bado inafanyiwa majaribio kabla ya kutolewa rasmi. Programu na yaliyomo yote yanayopatikana kwenye programu hiyo yanatolewa kulingana na kama ilivyo na kama inavyopatikana. Hatutoi dhamana yoyote, iwe ya moja kwa moja au ya kuelekeza, kuhusu usahihi au utumiaji wa programu au yaliyomo yake.", - "enutsDisclaimer": "eNuts ni programu ya beta ambayo bado haijakamilika.", - "lossContent": "Vijenzi vya Cashu ni vijenzi vinavyobebwa, ikimaanisha kwamba ikiwa utapoteza ufikiaji wao, hakuna chaguo la kurejesha lililotekelezwa bado. eNuts inahifadhi vijenzi vyako kwenye kifaa chako. Kabla ya kufuta programu, hakikisha unafanya nakala rudufu ya vijenzi vyako.", - "lossOfTokens": "Upotevu wa fedha.", - "enutsMint": "Sarafu ya eNuts ya chaguo-msingi", - "mintDisclaimer": "Matumizi ya sarafu ya eNuts ya chaguo-msingi yanategemea kabisa hatari yako mwenyewe. Tunahimiza sana utumie kwa tahadhari na tu kwa madhumuni ya majaribio au elimu. Hakuna dhamana kuhusu utendaji wake, usalama, au upatikanaji, na inaweza kutoweka bila taarifa. Amana zilizofanywa kwa sarafu hii zinapaswa kuchukuliwa kama michango na huenda isiweze kurudishwa, labda kutumika kwa maendeleo zaidi. Kuwa makini na hatari zinazohusiana na programu ya beta, na ni jukumu lako kuhifadhi mali yako wakati unatumia sarafu hii.", - "paidOut": "Imelipwa", - "pasteToken": "Bandika na ukomboe Ecash", - "payInvoice": "Lipa ankara", - "payLNInvoice": "Lipa ankara ya Lightning", - "receive": "Pokea", - "receiveHint": "Bandika Ecash kutoka kwa ubao wa kunakili au jaza sarafu.", - "send": "Tuma", - "sendHint": "Tuma Ecash au toa pesa kutoka kwa sarafu.", - "submitIssue": "Tuma suala kwenye GitHub" -} + "checkSpendableErr": "Kumetokea kosa wakati wa kuangalia ikiwa kijenzi kina pesa za kutumiwa", + "claimTokenErr": "Kumetokea kosa wakati wa kudai kijenzi", + "header": "Kumetokea kosa", + "msg": "Tunasikitika kwamba umekutana na shida hii. Unaweza kutusaidia kuboresha programu kwa kuchukua picha ya skrini na kutengeneza ripoti fupi ya kosa.", + "reportBug": "Ripoti kosa", + "requestMintErr": "Kumetokea kosa wakati wa kuomba ankara kutoka kwa sarafu.", + "stackNA": "Kosa la mtiririko wa maelezo haipo", + "generalMeltingErr": "Sarafu haikuweza kupata njia sahihi ya malipo ya Lightning kwa nodi yako.", + "invoiceFromLnurlError": "Haiwezi kutengeneza ankara kwa kutumia LNURL yako.", + "invoiceScanError": "Hakuna uwezekano wa kutumia ankara kutoka nambari ya QR iliyosomwa." + }, + "history": { + "checkSpent": "Angalia ikiwa kijenzi kimekwisha tumika", + "isPending": "Kijenzi kinaendelea", + "isSpent": "Kijenzi kimekwisha tumika", + "justNow": "Sasa hivi", + "memo": "Memo", + "nHrsAgo": "{{hrs}} masaa yaliyopita", + "nMinsAgo": "{{mins}} dakika zilizopita", + "noMemo": "Hakuna memo", + "oneHrAgo": "Saa 1 iliyopita", + "oneMinAgo": "Dakika 1 iliyopita", + "paymentHash": "Hash ya malipo", + "settleTime": "Wakati wa kufafanua", + "showQr": "Onyesha nambari ya QR" + }, + "mints": { + "addCustomName": "Ongeza jina la desturi", + "additionalInfo": "Maelezo zaidi", + "addMintBtn": "Ongeza sarafu", + "addNewMint": "Ongeza sarafu mpya", + "atLeast2Mints": "Unahitaji angalau sarafu 2 kufanya kubadilishana kwa multimint.", + "awaitingInvoice": "Inangoja ankara", + "backupNotCreated": "Kitufe cha kuhifadhi hakikuweza kuundwa.", + "cashOutAmountHint": "Ada za Lightning zinaweza kutokea, kwa hivyo ada ya makadirio imeongezwa, na ada zozote zilizolipwa zitarudishwa.", + "checkProofs": "Angalia uthibitisho", + "checkProofsQ": "Kuangalia uthibitisho wote?", + "checkProofsTxt": "Hii itaangalia ikiwa kijenzi chako kinaweza kutumiwa na vinginevyo kufuta.", + "chooseMeltMintHint": "Chagua sarafu ambayo ungependa kutoa pesa zako kutoka kwake.", + "chooseMintHint": "Chagua sarafu ambayo ungependa kupokea Ecash. Sarafu inakuwa mlinzi wa pesa zako.", + "chooseTarget": "Chagua mpokeaji wa malipo.", + "coinSelectionHint": "Salio lako la Ecash kimsingi ni mkusanyiko wa seti za sarafu. Uchaguzi wa sarafu unaruhusu kuchagua sarafu unayotaka kutumia. Seti za sarafu zinapewa kitambulisho cha keyset na sarafu, ambacho kinaweza kubadilika kwa wakati. Seti za keyset zilizoongezwa hivi karibuni zinaonekana kwa rangi ya kijani. Ni vyema kutumia seti za zamani kwanza.", + "creatingEcashToken": "Kijenzi cha Cashu kinachojengwa", + "sendingEcashViaNostr": "Kutuma kijenzi cha Cashu kupitia Nostr!", + "customName": "Jina la desturi", + "cutomNameAdded": "Jina la desturi limeongezwa", + "dangerZone": "Eneo hatari", + "deletedProofs": "{{proofsToDel}} uthibitisho umeondolewa.", + "delMint": "Futa sarafu", + "delMintSure": "Una uhakika kwamba unataka kuondoa sarafu hii?", + "ecashAmountHint": "Chagua kiasi cha Ecash unachotaka kutuma.", + "editMintName": "Hariri jina la sarafu", + "errDelProofs": "Kumetokea kosa wakati wa kufuta uthibitisho.", + "funds": "Pesa", + "general": "Jumla", + "importantNotice": "Taarifa muhimu", + "inputField": "LN ankara au LNURL", + "invalidUrl": "URL batili", + "invoiceAmountHint": "Chagua kiasi cha Ecash unachotaka kupokea. Sarafu itaunda ankara ambayo utalazimika kulipa kwa kutumia mkoba wa Lightning.", + "invoiceHint": "Hii inaweza kuchukua sekunde kadhaa...", + "lowBackupBal": "Sarafu haina pesa za kuhifadhi!", + "lowBal": "Salio la sarafu limepungua sana!", + "meltAddressbookHint": "Chagua LNURL yako mwenyewe au mawasiliano mengine yoyote kama mpokeaji wa malipo.", + "meltInputHint": "Unda ankara ya Lightning au weka LNURL kwenye uga wa kuingiza.", + "meltScanQRHint": "Unda ankara ya Lightning kwa kutumia kifaa kingine na ui-scan tu.", + "meltSwapHint": "Chagua sarafu nyingine kutoka kwa orodha yako ya sarafu za kuaminika kama mpokeaji wa malipo.", + "copyShareToken": "Nakili & Shiriki kwa haraka", + "copyShareTokenHint": "Nakili kitufe kilichozalishwa na kishiriki kupitia programu ya ujumbe yoyote.", + "sendNostr": "Tuma kupitia Nostr", + "sendNostrHint": "Tuma Ecash moja kwa moja kwa moja kwa moja kwa moja kupitia Nostr.", + "meltToken": "Kutoa", + "mintConnectionFail": "Unganisho kwa sarafu limekataliwa", + "mintInfo": "Maelezo ya sarafu", + "mintNewTokens": "Sarafu Mpya za Kuchonga", + "mintNoContact": "Sarafu haina maelezo ya mawasiliano", + "mntAlreadyAdded": "Sarafu tayari imeongezwa", + "noAdditional": "Sarafu hii haina maelezo zaidi", + "noInfo": "Sarafu haina maelezo", + "noProofs": "Hakuna uthibitisho uliopatikana kwa sarafu hii.", + "paymentOverview": "Muhtasari wa malipo", + "processingPaymentByMint": "Sarafu inachakata malipo kulingana na ombi lako", + "processingSwap": "Inatekeleza multimint-swap kulingana na ombi lako", + "pubKey": "Kitufe cha umma", + "removeDefault": "Ondoa kutoka kwa chaguo-msingi", + "scanQR": "Skeni nambari ya QR", + "sendEcashHint": "Chagua sarafu ambayo ungependa kutumia kujenga kijenzi cha Cashu.", + "setDefault": "Weka kama sarafu chaguo-msingi", + "supportedNuts": "NUTs zinazoungwa mkono", + "swapNotAllowed": "Kubadilishana kutoka kwa sarafu ya majaribio sio kawaida.", + "testMintHint": "Hii ni sarafu ya majaribio kucheza nayo. Je, uiongeze kwa njia yoyote?", + "trustMintSure": "Una uhakika kwamba unataka kuamini sarafu hii?", + "updatedDefault": "Imesasishwa kama sarafu chaguo-msingi", + "newMintAdded": "Sarafu imeongezwa!", + "newMintAddedQuestion": "Unataka kupokea Ecash kutoka kwake sasa?", + "selectSwapReceiver": "Chagua sarafu kama mpokeaji wa malipo." + }, + "topNav": { + "about": "Kuhusu sisi", + "addressBook": "Anuani kitabu", + "advancedFunctions": "Vipengele vya juu", + "backup": "Hifadhi", + "display": "Onyesha", + "history": "Historia ya shughuli", + "language": "Lugha", + "mintBackup": "Hifadhi pesa", + "mintSettings": "Usimamizi wa sarafu", + "security": "Usalama", + "settings": "Chaguo", + "privacy": "Faragha", + "general": "Jumla" + }, + "wallet": { + "cashuContent": "Mwandishi wa Cashu sio mtaalam wa kificho na itifaki bado inapitiwa upya. Inasababisha wasiwasi juu ya uwezekano wa kasoro za kifataliki. Kwa hivyo, Cashu bado sio tayari kwa matumizi.", + "cashuExperiment": "Cashu bado ni majaribio.", + "claiming": "Inadaiwa...", + "processingInvoice": "Processing invoice...", + "createLnInvoice": "Jaza", + "custodialRisk": "Hatari ya usimamizi, sarafu wanashikilia funguo.", + "custodialRiskContent": "Na eNuts, hauwezi kushika funguo za Bitcoin; sarafu inatenda kama mlinzi. Kwa hivyo, ikiwa huna imani na sarafu, ni vyema kuepuka kuingiliana nayo.", + "disclaimer": "Tafadhali kumbuka kuwa hii ni toleo la beta katika hatua za awali na bado inafanyiwa majaribio kabla ya kutolewa rasmi. Programu na yaliyomo yote yanayopatikana kwenye programu hiyo yanatolewa kulingana na kama ilivyo na kama inavyopatikana. Hatutoi dhamana yoyote, iwe ya moja kwa moja au ya kuelekeza, kuhusu usahihi au utumiaji wa programu au yaliyomo yake.", + "enutsDisclaimer": "eNuts ni programu ya beta ambayo bado haijakamilika.", + "lossContent": "Vijenzi vya Cashu ni vijenzi vinavyobebwa, ikimaanisha kwamba ikiwa utapoteza ufikiaji wao, hakuna chaguo la kurejesha lililotekelezwa bado. eNuts inahifadhi vijenzi vyako kwenye kifaa chako. Kabla ya kufuta programu, hakikisha unafanya nakala rudufu ya vijenzi vyako.", + "lossOfTokens": "Upotevu wa fedha.", + "enutsMint": "Sarafu ya eNuts ya chaguo-msingi", + "mintDisclaimer": "Matumizi ya sarafu ya eNuts ya chaguo-msingi yanategemea kabisa hatari yako mwenyewe. Tunahimiza sana utumie kwa tahadhari na tu kwa madhumuni ya majaribio au elimu. Hakuna dhamana kuhusu utendaji wake, usalama, au upatikanaji, na inaweza kutoweka bila taarifa. Amana zilizofanywa kwa sarafu hii zinapaswa kuchukuliwa kama michango na huenda isiweze kurudishwa, labda kutumika kwa maendeleo zaidi. Kuwa makini na hatari zinazohusiana na programu ya beta, na ni jukumu lako kuhifadhi mali yako wakati unatumia sarafu hii.", + "paidOut": "Imelipwa", + "pasteToken": "Pokea Ecash", + "payInvoice": "Lipa ankara", + "payLNInvoice": "Lipa ankara ya Lightning", + "receive": "Pokea", + "send": "Tuma" + } } diff --git a/package-lock.json b/package-lock.json index e74ffc40..7149d978 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "enuts", - "version": "0.0.4", + "version": "0.0.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "enuts", - "version": "0.0.4", + "version": "0.0.5", "license": "AGPL-3.0-only", "dependencies": { "@cashu/cashu-ts": "^0.8.1", @@ -15,12 +15,12 @@ "@react-native-async-storage/async-storage": "1.18.2", "@react-native-community/netinfo": "9.3.10", "@react-navigation/core": "^6.4.9", - "@react-navigation/native": "^6.1.7", - "@react-navigation/native-stack": "^6.9.13", + "@react-navigation/native": "^6.1.8", + "@react-navigation/native-stack": "^6.9.14", "@sentry/react-native": "5.5.0", "@shopify/flash-list": "1.4.3", - "crypto-js": "4.1.1", - "expo": "^49.0.9", + "crypto-js": "4.2.0", + "expo": "^49.0.13", "expo-application": "~5.3.0", "expo-asset": "~8.10.1", "expo-barcode-scanner": "~12.5.3", @@ -30,20 +30,23 @@ "expo-crypto": "~12.4.1", "expo-device": "~5.4.0", "expo-file-system": "~15.4.4", - "expo-insights": "^0.2.0", + "expo-image": "~1.3.4", + "expo-insights": "~0.2.0", "expo-localization": "~14.3.0", "expo-secure-store": "~12.3.1", "expo-splash-screen": "~0.20.5", "expo-sqlite": "~11.3.3", "expo-status-bar": "~1.6.0", - "expo-updates": "~0.18.13", + "expo-updates": "~0.18.17", "i18next": "^23.5.1", "lottie-react-native": "5.1.6", - "nostr-tools": "^1.15.0", + "nostr-tools": "^1.16.0", "react": "^18.2.0", - "react-i18next": "^13.2.2", - "react-native": "0.72.4", + "react-i18next": "^13.3.0", + "react-native": "0.72.6", + "react-native-gesture-handler": "~2.12.0", "react-native-onboarding-swiper": "^1.2.0", + "react-native-popup-menu": "^0.16.1", "react-native-qrcode-svg": "^6.2.0", "react-native-reanimated": "~3.3.0", "react-native-safe-area-context": "4.6.3", @@ -57,25 +60,25 @@ "@babel/plugin-proposal-private-methods": "^7.18.6", "@getify/eslint-plugin-proper-arrows": "^11.0.3", "@testing-library/react-native": "^12.3.0", - "@types/babel__core": "^7.20.1", + "@types/babel__core": "^7.20.2", "@types/crypto-js": "^4.1.2", - "@types/eslint": "^8.44.2", - "@types/jest": "^29.5.4", - "@types/node": "^20.6.0", - "@types/react": "~18.2.21", - "@types/react-native-onboarding-swiper": "^1.1.4", - "@types/sqlite3": "^3.1.8", - "@typescript-eslint/eslint-plugin": "^6.6.0", - "@typescript-eslint/parser": "^6.6.0", + "@types/eslint": "^8.44.4", + "@types/jest": "^29.5.5", + "@types/node": "^20.8.6", + "@types/react": "~18.2.28", + "@types/react-native-onboarding-swiper": "^1.1.5", + "@types/sqlite3": "^3.1.9", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", "dotenv": "^16.3.1", - "eslint": "^8.49.0", - "eslint-plugin-deprecate": "^0.8.2", + "eslint": "^8.51.0", + "eslint-plugin-deprecate": "^0.8.4", "eslint-plugin-es5": "^1.5.0", "eslint-plugin-eslint-plugin": "^5.1.1", "eslint-plugin-html": "^7.1.0", "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jest": "^27.2.3", - "eslint-plugin-jsdoc": "^46.6.0", + "eslint-plugin-jest": "^27.4.2", + "eslint-plugin-jsdoc": "^46.8.2", "eslint-plugin-json": "^3.1.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.1.1", @@ -83,10 +86,10 @@ "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-tsdoc": "^0.2.17", - "expo-dev-client": "~2.4.10", - "jest": "^29.6.4", + "expo-dev-client": "~2.4.11", + "jest": "^29.7.0", "jest-expo": "^49.0.0", - "metro-config": "^0.79.0", + "metro-config": "^0.79.1", "prettier": "^3.0.3", "reactotron-react-native": "^5.0.3", "ts-jest": "^29.1.1", @@ -2159,6 +2162,17 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "dependencies": { + "@types/hammerjs": "^2.0.36" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@es-joy/jsdoccomment": { "version": "0.40.1", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", @@ -2248,9 +2262,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", - "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -2280,9 +2294,9 @@ } }, "node_modules/@expo/cli": { - "version": "0.10.12", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.10.12.tgz", - "integrity": "sha512-sc4IkRBbm6HO1Z/0JeJMY/sJiyCAfHyt2EOHhAY8jYfbXr/aqCIGsPrwEGQAfGpsE2OPvyzRa+byZG03HRPTkQ==", + "version": "0.10.13", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.10.13.tgz", + "integrity": "sha512-8ciyz+yIDih6zCNMWK0IyEv411W7vej/TaWIFGarogPVbFokXrUKr0aKoQG1RU1SLlY4eUpHakbIzqog+rhJdQ==", "dependencies": { "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "0.0.5", @@ -3191,9 +3205,9 @@ } }, "node_modules/@expo/package-manager": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.1.1.tgz", - "integrity": "sha512-NxtfIA25iEiNwMT+s8PEmdKzjyfWd2qkCLJkf6jKZGaH9c06YXyOAi2jvCyM8XuSzJz4pcEH8kz1HkJAInjB7Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.1.2.tgz", + "integrity": "sha512-JI9XzrxB0QVXysyuJ996FPCJGDCYRkbUvgG4QmMTTMFA1T+mv8YzazC3T9C1pHQUAAveVCre1+Pqv0nZXN24Xg==", "dependencies": { "@expo/json-file": "^8.2.37", "@expo/spawn-async": "^1.5.0", @@ -4763,19 +4777,19 @@ } }, "node_modules/@react-native-community/cli": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.6.tgz", - "integrity": "sha512-bdwOIYTBVQ9VK34dsf6t3u6vOUU5lfdhKaAxiAVArjsr7Je88Bgs4sAbsOYsNK3tkE8G77U6wLpekknXcanlww==", - "dependencies": { - "@react-native-community/cli-clean": "11.3.6", - "@react-native-community/cli-config": "11.3.6", - "@react-native-community/cli-debugger-ui": "11.3.6", - "@react-native-community/cli-doctor": "11.3.6", - "@react-native-community/cli-hermes": "11.3.6", - "@react-native-community/cli-plugin-metro": "11.3.6", - "@react-native-community/cli-server-api": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", - "@react-native-community/cli-types": "11.3.6", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.7.tgz", + "integrity": "sha512-Ou8eDlF+yh2rzXeCTpMPYJ2fuqsusNOhmpYPYNQJQ2h6PvaF30kPomflgRILems+EBBuggRtcT+I+1YH4o/q6w==", + "dependencies": { + "@react-native-community/cli-clean": "11.3.7", + "@react-native-community/cli-config": "11.3.7", + "@react-native-community/cli-debugger-ui": "11.3.7", + "@react-native-community/cli-doctor": "11.3.7", + "@react-native-community/cli-hermes": "11.3.7", + "@react-native-community/cli-plugin-metro": "11.3.7", + "@react-native-community/cli-server-api": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", + "@react-native-community/cli-types": "11.3.7", "chalk": "^4.1.2", "commander": "^9.4.1", "execa": "^5.0.0", @@ -4793,11 +4807,11 @@ } }, "node_modules/@react-native-community/cli-clean": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.6.tgz", - "integrity": "sha512-jOOaeG5ebSXTHweq1NznVJVAFKtTFWL4lWgUXl845bCGX7t1lL8xQNWHKwT8Oh1pGR2CI3cKmRjY4hBg+pEI9g==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.7.tgz", + "integrity": "sha512-twtsv54ohcRyWVzPXL3F9VHGb4Qhn3slqqRs3wEuRzjR7cTmV2TIO2b1VhaqF4HlCgNd+cGuirvLtK2JJyaxMg==", "dependencies": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", "prompts": "^2.4.0" @@ -4945,11 +4959,11 @@ } }, "node_modules/@react-native-community/cli-config": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.6.tgz", - "integrity": "sha512-edy7fwllSFLan/6BG6/rznOBCLPrjmJAE10FzkEqNLHowi0bckiAPg1+1jlgQ2qqAxV5kuk+c9eajVfQvPLYDA==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.7.tgz", + "integrity": "sha512-FDBLku9xskS+bx0YFJFLCmUJhEZ4/MMSC9qPYOGBollWYdgE7k/TWI0IeYFmMALAnbCdKQAYP5N29N55Tad8lg==", "dependencies": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "cosmiconfig": "^5.1.0", "deepmerge": "^4.3.0", @@ -5022,22 +5036,22 @@ } }, "node_modules/@react-native-community/cli-debugger-ui": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.6.tgz", - "integrity": "sha512-jhMOSN/iOlid9jn/A2/uf7HbC3u7+lGktpeGSLnHNw21iahFBzcpuO71ekEdlmTZ4zC/WyxBXw9j2ka33T358w==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.7.tgz", + "integrity": "sha512-aVmKuPKHZENR8SrflkMurZqeyLwbKieHdOvaZCh1Nn/0UC5CxWcyST2DB2XQboZwsvr3/WXKJkSUO+SZ1J9qTQ==", "dependencies": { "serve-static": "^1.13.1" } }, "node_modules/@react-native-community/cli-doctor": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.6.tgz", - "integrity": "sha512-UT/Tt6omVPi1j6JEX+CObc85eVFghSZwy4GR9JFMsO7gNg2Tvcu1RGWlUkrbmWMAMHw127LUu6TGK66Ugu1NLA==", - "dependencies": { - "@react-native-community/cli-config": "11.3.6", - "@react-native-community/cli-platform-android": "11.3.6", - "@react-native-community/cli-platform-ios": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.7.tgz", + "integrity": "sha512-YEHUqWISOHnsl5+NM14KHelKh68Sr5/HeEZvvNdIcvcKtZic3FU7Xd1WcbNdo3gCq5JvzGFfufx02Tabh5zmrg==", + "dependencies": { + "@react-native-community/cli-config": "11.3.7", + "@react-native-community/cli-platform-android": "11.3.7", + "@react-native-community/cli-platform-ios": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -5321,12 +5335,12 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/@react-native-community/cli-hermes": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.6.tgz", - "integrity": "sha512-O55YAYGZ3XynpUdePPVvNuUPGPY0IJdctLAOHme73OvS80gNwfntHDXfmY70TGHWIfkK2zBhA0B+2v8s5aTyTA==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.7.tgz", + "integrity": "sha512-chkKd8n/xeZkinRvtH6QcYA8rjNOKU3S3Lw/3Psxgx+hAYV0Gyk95qJHTalx7iu+PwjOOqqvCkJo5jCkYLkoqw==", "dependencies": { - "@react-native-community/cli-platform-android": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-platform-android": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -5397,11 +5411,11 @@ } }, "node_modules/@react-native-community/cli-platform-android": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.6.tgz", - "integrity": "sha512-ZARrpLv5tn3rmhZc//IuDM1LSAdYnjUmjrp58RynlvjLDI4ZEjBAGCQmgysRgXAsK7ekMrfkZgemUczfn9td2A==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.7.tgz", + "integrity": "sha512-WGtXI/Rm178UQb8bu1TAeFC/RJvYGnbHpULXvE20GkmeJ1HIrMjkagyk6kkY3Ej25JAP2R878gv+TJ/XiRhaEg==", "dependencies": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", "glob": "^7.1.3", @@ -5550,11 +5564,11 @@ } }, "node_modules/@react-native-community/cli-platform-ios": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.6.tgz", - "integrity": "sha512-tZ9VbXWiRW+F+fbZzpLMZlj93g3Q96HpuMsS6DRhrTiG+vMQ3o6oPWSEEmMGOvJSYU7+y68Dc9ms2liC7VD6cw==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.7.tgz", + "integrity": "sha512-Z/8rseBput49EldX7MogvN6zJlWzZ/4M97s2P+zjS09ZoBU7I0eOKLi0N9wx+95FNBvGQQ/0P62bB9UaFQH2jw==", "dependencies": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-xml-parser": "^4.0.12", @@ -5764,20 +5778,20 @@ } }, "node_modules/@react-native-community/cli-plugin-metro": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.6.tgz", - "integrity": "sha512-D97racrPX3069ibyabJNKw9aJpVcaZrkYiEzsEnx50uauQtPDoQ1ELb/5c6CtMhAEGKoZ0B5MS23BbsSZcLs2g==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.7.tgz", + "integrity": "sha512-0WhgoBVGF1f9jXcuagQmtxpwpfP+2LbLZH4qMyo6OtYLWLG13n2uRep+8tdGzfNzl1bIuUTeE9yZSAdnf9LfYQ==", "dependencies": { - "@react-native-community/cli-server-api": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-server-api": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", - "metro": "0.76.7", - "metro-config": "0.76.7", - "metro-core": "0.76.7", - "metro-react-native-babel-transformer": "0.76.7", - "metro-resolver": "0.76.7", - "metro-runtime": "0.76.7", + "metro": "0.76.8", + "metro-config": "0.76.8", + "metro-core": "0.76.8", + "metro-react-native-babel-transformer": "0.76.8", + "metro-resolver": "0.76.8", + "metro-runtime": "0.76.8", "readline": "^1.3.0" } }, @@ -5797,9 +5811,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "version": "16.0.6", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.6.tgz", + "integrity": "sha512-oTP7/Q13GSPrgcwEwdlnkoZSQ1Hg9THe644qq8PG6hhJzjZ3qj1JjEFPIwWV/IXVs5XGIVqtkNOS9kh63WIJ+A==", "dependencies": { "@types/yargs-parser": "*" } @@ -5993,9 +6007,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.7.tgz", - "integrity": "sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.8.tgz", + "integrity": "sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg==", "dependencies": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.20.0", @@ -6019,22 +6033,22 @@ "jest-worker": "^27.2.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.76.7", - "metro-cache": "0.76.7", - "metro-cache-key": "0.76.7", - "metro-config": "0.76.7", - "metro-core": "0.76.7", - "metro-file-map": "0.76.7", - "metro-inspector-proxy": "0.76.7", - "metro-minify-terser": "0.76.7", - "metro-minify-uglify": "0.76.7", - "metro-react-native-babel-preset": "0.76.7", - "metro-resolver": "0.76.7", - "metro-runtime": "0.76.7", - "metro-source-map": "0.76.7", - "metro-symbolicate": "0.76.7", - "metro-transform-plugins": "0.76.7", - "metro-transform-worker": "0.76.7", + "metro-babel-transformer": "0.76.8", + "metro-cache": "0.76.8", + "metro-cache-key": "0.76.8", + "metro-config": "0.76.8", + "metro-core": "0.76.8", + "metro-file-map": "0.76.8", + "metro-inspector-proxy": "0.76.8", + "metro-minify-terser": "0.76.8", + "metro-minify-uglify": "0.76.8", + "metro-react-native-babel-preset": "0.76.8", + "metro-resolver": "0.76.8", + "metro-runtime": "0.76.8", + "metro-source-map": "0.76.8", + "metro-symbolicate": "0.76.8", + "metro-transform-plugins": "0.76.8", + "metro-transform-worker": "0.76.8", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -6054,9 +6068,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-babel-transformer": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz", - "integrity": "sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.8.tgz", + "integrity": "sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA==", "dependencies": { "@babel/core": "^7.20.0", "hermes-parser": "0.12.0", @@ -6067,11 +6081,11 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-cache": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.7.tgz", - "integrity": "sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.8.tgz", + "integrity": "sha512-QBJSJIVNH7Hc/Yo6br/U/qQDUpiUdRgZ2ZBJmvAbmAKp2XDzsapnMwK/3BGj8JNWJF7OLrqrYHsRsukSbUBpvQ==", "dependencies": { - "metro-core": "0.76.7", + "metro-core": "0.76.8", "rimraf": "^3.0.2" }, "engines": { @@ -6079,46 +6093,46 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-cache-key": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.7.tgz", - "integrity": "sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.8.tgz", + "integrity": "sha512-buKQ5xentPig9G6T37Ww/R/bC+/V1MA5xU/D8zjnhlelsrPG6w6LtHUS61ID3zZcMZqYaELWk5UIadIdDsaaLw==", "engines": { "node": ">=16" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-config": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.7.tgz", - "integrity": "sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.8.tgz", + "integrity": "sha512-SL1lfKB0qGHALcAk2zBqVgQZpazDYvYFGwCK1ikz0S6Y/CM2i2/HwuZN31kpX6z3mqjv/6KvlzaKoTb1otuSAA==", "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "jest-validate": "^29.2.1", - "metro": "0.76.7", - "metro-cache": "0.76.7", - "metro-core": "0.76.7", - "metro-runtime": "0.76.7" + "metro": "0.76.8", + "metro-cache": "0.76.8", + "metro-core": "0.76.8", + "metro-runtime": "0.76.8" }, "engines": { "node": ">=16" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-core": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.7.tgz", - "integrity": "sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.8.tgz", + "integrity": "sha512-sl2QLFI3d1b1XUUGxwzw/KbaXXU/bvFYrSKz6Sg19AdYGWFyzsgZ1VISRIDf+HWm4R/TJXluhWMEkEtZuqi3qA==", "dependencies": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.76.7" + "metro-resolver": "0.76.8" }, "engines": { "node": ">=16" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-file-map": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.7.tgz", - "integrity": "sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.8.tgz", + "integrity": "sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw==", "dependencies": { "anymatch": "^3.0.3", "debug": "^2.2.0", @@ -6141,9 +6155,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-minify-terser": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.7.tgz", - "integrity": "sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.8.tgz", + "integrity": "sha512-Orbvg18qXHCrSj1KbaeSDVYRy/gkro2PC7Fy2tDSH1c9RB4aH8tuMOIXnKJE+1SXxBtjWmQ5Yirwkth2DyyEZA==", "dependencies": { "terser": "^5.15.0" }, @@ -6151,70 +6165,18 @@ "node": ">=16" } }, - "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-react-native-babel-preset": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz", - "integrity": "sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==", - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.4.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-resolver": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.7.tgz", - "integrity": "sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.8.tgz", + "integrity": "sha512-KccOqc10vrzS7ZhG2NSnL2dh3uVydarB7nOhjreQ7C4zyWuiW9XpLC4h47KtGQv3Rnv/NDLJYeDqaJ4/+140HQ==", "engines": { "node": ">=16" } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-runtime": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", - "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.8.tgz", + "integrity": "sha512-XKahvB+iuYJSCr3QqCpROli4B4zASAYpkK+j3a0CJmokxCDNbgyI4Fp88uIL6rNaZfN0Mv35S0b99SdFXIfHjg==", "dependencies": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" @@ -6224,16 +6186,16 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-source-map": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", - "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.8.tgz", + "integrity": "sha512-Hh0ncPsHPVf6wXQSqJqB3K9Zbudht4aUtNpNXYXSxH+pteWqGAXnjtPsRAnCsCWl38wL0jYF0rJDdMajUI3BDw==", "dependencies": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.76.7", + "metro-symbolicate": "0.76.8", "nullthrows": "^1.1.1", - "ob1": "0.76.7", + "ob1": "0.76.8", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -6242,12 +6204,12 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-symbolicate": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz", - "integrity": "sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.8.tgz", + "integrity": "sha512-LrRL3uy2VkzrIXVlxoPtqb40J6Bf1mlPNmUQewipc3qfKKFgtPHBackqDy1YL0njDsWopCKcfGtFYLn0PTUn3w==", "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.76.7", + "metro-source-map": "0.76.8", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -6261,9 +6223,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-transform-plugins": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz", - "integrity": "sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.8.tgz", + "integrity": "sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA==", "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", @@ -6276,21 +6238,21 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/metro-transform-worker": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz", - "integrity": "sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.8.tgz", + "integrity": "sha512-mE1fxVAnJKmwwJyDtThildxxos9+DGs9+vTrx2ktSFMEVTtXS/bIv2W6hux1pqivqAfyJpTeACXHk5u2DgGvIQ==", "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", "babel-preset-fbjs": "^3.4.0", - "metro": "0.76.7", - "metro-babel-transformer": "0.76.7", - "metro-cache": "0.76.7", - "metro-cache-key": "0.76.7", - "metro-source-map": "0.76.7", - "metro-transform-plugins": "0.76.7", + "metro": "0.76.8", + "metro-babel-transformer": "0.76.8", + "metro-cache": "0.76.8", + "metro-cache-key": "0.76.8", + "metro-source-map": "0.76.8", + "metro-transform-plugins": "0.76.8", "nullthrows": "^1.1.1" }, "engines": { @@ -6322,9 +6284,9 @@ } }, "node_modules/@react-native-community/cli-plugin-metro/node_modules/ob1": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", - "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.8.tgz", + "integrity": "sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g==", "engines": { "node": ">=16" } @@ -6405,12 +6367,12 @@ } }, "node_modules/@react-native-community/cli-server-api": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.6.tgz", - "integrity": "sha512-8GUKodPnURGtJ9JKg8yOHIRtWepPciI3ssXVw5jik7+dZ43yN8P5BqCoDaq8e1H1yRer27iiOfT7XVnwk8Dueg==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.7.tgz", + "integrity": "sha512-yoFyGdvR3HxCnU6i9vFqKmmSqFzCbnFSnJ29a+5dppgPRetN+d//O8ard/YHqHzToFnXutAFf2neONn23qcJAg==", "dependencies": { - "@react-native-community/cli-debugger-ui": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-debugger-ui": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.1", @@ -6436,9 +6398,9 @@ } }, "node_modules/@react-native-community/cli-server-api/node_modules/@types/yargs": { - "version": "15.0.15", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", - "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "version": "15.0.16", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.16.tgz", + "integrity": "sha512-2FeD5qezW3FvLpZ0JpfuaEWepgNLl9b2gQYiz/ce0NhoB1W/D+VZu98phITXkADYerfr/jb7JcDcVhITsc9bwg==", "dependencies": { "@types/yargs-parser": "*" } @@ -6547,9 +6509,9 @@ } }, "node_modules/@react-native-community/cli-tools": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.6.tgz", - "integrity": "sha512-JpmUTcDwAGiTzLsfMlIAYpCMSJ9w2Qlf7PU7mZIRyEu61UzEawyw83DkqfbzDPBuRwRnaeN44JX2CP/yTO3ThQ==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.7.tgz", + "integrity": "sha512-peyhP4TV6Ps1hk+MBHTFaIR1eI3u+OfGBvr5r0wPwo3FAJvldRinMgcB/TcCcOBXVORu7ba1XYjkubPeYcqAyA==", "dependencies": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", @@ -6758,9 +6720,9 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "node_modules/@react-native-community/cli-types": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.6.tgz", - "integrity": "sha512-6DxjrMKx5x68N/tCJYVYRKAtlRHbtUVBZrnAvkxbRWFD9v4vhNgsPM0RQm8i2vRugeksnao5mbnRGpS6c0awCw==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.7.tgz", + "integrity": "sha512-OhSr/TiDQkXjL5YOs8+hvGSB+HltLn5ZI0+A3DCiMsjUgTTsYh+Z63OtyMpNjrdCEFcg0MpfdU2uxstCS6Dc5g==", "dependencies": { "joi": "^17.2.1" } @@ -7068,9 +7030,9 @@ } }, "node_modules/@react-navigation/elements": { - "version": "1.3.18", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.18.tgz", - "integrity": "sha512-/0hwnJkrr415yP0Hf4PjUKgGyfshrvNUKFXN85Mrt1gY49hy9IwxZgrrxlh0THXkPeq8q4VWw44eHDfAcQf20Q==", + "version": "1.3.19", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.19.tgz", + "integrity": "sha512-7hLvSYKPuDS070pza5gd43WDX7QgfuEmuTWNbCJhKdWlLudYmq3qzxGCBwCfO2dEI6+p8tla5wruaWiGKAbTYw==", "peerDependencies": { "@react-navigation/native": "^6.0.0", "react": "*", @@ -7079,9 +7041,9 @@ } }, "node_modules/@react-navigation/native": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.7.tgz", - "integrity": "sha512-W6E3+AtTombMucCRo6q7vPmluq8hSjS+IxfazJ/SokOe7ChJX7eLvvralIsJkjFj3iWV1KgOSnHxa6hdiFasBw==", + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.8.tgz", + "integrity": "sha512-0alti852nV+8oCVm9H80G6kZvrHoy51+rXBvVCRUs2rNDDozC/xPZs8tyeCJkqdw3cpxZDK8ndXF22uWq28+0Q==", "dependencies": { "@react-navigation/core": "^6.4.9", "escape-string-regexp": "^4.0.0", @@ -7094,11 +7056,11 @@ } }, "node_modules/@react-navigation/native-stack": { - "version": "6.9.13", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.13.tgz", - "integrity": "sha512-ejlepMrvFneewL+XlXHHhn+6y3lwvavM4/R7XwBV0XJxCymujexK+7Vkg7UcvJ1lx4CRhOcyBSNfGmdNIHREyQ==", + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.14.tgz", + "integrity": "sha512-7RiZkvMFN6f0kmANc63B/0m9ttQ2JpDIPWQwPU93FP698s19KTOyu7uxgl7Oi3bvsqHFO5JfiR7B+4h8lh9dxw==", "dependencies": { - "@react-navigation/elements": "^1.3.18", + "@react-navigation/elements": "^1.3.19", "warn-once": "^0.1.0" }, "peerDependencies": { @@ -7458,9 +7420,9 @@ "dev": true }, "node_modules/@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", + "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", "dev": true, "dependencies": { "@babel/parser": "^7.20.7", @@ -7505,9 +7467,9 @@ "dev": true }, "node_modules/@types/eslint": { - "version": "8.44.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.2.tgz", - "integrity": "sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==", + "version": "8.44.4", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.4.tgz", + "integrity": "sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA==", "dev": true, "dependencies": { "@types/estree": "*", @@ -7529,6 +7491,11 @@ "@types/node": "*" } }, + "node_modules/@types/hammerjs": { + "version": "2.0.43", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.43.tgz", + "integrity": "sha512-wqxfwHk83RS7+6OpytGdo5wqkqtvx+bGaIs1Rwm5NrtQHUfL4OgWs/5p0OipmjmT+fexePh37Ek+mqIpdNjQKA==" + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -7551,9 +7518,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.4.tgz", - "integrity": "sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==", + "version": "29.5.5", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz", + "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -7584,9 +7551,12 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz", - "integrity": "sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==" + "version": "20.8.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", + "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "dependencies": { + "undici-types": "~5.25.1" + } }, "node_modules/@types/prop-types": { "version": "15.7.5", @@ -7595,9 +7565,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.2.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.21.tgz", - "integrity": "sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==", + "version": "18.2.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.28.tgz", + "integrity": "sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -7616,9 +7586,9 @@ } }, "node_modules/@types/react-native-onboarding-swiper": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/react-native-onboarding-swiper/-/react-native-onboarding-swiper-1.1.4.tgz", - "integrity": "sha512-Ca+s0bFb0M8al3UeNAsbrO5ezGya9FqSvZTWVOK0JdNZydohrlwmrTHc61eWYlW992H0O2MTB1hiAx6vpOL+cQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/react-native-onboarding-swiper/-/react-native-onboarding-swiper-1.1.5.tgz", + "integrity": "sha512-EAZMyJ9keSPPmHHcyfiKpVhUlGsS1NwJjuUj9HYvK1e1pUyUdDgU4u1HqnBN/LhaISLRU5tItjNFpqtJT2uJ4A==", "dev": true, "dependencies": { "@types/react": "*", @@ -7638,9 +7608,9 @@ "dev": true }, "node_modules/@types/sqlite3": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.8.tgz", - "integrity": "sha512-sQMt/qnyUWnqiTcJXm5ZfNPIBeJ/DVvJDwxw+0tAxPJvadzfiP1QhryO1JOR6t1yfb8NpzQb/Rud06mob5laIA==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.9.tgz", + "integrity": "sha512-0lUJ/W1tBkWqC1is8AI6HnGyk0TyFRFBbcv/hfrUk9XZ7I6LhGvkr0KSPPSaPQyg69nks7JEbxS7tD+MXeVWuQ==", "dev": true, "dependencies": { "@types/node": "*" @@ -7671,16 +7641,16 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz", - "integrity": "sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", + "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.0", - "@typescript-eslint/type-utils": "6.7.0", - "@typescript-eslint/utils": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/type-utils": "6.7.5", + "@typescript-eslint/utils": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -7739,15 +7709,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.0.tgz", - "integrity": "sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", + "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.7.0", - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/typescript-estree": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4" }, "engines": { @@ -7767,13 +7737,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz", - "integrity": "sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", + "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0" + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7784,13 +7754,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz", - "integrity": "sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", + "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.0", - "@typescript-eslint/utils": "6.7.0", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/utils": "6.7.5", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -7811,9 +7781,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.0.tgz", - "integrity": "sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", + "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -7824,13 +7794,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz", - "integrity": "sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", + "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -7884,17 +7854,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.0.tgz", - "integrity": "sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", + "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.0", - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/typescript-estree": "6.7.0", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", "semver": "^7.5.4" }, "engines": { @@ -7942,12 +7912,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz", - "integrity": "sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", + "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/types": "6.7.5", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -9803,9 +9773,9 @@ } }, "node_modules/crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" }, "node_modules/crypto-random-string": { "version": "2.0.0", @@ -9903,9 +9873,9 @@ } }, "node_modules/dayjs": { - "version": "1.11.9", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", - "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "node_modules/debug": { "version": "4.3.4", @@ -10592,15 +10562,15 @@ } }, "node_modules/eslint": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", - "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", + "@eslint/js": "8.51.0", "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -10692,9 +10662,9 @@ } }, "node_modules/eslint-plugin-deprecate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-deprecate/-/eslint-plugin-deprecate-0.8.2.tgz", - "integrity": "sha512-THs60MUqJoHtrF6F8eNUnyU0ER6p4wUX7yyoUZQdBDPFiE9kzZTo4CgRKZicUVj5cjXLT76nW+QdSZwZKtjLIA==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-deprecate/-/eslint-plugin-deprecate-0.8.4.tgz", + "integrity": "sha512-bzpQTyXNWXbMWRH77XiuzfAthOhQhizEZrTf7krRiMYrq6ENUsWfbCe8A3SeRNa4eW8T2QrHsg/lXmxLq9xXXA==", "dev": true, "peerDependencies": { "eslint": ">=2.x" @@ -10830,9 +10800,9 @@ } }, "node_modules/eslint-plugin-jest": { - "version": "27.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz", - "integrity": "sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.4.2.tgz", + "integrity": "sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==", "dev": true, "dependencies": { "@typescript-eslint/utils": "^5.10.0" @@ -11010,9 +10980,9 @@ "dev": true }, "node_modules/eslint-plugin-jsdoc": { - "version": "46.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.6.0.tgz", - "integrity": "sha512-T/1gzsvnX45qABzyPEonEhFDttkTn7Igm/X89TXIkTLBOsNl2GYtyBqQPZGXZZ8J5VBzEhiCMvI2P2kXX4dnFw==", + "version": "46.8.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz", + "integrity": "sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==", "dev": true, "dependencies": { "@es-joy/jsdoccomment": "~0.40.1", @@ -11571,12 +11541,12 @@ } }, "node_modules/expo": { - "version": "49.0.10", - "resolved": "https://registry.npmjs.org/expo/-/expo-49.0.10.tgz", - "integrity": "sha512-+qb2n9TEqy6wu3/vguGOWJKRk9B3vIOXrR+Wlr3Bu+/rFX1/i98z3MZUawDPMNLzyRMEbKJzUodplic8IQhMOQ==", + "version": "49.0.14", + "resolved": "https://registry.npmjs.org/expo/-/expo-49.0.14.tgz", + "integrity": "sha512-mIZWb/JRiUQDg+xjgCgECSiLrpBUnqiDaeEktHfXUYTT4Qhh+mY9X0lfy0HjiCKwPVFv2M7SQenCGwCQV5MdpA==", "dependencies": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.10.12", + "@expo/cli": "0.10.13", "@expo/config": "8.1.2", "@expo/config-plugins": "7.2.5", "@expo/vector-icons": "^13.0.0", @@ -11676,13 +11646,13 @@ } }, "node_modules/expo-dev-client": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-2.4.10.tgz", - "integrity": "sha512-45nyJAufsVRunKw2XOAn/RG0mG5PoV5eKFR4C9RpuUi0VvHKhdzeF5epRFrYR44zmhe3KwG4ggut5KB4YcsdeA==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-2.4.11.tgz", + "integrity": "sha512-A7aKQZeEYG0YJ51GnjOFkMNe118jD1cbU+v5iM3E+H1Co5aVtnlGZWcv8Dtw3uGuWxRgbWGds5TGNbcDmJ1hDg==", "dev": true, "dependencies": { - "expo-dev-launcher": "2.4.12", - "expo-dev-menu": "3.2.0", + "expo-dev-launcher": "2.4.13", + "expo-dev-menu": "3.2.1", "expo-dev-menu-interface": "1.3.0", "expo-manifests": "~0.7.0", "expo-updates-interface": "~0.10.0" @@ -11692,12 +11662,12 @@ } }, "node_modules/expo-dev-launcher": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-2.4.12.tgz", - "integrity": "sha512-r561CgR4fNIn5f4I16vxSD9b2Za3QCIfez0OwcRt90dY612tk1Ifkl5DQMLEL3Rm/maB7wfH3bXf0cZa5RGtog==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-2.4.13.tgz", + "integrity": "sha512-afszaREyGnhWJMmcOuDGs83r0UWeRvZrOHlKQxxst/UhAeFQqlDmkEjwtDWfTUy7BoXuuw2CuQtUFH+vTyjEGA==", "dev": true, "dependencies": { - "expo-dev-menu": "3.2.0", + "expo-dev-menu": "3.2.1", "resolve-from": "^5.0.0", "semver": "^7.5.3" }, @@ -11739,9 +11709,9 @@ "dev": true }, "node_modules/expo-dev-menu": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-3.2.0.tgz", - "integrity": "sha512-oMhfNI2aU2HOVYLkFz3krj+L+GwJDHTPjnJWMBG5AsmWJDp70yFGZhSEjcNFG1ekscRndrvfdHlocKO6JTeQcw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-3.2.1.tgz", + "integrity": "sha512-SxH/ZUIYZliMBjJTpiECVSDkP7e81mbGNLH8ZD69iCAfLeH7P1OPXFycEdcvN33I7tVqzFgARGLK/W/8JV+U9w==", "dev": true, "dependencies": { "expo-dev-menu-interface": "1.3.0", @@ -11831,6 +11801,14 @@ "expo": "*" } }, + "node_modules/expo-image": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/expo-image/-/expo-image-1.3.4.tgz", + "integrity": "sha512-2N6etMJA5OWbbvL9IdPVchNoJd18kVo5gcN4uC9Xtv1VM/ik6PRB3Tz+qP/0Uglkzh/yyJjw7aDTqWozj5nLZw==", + "peerDependencies": { + "expo": "*" + } + }, "node_modules/expo-image-loader": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-4.3.0.tgz", @@ -12045,9 +12023,9 @@ "integrity": "sha512-t+h5Zqaukd3Tn97LaWPpibVsmiC/TFP8F+8sAUliwCSMzgcb5TATRs2NcAB+JcIr8EP3JJDyYXJrZle1cjs4mQ==" }, "node_modules/expo-updates": { - "version": "0.18.13", - "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.18.13.tgz", - "integrity": "sha512-+6Z3C38EAptYbY1/J4JIWChJKtdaEJSSfTxrSqdG6ES4RnBqSdpdH4513YiOezpE1WhCqPtQHfJW2Lsu7O1odA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.18.17.tgz", + "integrity": "sha512-oyBDR94nYEtVw+iBod3N9LFqTfpLHofmUjh0lP12YZINUI89hvoAyqRe56eSnlpWkzziG6g1y4NGva0D0ViK6w==", "dependencies": { "@expo/code-signing-certificates": "0.0.5", "@expo/config": "~8.1.0", @@ -12290,9 +12268,9 @@ "dev": true }, "node_modules/fast-xml-parser": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", - "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.1.tgz", + "integrity": "sha512-viVv3xb8D+SiS1W4cv4tva3bni08kAkx0gQnWrykMM8nXPc1FxqZPU00dCEVjkiCg4HoXd2jC4x29Nzg/l2DAA==", "funding": [ { "type": "paypal", @@ -16066,9 +16044,9 @@ "dev": true }, "node_modules/joi": { - "version": "17.10.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.1.tgz", - "integrity": "sha512-vIiDxQKmRidUVp8KngT8MZSOcmRVm2zV7jbMjNYWuHcJWI0bUck3nRTGQjhpPlQenIQIBC5Vp9AhcnHbWQqafw==", + "version": "17.10.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.2.tgz", + "integrity": "sha512-hcVhjBxRNW/is3nNLdGLIjkgXetkeGc2wyhydhz8KumG23Aerk4HPjU5zaPAMRqXQFc0xNqXTC7+zQjxr0GlKA==", "dependencies": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -17090,9 +17068,9 @@ } }, "node_modules/metro": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.79.0.tgz", - "integrity": "sha512-TmQjGRZViwK2tGPJqOBabIxqtPKjQwn7NRtWwYgplB7B+u0/PbrIxJ7AJAGgb0aAqLtAuwYbVejg3Fyy4UKtow==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.79.1.tgz", + "integrity": "sha512-PDzLQn4fpV4cs6brPi3zSu3zOA3kG+x6algazYGz1FzrOIsIT+L0Hd294+V4xN73EjLrSD5vD5hNsWlBxRk/PA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", @@ -17116,19 +17094,19 @@ "jest-worker": "^27.2.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.79.0", - "metro-cache": "0.79.0", - "metro-cache-key": "0.79.0", - "metro-config": "0.79.0", - "metro-core": "0.79.0", - "metro-file-map": "0.79.0", - "metro-minify-terser": "0.79.0", - "metro-resolver": "0.79.0", - "metro-runtime": "0.79.0", - "metro-source-map": "0.79.0", - "metro-symbolicate": "0.79.0", - "metro-transform-plugins": "0.79.0", - "metro-transform-worker": "0.79.0", + "metro-babel-transformer": "0.79.1", + "metro-cache": "0.79.1", + "metro-cache-key": "0.79.1", + "metro-config": "0.79.1", + "metro-core": "0.79.1", + "metro-file-map": "0.79.1", + "metro-minify-terser": "0.79.1", + "metro-resolver": "0.79.1", + "metro-runtime": "0.79.1", + "metro-source-map": "0.79.1", + "metro-symbolicate": "0.79.1", + "metro-transform-plugins": "0.79.1", + "metro-transform-worker": "0.79.1", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -17148,9 +17126,9 @@ } }, "node_modules/metro-babel-transformer": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.79.0.tgz", - "integrity": "sha512-RtDWsdlmP8K04zfIMpD3vosfAROdzL0Z28yDeC5OvqD7bUn0ZQUxlFbG/HdrdXDkCe8+55F2ZxLGMG95Mlvf9A==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.79.1.tgz", + "integrity": "sha512-WvE/At9r0LoNoxGgGhULV4H5ieuLs8AHfVUtTpHaOpgE326BwHNiUYaWuCpaM/BTTlajQltK/U1t+MqbbvFG9A==", "dev": true, "dependencies": { "@babel/core": "^7.20.0", @@ -17162,12 +17140,12 @@ } }, "node_modules/metro-cache": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.79.0.tgz", - "integrity": "sha512-6suCHTcDTCvbi7rDftvj+0+6GkGPSqqAmVUgasz9JZy1zyUM5ezdHrfN5E06B7LgGzXEsb4xF/zHJ0foq98SOA==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.79.1.tgz", + "integrity": "sha512-uRlo1cYewW9t6KuRED0G/iCnlqPc5Hq+I2VELBiJr4lBYwCz8P1KwcdzgSUpAzcZBcarq6rI9JqVPvV4t6P3YQ==", "dev": true, "dependencies": { - "metro-core": "0.79.0", + "metro-core": "0.79.1", "rimraf": "^3.0.2" }, "engines": { @@ -17175,9 +17153,9 @@ } }, "node_modules/metro-cache-key": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.79.0.tgz", - "integrity": "sha512-D+pHt35guISi02ToNWaj1YGOiHfkeR63LZJUraUalVsLX8QHXuYkOYbyhhnO8Y5933Ro6DpSad61drvqxRhzfQ==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.79.1.tgz", + "integrity": "sha512-/u48AuINgakqYEymRrD6MzKCSYU/JEXrqGX4x6gVHVa99TKPeg5SBi3MIjpZz/tWGpcQHCKItfjLD48YhEJr3Q==", "dev": true, "engines": { "node": ">=18" @@ -17199,40 +17177,40 @@ } }, "node_modules/metro-config": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.79.0.tgz", - "integrity": "sha512-X0DD0Y5+sp9A54Xj9n+haUaGIfGIHzoRw1ZdR1MPS3IKNP1pK+iU7tkFLp/w5yT2NzcGDttNim5LLOykZD41jA==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.79.1.tgz", + "integrity": "sha512-gleXbytiPTsO88DDUuaprKQLfaOVfoj6L7yw1u6MRXmQdebK3TmWUajqnLdWDQ/D0+JBWfrkFhLjnWXHsA8Cgw==", "dev": true, "dependencies": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "jest-validate": "^29.6.3", - "metro": "0.79.0", - "metro-cache": "0.79.0", - "metro-core": "0.79.0", - "metro-runtime": "0.79.0" + "metro": "0.79.1", + "metro-cache": "0.79.1", + "metro-core": "0.79.1", + "metro-runtime": "0.79.1" }, "engines": { "node": ">=18" } }, "node_modules/metro-core": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.79.0.tgz", - "integrity": "sha512-VWTSfcjadvtP6wECU+EN2iBx0d1M1CFnl+icCzV8D9F2XaB4Fj/xQHwZCSbLYvEAkCYsr8/XkDw7pFd4kd8VLg==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.79.1.tgz", + "integrity": "sha512-tPlpLLOKT5D5HSFQBrvgU2gupecCA0YcnQQVOByuLjY5JMXUBU7HISHv5gpbJTUt9KlPQ8OhZV/x6ivyXaVSQg==", "dev": true, "dependencies": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.79.0" + "metro-resolver": "0.79.1" }, "engines": { "node": ">=18" } }, "node_modules/metro-file-map": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.79.0.tgz", - "integrity": "sha512-g2TKD352ei+CahyowDPibH4SZ73kX/x9SWAicv9cQ0Hy2UtCDWP6jaeT4mDUISFZOoK1vGojr9JJRyyR+nWD1A==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.79.1.tgz", + "integrity": "sha512-PpPhfkj1Bj448f+5vZaaImJWFSsf6XveYGdRsfwvskcYlMsFBl4OX1WyGTJCCCzrtIOH5y1V3OADI/HS563sCA==", "dev": true, "dependencies": { "anymatch": "^3.0.3", @@ -17271,9 +17249,9 @@ } }, "node_modules/metro-file-map/node_modules/@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "version": "16.0.6", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.6.tgz", + "integrity": "sha512-oTP7/Q13GSPrgcwEwdlnkoZSQ1Hg9THe644qq8PG6hhJzjZ3qj1JjEFPIwWV/IXVs5XGIVqtkNOS9kh63WIJ+A==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -17411,9 +17389,9 @@ } }, "node_modules/metro-inspector-proxy": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz", - "integrity": "sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.8.tgz", + "integrity": "sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw==", "dependencies": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -17462,9 +17440,9 @@ } }, "node_modules/metro-minify-terser": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.79.0.tgz", - "integrity": "sha512-7VYxy/wAHtuVz3RXAiyMvP6Qp6BGR+Ibl0FI4Ky/s4aMFUB0nW/uQuH1rH0fJMR5WxCmt4qAA4+uW2rZguIvVw==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.79.1.tgz", + "integrity": "sha512-69zOvPazJFKE6tHlOF8PQcvXUfoXgeHreVaggjuqnCREMWBjEkTH9jOn8M3oB0JgKmEUBb4bzFr7Oz1kC7Jc3g==", "dev": true, "dependencies": { "terser": "^5.15.0" @@ -17474,9 +17452,9 @@ } }, "node_modules/metro-minify-uglify": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz", - "integrity": "sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.8.tgz", + "integrity": "sha512-6l8/bEvtVaTSuhG1FqS0+Mc8lZ3Bl4RI8SeRIifVLC21eeSDp4CEBUWSGjpFyUDfi6R5dXzYaFnSgMNyfxADiQ==", "dependencies": { "uglify-es": "^3.1.9" }, @@ -17537,14 +17515,14 @@ } }, "node_modules/metro-react-native-babel-transformer": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz", - "integrity": "sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.8.tgz", + "integrity": "sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A==", "dependencies": { "@babel/core": "^7.20.0", "babel-preset-fbjs": "^3.4.0", "hermes-parser": "0.12.0", - "metro-react-native-babel-preset": "0.76.7", + "metro-react-native-babel-preset": "0.76.8", "nullthrows": "^1.1.1" }, "engines": { @@ -17567,71 +17545,19 @@ "hermes-estree": "0.12.0" } }, - "node_modules/metro-react-native-babel-transformer/node_modules/metro-react-native-babel-preset": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz", - "integrity": "sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==", - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.4.0" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, "node_modules/metro-resolver": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.79.0.tgz", - "integrity": "sha512-ABPYo9EHXTjE3lhDo9SXw/EH1OPltYTv8a7MC+b4ei9xLd7DuiHNvlT4YpZjWADSKrtM5xqbZHFboTgzyBSjWw==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.79.1.tgz", + "integrity": "sha512-hiea5co7c5rhrdD5xYohBq2Sw20Ytzie71raIW9SsXKBKzsS0zAbrwNFW5z71lDUnp719vhobnDXJ+yE7Kq9Gg==", "dev": true, "engines": { "node": ">=18" } }, "node_modules/metro-runtime": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.79.0.tgz", - "integrity": "sha512-C9OMx/7qVb39ToIGxvHlltfNqE1xWw0DfJISLIc74CZGthTCPa1nlxvog2t8Pc7FlLJPmjDeDkJVEPKQM8jKfg==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.79.1.tgz", + "integrity": "sha512-RRBFPjaex8/Q6M+4V0oOYrd4mDG0iNkRMSdT5iojUe9pF24pRmqwG2gm3NBBgh4UAzYPI0NsJ6AB8JTmchfCAg==", "dev": true, "dependencies": { "@babel/runtime": "^7.0.0", @@ -17642,17 +17568,17 @@ } }, "node_modules/metro-source-map": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.79.0.tgz", - "integrity": "sha512-vLVoeWCLq5kGJfwZt54wYAI6GpfZKDb+P9OTv9CcTnPD8EjF7EgZpSO+NNZDKwGqtmwy/JItzzEQDIx6HXs7dw==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.79.1.tgz", + "integrity": "sha512-Rlgld4cfWUFs5NdAErSzWfX9C4eYLPXTBBmhTHaiQEgRb0ydrfhOcofT0gYTHzp6t9lW30IO5wxlzl6gU/nOjA==", "dev": true, "dependencies": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.79.0", + "metro-symbolicate": "0.79.1", "nullthrows": "^1.1.1", - "ob1": "0.79.0", + "ob1": "0.79.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -17670,13 +17596,13 @@ } }, "node_modules/metro-symbolicate": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.79.0.tgz", - "integrity": "sha512-8o6D1YmoL7Jl45/HekmKem9wtVL7E/W94wW23ajmTx7gnFrpquxNf4plWYtQ0P/Y0K/r1ACRXxnndLjNhGFw5A==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.79.1.tgz", + "integrity": "sha512-cB7Yxh5SKs24EsTaONpaEPoFC6H1ya0BeAR1Ety1qeeV/gFmC8YvkwFj9S8sy6whwIf4dM9xLF2iv7Ug78C4JA==", "dev": true, "dependencies": { "invariant": "^2.2.4", - "metro-source-map": "0.79.0", + "metro-source-map": "0.79.1", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -17699,9 +17625,9 @@ } }, "node_modules/metro-transform-plugins": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.79.0.tgz", - "integrity": "sha512-3cItCo50SwjaQuqBwHpyzobEL2E6NAeuttebhaipuD+xc96lUXL1LvmXXic2zUNkOZj02zlEZvgG2CqmlXQaYQ==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.79.1.tgz", + "integrity": "sha512-kGDpBJGpijC/OVrpngCiyvzrT6sfSPqFOiyEzU02j+8UCmxKCofbdv62nT97dzseR+iWkzFPcCbq8Nc7/CFwwA==", "dev": true, "dependencies": { "@babel/core": "^7.20.0", @@ -17715,21 +17641,21 @@ } }, "node_modules/metro-transform-worker": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.79.0.tgz", - "integrity": "sha512-eHyzqSKUVKH4amKB1MA0Yp4fH7wvYvvyWX1JTqb32f/eGWiBdVcjIpQLI46CECzDqNY5pJcolBEB4ARs4ZhskA==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.79.1.tgz", + "integrity": "sha512-WA15xo7EvJgutlhRKldgPTtwOWur4xDO5uQc5e/vZuhGtahcV0b4v2lXp+t3z5gs9DBqajsczce1A+3pY9wcQQ==", "dev": true, "dependencies": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", - "metro": "0.79.0", - "metro-babel-transformer": "0.79.0", - "metro-cache": "0.79.0", - "metro-cache-key": "0.79.0", - "metro-source-map": "0.79.0", - "metro-transform-plugins": "0.79.0", + "metro": "0.79.1", + "metro-babel-transformer": "0.79.1", + "metro-cache": "0.79.1", + "metro-cache-key": "0.79.1", + "metro-source-map": "0.79.1", + "metro-transform-plugins": "0.79.1", "nullthrows": "^1.1.1" }, "engines": { @@ -18485,9 +18411,9 @@ } }, "node_modules/nostr-tools": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.15.0.tgz", - "integrity": "sha512-Dh7LVAUqaSiSs61QddsWluLVWpMwyMGaVlbhDYEy03ZwnBBzm10pz+mQZSdVV88/B3a5843gHZ4dIBUeS5upoA==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.16.0.tgz", + "integrity": "sha512-sx/aOl0gmkeHVoIVbyOhEQhzF88NsrBXMC8bsjhPASqA6oZ8uSOAyEGgRLMfC3SKgzQD5Gr6KvDoAahaD6xKcg==", "dependencies": { "@noble/ciphers": "^0.2.0", "@noble/curves": "1.1.0", @@ -18601,9 +18527,9 @@ "dev": true }, "node_modules/ob1": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.79.0.tgz", - "integrity": "sha512-9jFD2M7GcotKTNkS8N5EjyGh+g838p2WCTC6k1LQnx6+MUycoI24stT3Qxuk6DJBEWVTEb2l2GZ6GzUjqpBqOA==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.79.1.tgz", + "integrity": "sha512-Z05NdP9uwS6UWoqNQDqx/VuVBD7rhMBqCB52js9HRct5IsU/lcSC/9Rv4J977wcOrSmaYTXQa2HRkUg4QAIS3g==", "dev": true, "engines": { "node": ">=18" @@ -19227,9 +19153,9 @@ } }, "node_modules/postcss": { - "version": "8.4.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", - "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -19759,9 +19685,9 @@ } }, "node_modules/react-i18next": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.2.2.tgz", - "integrity": "sha512-+nFUkbRByFwnrfDcYqvzBuaeZb+nACHx+fAWN/pZMddWOCJH5hoc21+Sa/N/Lqi6ne6/9wC/qRGOoQhJa6IkEQ==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.3.0.tgz", + "integrity": "sha512-FlR9xjYHSPIJfQspEmkN0yOlxgRyNuiJKJ8gCaZH08UJ7SZHG+VrptEPcpEMEchjNoCOZdKcvJ3PnmHEZhkeXg==", "dependencies": { "@babel/runtime": "^7.22.5", "html-parse-stringify": "^3.0.1" @@ -19785,16 +19711,16 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-native": { - "version": "0.72.4", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.4.tgz", - "integrity": "sha512-+vrObi0wZR+NeqL09KihAAdVlQ9IdplwznJWtYrjnQ4UbCW6rkzZJebRsugwUneSOKNFaHFEo1uKU89HsgtYBg==", + "version": "0.72.6", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.6.tgz", + "integrity": "sha512-RafPY2gM7mcrFySS8TL8x+TIO3q7oAlHpzEmC7Im6pmXni6n1AuufGaVh0Narbr1daxstw7yW7T9BKW5dpVc2A==", "dependencies": { "@jest/create-cache-key-function": "^29.2.1", - "@react-native-community/cli": "11.3.6", - "@react-native-community/cli-platform-android": "11.3.6", - "@react-native-community/cli-platform-ios": "11.3.6", + "@react-native-community/cli": "11.3.7", + "@react-native-community/cli-platform-android": "11.3.7", + "@react-native-community/cli-platform-ios": "11.3.7", "@react-native/assets-registry": "^0.72.0", - "@react-native/codegen": "^0.72.6", + "@react-native/codegen": "^0.72.7", "@react-native/gradle-plugin": "^0.72.11", "@react-native/js-polyfills": "^0.72.1", "@react-native/normalize-colors": "^0.72.0", @@ -19847,6 +19773,22 @@ "react-native": ">0.62.0" } }, + "node_modules/react-native-gesture-handler": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.12.1.tgz", + "integrity": "sha512-deqh36bw82CFUV9EC4tTo2PP1i9HfCOORGS3Zmv71UYhEZEHkzZv18IZNPB+2Awzj45vLIidZxGYGFxHlDSQ5A==", + "dependencies": { + "@egjs/hammerjs": "^2.0.17", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "lodash": "^4.17.21", + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "*", + "react-native": "*" + } + }, "node_modules/react-native-onboarding-swiper": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/react-native-onboarding-swiper/-/react-native-onboarding-swiper-1.2.0.tgz", @@ -19860,6 +19802,11 @@ "react-native": "*" } }, + "node_modules/react-native-popup-menu": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/react-native-popup-menu/-/react-native-popup-menu-0.16.1.tgz", + "integrity": "sha512-xRS7mRh0exwu7Iw8PPVHdM11d13A/KzYjy0/fZx3zVtxISxPkNaDGayau6oa7HqO3Nj0oS9ulFCYjcQfG6vahA==" + }, "node_modules/react-native-qrcode-svg": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/react-native-qrcode-svg/-/react-native-qrcode-svg-6.2.0.tgz", @@ -21705,9 +21652,9 @@ } }, "node_modules/terser": { - "version": "5.19.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", - "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.20.0.tgz", + "integrity": "sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -22276,6 +22223,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/undici-types": { + "version": "5.25.3", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -24386,6 +24338,14 @@ } } }, + "@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "requires": { + "@types/hammerjs": "^2.0.36" + } + }, "@es-joy/jsdoccomment": { "version": "0.40.1", "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz", @@ -24447,9 +24407,9 @@ } }, "@eslint/js": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", - "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", + "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", "dev": true }, "@expo/bunyan": { @@ -24470,9 +24430,9 @@ } }, "@expo/cli": { - "version": "0.10.12", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.10.12.tgz", - "integrity": "sha512-sc4IkRBbm6HO1Z/0JeJMY/sJiyCAfHyt2EOHhAY8jYfbXr/aqCIGsPrwEGQAfGpsE2OPvyzRa+byZG03HRPTkQ==", + "version": "0.10.13", + "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.10.13.tgz", + "integrity": "sha512-8ciyz+yIDih6zCNMWK0IyEv411W7vej/TaWIFGarogPVbFokXrUKr0aKoQG1RU1SLlY4eUpHakbIzqog+rhJdQ==", "requires": { "@babel/runtime": "^7.20.0", "@expo/code-signing-certificates": "0.0.5", @@ -25195,9 +25155,9 @@ } }, "@expo/package-manager": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.1.1.tgz", - "integrity": "sha512-NxtfIA25iEiNwMT+s8PEmdKzjyfWd2qkCLJkf6jKZGaH9c06YXyOAi2jvCyM8XuSzJz4pcEH8kz1HkJAInjB7Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.1.2.tgz", + "integrity": "sha512-JI9XzrxB0QVXysyuJ996FPCJGDCYRkbUvgG4QmMTTMFA1T+mv8YzazC3T9C1pHQUAAveVCre1+Pqv0nZXN24Xg==", "requires": { "@expo/json-file": "^8.2.37", "@expo/spawn-async": "^1.5.0", @@ -26406,19 +26366,19 @@ } }, "@react-native-community/cli": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.6.tgz", - "integrity": "sha512-bdwOIYTBVQ9VK34dsf6t3u6vOUU5lfdhKaAxiAVArjsr7Je88Bgs4sAbsOYsNK3tkE8G77U6wLpekknXcanlww==", - "requires": { - "@react-native-community/cli-clean": "11.3.6", - "@react-native-community/cli-config": "11.3.6", - "@react-native-community/cli-debugger-ui": "11.3.6", - "@react-native-community/cli-doctor": "11.3.6", - "@react-native-community/cli-hermes": "11.3.6", - "@react-native-community/cli-plugin-metro": "11.3.6", - "@react-native-community/cli-server-api": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", - "@react-native-community/cli-types": "11.3.6", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-11.3.7.tgz", + "integrity": "sha512-Ou8eDlF+yh2rzXeCTpMPYJ2fuqsusNOhmpYPYNQJQ2h6PvaF30kPomflgRILems+EBBuggRtcT+I+1YH4o/q6w==", + "requires": { + "@react-native-community/cli-clean": "11.3.7", + "@react-native-community/cli-config": "11.3.7", + "@react-native-community/cli-debugger-ui": "11.3.7", + "@react-native-community/cli-doctor": "11.3.7", + "@react-native-community/cli-hermes": "11.3.7", + "@react-native-community/cli-plugin-metro": "11.3.7", + "@react-native-community/cli-server-api": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", + "@react-native-community/cli-types": "11.3.7", "chalk": "^4.1.2", "commander": "^9.4.1", "execa": "^5.0.0", @@ -26581,11 +26541,11 @@ } }, "@react-native-community/cli-clean": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.6.tgz", - "integrity": "sha512-jOOaeG5ebSXTHweq1NznVJVAFKtTFWL4lWgUXl845bCGX7t1lL8xQNWHKwT8Oh1pGR2CI3cKmRjY4hBg+pEI9g==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-11.3.7.tgz", + "integrity": "sha512-twtsv54ohcRyWVzPXL3F9VHGb4Qhn3slqqRs3wEuRzjR7cTmV2TIO2b1VhaqF4HlCgNd+cGuirvLtK2JJyaxMg==", "requires": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", "prompts": "^2.4.0" @@ -26684,11 +26644,11 @@ } }, "@react-native-community/cli-config": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.6.tgz", - "integrity": "sha512-edy7fwllSFLan/6BG6/rznOBCLPrjmJAE10FzkEqNLHowi0bckiAPg1+1jlgQ2qqAxV5kuk+c9eajVfQvPLYDA==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-11.3.7.tgz", + "integrity": "sha512-FDBLku9xskS+bx0YFJFLCmUJhEZ4/MMSC9qPYOGBollWYdgE7k/TWI0IeYFmMALAnbCdKQAYP5N29N55Tad8lg==", "requires": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "cosmiconfig": "^5.1.0", "deepmerge": "^4.3.0", @@ -26742,22 +26702,22 @@ } }, "@react-native-community/cli-debugger-ui": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.6.tgz", - "integrity": "sha512-jhMOSN/iOlid9jn/A2/uf7HbC3u7+lGktpeGSLnHNw21iahFBzcpuO71ekEdlmTZ4zC/WyxBXw9j2ka33T358w==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.7.tgz", + "integrity": "sha512-aVmKuPKHZENR8SrflkMurZqeyLwbKieHdOvaZCh1Nn/0UC5CxWcyST2DB2XQboZwsvr3/WXKJkSUO+SZ1J9qTQ==", "requires": { "serve-static": "^1.13.1" } }, "@react-native-community/cli-doctor": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.6.tgz", - "integrity": "sha512-UT/Tt6omVPi1j6JEX+CObc85eVFghSZwy4GR9JFMsO7gNg2Tvcu1RGWlUkrbmWMAMHw127LUu6TGK66Ugu1NLA==", - "requires": { - "@react-native-community/cli-config": "11.3.6", - "@react-native-community/cli-platform-android": "11.3.6", - "@react-native-community/cli-platform-ios": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-11.3.7.tgz", + "integrity": "sha512-YEHUqWISOHnsl5+NM14KHelKh68Sr5/HeEZvvNdIcvcKtZic3FU7Xd1WcbNdo3gCq5JvzGFfufx02Tabh5zmrg==", + "requires": { + "@react-native-community/cli-config": "11.3.7", + "@react-native-community/cli-platform-android": "11.3.7", + "@react-native-community/cli-platform-ios": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "command-exists": "^1.2.8", "envinfo": "^7.7.2", @@ -26960,12 +26920,12 @@ } }, "@react-native-community/cli-hermes": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.6.tgz", - "integrity": "sha512-O55YAYGZ3XynpUdePPVvNuUPGPY0IJdctLAOHme73OvS80gNwfntHDXfmY70TGHWIfkK2zBhA0B+2v8s5aTyTA==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-11.3.7.tgz", + "integrity": "sha512-chkKd8n/xeZkinRvtH6QcYA8rjNOKU3S3Lw/3Psxgx+hAYV0Gyk95qJHTalx7iu+PwjOOqqvCkJo5jCkYLkoqw==", "requires": { - "@react-native-community/cli-platform-android": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-platform-android": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "hermes-profile-transformer": "^0.0.6", "ip": "^1.1.5" @@ -27017,11 +26977,11 @@ } }, "@react-native-community/cli-platform-android": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.6.tgz", - "integrity": "sha512-ZARrpLv5tn3rmhZc//IuDM1LSAdYnjUmjrp58RynlvjLDI4ZEjBAGCQmgysRgXAsK7ekMrfkZgemUczfn9td2A==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.7.tgz", + "integrity": "sha512-WGtXI/Rm178UQb8bu1TAeFC/RJvYGnbHpULXvE20GkmeJ1HIrMjkagyk6kkY3Ej25JAP2R878gv+TJ/XiRhaEg==", "requires": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", "glob": "^7.1.3", @@ -27121,11 +27081,11 @@ } }, "@react-native-community/cli-platform-ios": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.6.tgz", - "integrity": "sha512-tZ9VbXWiRW+F+fbZzpLMZlj93g3Q96HpuMsS6DRhrTiG+vMQ3o6oPWSEEmMGOvJSYU7+y68Dc9ms2liC7VD6cw==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.7.tgz", + "integrity": "sha512-Z/8rseBput49EldX7MogvN6zJlWzZ/4M97s2P+zjS09ZoBU7I0eOKLi0N9wx+95FNBvGQQ/0P62bB9UaFQH2jw==", "requires": { - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", "fast-xml-parser": "^4.0.12", @@ -27268,20 +27228,20 @@ } }, "@react-native-community/cli-plugin-metro": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.6.tgz", - "integrity": "sha512-D97racrPX3069ibyabJNKw9aJpVcaZrkYiEzsEnx50uauQtPDoQ1ELb/5c6CtMhAEGKoZ0B5MS23BbsSZcLs2g==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.7.tgz", + "integrity": "sha512-0WhgoBVGF1f9jXcuagQmtxpwpfP+2LbLZH4qMyo6OtYLWLG13n2uRep+8tdGzfNzl1bIuUTeE9yZSAdnf9LfYQ==", "requires": { - "@react-native-community/cli-server-api": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-server-api": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "chalk": "^4.1.2", "execa": "^5.0.0", - "metro": "0.76.7", - "metro-config": "0.76.7", - "metro-core": "0.76.7", - "metro-react-native-babel-transformer": "0.76.7", - "metro-resolver": "0.76.7", - "metro-runtime": "0.76.7", + "metro": "0.76.8", + "metro-config": "0.76.8", + "metro-core": "0.76.8", + "metro-react-native-babel-transformer": "0.76.8", + "metro-resolver": "0.76.8", + "metro-runtime": "0.76.8", "readline": "^1.3.0" }, "dependencies": { @@ -27298,9 +27258,9 @@ } }, "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "version": "16.0.6", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.6.tgz", + "integrity": "sha512-oTP7/Q13GSPrgcwEwdlnkoZSQ1Hg9THe644qq8PG6hhJzjZ3qj1JjEFPIwWV/IXVs5XGIVqtkNOS9kh63WIJ+A==", "requires": { "@types/yargs-parser": "*" } @@ -27438,9 +27398,9 @@ } }, "metro": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.7.tgz", - "integrity": "sha512-67ZGwDeumEPnrHI+pEDSKH2cx+C81Gx8Mn5qOtmGUPm/Up9Y4I1H2dJZ5n17MWzejNo0XAvPh0QL0CrlJEODVQ==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.76.8.tgz", + "integrity": "sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg==", "requires": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.20.0", @@ -27464,22 +27424,22 @@ "jest-worker": "^27.2.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.76.7", - "metro-cache": "0.76.7", - "metro-cache-key": "0.76.7", - "metro-config": "0.76.7", - "metro-core": "0.76.7", - "metro-file-map": "0.76.7", - "metro-inspector-proxy": "0.76.7", - "metro-minify-terser": "0.76.7", - "metro-minify-uglify": "0.76.7", - "metro-react-native-babel-preset": "0.76.7", - "metro-resolver": "0.76.7", - "metro-runtime": "0.76.7", - "metro-source-map": "0.76.7", - "metro-symbolicate": "0.76.7", - "metro-transform-plugins": "0.76.7", - "metro-transform-worker": "0.76.7", + "metro-babel-transformer": "0.76.8", + "metro-cache": "0.76.8", + "metro-cache-key": "0.76.8", + "metro-config": "0.76.8", + "metro-core": "0.76.8", + "metro-file-map": "0.76.8", + "metro-inspector-proxy": "0.76.8", + "metro-minify-terser": "0.76.8", + "metro-minify-uglify": "0.76.8", + "metro-react-native-babel-preset": "0.76.8", + "metro-resolver": "0.76.8", + "metro-runtime": "0.76.8", + "metro-source-map": "0.76.8", + "metro-symbolicate": "0.76.8", + "metro-transform-plugins": "0.76.8", + "metro-transform-worker": "0.76.8", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -27493,9 +27453,9 @@ } }, "metro-babel-transformer": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.7.tgz", - "integrity": "sha512-bgr2OFn0J4r0qoZcHrwEvccF7g9k3wdgTOgk6gmGHrtlZ1Jn3oCpklW/DfZ9PzHfjY2mQammKTc19g/EFGyOJw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.76.8.tgz", + "integrity": "sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA==", "requires": { "@babel/core": "^7.20.0", "hermes-parser": "0.12.0", @@ -27503,46 +27463,46 @@ } }, "metro-cache": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.7.tgz", - "integrity": "sha512-nWBMztrs5RuSxZRI7hgFgob5PhYDmxICh9FF8anm9/ito0u0vpPvRxt7sRu8fyeD2AHdXqE7kX32rWY0LiXgeg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.76.8.tgz", + "integrity": "sha512-QBJSJIVNH7Hc/Yo6br/U/qQDUpiUdRgZ2ZBJmvAbmAKp2XDzsapnMwK/3BGj8JNWJF7OLrqrYHsRsukSbUBpvQ==", "requires": { - "metro-core": "0.76.7", + "metro-core": "0.76.8", "rimraf": "^3.0.2" } }, "metro-cache-key": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.7.tgz", - "integrity": "sha512-0pecoIzwsD/Whn/Qfa+SDMX2YyasV0ndbcgUFx7w1Ct2sLHClujdhQ4ik6mvQmsaOcnGkIyN0zcceMDjC2+BFQ==" + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.76.8.tgz", + "integrity": "sha512-buKQ5xentPig9G6T37Ww/R/bC+/V1MA5xU/D8zjnhlelsrPG6w6LtHUS61ID3zZcMZqYaELWk5UIadIdDsaaLw==" }, "metro-config": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.7.tgz", - "integrity": "sha512-CFDyNb9bqxZemiChC/gNdXZ7OQkIwmXzkrEXivcXGbgzlt/b2juCv555GWJHyZSlorwnwJfY3uzAFu4A9iRVfg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.76.8.tgz", + "integrity": "sha512-SL1lfKB0qGHALcAk2zBqVgQZpazDYvYFGwCK1ikz0S6Y/CM2i2/HwuZN31kpX6z3mqjv/6KvlzaKoTb1otuSAA==", "requires": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "jest-validate": "^29.2.1", - "metro": "0.76.7", - "metro-cache": "0.76.7", - "metro-core": "0.76.7", - "metro-runtime": "0.76.7" + "metro": "0.76.8", + "metro-cache": "0.76.8", + "metro-core": "0.76.8", + "metro-runtime": "0.76.8" } }, "metro-core": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.7.tgz", - "integrity": "sha512-0b8KfrwPmwCMW+1V7ZQPkTy2tsEKZjYG9Pu1PTsu463Z9fxX7WaR0fcHFshv+J1CnQSUTwIGGjbNvj1teKe+pw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.76.8.tgz", + "integrity": "sha512-sl2QLFI3d1b1XUUGxwzw/KbaXXU/bvFYrSKz6Sg19AdYGWFyzsgZ1VISRIDf+HWm4R/TJXluhWMEkEtZuqi3qA==", "requires": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.76.7" + "metro-resolver": "0.76.8" } }, "metro-file-map": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.7.tgz", - "integrity": "sha512-s+zEkTcJ4mOJTgEE2ht4jIo1DZfeWreQR3tpT3gDV/Y/0UQ8aJBTv62dE775z0GLsWZApiblAYZsj7ZE8P06nw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.76.8.tgz", + "integrity": "sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw==", "requires": { "anymatch": "^3.0.3", "debug": "^2.2.0", @@ -27560,95 +27520,49 @@ } }, "metro-minify-terser": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.7.tgz", - "integrity": "sha512-FQiZGhIxCzhDwK4LxyPMLlq0Tsmla10X7BfNGlYFK0A5IsaVKNJbETyTzhpIwc+YFRT4GkFFwgo0V2N5vxO5HA==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.76.8.tgz", + "integrity": "sha512-Orbvg18qXHCrSj1KbaeSDVYRy/gkro2PC7Fy2tDSH1c9RB4aH8tuMOIXnKJE+1SXxBtjWmQ5Yirwkth2DyyEZA==", "requires": { "terser": "^5.15.0" } }, - "metro-react-native-babel-preset": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz", - "integrity": "sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==", - "requires": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.4.0" - } - }, "metro-resolver": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.7.tgz", - "integrity": "sha512-pC0Wgq29HHIHrwz23xxiNgylhI8Rq1V01kQaJ9Kz11zWrIdlrH0ZdnJ7GC6qA0ErROG+cXmJ0rJb8/SW1Zp2IA==" + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.76.8.tgz", + "integrity": "sha512-KccOqc10vrzS7ZhG2NSnL2dh3uVydarB7nOhjreQ7C4zyWuiW9XpLC4h47KtGQv3Rnv/NDLJYeDqaJ4/+140HQ==" }, "metro-runtime": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.7.tgz", - "integrity": "sha512-MuWHubQHymUWBpZLwuKZQgA/qbb35WnDAKPo83rk7JRLIFPvzXSvFaC18voPuzJBt1V98lKQIonh6MiC9gd8Ug==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.76.8.tgz", + "integrity": "sha512-XKahvB+iuYJSCr3QqCpROli4B4zASAYpkK+j3a0CJmokxCDNbgyI4Fp88uIL6rNaZfN0Mv35S0b99SdFXIfHjg==", "requires": { "@babel/runtime": "^7.0.0", "react-refresh": "^0.4.0" } }, "metro-source-map": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.7.tgz", - "integrity": "sha512-Prhx7PeRV1LuogT0Kn5VjCuFu9fVD68eefntdWabrksmNY6mXK8pRqzvNJOhTojh6nek+RxBzZeD6MIOOyXS6w==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.76.8.tgz", + "integrity": "sha512-Hh0ncPsHPVf6wXQSqJqB3K9Zbudht4aUtNpNXYXSxH+pteWqGAXnjtPsRAnCsCWl38wL0jYF0rJDdMajUI3BDw==", "requires": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.76.7", + "metro-symbolicate": "0.76.8", "nullthrows": "^1.1.1", - "ob1": "0.76.7", + "ob1": "0.76.8", "source-map": "^0.5.6", "vlq": "^1.0.0" } }, "metro-symbolicate": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.7.tgz", - "integrity": "sha512-p0zWEME5qLSL1bJb93iq+zt5fz3sfVn9xFYzca1TJIpY5MommEaS64Va87lp56O0sfEIvh4307Oaf/ZzRjuLiQ==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.76.8.tgz", + "integrity": "sha512-LrRL3uy2VkzrIXVlxoPtqb40J6Bf1mlPNmUQewipc3qfKKFgtPHBackqDy1YL0njDsWopCKcfGtFYLn0PTUn3w==", "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.76.7", + "metro-source-map": "0.76.8", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -27656,9 +27570,9 @@ } }, "metro-transform-plugins": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.7.tgz", - "integrity": "sha512-iSmnjVApbdivjuzb88Orb0JHvcEt5veVyFAzxiS5h0QB+zV79w6JCSqZlHCrbNOkOKBED//LqtKbFVakxllnNg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.76.8.tgz", + "integrity": "sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA==", "requires": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", @@ -27668,21 +27582,21 @@ } }, "metro-transform-worker": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.7.tgz", - "integrity": "sha512-cGvELqFMVk9XTC15CMVzrCzcO6sO1lURfcbgjuuPdzaWuD11eEyocvkTX0DPiRjsvgAmicz4XYxVzgYl3MykDw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.76.8.tgz", + "integrity": "sha512-mE1fxVAnJKmwwJyDtThildxxos9+DGs9+vTrx2ktSFMEVTtXS/bIv2W6hux1pqivqAfyJpTeACXHk5u2DgGvIQ==", "requires": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", "babel-preset-fbjs": "^3.4.0", - "metro": "0.76.7", - "metro-babel-transformer": "0.76.7", - "metro-cache": "0.76.7", - "metro-cache-key": "0.76.7", - "metro-source-map": "0.76.7", - "metro-transform-plugins": "0.76.7", + "metro": "0.76.8", + "metro-babel-transformer": "0.76.8", + "metro-cache": "0.76.8", + "metro-cache-key": "0.76.8", + "metro-source-map": "0.76.8", + "metro-transform-plugins": "0.76.8", "nullthrows": "^1.1.1" } }, @@ -27705,9 +27619,9 @@ } }, "ob1": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.7.tgz", - "integrity": "sha512-BQdRtxxoUNfSoZxqeBGOyuT9nEYSn18xZHwGMb0mMVpn2NBcYbnyKY4BK2LIHRgw33CBGlUmE+KMaNvyTpLLtQ==" + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.76.8.tgz", + "integrity": "sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g==" }, "onetime": { "version": "5.1.2", @@ -27752,12 +27666,12 @@ } }, "@react-native-community/cli-server-api": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.6.tgz", - "integrity": "sha512-8GUKodPnURGtJ9JKg8yOHIRtWepPciI3ssXVw5jik7+dZ43yN8P5BqCoDaq8e1H1yRer27iiOfT7XVnwk8Dueg==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-11.3.7.tgz", + "integrity": "sha512-yoFyGdvR3HxCnU6i9vFqKmmSqFzCbnFSnJ29a+5dppgPRetN+d//O8ard/YHqHzToFnXutAFf2neONn23qcJAg==", "requires": { - "@react-native-community/cli-debugger-ui": "11.3.6", - "@react-native-community/cli-tools": "11.3.6", + "@react-native-community/cli-debugger-ui": "11.3.7", + "@react-native-community/cli-tools": "11.3.7", "compression": "^1.7.1", "connect": "^3.6.5", "errorhandler": "^1.5.1", @@ -27780,9 +27694,9 @@ } }, "@types/yargs": { - "version": "15.0.15", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", - "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", + "version": "15.0.16", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.16.tgz", + "integrity": "sha512-2FeD5qezW3FvLpZ0JpfuaEWepgNLl9b2gQYiz/ce0NhoB1W/D+VZu98phITXkADYerfr/jb7JcDcVhITsc9bwg==", "requires": { "@types/yargs-parser": "*" } @@ -27855,9 +27769,9 @@ } }, "@react-native-community/cli-tools": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.6.tgz", - "integrity": "sha512-JpmUTcDwAGiTzLsfMlIAYpCMSJ9w2Qlf7PU7mZIRyEu61UzEawyw83DkqfbzDPBuRwRnaeN44JX2CP/yTO3ThQ==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-11.3.7.tgz", + "integrity": "sha512-peyhP4TV6Ps1hk+MBHTFaIR1eI3u+OfGBvr5r0wPwo3FAJvldRinMgcB/TcCcOBXVORu7ba1XYjkubPeYcqAyA==", "requires": { "appdirsjs": "^1.2.4", "chalk": "^4.1.2", @@ -28005,9 +27919,9 @@ } }, "@react-native-community/cli-types": { - "version": "11.3.6", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.6.tgz", - "integrity": "sha512-6DxjrMKx5x68N/tCJYVYRKAtlRHbtUVBZrnAvkxbRWFD9v4vhNgsPM0RQm8i2vRugeksnao5mbnRGpS6c0awCw==", + "version": "11.3.7", + "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-11.3.7.tgz", + "integrity": "sha512-OhSr/TiDQkXjL5YOs8+hvGSB+HltLn5ZI0+A3DCiMsjUgTTsYh+Z63OtyMpNjrdCEFcg0MpfdU2uxstCS6Dc5g==", "requires": { "joi": "^17.2.1" } @@ -28077,15 +27991,15 @@ } }, "@react-navigation/elements": { - "version": "1.3.18", - "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.18.tgz", - "integrity": "sha512-/0hwnJkrr415yP0Hf4PjUKgGyfshrvNUKFXN85Mrt1gY49hy9IwxZgrrxlh0THXkPeq8q4VWw44eHDfAcQf20Q==", + "version": "1.3.19", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.3.19.tgz", + "integrity": "sha512-7hLvSYKPuDS070pza5gd43WDX7QgfuEmuTWNbCJhKdWlLudYmq3qzxGCBwCfO2dEI6+p8tla5wruaWiGKAbTYw==", "requires": {} }, "@react-navigation/native": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.7.tgz", - "integrity": "sha512-W6E3+AtTombMucCRo6q7vPmluq8hSjS+IxfazJ/SokOe7ChJX7eLvvralIsJkjFj3iWV1KgOSnHxa6hdiFasBw==", + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.1.8.tgz", + "integrity": "sha512-0alti852nV+8oCVm9H80G6kZvrHoy51+rXBvVCRUs2rNDDozC/xPZs8tyeCJkqdw3cpxZDK8ndXF22uWq28+0Q==", "requires": { "@react-navigation/core": "^6.4.9", "escape-string-regexp": "^4.0.0", @@ -28094,11 +28008,11 @@ } }, "@react-navigation/native-stack": { - "version": "6.9.13", - "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.13.tgz", - "integrity": "sha512-ejlepMrvFneewL+XlXHHhn+6y3lwvavM4/R7XwBV0XJxCymujexK+7Vkg7UcvJ1lx4CRhOcyBSNfGmdNIHREyQ==", + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@react-navigation/native-stack/-/native-stack-6.9.14.tgz", + "integrity": "sha512-7RiZkvMFN6f0kmANc63B/0m9ttQ2JpDIPWQwPU93FP698s19KTOyu7uxgl7Oi3bvsqHFO5JfiR7B+4h8lh9dxw==", "requires": { - "@react-navigation/elements": "^1.3.18", + "@react-navigation/elements": "^1.3.19", "warn-once": "^0.1.0" } }, @@ -28374,9 +28288,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", + "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", "dev": true, "requires": { "@babel/parser": "^7.20.7", @@ -28421,9 +28335,9 @@ "dev": true }, "@types/eslint": { - "version": "8.44.2", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.2.tgz", - "integrity": "sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==", + "version": "8.44.4", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.4.tgz", + "integrity": "sha512-lOzjyfY/D9QR4hY9oblZ76B90MYTB3RrQ4z2vBIJKj9ROCRqdkYl2gSUx1x1a4IWPjKJZLL4Aw1Zfay7eMnmnA==", "dev": true, "requires": { "@types/estree": "*", @@ -28445,6 +28359,11 @@ "@types/node": "*" } }, + "@types/hammerjs": { + "version": "2.0.43", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.43.tgz", + "integrity": "sha512-wqxfwHk83RS7+6OpytGdo5wqkqtvx+bGaIs1Rwm5NrtQHUfL4OgWs/5p0OipmjmT+fexePh37Ek+mqIpdNjQKA==" + }, "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -28467,9 +28386,9 @@ } }, "@types/jest": { - "version": "29.5.4", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.4.tgz", - "integrity": "sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==", + "version": "29.5.5", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz", + "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==", "dev": true, "requires": { "expect": "^29.0.0", @@ -28500,9 +28419,12 @@ "dev": true }, "@types/node": { - "version": "20.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.0.tgz", - "integrity": "sha512-najjVq5KN2vsH2U/xyh2opaSEz6cZMR2SetLIlxlj08nOcmPOemJmUK2o4kUzfLqfrWE0PIrNeE16XhYDd3nqg==" + "version": "20.8.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", + "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "requires": { + "undici-types": "~5.25.1" + } }, "@types/prop-types": { "version": "15.7.5", @@ -28511,9 +28433,9 @@ "dev": true }, "@types/react": { - "version": "18.2.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.21.tgz", - "integrity": "sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==", + "version": "18.2.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.28.tgz", + "integrity": "sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==", "dev": true, "requires": { "@types/prop-types": "*", @@ -28532,9 +28454,9 @@ } }, "@types/react-native-onboarding-swiper": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/react-native-onboarding-swiper/-/react-native-onboarding-swiper-1.1.4.tgz", - "integrity": "sha512-Ca+s0bFb0M8al3UeNAsbrO5ezGya9FqSvZTWVOK0JdNZydohrlwmrTHc61eWYlW992H0O2MTB1hiAx6vpOL+cQ==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@types/react-native-onboarding-swiper/-/react-native-onboarding-swiper-1.1.5.tgz", + "integrity": "sha512-EAZMyJ9keSPPmHHcyfiKpVhUlGsS1NwJjuUj9HYvK1e1pUyUdDgU4u1HqnBN/LhaISLRU5tItjNFpqtJT2uJ4A==", "dev": true, "requires": { "@types/react": "*", @@ -28554,9 +28476,9 @@ "dev": true }, "@types/sqlite3": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.8.tgz", - "integrity": "sha512-sQMt/qnyUWnqiTcJXm5ZfNPIBeJ/DVvJDwxw+0tAxPJvadzfiP1QhryO1JOR6t1yfb8NpzQb/Rud06mob5laIA==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.9.tgz", + "integrity": "sha512-0lUJ/W1tBkWqC1is8AI6HnGyk0TyFRFBbcv/hfrUk9XZ7I6LhGvkr0KSPPSaPQyg69nks7JEbxS7tD+MXeVWuQ==", "dev": true, "requires": { "@types/node": "*" @@ -28587,16 +28509,16 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "@typescript-eslint/eslint-plugin": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.0.tgz", - "integrity": "sha512-gUqtknHm0TDs1LhY12K2NA3Rmlmp88jK9Tx8vGZMfHeNMLE3GH2e9TRub+y+SOjuYgtOmok+wt1AyDPZqxbNag==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", + "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", "dev": true, "requires": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.0", - "@typescript-eslint/type-utils": "6.7.0", - "@typescript-eslint/utils": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/type-utils": "6.7.5", + "@typescript-eslint/utils": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -28632,54 +28554,54 @@ } }, "@typescript-eslint/parser": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.0.tgz", - "integrity": "sha512-jZKYwqNpNm5kzPVP5z1JXAuxjtl2uG+5NpaMocFPTNC2EdYIgbXIPImObOkhbONxtFTTdoZstLZefbaK+wXZng==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", + "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "6.7.0", - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/typescript-estree": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.0.tgz", - "integrity": "sha512-lAT1Uau20lQyjoLUQ5FUMSX/dS07qux9rYd5FGzKz/Kf8W8ccuvMyldb8hadHdK/qOI7aikvQWqulnEq2nCEYA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", + "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", "dev": true, "requires": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0" + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5" } }, "@typescript-eslint/type-utils": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.0.tgz", - "integrity": "sha512-f/QabJgDAlpSz3qduCyQT0Fw7hHpmhOzY/Rv6zO3yO+HVIdPfIWhrQoAyG+uZVtWAIS85zAyzgAFfyEr+MgBpg==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", + "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", "dev": true, "requires": { - "@typescript-eslint/typescript-estree": "6.7.0", - "@typescript-eslint/utils": "6.7.0", + "@typescript-eslint/typescript-estree": "6.7.5", + "@typescript-eslint/utils": "6.7.5", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" } }, "@typescript-eslint/types": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.0.tgz", - "integrity": "sha512-ihPfvOp7pOcN/ysoj0RpBPOx3HQTJTrIN8UZK+WFd3/iDeFHHqeyYxa4hQk4rMhsz9H9mXpR61IzwlBVGXtl9Q==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", + "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.0.tgz", - "integrity": "sha512-dPvkXj3n6e9yd/0LfojNU8VMUGHWiLuBZvbM6V6QYD+2qxqInE7J+J/ieY2iGwR9ivf/R/haWGkIj04WVUeiSQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", + "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", "dev": true, "requires": { - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/visitor-keys": "6.7.0", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/visitor-keys": "6.7.5", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -28714,17 +28636,17 @@ } }, "@typescript-eslint/utils": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.0.tgz", - "integrity": "sha512-MfCq3cM0vh2slSikQYqK2Gq52gvOhe57vD2RM3V4gQRZYX4rDPnKLu5p6cm89+LJiGlwEXU8hkYxhqqEC/V3qA==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", + "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.0", - "@typescript-eslint/types": "6.7.0", - "@typescript-eslint/typescript-estree": "6.7.0", + "@typescript-eslint/scope-manager": "6.7.5", + "@typescript-eslint/types": "6.7.5", + "@typescript-eslint/typescript-estree": "6.7.5", "semver": "^7.5.4" }, "dependencies": { @@ -28755,12 +28677,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.0.tgz", - "integrity": "sha512-/C1RVgKFDmGMcVGeD8HjKv2bd72oI1KxQDeY8uc66gw9R0OK0eMq48cA+jv9/2Ag6cdrsUGySm1yzYmfz0hxwQ==", + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", + "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", "dev": true, "requires": { - "@typescript-eslint/types": "6.7.0", + "@typescript-eslint/types": "6.7.5", "eslint-visitor-keys": "^3.4.1" } }, @@ -30177,9 +30099,9 @@ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==" }, "crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" }, "crypto-random-string": { "version": "2.0.0", @@ -30258,9 +30180,9 @@ } }, "dayjs": { - "version": "1.11.9", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", - "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" }, "debug": { "version": "4.3.4", @@ -30766,15 +30688,15 @@ } }, "eslint": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", - "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", + "version": "8.51.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", + "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", "dev": true, "requires": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", + "@eslint/js": "8.51.0", "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -30919,9 +30841,9 @@ } }, "eslint-plugin-deprecate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-deprecate/-/eslint-plugin-deprecate-0.8.2.tgz", - "integrity": "sha512-THs60MUqJoHtrF6F8eNUnyU0ER6p4wUX7yyoUZQdBDPFiE9kzZTo4CgRKZicUVj5cjXLT76nW+QdSZwZKtjLIA==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-deprecate/-/eslint-plugin-deprecate-0.8.4.tgz", + "integrity": "sha512-bzpQTyXNWXbMWRH77XiuzfAthOhQhizEZrTf7krRiMYrq6ENUsWfbCe8A3SeRNa4eW8T2QrHsg/lXmxLq9xXXA==", "dev": true, "requires": {} }, @@ -31024,9 +30946,9 @@ } }, "eslint-plugin-jest": { - "version": "27.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz", - "integrity": "sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==", + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.4.2.tgz", + "integrity": "sha512-3Nfvv3wbq2+PZlRTf2oaAWXWwbdBejFRBR2O8tAO67o+P8zno+QGbcDYaAXODlreXVg+9gvWhKKmG2rgfb8GEg==", "dev": true, "requires": { "@typescript-eslint/utils": "^5.10.0" @@ -31132,9 +31054,9 @@ } }, "eslint-plugin-jsdoc": { - "version": "46.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.6.0.tgz", - "integrity": "sha512-T/1gzsvnX45qABzyPEonEhFDttkTn7Igm/X89TXIkTLBOsNl2GYtyBqQPZGXZZ8J5VBzEhiCMvI2P2kXX4dnFw==", + "version": "46.8.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.8.2.tgz", + "integrity": "sha512-5TSnD018f3tUJNne4s4gDWQflbsgOycIKEUBoCLn6XtBMgNHxQFmV8vVxUtiPxAQq8lrX85OaSG/2gnctxw9uQ==", "dev": true, "requires": { "@es-joy/jsdoccomment": "~0.40.1", @@ -31464,12 +31386,12 @@ } }, "expo": { - "version": "49.0.10", - "resolved": "https://registry.npmjs.org/expo/-/expo-49.0.10.tgz", - "integrity": "sha512-+qb2n9TEqy6wu3/vguGOWJKRk9B3vIOXrR+Wlr3Bu+/rFX1/i98z3MZUawDPMNLzyRMEbKJzUodplic8IQhMOQ==", + "version": "49.0.14", + "resolved": "https://registry.npmjs.org/expo/-/expo-49.0.14.tgz", + "integrity": "sha512-mIZWb/JRiUQDg+xjgCgECSiLrpBUnqiDaeEktHfXUYTT4Qhh+mY9X0lfy0HjiCKwPVFv2M7SQenCGwCQV5MdpA==", "requires": { "@babel/runtime": "^7.20.0", - "@expo/cli": "0.10.12", + "@expo/cli": "0.10.13", "@expo/config": "8.1.2", "@expo/config-plugins": "7.2.5", "@expo/vector-icons": "^13.0.0", @@ -31631,25 +31553,25 @@ } }, "expo-dev-client": { - "version": "2.4.10", - "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-2.4.10.tgz", - "integrity": "sha512-45nyJAufsVRunKw2XOAn/RG0mG5PoV5eKFR4C9RpuUi0VvHKhdzeF5epRFrYR44zmhe3KwG4ggut5KB4YcsdeA==", + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/expo-dev-client/-/expo-dev-client-2.4.11.tgz", + "integrity": "sha512-A7aKQZeEYG0YJ51GnjOFkMNe118jD1cbU+v5iM3E+H1Co5aVtnlGZWcv8Dtw3uGuWxRgbWGds5TGNbcDmJ1hDg==", "dev": true, "requires": { - "expo-dev-launcher": "2.4.12", - "expo-dev-menu": "3.2.0", + "expo-dev-launcher": "2.4.13", + "expo-dev-menu": "3.2.1", "expo-dev-menu-interface": "1.3.0", "expo-manifests": "~0.7.0", "expo-updates-interface": "~0.10.0" } }, "expo-dev-launcher": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-2.4.12.tgz", - "integrity": "sha512-r561CgR4fNIn5f4I16vxSD9b2Za3QCIfez0OwcRt90dY612tk1Ifkl5DQMLEL3Rm/maB7wfH3bXf0cZa5RGtog==", + "version": "2.4.13", + "resolved": "https://registry.npmjs.org/expo-dev-launcher/-/expo-dev-launcher-2.4.13.tgz", + "integrity": "sha512-afszaREyGnhWJMmcOuDGs83r0UWeRvZrOHlKQxxst/UhAeFQqlDmkEjwtDWfTUy7BoXuuw2CuQtUFH+vTyjEGA==", "dev": true, "requires": { - "expo-dev-menu": "3.2.0", + "expo-dev-menu": "3.2.1", "resolve-from": "^5.0.0", "semver": "^7.5.3" }, @@ -31681,9 +31603,9 @@ } }, "expo-dev-menu": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-3.2.0.tgz", - "integrity": "sha512-oMhfNI2aU2HOVYLkFz3krj+L+GwJDHTPjnJWMBG5AsmWJDp70yFGZhSEjcNFG1ekscRndrvfdHlocKO6JTeQcw==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/expo-dev-menu/-/expo-dev-menu-3.2.1.tgz", + "integrity": "sha512-SxH/ZUIYZliMBjJTpiECVSDkP7e81mbGNLH8ZD69iCAfLeH7P1OPXFycEdcvN33I7tVqzFgARGLK/W/8JV+U9w==", "dev": true, "requires": { "expo-dev-menu-interface": "1.3.0", @@ -31752,6 +31674,12 @@ "fontfaceobserver": "^2.1.0" } }, + "expo-image": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/expo-image/-/expo-image-1.3.4.tgz", + "integrity": "sha512-2N6etMJA5OWbbvL9IdPVchNoJd18kVo5gcN4uC9Xtv1VM/ik6PRB3Tz+qP/0Uglkzh/yyJjw7aDTqWozj5nLZw==", + "requires": {} + }, "expo-image-loader": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/expo-image-loader/-/expo-image-loader-4.3.0.tgz", @@ -31918,9 +31846,9 @@ "integrity": "sha512-t+h5Zqaukd3Tn97LaWPpibVsmiC/TFP8F+8sAUliwCSMzgcb5TATRs2NcAB+JcIr8EP3JJDyYXJrZle1cjs4mQ==" }, "expo-updates": { - "version": "0.18.13", - "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.18.13.tgz", - "integrity": "sha512-+6Z3C38EAptYbY1/J4JIWChJKtdaEJSSfTxrSqdG6ES4RnBqSdpdH4513YiOezpE1WhCqPtQHfJW2Lsu7O1odA==", + "version": "0.18.17", + "resolved": "https://registry.npmjs.org/expo-updates/-/expo-updates-0.18.17.tgz", + "integrity": "sha512-oyBDR94nYEtVw+iBod3N9LFqTfpLHofmUjh0lP12YZINUI89hvoAyqRe56eSnlpWkzziG6g1y4NGva0D0ViK6w==", "requires": { "@expo/code-signing-certificates": "0.0.5", "@expo/config": "~8.1.0", @@ -32026,9 +31954,9 @@ "dev": true }, "fast-xml-parser": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.7.tgz", - "integrity": "sha512-J8r6BriSLO1uj2miOk1NW0YVm8AGOOu3Si2HQp/cSmo6EA4m3fcwu2WKjJ4RK9wMLBtg69y1kS8baDiQBR41Ig==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.1.tgz", + "integrity": "sha512-viVv3xb8D+SiS1W4cv4tva3bni08kAkx0gQnWrykMM8nXPc1FxqZPU00dCEVjkiCg4HoXd2jC4x29Nzg/l2DAA==", "requires": { "strnum": "^1.0.5" } @@ -34758,9 +34686,9 @@ "dev": true }, "joi": { - "version": "17.10.1", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.1.tgz", - "integrity": "sha512-vIiDxQKmRidUVp8KngT8MZSOcmRVm2zV7jbMjNYWuHcJWI0bUck3nRTGQjhpPlQenIQIBC5Vp9AhcnHbWQqafw==", + "version": "17.10.2", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.10.2.tgz", + "integrity": "sha512-hcVhjBxRNW/is3nNLdGLIjkgXetkeGc2wyhydhz8KumG23Aerk4HPjU5zaPAMRqXQFc0xNqXTC7+zQjxr0GlKA==", "requires": { "@hapi/hoek": "^9.0.0", "@hapi/topo": "^5.0.0", @@ -35505,9 +35433,9 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "metro": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.79.0.tgz", - "integrity": "sha512-TmQjGRZViwK2tGPJqOBabIxqtPKjQwn7NRtWwYgplB7B+u0/PbrIxJ7AJAGgb0aAqLtAuwYbVejg3Fyy4UKtow==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro/-/metro-0.79.1.tgz", + "integrity": "sha512-PDzLQn4fpV4cs6brPi3zSu3zOA3kG+x6algazYGz1FzrOIsIT+L0Hd294+V4xN73EjLrSD5vD5hNsWlBxRk/PA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -35531,19 +35459,19 @@ "jest-worker": "^27.2.0", "jsc-safe-url": "^0.2.2", "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.79.0", - "metro-cache": "0.79.0", - "metro-cache-key": "0.79.0", - "metro-config": "0.79.0", - "metro-core": "0.79.0", - "metro-file-map": "0.79.0", - "metro-minify-terser": "0.79.0", - "metro-resolver": "0.79.0", - "metro-runtime": "0.79.0", - "metro-source-map": "0.79.0", - "metro-symbolicate": "0.79.0", - "metro-transform-plugins": "0.79.0", - "metro-transform-worker": "0.79.0", + "metro-babel-transformer": "0.79.1", + "metro-cache": "0.79.1", + "metro-cache-key": "0.79.1", + "metro-config": "0.79.1", + "metro-core": "0.79.1", + "metro-file-map": "0.79.1", + "metro-minify-terser": "0.79.1", + "metro-resolver": "0.79.1", + "metro-runtime": "0.79.1", + "metro-source-map": "0.79.1", + "metro-symbolicate": "0.79.1", + "metro-transform-plugins": "0.79.1", + "metro-transform-worker": "0.79.1", "mime-types": "^2.1.27", "node-fetch": "^2.2.0", "nullthrows": "^1.1.1", @@ -35679,9 +35607,9 @@ } }, "metro-babel-transformer": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.79.0.tgz", - "integrity": "sha512-RtDWsdlmP8K04zfIMpD3vosfAROdzL0Z28yDeC5OvqD7bUn0ZQUxlFbG/HdrdXDkCe8+55F2ZxLGMG95Mlvf9A==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.79.1.tgz", + "integrity": "sha512-WvE/At9r0LoNoxGgGhULV4H5ieuLs8AHfVUtTpHaOpgE326BwHNiUYaWuCpaM/BTTlajQltK/U1t+MqbbvFG9A==", "dev": true, "requires": { "@babel/core": "^7.20.0", @@ -35690,12 +35618,12 @@ } }, "metro-cache": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.79.0.tgz", - "integrity": "sha512-6suCHTcDTCvbi7rDftvj+0+6GkGPSqqAmVUgasz9JZy1zyUM5ezdHrfN5E06B7LgGzXEsb4xF/zHJ0foq98SOA==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.79.1.tgz", + "integrity": "sha512-uRlo1cYewW9t6KuRED0G/iCnlqPc5Hq+I2VELBiJr4lBYwCz8P1KwcdzgSUpAzcZBcarq6rI9JqVPvV4t6P3YQ==", "dev": true, "requires": { - "metro-core": "0.79.0", + "metro-core": "0.79.1", "rimraf": "^3.0.2" }, "dependencies": { @@ -35711,40 +35639,40 @@ } }, "metro-cache-key": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.79.0.tgz", - "integrity": "sha512-D+pHt35guISi02ToNWaj1YGOiHfkeR63LZJUraUalVsLX8QHXuYkOYbyhhnO8Y5933Ro6DpSad61drvqxRhzfQ==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.79.1.tgz", + "integrity": "sha512-/u48AuINgakqYEymRrD6MzKCSYU/JEXrqGX4x6gVHVa99TKPeg5SBi3MIjpZz/tWGpcQHCKItfjLD48YhEJr3Q==", "dev": true }, "metro-config": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.79.0.tgz", - "integrity": "sha512-X0DD0Y5+sp9A54Xj9n+haUaGIfGIHzoRw1ZdR1MPS3IKNP1pK+iU7tkFLp/w5yT2NzcGDttNim5LLOykZD41jA==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.79.1.tgz", + "integrity": "sha512-gleXbytiPTsO88DDUuaprKQLfaOVfoj6L7yw1u6MRXmQdebK3TmWUajqnLdWDQ/D0+JBWfrkFhLjnWXHsA8Cgw==", "dev": true, "requires": { "connect": "^3.6.5", "cosmiconfig": "^5.0.5", "jest-validate": "^29.6.3", - "metro": "0.79.0", - "metro-cache": "0.79.0", - "metro-core": "0.79.0", - "metro-runtime": "0.79.0" + "metro": "0.79.1", + "metro-cache": "0.79.1", + "metro-core": "0.79.1", + "metro-runtime": "0.79.1" } }, "metro-core": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.79.0.tgz", - "integrity": "sha512-VWTSfcjadvtP6wECU+EN2iBx0d1M1CFnl+icCzV8D9F2XaB4Fj/xQHwZCSbLYvEAkCYsr8/XkDw7pFd4kd8VLg==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.79.1.tgz", + "integrity": "sha512-tPlpLLOKT5D5HSFQBrvgU2gupecCA0YcnQQVOByuLjY5JMXUBU7HISHv5gpbJTUt9KlPQ8OhZV/x6ivyXaVSQg==", "dev": true, "requires": { "lodash.throttle": "^4.1.1", - "metro-resolver": "0.79.0" + "metro-resolver": "0.79.1" } }, "metro-file-map": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.79.0.tgz", - "integrity": "sha512-g2TKD352ei+CahyowDPibH4SZ73kX/x9SWAicv9cQ0Hy2UtCDWP6jaeT4mDUISFZOoK1vGojr9JJRyyR+nWD1A==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.79.1.tgz", + "integrity": "sha512-PpPhfkj1Bj448f+5vZaaImJWFSsf6XveYGdRsfwvskcYlMsFBl4OX1WyGTJCCCzrtIOH5y1V3OADI/HS563sCA==", "dev": true, "requires": { "anymatch": "^3.0.3", @@ -35775,9 +35703,9 @@ } }, "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", + "version": "16.0.6", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.6.tgz", + "integrity": "sha512-oTP7/Q13GSPrgcwEwdlnkoZSQ1Hg9THe644qq8PG6hhJzjZ3qj1JjEFPIwWV/IXVs5XGIVqtkNOS9kh63WIJ+A==", "dev": true, "requires": { "@types/yargs-parser": "*" @@ -35886,9 +35814,9 @@ } }, "metro-inspector-proxy": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.7.tgz", - "integrity": "sha512-rNZ/6edTl/1qUekAhAbaFjczMphM50/UjtxiKulo6vqvgn/Mjd9hVqDvVYfAMZXqPvlusD88n38UjVYPkruLSg==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-inspector-proxy/-/metro-inspector-proxy-0.76.8.tgz", + "integrity": "sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw==", "requires": { "connect": "^3.6.5", "debug": "^2.2.0", @@ -35919,18 +35847,18 @@ } }, "metro-minify-terser": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.79.0.tgz", - "integrity": "sha512-7VYxy/wAHtuVz3RXAiyMvP6Qp6BGR+Ibl0FI4Ky/s4aMFUB0nW/uQuH1rH0fJMR5WxCmt4qAA4+uW2rZguIvVw==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.79.1.tgz", + "integrity": "sha512-69zOvPazJFKE6tHlOF8PQcvXUfoXgeHreVaggjuqnCREMWBjEkTH9jOn8M3oB0JgKmEUBb4bzFr7Oz1kC7Jc3g==", "dev": true, "requires": { "terser": "^5.15.0" } }, "metro-minify-uglify": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.7.tgz", - "integrity": "sha512-FuXIU3j2uNcSvQtPrAJjYWHruPiQ+EpE++J9Z+VznQKEHcIxMMoQZAfIF2IpZSrZYfLOjVFyGMvj41jQMxV1Vw==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-minify-uglify/-/metro-minify-uglify-0.76.8.tgz", + "integrity": "sha512-6l8/bEvtVaTSuhG1FqS0+Mc8lZ3Bl4RI8SeRIifVLC21eeSDp4CEBUWSGjpFyUDfi6R5dXzYaFnSgMNyfxADiQ==", "requires": { "uglify-es": "^3.1.9" } @@ -35982,14 +35910,14 @@ } }, "metro-react-native-babel-transformer": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.7.tgz", - "integrity": "sha512-W6lW3J7y/05ph3c2p3KKJNhH0IdyxdOCbQ5it7aM2MAl0SM4wgKjaV6EYv9b3rHklpV6K3qMH37UKVcjMooWiA==", + "version": "0.76.8", + "resolved": "https://registry.npmjs.org/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.8.tgz", + "integrity": "sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A==", "requires": { "@babel/core": "^7.20.0", "babel-preset-fbjs": "^3.4.0", "hermes-parser": "0.12.0", - "metro-react-native-babel-preset": "0.76.7", + "metro-react-native-babel-preset": "0.76.8", "nullthrows": "^1.1.1" }, "dependencies": { @@ -36005,65 +35933,19 @@ "requires": { "hermes-estree": "0.12.0" } - }, - "metro-react-native-babel-preset": { - "version": "0.76.7", - "resolved": "https://registry.npmjs.org/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.7.tgz", - "integrity": "sha512-R25wq+VOSorAK3hc07NW0SmN8z9S/IR0Us0oGAsBcMZnsgkbOxu77Mduqf+f4is/wnWHc5+9bfiqdLnaMngiVw==", - "requires": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.4.0" - } } } }, "metro-resolver": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.79.0.tgz", - "integrity": "sha512-ABPYo9EHXTjE3lhDo9SXw/EH1OPltYTv8a7MC+b4ei9xLd7DuiHNvlT4YpZjWADSKrtM5xqbZHFboTgzyBSjWw==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.79.1.tgz", + "integrity": "sha512-hiea5co7c5rhrdD5xYohBq2Sw20Ytzie71raIW9SsXKBKzsS0zAbrwNFW5z71lDUnp719vhobnDXJ+yE7Kq9Gg==", "dev": true }, "metro-runtime": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.79.0.tgz", - "integrity": "sha512-C9OMx/7qVb39ToIGxvHlltfNqE1xWw0DfJISLIc74CZGthTCPa1nlxvog2t8Pc7FlLJPmjDeDkJVEPKQM8jKfg==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.79.1.tgz", + "integrity": "sha512-RRBFPjaex8/Q6M+4V0oOYrd4mDG0iNkRMSdT5iojUe9pF24pRmqwG2gm3NBBgh4UAzYPI0NsJ6AB8JTmchfCAg==", "dev": true, "requires": { "@babel/runtime": "^7.0.0", @@ -36071,17 +35953,17 @@ } }, "metro-source-map": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.79.0.tgz", - "integrity": "sha512-vLVoeWCLq5kGJfwZt54wYAI6GpfZKDb+P9OTv9CcTnPD8EjF7EgZpSO+NNZDKwGqtmwy/JItzzEQDIx6HXs7dw==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.79.1.tgz", + "integrity": "sha512-Rlgld4cfWUFs5NdAErSzWfX9C4eYLPXTBBmhTHaiQEgRb0ydrfhOcofT0gYTHzp6t9lW30IO5wxlzl6gU/nOjA==", "dev": true, "requires": { "@babel/traverse": "^7.20.0", "@babel/types": "^7.20.0", "invariant": "^2.2.4", - "metro-symbolicate": "0.79.0", + "metro-symbolicate": "0.79.1", "nullthrows": "^1.1.1", - "ob1": "0.79.0", + "ob1": "0.79.1", "source-map": "^0.5.6", "vlq": "^1.0.0" }, @@ -36095,13 +35977,13 @@ } }, "metro-symbolicate": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.79.0.tgz", - "integrity": "sha512-8o6D1YmoL7Jl45/HekmKem9wtVL7E/W94wW23ajmTx7gnFrpquxNf4plWYtQ0P/Y0K/r1ACRXxnndLjNhGFw5A==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.79.1.tgz", + "integrity": "sha512-cB7Yxh5SKs24EsTaONpaEPoFC6H1ya0BeAR1Ety1qeeV/gFmC8YvkwFj9S8sy6whwIf4dM9xLF2iv7Ug78C4JA==", "dev": true, "requires": { "invariant": "^2.2.4", - "metro-source-map": "0.79.0", + "metro-source-map": "0.79.1", "nullthrows": "^1.1.1", "source-map": "^0.5.6", "through2": "^2.0.1", @@ -36117,9 +35999,9 @@ } }, "metro-transform-plugins": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.79.0.tgz", - "integrity": "sha512-3cItCo50SwjaQuqBwHpyzobEL2E6NAeuttebhaipuD+xc96lUXL1LvmXXic2zUNkOZj02zlEZvgG2CqmlXQaYQ==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.79.1.tgz", + "integrity": "sha512-kGDpBJGpijC/OVrpngCiyvzrT6sfSPqFOiyEzU02j+8UCmxKCofbdv62nT97dzseR+iWkzFPcCbq8Nc7/CFwwA==", "dev": true, "requires": { "@babel/core": "^7.20.0", @@ -36130,21 +36012,21 @@ } }, "metro-transform-worker": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.79.0.tgz", - "integrity": "sha512-eHyzqSKUVKH4amKB1MA0Yp4fH7wvYvvyWX1JTqb32f/eGWiBdVcjIpQLI46CECzDqNY5pJcolBEB4ARs4ZhskA==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.79.1.tgz", + "integrity": "sha512-WA15xo7EvJgutlhRKldgPTtwOWur4xDO5uQc5e/vZuhGtahcV0b4v2lXp+t3z5gs9DBqajsczce1A+3pY9wcQQ==", "dev": true, "requires": { "@babel/core": "^7.20.0", "@babel/generator": "^7.20.0", "@babel/parser": "^7.20.0", "@babel/types": "^7.20.0", - "metro": "0.79.0", - "metro-babel-transformer": "0.79.0", - "metro-cache": "0.79.0", - "metro-cache-key": "0.79.0", - "metro-source-map": "0.79.0", - "metro-transform-plugins": "0.79.0", + "metro": "0.79.1", + "metro-babel-transformer": "0.79.1", + "metro-cache": "0.79.1", + "metro-cache-key": "0.79.1", + "metro-source-map": "0.79.1", + "metro-transform-plugins": "0.79.1", "nullthrows": "^1.1.1" } }, @@ -36584,9 +36466,9 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" }, "nostr-tools": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.15.0.tgz", - "integrity": "sha512-Dh7LVAUqaSiSs61QddsWluLVWpMwyMGaVlbhDYEy03ZwnBBzm10pz+mQZSdVV88/B3a5843gHZ4dIBUeS5upoA==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/nostr-tools/-/nostr-tools-1.16.0.tgz", + "integrity": "sha512-sx/aOl0gmkeHVoIVbyOhEQhzF88NsrBXMC8bsjhPASqA6oZ8uSOAyEGgRLMfC3SKgzQD5Gr6KvDoAahaD6xKcg==", "requires": { "@noble/ciphers": "^0.2.0", "@noble/curves": "1.1.0", @@ -36677,9 +36559,9 @@ "dev": true }, "ob1": { - "version": "0.79.0", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.79.0.tgz", - "integrity": "sha512-9jFD2M7GcotKTNkS8N5EjyGh+g838p2WCTC6k1LQnx6+MUycoI24stT3Qxuk6DJBEWVTEb2l2GZ6GzUjqpBqOA==", + "version": "0.79.1", + "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.79.1.tgz", + "integrity": "sha512-Z05NdP9uwS6UWoqNQDqx/VuVBD7rhMBqCB52js9HRct5IsU/lcSC/9Rv4J977wcOrSmaYTXQa2HRkUg4QAIS3g==", "dev": true }, "object-assign": { @@ -37125,9 +37007,9 @@ "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" }, "postcss": { - "version": "8.4.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", - "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "requires": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -37494,9 +37376,9 @@ "requires": {} }, "react-i18next": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.2.2.tgz", - "integrity": "sha512-+nFUkbRByFwnrfDcYqvzBuaeZb+nACHx+fAWN/pZMddWOCJH5hoc21+Sa/N/Lqi6ne6/9wC/qRGOoQhJa6IkEQ==", + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-13.3.0.tgz", + "integrity": "sha512-FlR9xjYHSPIJfQspEmkN0yOlxgRyNuiJKJ8gCaZH08UJ7SZHG+VrptEPcpEMEchjNoCOZdKcvJ3PnmHEZhkeXg==", "requires": { "@babel/runtime": "^7.22.5", "html-parse-stringify": "^3.0.1" @@ -37508,16 +37390,16 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "react-native": { - "version": "0.72.4", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.4.tgz", - "integrity": "sha512-+vrObi0wZR+NeqL09KihAAdVlQ9IdplwznJWtYrjnQ4UbCW6rkzZJebRsugwUneSOKNFaHFEo1uKU89HsgtYBg==", + "version": "0.72.6", + "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.72.6.tgz", + "integrity": "sha512-RafPY2gM7mcrFySS8TL8x+TIO3q7oAlHpzEmC7Im6pmXni6n1AuufGaVh0Narbr1daxstw7yW7T9BKW5dpVc2A==", "requires": { "@jest/create-cache-key-function": "^29.2.1", - "@react-native-community/cli": "11.3.6", - "@react-native-community/cli-platform-android": "11.3.6", - "@react-native-community/cli-platform-ios": "11.3.6", + "@react-native-community/cli": "11.3.7", + "@react-native-community/cli-platform-android": "11.3.7", + "@react-native-community/cli-platform-ios": "11.3.7", "@react-native/assets-registry": "^0.72.0", - "@react-native/codegen": "^0.72.6", + "@react-native/codegen": "^0.72.7", "@react-native/gradle-plugin": "^0.72.11", "@react-native/js-polyfills": "^0.72.1", "@react-native/normalize-colors": "^0.72.0", @@ -37707,6 +37589,18 @@ "optional": true, "requires": {} }, + "react-native-gesture-handler": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/react-native-gesture-handler/-/react-native-gesture-handler-2.12.1.tgz", + "integrity": "sha512-deqh36bw82CFUV9EC4tTo2PP1i9HfCOORGS3Zmv71UYhEZEHkzZv18IZNPB+2Awzj45vLIidZxGYGFxHlDSQ5A==", + "requires": { + "@egjs/hammerjs": "^2.0.17", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "lodash": "^4.17.21", + "prop-types": "^15.7.2" + } + }, "react-native-onboarding-swiper": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/react-native-onboarding-swiper/-/react-native-onboarding-swiper-1.2.0.tgz", @@ -37715,6 +37609,11 @@ "tinycolor2": "^1.4.1" } }, + "react-native-popup-menu": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/react-native-popup-menu/-/react-native-popup-menu-0.16.1.tgz", + "integrity": "sha512-xRS7mRh0exwu7Iw8PPVHdM11d13A/KzYjy0/fZx3zVtxISxPkNaDGayau6oa7HqO3Nj0oS9ulFCYjcQfG6vahA==" + }, "react-native-qrcode-svg": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/react-native-qrcode-svg/-/react-native-qrcode-svg-6.2.0.tgz", @@ -38973,9 +38872,9 @@ } }, "terser": { - "version": "5.19.4", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.4.tgz", - "integrity": "sha512-6p1DjHeuluwxDXcuT9VR8p64klWJKo1ILiy19s6C9+0Bh2+NWTX6nD9EPppiER4ICkHDVB1RkVpin/YW2nQn/g==", + "version": "5.20.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.20.0.tgz", + "integrity": "sha512-e56ETryaQDyebBwJIWYB2TT6f2EZ0fL0sW/JRXNMN26zZdKi2u/E/5my5lG6jNxym6qsrVXfFRmOdV42zlAgLQ==", "requires": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -39376,6 +39275,11 @@ "which-boxed-primitive": "^1.0.2" } }, + "undici-types": { + "version": "5.25.3", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", + "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", diff --git a/package.json b/package.json index daf53154..90aa28d4 100644 --- a/package.json +++ b/package.json @@ -4,18 +4,16 @@ "author": "Agron Kadriaj (https://agron.dev)", "scripts": { "s:debug:full": "npx -y cross-env@latest DEBUG=full expo start -c", - "s:c:dev": "expo start -c --dev-client", "s:c": "expo start -c --go", "start": "expo start --go", - "start:d": "expo start", - "lint:eslint": "npx eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.json --fix", + "lint:eslint": "npx eslint ./src --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.json --fix", "lint": "npm run lint:eslint && npx tsc && npm run fmtJson", "ts:check": "npx tsc", - "dep:update": "npx -y npm-check-updates --pre -u -u && npm i && npm audit fix || true && npx expo install --fix && npm run lint", + "dep:update": "npx -y npm-check-updates --pre -u -u && npm i && npm audit fix || true && npx expo@latest install --fix && npm run lint", "dep:check": "npx -y depcheck@latest", "fmtJson": "npx prettier *.json assets/translations/*.json .github/workflows/*.yml --write --use-tabs --tab-width 4", - "expo:i:check": "npx expo install --check", - "expo:i:fix": "npx expo install --fix", + "expo:i:check": "npx expo@latest install --check", + "expo:i:fix": "npx expo@latest install --fix", "expo:doc": "npx -y expo-doctor@latest", "build:dev": "npx -y eas-cli@latest build -e development -p android -m devWithDevClient --no-wait", "build:preview:android": "npx -y eas-cli@latest build -e preview -p android -m manualPreview --no-wait", @@ -31,16 +29,13 @@ "web": "expo start --web", "test": "npx jest -c ./config/jest.config.ts --passWithNoTests ", "test:coverage": "npm run test -- --collectCoverage", - "test:ts": "npm run test --testPathIgnorePatterns=tsx$", - "test:ts:coverage": "npm run test:ts -- --collectCoverageFrom=src/**/*.ts", - "test:tsx": "npm run test --testPathIgnorePatterns=ts$", - "test:tsx:coverage": "npm run test:tsx -- --collectCoverageFrom=components/**/*.tsx", "test:dev": "npm run test -- --detectOpenHandles", "cpd:ts": "npx -y jscpd -c config/cpd.config.ts.json src config", "cpd:tsx": "npx -y jscpd -c config/cpd.config.tsx.json src", "cpd": "npm run cpd:ts && npm run cpd:tsx", "deps:c": "npx -y madge --circular --ts-config tsconfig.json --extensions ts,tsx .", - "eas-build-pre-install": "echo \"require('./src/AppEntry.ts')\" > index.js" + "eas-build-pre-install": "echo \"require('./src/AppEntry.ts')\" > index.js", + "update-translations": "node utils/update-translations.js" }, "dependencies": { "@cashu/cashu-ts": "^0.8.1", @@ -49,12 +44,12 @@ "@react-native-async-storage/async-storage": "1.18.2", "@react-native-community/netinfo": "9.3.10", "@react-navigation/core": "^6.4.9", - "@react-navigation/native": "^6.1.7", - "@react-navigation/native-stack": "^6.9.13", + "@react-navigation/native": "^6.1.8", + "@react-navigation/native-stack": "^6.9.14", "@sentry/react-native": "5.5.0", "@shopify/flash-list": "1.4.3", - "crypto-js": "4.1.1", - "expo": "^49.0.9", + "crypto-js": "4.2.0", + "expo": "^49.0.13", "expo-application": "~5.3.0", "expo-asset": "~8.10.1", "expo-barcode-scanner": "~12.5.3", @@ -64,19 +59,23 @@ "expo-crypto": "~12.4.1", "expo-device": "~5.4.0", "expo-file-system": "~15.4.4", - "expo-insights": "^0.2.0", + "expo-image": "~1.3.4", + "expo-insights": "~0.2.0", "expo-localization": "~14.3.0", "expo-secure-store": "~12.3.1", "expo-splash-screen": "~0.20.5", "expo-sqlite": "~11.3.3", "expo-status-bar": "~1.6.0", - "expo-updates": "~0.18.13", + "expo-updates": "~0.18.17", "i18next": "^23.5.1", - "nostr-tools": "^1.15.0", + "lottie-react-native": "5.1.6", + "nostr-tools": "^1.16.0", "react": "^18.2.0", - "react-i18next": "^13.2.2", - "react-native": "0.72.4", + "react-i18next": "^13.3.0", + "react-native": "0.72.6", + "react-native-gesture-handler": "~2.12.0", "react-native-onboarding-swiper": "^1.2.0", + "react-native-popup-menu": "^0.16.1", "react-native-qrcode-svg": "^6.2.0", "react-native-reanimated": "~3.3.0", "react-native-safe-area-context": "4.6.3", @@ -84,32 +83,31 @@ "react-native-svg": "13.9.0", "react-native-url-polyfill": "^2.0.0", "sentry-expo": "~7.0.1", - "text-encoding-polyfill": "^0.6.7", - "lottie-react-native": "5.1.6" + "text-encoding-polyfill": "^0.6.7" }, "devDependencies": { "@babel/plugin-proposal-private-methods": "^7.18.6", "@getify/eslint-plugin-proper-arrows": "^11.0.3", "@testing-library/react-native": "^12.3.0", - "@types/babel__core": "^7.20.1", + "@types/babel__core": "^7.20.2", "@types/crypto-js": "^4.1.2", - "@types/eslint": "^8.44.2", - "@types/jest": "^29.5.4", - "@types/node": "^20.6.0", - "@types/react": "~18.2.21", - "@types/react-native-onboarding-swiper": "^1.1.4", - "@types/sqlite3": "^3.1.8", - "@typescript-eslint/eslint-plugin": "^6.6.0", - "@typescript-eslint/parser": "^6.6.0", + "@types/eslint": "^8.44.4", + "@types/jest": "^29.5.5", + "@types/node": "^20.8.6", + "@types/react": "~18.2.28", + "@types/react-native-onboarding-swiper": "^1.1.5", + "@types/sqlite3": "^3.1.9", + "@typescript-eslint/eslint-plugin": "^6.7.5", + "@typescript-eslint/parser": "^6.7.5", "dotenv": "^16.3.1", - "eslint": "^8.49.0", - "eslint-plugin-deprecate": "^0.8.2", + "eslint": "^8.51.0", + "eslint-plugin-deprecate": "^0.8.4", "eslint-plugin-es5": "^1.5.0", "eslint-plugin-eslint-plugin": "^5.1.1", "eslint-plugin-html": "^7.1.0", "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jest": "^27.2.3", - "eslint-plugin-jsdoc": "^46.6.0", + "eslint-plugin-jest": "^27.4.2", + "eslint-plugin-jsdoc": "^46.8.2", "eslint-plugin-json": "^3.1.0", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.1.1", @@ -117,10 +115,10 @@ "eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-simple-import-sort": "^10.0.0", "eslint-plugin-tsdoc": "^0.2.17", - "expo-dev-client": "~2.4.10", - "jest": "^29.6.4", + "expo-dev-client": "~2.4.11", + "jest": "^29.7.0", "jest-expo": "^49.0.0", - "metro-config": "^0.79.0", + "metro-config": "^0.79.1", "prettier": "^3.0.3", "reactotron-react-native": "^5.0.3", "ts-jest": "^29.1.1", @@ -159,7 +157,7 @@ "blind-signatures", "lightning-network" ], - "version": "0.0.4", + "version": "0.0.5", "license": "AGPL-3.0-only", "bugs": { "url": "https://github.com/cashubtc/eNuts/issues" diff --git a/src/components/App.tsx b/src/components/App.tsx index e7d7dce0..6740dde0 100644 --- a/src/components/App.tsx +++ b/src/components/App.tsx @@ -26,7 +26,8 @@ import * as SplashScreen from 'expo-splash-screen' import { StatusBar } from 'expo-status-bar' import { useEffect, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' -import { AppState } from 'react-native' +import { AppState, LogBox } from 'react-native' +import { MenuProvider } from 'react-native-popup-menu' import { SafeAreaProvider } from 'react-native-safe-area-context' import * as Sentry from 'sentry-expo' @@ -34,6 +35,8 @@ import Blank from './Blank' import ClipboardModal from './ClipboardModal' import Toaster from './Toaster' +LogBox.ignoreLogs(['is deprecated']) +// LogBox.ignoreLogs([/expo-image/gmi]) interface ILockData { mismatch: boolean mismatchCount: number @@ -43,6 +46,8 @@ interface ILockData { timestamp: number } +l('[APP] Starting app...') + void SplashScreen.preventAutoHideAsync() export default function App() { @@ -191,32 +196,32 @@ function _App() { if (!isRdy) { return } - // await SplashScreen.hideAsync() is done in the NostrProvider context provider - // to ensure all initial DB and store requests are done before displaying content return ( - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + ) diff --git a/src/components/Balance.tsx b/src/components/Balance.tsx index 4eeb5f3d..89657010 100644 --- a/src/components/Balance.tsx +++ b/src/components/Balance.tsx @@ -1,4 +1,4 @@ -import { ChevronRightIcon, EcashIcon, HistoryIcon, SwapCurrencyIcon, ZapIcon } from '@comps/Icons' +import { EcashIcon, SwapCurrencyIcon, ZapIcon } from '@comps/Icons' import { setPreferences } from '@db' import type { IHistoryEntry } from '@model' import type { RootStackParamList } from '@model/nav' @@ -18,7 +18,6 @@ import { StyleSheet, Text, TouchableOpacity, View } from 'react-native' import { TxtButton } from './Button' import Logo from './Logo' -import Separator from './Separator' import Txt from './Txt' interface IBalanceProps { @@ -78,7 +77,7 @@ export default function Balance({ balance, nav }: IBalanceProps) { void handleLogoPress()} > - + {/* balance */} {!hidden.balance && @@ -98,15 +97,14 @@ export default function Balance({ balance, nav }: IBalanceProps) { } - {/* No transactions yet */} - {!history.length && !hidden.txs && - + {!history.length && + } {/* latest 3 history entries */} - {history.length > 0 && !hidden.txs ? + {history.length > 0 && !hidden.txs && history.map(h => ( nav?.navigate('history entry details', { entry: h })} /> )) - : - hidden.txs ? - <> - nav?.navigate('history')} - > - - - - - - - - - - : - null } - {history.length === 3 && !hidden.txs && + {(history.length === 3 || (history.length > 0 && hidden.txs)) && nav?.navigate('history')} txtColor={getColor(highlight, color)} - style={[{ paddingTop: 20, paddingBottom: 0 }]} + style={[{ paddingTop: 20, paddingBottom: hidden.txs ? 20 : 0 }]} /> } @@ -172,25 +152,20 @@ function HistoryEntry({ icon, txType, isSwap, timestamp, amount, onPress }: IHis } return ( - <> - - - - {icon} - - - - - - - + + + + {icon} - - - + + + + + + + + + ) } @@ -201,10 +176,12 @@ const styles = StyleSheet.create({ paddingHorizontal: 30, paddingTop: 70, paddingBottom: 60, + minHeight: '50%' }, balanceWrap: { alignItems: 'center', marginHorizontal: -20, + marginBottom: 10, }, balAmount: { alignItems: 'center', @@ -220,19 +197,10 @@ const styles = StyleSheet.create({ fontSize: 14, marginRight: 5 }, - separator: { - marginVertical: 10 - }, iconWrap: { - minWidth: 45, + minWidth: 40, paddingTop: 3, }, - boardEntry: { - flexDirection: 'row', - alignItems: 'center', - justifyContent: 'space-between', - marginVertical: 10, - }, entry: { flexDirection: 'row', alignItems: 'center', @@ -243,8 +211,4 @@ const styles = StyleSheet.create({ flexDirection: 'row', alignItems: 'center', }, - hiddenTxtWrap: { - flexDirection: 'row', - alignItems: 'center', - }, }) \ No newline at end of file diff --git a/src/components/Button.tsx b/src/components/Button.tsx index 3cfc64fc..d8fdee3e 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -1,7 +1,7 @@ import { useThemeContext } from '@src/context/Theme' import { globals, highlight as hi, mainColors } from '@styles' import { getColor } from '@styles/colors' -import { SafeAreaView, type StyleProp, StyleSheet, Text, type TextStyle, TouchableOpacity } from 'react-native' +import { SafeAreaView, type StyleProp, StyleSheet, type TextStyle, TouchableOpacity } from 'react-native' import Loading from './Loading' import Txt from './Txt' @@ -35,14 +35,11 @@ export default function Button({ txt, onPress, border, outlined, filled, disable ]} onPress={onPress} > - - {txt} - + ]} /> {loading && } {!loading ? icon : null} @@ -123,11 +120,6 @@ const styles = StyleSheet.create({ justifyContent: 'center', borderRadius: 50, }, - btnTxt: { - textAlign: 'center', - fontSize: 16, - fontWeight: '500' - }, // icon button iconBtn: { borderWidth: 1, diff --git a/src/components/ClipboardModal.tsx b/src/components/ClipboardModal.tsx index f825a5f7..0cf25b5f 100644 --- a/src/components/ClipboardModal.tsx +++ b/src/components/ClipboardModal.tsx @@ -4,9 +4,9 @@ import { NS } from '@src/i18n' import { globals } from '@styles' import { formatInt, formatMintUrl } from '@util' import { useTranslation } from 'react-i18next' -import { Text, View } from 'react-native' +import { Text } from 'react-native' -import Button from './Button' +import Button, { TxtButton } from './Button' import MyModal from './modal' import Txt from './Txt' @@ -16,7 +16,7 @@ export default function ClipboardModal() { const { tokenInfo, claimOpen, closeModal, handleRedeem } = useFocusClaimContext() return ( tokenInfo && - + {t('foundCashuClipboard')} @@ -24,10 +24,7 @@ export default function ClipboardModal() { {tokenInfo.decoded.memo && tokenInfo.decoded.memo.length > 0 && <>{t('memo', { ns: NS.history })}: {tokenInfo.decoded.memo}{'\n'} } - + {' '}Satoshi {t('fromMint')}:{'\n'} {tokenInfo.mints.map(m => formatMintUrl(m)).join(', ')} @@ -35,10 +32,8 @@ export default function ClipboardModal() { txt={t('accept')} onPress={() => void handleRedeem()} /> - -