diff --git a/.github/workflows/dockerhub.yaml b/.github/workflows/dockerhub.yaml index 3f4a4977a1..f38a2fb6a3 100644 --- a/.github/workflows/dockerhub.yaml +++ b/.github/workflows/dockerhub.yaml @@ -18,22 +18,22 @@ jobs: fetch-depth: 0 # needed for docker-package to be able to calculate the version - name: Set up QEMU - uses: docker/setup-qemu-action@2b82ce82d56a2a04d2637cd93a637ae1b359c0a7 # v2 + uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@885d1462b80bc1c1c7f0b00334ad271f09369c55 # v2 + uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3 with: install: true - name: Login to Docker Hub - uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2 + uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Docker meta id: meta - uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 # v4 + uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5 with: images: | vectorim/element-web @@ -44,7 +44,7 @@ jobs: latest=${{ contains(github.ref_name, '-rc.') && 'false' || 'auto' }} - name: Build and push - uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825 # v4 + uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # v5 with: context: . push: true diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 604c13d9d0..201518f2a2 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -31,7 +31,7 @@ jobs: - name: Get number of CPU cores id: cpu-cores - uses: SimenB/github-actions-cpu-cores@410541432439795d30db6501fb1d8178eb41e502 # v1 + uses: SimenB/github-actions-cpu-cores@97ba232459a8e02ff6121db9362b09661c875ab8 # v2 - name: Run tests with coverage run: "yarn coverage --ci" diff --git a/CHANGELOG.md b/CHANGELOG.md index b776a5ffcd..c9dbbfaf5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ +Changes in [1.11.46](https://github.com/vector-im/element-web/releases/tag/v1.11.46) (2023-10-10) +================================================================================================= + +## ✹ Features + * Use .well-known to discover a default rendezvous server for use with Sign in with QR ([\#11655](https://github.com/matrix-org/matrix-react-sdk/pull/11655)). Contributed by @hughns. + * Message layout will update according to the selected style ([\#10170](https://github.com/matrix-org/matrix-react-sdk/pull/10170)). Fixes #21782. Contributed by @manancodes. + * Implement MSC4039: Add an MSC for a new Widget API action to upload files into the media repository ([\#11311](https://github.com/matrix-org/matrix-react-sdk/pull/11311)). Contributed by @dhenneke. + * Render space pills with square corners to match new avatar ([\#11632](https://github.com/matrix-org/matrix-react-sdk/pull/11632)). Fixes #26056. + * Linkify room topic ([\#11631](https://github.com/matrix-org/matrix-react-sdk/pull/11631)). Fixes #26185. + * Show knock rooms in the list ([\#11573](https://github.com/matrix-org/matrix-react-sdk/pull/11573)). Contributed by @maheichyk. + +## 🐛 Bug Fixes + * Bump matrix-web-i18n dependency to 3.1.3 ([\#26287](https://github.com/vector-im/element-web/pull/26287)) + * Fix: Avatar shrinks with long names ([\#11698](https://github.com/matrix-org/matrix-react-sdk/pull/11698)). Fixes #26252. Contributed by @manancodes. + * Update custom translations to support nested fields in structured JSON ([\#11685](https://github.com/matrix-org/matrix-react-sdk/pull/11685)). + * Fix: Edited message remove button is hard to reach. ([\#11674](https://github.com/matrix-org/matrix-react-sdk/pull/11674)). Fixes #24917. Contributed by @manancodes. + * Fix: Theme selector radio button not aligned in center with the text ([\#11676](https://github.com/matrix-org/matrix-react-sdk/pull/11676)). Fixes #25460. Contributed by @manancodes. + * Fix: Unread notification dot aligned ([\#11658](https://github.com/matrix-org/matrix-react-sdk/pull/11658)). Fixes #25285. Contributed by @manancodes. + * Fix: sync intentional mentions push rules with legacy rules ([\#11667](https://github.com/matrix-org/matrix-react-sdk/pull/11667)). Fixes #26227. Contributed by @kerryarchibald. + * Revert "Fix regression around FacePile with overflow (#11527)" ([\#11634](https://github.com/matrix-org/matrix-react-sdk/pull/11634)). Fixes #26209. + * Fix: Alignment Fixed ([\#11648](https://github.com/matrix-org/matrix-react-sdk/pull/11648)). Fixes #26169. Contributed by @manancodes. + * Fix: onFinished added which closes the menu ([\#11647](https://github.com/matrix-org/matrix-react-sdk/pull/11647)). Fixes #25556. Contributed by @manancodes. + * Don't start key backups when opening settings ([\#11640](https://github.com/matrix-org/matrix-react-sdk/pull/11640)). + * Fix add to space avatar text centering ([\#11643](https://github.com/matrix-org/matrix-react-sdk/pull/11643)). Fixes #26154. + * fix avatar styling in lightbox ([\#11641](https://github.com/matrix-org/matrix-react-sdk/pull/11641)). Fixes #26196. + +Changes in [1.11.45](https://github.com/vector-im/element-web/releases/tag/v1.11.45) (2023-09-29) +================================================================================================= + +## 🐛 Bug Fixes + * Fix Emoji font on Safari 17 ([\#11673](https://github.com/matrix-org/matrix-react-sdk/pull/11673)). + Changes in [1.11.44](https://github.com/vector-im/element-web/releases/tag/v1.11.44) (2023-09-26) ================================================================================================= diff --git a/docs/labs.md b/docs/labs.md index 2a71c3caf7..84430ac50d 100644 --- a/docs/labs.md +++ b/docs/labs.md @@ -134,6 +134,10 @@ This setting is (currently) _sticky_ to a user's session: it only takes effect w Refactors visually the room header and room sidebar +## Enable the notifications panel in the room header (`feature_notifications`) + +Unreliable in encrypted rooms. + ## Knock rooms (`feature_ask_to_join`) [In Development] Enables knock feature for rooms. This allows users to ask to join a room. diff --git a/modules/tchap-translations/tchap_translations.json b/modules/tchap-translations/tchap_translations.json index 7209cf6ee7..3585f5dc02 100644 --- a/modules/tchap-translations/tchap_translations.json +++ b/modules/tchap-translations/tchap_translations.json @@ -1,27 +1,4 @@ { - "%(brand)s can't securely cache encrypted messages locally while running in a web browser. Use %(brand)s Desktop for encrypted messages to appear in search results.": { - "en": "Currently %(brand)s does not support searching into messages.", - "fr": "Actuellement %(brand)s ne supporte pas la recherche dans les messages." - }, - "%(brand)s has been connected in another tab": { - "en": "%(brand)s has been connected in another tab", - "fr": "%(brand)s a Ă©tĂ© connectĂ© dans un autre onglet" - }, - "%(brand)s is open in another window. Click \"%(label)s\" to use %(brand)s here and disconnect the other window.": { - "comment": "2023-11-08: remove once the string is translated in element", - "en": "%(brand)s is open in another window. Click \"%(label)s\" to use %(brand)s here and disconnect the other window.", - "fr": "%(brand)s est ouvert dans une autre fenĂȘtre. Cliquez \"%(label)s\" pour utiliser %(brand)s ici et dĂ©connecter l'autre fenĂȘtre." - }, - "%(count)s sessions selected": { - "one": { - "en": "%(count)s device selected", - "fr": "%(count)s appareil sĂ©lectionnĂ©" - }, - "other": { - "en": "%(count)s devices selected", - "fr": "%(count)s appareils sĂ©lectionnĂ©s" - } - }, "Please note upgrading will make a new version of the room. All current messages will stay in this archived room.": { "en": "A new version of this room will be created. All current messages will remain accessible in this room. All members will be invited back.", "fr": "Une nouvelle version de ce salon va ĂȘtre crĂ©Ă©e. Tous les messages actuels resteront accessibles dans ce salon. Tous les membres vont ĂȘtre rĂ©invitĂ©s." @@ -30,10 +7,6 @@ "en": "

This device is not verified.

To ensure this device is always verified and you can always retrieve your messages, turn on Automatic Message Backup

", "fr": "

Cet appareil n'est pas vérifié.

Pour que cet appareil soit toujours vérifié et que vous puissiez toujours récupérer vos messages, activez la Sauvegarde Automatique des messages.

" }, - "A new Security Phrase and key for Secure Messages have been detected.": { - "en": "A new Recovery Code for Secure Messages has been detected.", - "fr": "Un nouveau Code de RĂ©cupĂ©ration pour les messages sĂ©curisĂ©s a Ă©tĂ© dĂ©tectĂ©." - }, "A new email has been sent": { "en": "A new email has been sent", "fr": "Un nouvel email de renouvellement vous a Ă©tĂ© adressĂ©" @@ -58,14 +31,7 @@ "en": "Accessible to all users from the forum directory or from a shared link.", "fr": "Accessible Ă  tous les utilisateurs Ă  partir de la liste des forums ou d'un lien partagĂ©." }, - "Activate on this device": { - "en": "Activate on this device", - "fr": "Activer sur cet appareil" - }, - "Add Email Address": { - "en": "Add Email Address", - "fr": "Ajouter une adresse mail" - }, + "Activate on this device": { "en": "Activate on this device", "fr": "Activer sur cet appareil" }, "Allow access to this room to all users, even outside \"%(domain)s\" domain": { "en": "Allow access to this room to all users, even outside \"%(domain)s\" domain", "fr": "Autoriser l'accĂšs Ă  tous les utilisateurs, mĂȘme ceux qui ne sont pas membres du domaine \"%(domain)s\"" @@ -82,64 +48,11 @@ "en": "Are you sure you want to allow the externals to join this room ?", "fr": "Voulez-vous vraiment autoriser l’accĂšs aux externes Ă  ce salon ?" }, - "Are you sure you want to sign out of %(count)s sessions?": { - "one": { - "en": "Are you sure you want to sign out of %(count)s device?", - "fr": "Voulez-vous vraiment dĂ©connecter %(count)s appareil ?" - }, - "other": { - "en": "Are you sure you want to sign out of %(count)s devices?", - "fr": "Voulez-vous vraiment dĂ©connecter %(count)s de vos appareils ?" - } - }, - "Back up your encryption keys with your account data in case you lose access to your sessions. Your keys will be secured with a unique Security Key.": { - "en": "Automatically back up your messages and retrieve them at any time using the Recovery Code.", - "fr": "Sauvegardez automatiquement vos messages et rĂ©cupĂ©rez-les Ă  tout moment Ă  l’aide du Code de RĂ©cupĂ©ration." - }, "Backup could not be decrypted with this Security Key: please verify that you entered the correct Security Key.": { "en": "Please try again with your recovery code.", "fr": "Merci d'essayer Ă  nouveau avec votre code de rĂ©cupĂ©ration." }, - "Ban from %(roomName)s": { - "en": "Ban from %(roomName)s", - "fr": "Interdire l’accĂšs Ă  %(roomName)s (dĂ©finitif)" - }, - "Ban from room": { - "en": "Ban from room", - "fr": "Interdire l’accĂšs au salon (dĂ©finitif)" - }, - "Ban from space": { - "en": "Ban from space", - "fr": "Interdire l’accĂšs Ă  l'espace (dĂ©finitif)" - }, - "Ban them from everything I'm able to": { - "en": "Ban them from everything I'm able to", - "fr": "Interdire l’accĂšs partout oĂč j’ai le droit de le faire (dĂ©finitif)" - }, - "Ban them from specific things I'm able to": { - "en": "Ban them from specific things I'm able to", - "fr": "Interdire l’accĂšs Ă  certains endroits oĂč j’ai le droit de le faire (dĂ©finitif)" - }, - "Banned users": { - "en": "Banned users", - "fr": "Membres bannis" - }, - "Chat": { - "en": "New direct message", - "fr": "Nouveau message direct" - }, - "Check your email to continue": { - "en": "Check your email to continue", - "fr": "VĂ©rifiez vos mails avant de continuer" - }, - "Clear cross-signing keys": { - "en": "Reset Recovery Code", - "fr": "RĂ©initialiser les clĂ©s de signature croisĂ©e" - }, - "Confirm the emoji below are displayed on both devices, in the same order:": { - "en": "Confirm the emoji below are displayed on both devices, in the same order:", - "fr": "Confirmez si les objets sont les mĂȘmes sur vos 2 appareils." - }, + "Clear cross-signing keys": { "en": "Reset Recovery Code", "fr": "RĂ©initialiser les clĂ©s de signature croisĂ©e" }, "Confirm your Tchap Key password": { "en": "Confirm your Tchap Key password", "fr": "Confirmer votre mot de passe ClĂ©s Tchap" @@ -148,54 +61,18 @@ "en": "Congratulations, your account has been renewed", "fr": "FĂ©licitations, votre compte a Ă©tĂ© renouvelĂ©" }, - "Connect this session to Key Backup": { - "en": "Verify this device", - "fr": "VĂ©rifier cet appareil" - }, - "Connectivity to the server has been lost": { - "en": "Tchap is not available at the moment. View the status of services.", - "fr": "La connexion Ă  Tchap n'est pas possible pour le moment. Voir l'Ă©tat du service" - }, - "Contact us": { - "en": "Contact us", - "fr": "Contactez-nous" - }, - "Content blocked": { - "en": "Content blocked", - "fr": "Contenu bloquĂ©" - }, + "Contact us": { "en": "Contact us", "fr": "Contactez-nous" }, + "Content blocked": { "en": "Content blocked", "fr": "Contenu bloquĂ©" }, "Conçue et gĂ©rĂ©e par l'Administration française": { "en": "Designed and managed by the French Administration, for agents of the three public functions,
to communicate easily with high security standards. Used by over 400,000 public officials.", "fr": "Conçue et gérée par l'Administration française, pour les agents des trois fonctions publiques,
pour communiquer facilement en toute sĂ©curitĂ©. UtilisĂ©e par plus de 400 000 agents publics." }, - "Create Room": { - "en": "Create New Room", - "fr": "CrĂ©er un nouveau salon" - }, - "Create a room in this space": { - "en": "Create a room in this space", - "fr": "CrĂ©er un salon dans cet espace" - }, + "Create Room": { "en": "Create New Room", "fr": "CrĂ©er un nouveau salon" }, + "Create a room in this space": { "en": "Create a room in this space", "fr": "CrĂ©er un salon dans cet espace" }, "Create your Tchap Key password (minimum 8 characters)": { "en": "Create your Tchap Key password (minimum 8 characters)", "fr": "CrĂ©ez votre mot de passe ClĂ© Tchap (minimum 8 caractĂšres)" }, - "Cross-signing is not set up.": { - "en": "Cross-signing is not active.", - "fr": "La signature croisĂ©e n’est pas active" - }, - "Cross-signing is ready but keys are not backed up.": { - "en": "Cross-signing is ready but not the secure backup.", - "fr": "La signature croisĂ©e est activĂ©e mais pas la sauvegarde automatique des messages." - }, - "Cross-signing is ready for use.": { - "en": "Cross-signing is activated on this device.", - "fr": "La signature croisĂ©e est activĂ©e sur cet appareil." - }, - "Current session": { - "en": "This device", - "fr": "Cet appareil" - }, "Decryption fail: Please open Tchap on an other connected device to allow key sharing.": { "en": "Decryption fail: Please open Tchap on an other connected device to allow key sharing.", "fr": "Message verrouillĂ© par sĂ©curitĂ©. RĂ©cupĂ©rez vos clĂ©s Tchap pour dĂ©verrouiller vos messages." @@ -208,126 +85,40 @@ "en": "Reset cross-signing keys?", "fr": "RĂ©initialiser les clĂ©s de signature croisĂ©e ?" }, - "Direct Messages": { - "en": "Direct Messages", - "fr": "Messages directs" - }, + "Direct Messages": { "en": "Direct Messages", "fr": "Messages directs" }, "Download the list of all this room's members, in a text file. Useful for adding them all to another room.": { "en": "Download the list of all this room's members, in a text file. Useful for adding them all to another room.", "fr": "RĂ©cupĂ©rer la liste des membres de ce salon, dans un fichier texte. Utile pour inviter toutes ces personnes Ă  un autre salon." }, - "Email": { - "en": "Email", - "fr": "Adresse mail" - }, - "Email (optional)": { - "en": "Email (optional)", - "fr": "Adresse mail (facultatif)" - }, - "Email Address": { - "en": "Email Address", - "fr": "Adresse mail" - }, - "Email address": { - "en": "Email address", - "fr": "Adresse mail" - }, - "Email addresses": { - "en": "Email addresses", - "fr": "Adresses mail" - }, - "Enter Security Key": { - "en": "Enter Recovery Code", - "fr": "Saisir le Code de RĂ©cupĂ©ration" - }, + "Email (optional)": { "en": "Email (optional)", "fr": "Adresse mail (facultatif)" }, + "Email address": { "en": "Email address", "fr": "Adresse mail" }, + "Enter Security Key": { "en": "Enter Recovery Code", "fr": "Saisir le Code de RĂ©cupĂ©ration" }, "Enter your Security Phrase or to continue.": { "en": "Enter your Security Phrase or to continue.", "fr": "Saisissez votre phrase de sĂ©curitĂ© ou pour continuer." }, - "Explore public rooms": { - "en": "Explore public rooms", - "fr": "Rejoindre un forum" - }, - "Explore rooms": { - "en": "Explore space rooms", - "fr": "Explorer les salons" - }, - "Export E2E room keys": { - "en": "Save your Tchap keys", - "fr": "Sauvegardez vos clĂ©s Tchap" - }, - "Export room members": { - "en": "Export room members", - "fr": "Exporter les membres du salon" - }, + "Export room members": { "en": "Export room members", "fr": "Exporter les membres du salon" }, "External members cannot be re-invited. If you need to give access to externals, you will have to create a new room": { "en": "External members cannot be re-invited. If you need to give access to externals, you will have to create a new room.", "fr": "Les membres externes ne pourront pas ĂȘtre rĂ©invitĂ©s. Si vous avez besoin de donner accĂšs aux externes, il faudra crĂ©er un nouveau salon." }, - "External users allowed": { - "en": "external users allowed", - "fr": "ouvert aux externes" - }, - "Eye": { - "en": "Eye", - "fr": "OEil" - }, - "Failed to join": { - "en": "Failed to join this room.", - "fr": "Impossible de rejoindre ce salon" - }, + "External users allowed": { "en": "external users allowed", "fr": "ouvert aux externes" }, + "Eye": { "en": "Eye", "fr": "OEil" }, "Fetching keys from server
": { "en": "Fetching messages from server
", "fr": "RĂ©cupĂ©ration des messages depuis le serveur
" }, - "Finish": { - "en": "Finish", - "fr": "Terminer" - }, - "For best security, verify your sessions and sign out from any session that you don't recognize or use anymore.": { - "en": "Verify your devices to unlock your messages", - "fr": "VĂ©rifier tous vos appareils pour dĂ©verrouiller tous vos messages" - }, + "Finish": { "en": "Finish", "fr": "Terminer" }, "Forgotten or lost all recovery methods? Reset all": { "en": "You have lost your Recovery Code? Create a new code", "fr": "Vous avez perdu votre Code de RĂ©cupĂ©ration ? GĂ©nĂ©rer un nouveau code" }, - "Forum room": { - "en": "Public room", - "fr": "Forum" - }, - "Frequently Asked Questions (FAQ)": { - "en": "Frequently Asked Questions (FAQ)", - "fr": "Foire Aux Questions (FAQ)" - }, - "Generate a Security Key": { - "en": "Generate a Recovery Code", - "fr": "GĂ©nĂ©rer un Code de RĂ©cupĂ©ration" - }, - "Generate a new code": { - "en": "Generate a new code", - "fr": "GĂ©nĂ©rer un nouveau code" - }, - "Group all your favourite rooms and people in one place.": { - "en": "Group all your favourite rooms in one place.", - "fr": "Regroupe tous vos salons favoris au mĂȘme endroit." - }, - "Group all your people in one place.": { - "en": "Group all your direct message room in one place.", - "fr": "Regroupe tous vos salons de message directs au mĂȘme endroit." - }, - "I don't want my encrypted messages": { - "en": "Log out still", - "fr": "Se dĂ©connecter quand-mĂȘme" - }, - "I renewed the validity of my account": { - "en": "I renewed my account", - "fr": "J’ai renouvelĂ© mon compte" - }, - "I wrote down my code": { - "en": "I wrote down my code", - "fr": "J'ai notĂ© mon code" - }, + "Forum room": { "en": "Public room", "fr": "Forum" }, + "Frequently Asked Questions (FAQ)": { "en": "Frequently Asked Questions (FAQ)", "fr": "Foire Aux Questions (FAQ)" }, + "Generate a new code": { "en": "Generate a new code", "fr": "GĂ©nĂ©rer un nouveau code" }, + "I don't want my encrypted messages": { "en": "Log out still", "fr": "Se dĂ©connecter quand-mĂȘme" }, + "I renewed the validity of my account": { "en": "I renewed my account", "fr": "J’ai renouvelĂ© mon compte" }, + "I wrote down my code": { "en": "I wrote down my code", "fr": "J'ai notĂ© mon code" }, "If you do not have another connected device, we advise you to save your keys in a file on your device.": { "en": "If you do not have another connected device, we advise you to save your keys in a file on your device.", "fr": "Si vous n'avez pas d'autre appareil connectĂ©, il est conseillĂ© de sauvegarder vos clĂ©s sous forme de fichier sur votre appareil." @@ -336,10 +127,6 @@ "en": "If you have any difficulties with using Tchap, please contact us by email at %(supportEmail)s", "fr": "Si vous rencontrez des difficultĂ©s dans votre utilisation de Tchap, contactez-nous par email Ă  %(supportEmail)s" }, - "If you want to retain access to your chat history in encrypted rooms, set up Key Backup or export your message keys from one of your other devices before proceeding.": { - "en": "If you want to keep your messages, save your Tchap keys from one of your devices before proceeding. They will help to restore your messages", - "fr": "Si vous voulez garder un accĂšs Ă  vos messages, sauvegardez vos clĂ©s Tchap Ă  partir de l’un de vos appareils avant de continuer. Elles vous permettront de dĂ©verrouiller vos messages" - }, "If you've forgotten your Security Key you can ": { "en": "If you've forgotten your Recovery Code you can ", "fr": "Si vous avez oubliĂ© votre Code de RĂ©cupĂ©ration, vous pouvez " @@ -352,26 +139,8 @@ "en": "If you've submitted a bug to the Tchap team (via support or GitHub), debug logs can help us track down the problem.", "fr": "Si vous avez signalĂ© une anomalie Ă  l'Ă©quipe Tchap (via le support ou GitHub), les journaux de dĂ©bogage peuvent nous aider Ă  cibler le problĂšme." }, - "Ignored users": { - "en": "Ignored users", - "fr": "Membres ignorĂ©s" - }, - "Import E2E room keys": { - "en": "Import your Tchap keys from the downloaded file", - "fr": "Importez vos clĂ©s Tchap depuis le fichier sauvegardĂ©" - }, - "Incoming Verification Request": { - "en": "Incoming Verification Request", - "fr": "Partage de vos ClĂ©s Tchap" - }, - "Incorrect Security Phrase": { - "en": "Recovery code not recognized", - "fr": "Code de rĂ©cupĂ©ration non reconnu" - }, - "Invalid Email Address": { - "en": "Invalid Email Address", - "fr": "Adresse mail non valide" - }, + "Incoming Verification Request": { "en": "Incoming Verification Request", "fr": "Partage de vos ClĂ©s Tchap" }, + "Incorrect Security Phrase": { "en": "Recovery code not recognized", "fr": "Code de rĂ©cupĂ©ration non reconnu" }, "Invite someone using their name, email address, username (like ) or share this room.": { "en": "Invite someone using their name, email or username (like ) or share this room. It is possible to invite multiple people by copy-pasting an email list separated by a comma (prenom1.nom1@beta.gouv.fr, prenom2.nom2@beta.gouv.fr, prenom3.nom3@beta.gouv.fr) or separated by a line break.", "fr": "Invitez quelqu’un via son nom, mail ou pseudo (p. ex. ) ou partagez ce salon. Il est possible d'inviter en masse en copiant et collant une liste de mails sĂ©parĂ©s par une virgule (prenom1.nom1@beta.gouv.fr, prenom2.nom2@beta.gouv.fr, prenom3.nom3@beta.gouv.fr) ou sĂ©parĂ©s par un saut Ă  la ligne." @@ -380,42 +149,16 @@ "en": "Invite someone using their name, email address, username (like ) or share this space. It is possible to invite multiple people by copy-pasting an email list separated by a comma (prenom1.nom1@beta.gouv.fr, prenom2.nom2@beta.gouv.fr, prenom3.nom3@beta.gouv.fr) or separated by a line break.", "fr": "Invitez quelqu’un grĂące Ă  son nom, adresse mail, nom d’utilisateur (tel que ) ou partagez cet espace. Il est possible d'inviter en masse en copiant et collant une liste de mails sĂ©parĂ©s par une virgule (prenom1.nom1@beta.gouv.fr, prenom2.nom2@beta.gouv.fr, prenom3.nom3@beta.gouv.fr) ou sĂ©parĂ©s par un saut Ă  la ligne." }, - "Join public room": { - "en": "Join a public room", - "fr": "Rejoindre un forum" - }, "Just want to get your own logs, without sharing them with the Tchap team?": { "en": "Just want to get your own logs, without sharing them with the Tchap team?", "fr": "Vous voulez juste obtenir vos journaux sans les partager avec l'Ă©quipe Tchap ?" }, - "Keys restored": { - "en": "Messages restored", - "fr": "Messages rĂ©cupĂ©rĂ©s" - }, - "Known issues": { - "en": "Known issues", - "fr": "ProblĂšmes connus" - }, - "Lock my messages and disconnect me from all my devices (in case your account is hacked or a device loss)": { - "en": "Lock my messages and disconnect me from all my devices (in case your account is hacked or a device loss)", - "fr": "Verrouiller mes messages et me dĂ©connecter de tous mes appareils (en cas de piratage de votre compte ou perte d'un appareil)" - }, - "Muted Users": { - "en": "Muted Users", - "fr": "Membres en sourdine" - }, + "Keys restored": { "en": "Messages restored", "fr": "Messages rĂ©cupĂ©rĂ©s" }, + "Known issues": { "en": "Known issues", "fr": "ProblĂšmes connus" }, "One of your devices wants to check your Tchap Keys to unlock your messages.": { "en": "One of your devices wants to check your Tchap Keys to unlock your messages.", "fr": "L'un de vos appareils demande Ă  partager vos ClĂ©s Tchap pour dĂ©verrouiller vos messages." }, - "Other sessions": { - "en": "Other devices", - "fr": "Autres appareils" - }, - "Other users may not trust it": { - "en": "You may not be able to recover your messages.", - "fr": "Vous risquez de ne pas pouvoir rĂ©cupĂ©rer vos messages." - }, "Passphrase must be at least 8 character long": { "en": "Passphrase must be at least 8 character long", "fr": "Le mot de passe doit minimum faire 8 caractĂšres" @@ -428,10 +171,6 @@ "en": "Please note this is not your Recovery Code for your automatic backup.", "fr": "Attention ceci n’est pas votre Code de RĂ©cupĂ©ration pour votre sauvegarde automatique." }, - "Please only proceed if you're sure you've lost all of your other devices and your Security Key.": { - "en": "Please only proceed if you're sure you've lost all of your other devices and your Recovery Code.", - "fr": "Veuillez ne continuer que si vous ĂȘtes certain d’avoir perdu tous vos autres appareils et votre Code de RĂ©cupĂ©ration." - }, "Please tell us what went wrong in the \"Notes\" field.": { "en": "Please tell us what went wrong in the \"Notes\" field.", "fr": "Veuillez nous expliquer le problĂšme dans le champ \"Notes\"." @@ -444,205 +183,37 @@ "en": "Private discussions accessible to all users of this space.", "fr": "Discussions privĂ©es accessibles Ă  tous les membres de cet espace" }, - "Private room": { - "en": "Private room", - "fr": "Salon" - }, + "Private room": { "en": "Private room", "fr": "Salon" }, "Private room open to external users": { "en": "Private room open to external users", "fr": "Salon ouvert aux externes" }, - "Privileged Users": { - "en": "Privileged Users", - "fr": "Membres privilĂ©giĂ©s" - }, "Public discussion accessible to all users of this space or from a shared link.": { "en": "Public discussion accessible to all users of this space or from a shared link.", "fr": "Discussions publiques accessibles Ă  tous les membres de cet espace ou depuis un lien de partage." }, - "Public room": { - "en": "Public room", - "fr": "Forum" - }, - "Read the CGU": { - "en": "Read the CGU", - "fr": "Consultez les CGU" - }, - "Read the FAQ": { - "en": "Read the FAQ", - "fr": "Consultez la FAQ" - }, - "Read the Known Issues": { - "en": "Read the Known Issues", - "fr": "Consultez les problĂšmes connus" - }, - "Read the Privacy Policy": { - "en": "Read the Privacy Policy", - "fr": "Lire la Politique de ConfidentialitĂ©" - }, - "Really reset verification keys?": { - "en": "Really reset Recovery Code?", - "fr": "RĂ©initialiser le Code de RĂ©cupĂ©ration, c’est certain ?" - }, - "Receive push notifications on this session.": { - "en": "Receive push notifications on this device.", - "fr": "Recevoir les notifications push sur cet appareil" - }, - "Recent Conversations": { - "en": "Recents chats", - "fr": "Messages directs rĂ©cents" - }, - "Recently Direct Messaged": { - "en": "Recents chats", - "fr": "Messages directs rĂ©cents" - }, - "Reload the app": { - "en": "Reload page", - "fr": "RafraĂźchir la page" - }, - "Remove from %(roomName)s": { - "en": "Remove from %(roomName)s", - "fr": "Retirer de %(roomName)s (rĂ©versible)" - }, - "Remove from room": { - "en": "Remove from room", - "fr": "Retirer du salon (rĂ©versible)" - }, - "Remove them from everything I'm able to": { - "en": "Remove them from everything I'm able to", - "fr": "Retirer de partout oĂč j’ai le droit de le faire (rĂ©versible)" - }, - "Remove them from specific things I'm able to": { - "en": "Remove them from specific things I'm able to", - "fr": "Retirer de certains endroits oĂč j’ai le droit de le faire (rĂ©versible)" - }, - "Request a renewal email": { - "en": "Request a renewal email", - "fr": "Demander l’envoi d’un nouvel email" - }, - "Resetting your verification keys cannot be undone. After resetting, you won't have access to old encrypted messages, and any friends who have previously verified you will see security warnings until you re-verify with them.": { - "en": "Resetting your Recovery Code cannot be undone. After resetting, you will no longer have access to your previous locked messages.", - "fr": "La rĂ©initialisation de votre Code de RĂ©cupĂ©ration ne peut pas ĂȘtre annulĂ©e. AprĂšs la rĂ©initialisation, vous n’aurez plus accĂšs Ă  vos anciens messages verrouillĂ©s." - }, - "Restore from Backup": { - "en": "Retrieve my messages", - "fr": "RĂ©cupĂ©rer mes messages" - }, + "Read the CGU": { "en": "Read the CGU", "fr": "Consultez les CGU" }, + "Read the FAQ": { "en": "Read the FAQ", "fr": "Consultez la FAQ" }, + "Read the Known Issues": { "en": "Read the Known Issues", "fr": "Consultez les problĂšmes connus" }, + "Read the Privacy Policy": { "en": "Read the Privacy Policy", "fr": "Lire la Politique de ConfidentialitĂ©" }, + "Recent Conversations": { "en": "Recents chats", "fr": "Messages directs rĂ©cents" }, + "Recently Direct Messaged": { "en": "Recents chats", "fr": "Messages directs rĂ©cents" }, + "Reload the app": { "en": "Reload page", "fr": "RafraĂźchir la page" }, + "Request a renewal email": { "en": "Request a renewal email", "fr": "Demander l’envoi d’un nouvel email" }, "Restoring keys from backup": { "en": "Restoring messages from backup", "fr": "Restauration des messages depuis la sauvegarde" }, - "Room members": { - "en": "Room members", - "fr": "Membres du salon" - }, - "Safeguard against losing access to encrypted messages & data": { - "en": "Activate your Recovery Code to never lose your messages", - "fr": "Activez votre Code de RĂ©cupĂ©ration pour ne jamais perdre vos messages" - }, - "Save my keys": { - "en": "Save my Tchap keys", - "fr": "Sauvegarder mes clĂ©s Tchap" - }, - "Save your Security Key": { - "en": "Write down your Recovery Code", - "fr": "Notez votre Code de RĂ©cupĂ©ration" - }, + "Save my keys": { "en": "Save my Tchap keys", "fr": "Sauvegarder mes clĂ©s Tchap" }, "Save your Tchap Keys (encryption keys)": { "en": "Save your Tchap Keys (encryption keys)", "fr": "Sauvegardez vos ClĂ©s Tchap (clĂ©s de chiffrement)" }, - "Scan unavailable": { - "en": "Scan unavailable", - "fr": "Scan unavailable" - }, - "Scanning": { - "en": "Scanning", - "fr": "Scanning" - }, - "Secure Backup": { - "comment": "move this to common|secure_backup, after upgrade to 1.11.46", - "en": "Automatic Backup of Messages", - "fr": "Sauvegarde automatique des messages" - }, - "Secure Backup successful": { - "en": "Secure backup successfully enabled.", - "fr": "Sauvegarde automatique activĂ©e avec succĂšs" - }, - "Security Key": { - "en": "Recovery Code", - "fr": "Code de RĂ©cupĂ©ration" - }, - "Send email": { - "en": "Send email", - "fr": "Envoyer le mail" - }, - "Sent messages will be stored until your connection has returned.": { - "en": "Messages will be sent when your connection returns.", - "fr": "Les messages seront envoyĂ©s automatiquement dĂšs que la connexion sera rĂ©tablie." - }, - "Server may be unavailable, overloaded, or you hit a bug.": { - "en": "Tchap is not available at the moment (err:04). View the status of services: https://status.tchap.numerique.gouv.fr", - "fr": "La connexion Ă  Tchap n'est pas possible pour le moment (err:04). Voir l'Ă©tat du service: https://status.tchap.numerique.gouv.fr" - }, - "Server unavailable, overloaded, or something else went wrong.": { - "en": "Tchap is not available at the moment (err:03). View the status of services: https://status.tchap.numerique.gouv.fr", - "fr": "La connexion Ă  Tchap n'est pas possible pour le moment (err:03). Voir l'Ă©tat du service: https://status.tchap.numerique.gouv.fr" - }, - "Sessions": { - "en": "My devices", - "fr": "Mes appareils" - }, - "Set up": { - "en": "Activate", - "fr": "Activer" - }, - "Set up Secure Backup": { - "en": "Activate message Secure Backup", - "fr": "Activer la sauvegarde automatique des messages" - }, - "Setting up keys": { - "en": "Setting up your Recovery Code", - "fr": "Configuration du Code de RĂ©cupĂ©ration" - }, - "Show all your rooms in Home, even if they're in a space.": { - "en": "Show all your rooms in Home", - "fr": "Affiche tous vos salons dans l’accueil" - }, - "Sign out of %(count)s sessions": { - "one": { - "en": "Sign out of %(count)s device", - "fr": "DĂ©connecter %(count)s appareil" - }, - "other": { - "en": "Sign out of %(count)s devices", - "fr": "DĂ©connecter %(count)s appareils" - } - }, - "Sign out of all other sessions (%(otherSessionsCount)s)": { - "en": "Sign out of all other devices (%(otherSessionsCount)s)", - "fr": "DĂ©connecter tous les autres appareils (%(otherSessionsCount)s)" - }, - "Sign out of this session": { - "en": "Sign out of this device", - "fr": "Se dĂ©connecter de cet appareil" - }, - "Signing out your devices will delete the message encryption keys stored on them, making encrypted chat history unreadable.": { - "en": "We will log you out from your devices to lock the messages stored on them. This option is usefull if you think your account has been hacked or a device has been lost.", - "fr": "Nous allons vous dĂ©connecter de vos appareils afin de verrouiller les messages qu'ils contiennent. Cette option est utile si vous pensez que votre compte a Ă©tĂ© piratĂ© ou si vous avez perdu un de vos appareils." - }, - "Spaces are ways to group rooms and people. Alongside the spaces you're in, you can use some pre-built ones too.": { - "en": "Spaces are ways to group rooms and direct messages.", - "fr": "Les espaces permettent de regrouper des salons et des messages directs." - }, - "Start using Key Backup": { - "en": "Use automatic Backup", - "fr": "Utiliser la sauvegarde automatique" - }, - "Store your Security Key somewhere safe, like a password manager or a safe, as it's used to safeguard your encrypted data.": { - "en": "Keep it in a safe place, such as your password manager or a protected document on your computer. You will need to copy/paste it to retrieve your messages, so avoid taking screenshots.", - "fr": "Conservez-le dans un endroit sĂ»r, comme votre gestionnaire de mot de passe ou un document protĂ©gĂ© sur votre ordinateur. Vous aurez Ă  le copier / coller pour rĂ©cupĂ©rer vos messages, donc Ă©vitez la capture d’écran." - }, + "Scan unavailable": { "en": "Scan unavailable", "fr": "Scan unavailable" }, + "Scanning": { "en": "Scanning", "fr": "Scanning" }, + "Security Key": { "en": "Recovery Code", "fr": "Code de RĂ©cupĂ©ration" }, + "Set up": { "en": "Activate", "fr": "Activer" }, + "Start using Key Backup": { "en": "Use automatic Backup", "fr": "Utiliser la sauvegarde automatique" }, "Submit debug logs to Tchap support team": { "comment": "The title of BugReportDialog is unclear, specify it", "en": "Submit debug logs to Tchap support team", @@ -652,18 +223,11 @@ "en": "%(sessionCount)s messages have been successfully restored.", "fr": "%(sessionCount)s messages ont Ă©tĂ© rĂ©cupĂ©rĂ©s avec succĂšs." }, - "Tchap Keys saved!": { - "en": "Tchap Keys saved!", - "fr": "ClĂ©s Tchap sauvegardĂ©es !" - }, + "Tchap Keys saved!": { "en": "Tchap Keys saved!", "fr": "ClĂ©s Tchap sauvegardĂ©es !" }, "Tchap is not available at the moment %(errCode)s. View the status of services.": { "en": "Tchap is not available at the moment %(errCode)s. View the status of services.", "fr": "La connexion Ă  Tchap n'est pas possible pour le moment %(errCode)s. Voir l'Ă©tat du service" }, - "Tchap keys": { - "en": "Tchap keys", - "fr": "ClĂ©s Tchap" - }, "That email is not allowed on Tchap": { "en": "Your email adress is not allowed on Tchap. Make an autorization request here", "fr": "Votre adresse mail n'est pas autorisĂ©e sur Tchap. Demandez l'accĂšs Ă  Tchap pour votre administration via ce formulaire" @@ -688,10 +252,7 @@ "en": "These keys only apply to the current session.", "fr": "Ces clĂ©s ne concernent que la session en cours." }, - "This action is irreversible.": { - "en": "This action is irreversible.", - "fr": "Cette action est irrĂ©versible." - }, + "This action is irreversible.": { "en": "This action is irreversible.", "fr": "Cette action est irrĂ©versible." }, "This file will be protected by a password, which will be asked next time you log in, when you will import the keys to unlock your messages.": { "en": "This file will be protected by a password, which will be asked next time you log in, when you will import the keys to unlock your messages.", "fr": "Ce fichier sera protĂ©gĂ© par un mot de passe, qui vous sera demandĂ© Ă  votre prochaine connexion, lorsque vous importerez les clĂ©s pour dĂ©verrouiller vos messages." @@ -704,311 +265,431 @@ "en": "This code will allow you to always restore your messages.", "fr": "Ce code vous permettra de toujours rĂ©cupĂ©rer vos messages." }, - "This means that you have all the keys needed to unlock your encrypted messages and confirm to other users that you trust this session.": { - "en": "This means that you have all the keys needed to unlock your encrypted messages and confirm to other users that you trust this device.", - "fr": "Cela veut dire qu'ils disposent de toutes les clĂ©s nĂ©cessaires pour lire les messages chiffrĂ©s, et confirment aux autres utilisateurs que vous faites confiance Ă  cet appareil." - }, - "This room is a public forum": { - "en": "This room is a public forum", - "fr": "Ce salon est un forum public" - }, - "This room is private": { - "en": "This room is private", - "fr": "Ce salon est privĂ©" - }, + "This room is a public forum": { "en": "This room is a public forum", "fr": "Ce salon est un forum public" }, + "This room is private": { "en": "This room is private", "fr": "Ce salon est privĂ©" }, "This room is private and open to external users": { "en": "This room is private and open to external users", "fr": "Ce salon est privĂ© et ouvert aux externes" }, - "This session has detected that your Security Phrase and key for Secure Messages have been removed.": { - "en": "This session has detected that your Security Phrase and code for Secure Messages have been removed.", - "fr": "Cette session a dĂ©tectĂ© que votre phrase secrĂšte et Code de RĂ©cupĂ©ration pour les messages sĂ©curisĂ©s ont Ă©tĂ© supprimĂ©s." - }, - "This session is backing up your keys.": { - "en": "This device automatically backs up your messages.", - "fr": "Cet appareil sauvegarde automatiquement vos messages." - }, "This version of Tchap Web is currently in development. There are known issues that will be solved soon.": { "en": "This version of Tchap Web is currently in development. There are known issues that will be solved soon.", "fr": "Cette version de Tchap Web est en cours de dĂ©veloppement. Il y a des problĂšmes connus qui seront bientĂŽt rĂ©solus." }, - "Trusted": { - "en": "Trusted", - "fr": "VĂ©rifiĂ©" + "Trusted": { "en": "Trusted", "fr": "VĂ©rifiĂ©" }, + "Type of room": { "en": "Type of room", "fr": "Type de salon" }, + "Upgrade private room": { "en": "This room will be updated", "fr": "Ce salon va ĂȘtre mis Ă  jour" }, + "Upgrade room": { "en": "Upgrade room", "fr": "Mettre Ă  jour le salon" }, + "Use your Security Key to continue.": { + "en": "Use your Recovery Code to continue.", + "fr": "Utilisez votre Code de RĂ©cupĂ©ration pour continuer." }, - "Type of room": { - "en": "Type of room", - "fr": "Type de salon" + "Verified!": { "en": "Verified!", "fr": "VĂ©rifiĂ© !" }, + "Wait for at least %(wait)s seconds between two emails": { + "en": "Wait for at least %(wait)s seconds between two emails", + "fr": "Attendez au moins %(wait)s secondes entre l'envoi de deux mails" }, - "Unable to decrypt message": { - "en": "Waiting for this message. This could take a while.", - "fr": "En attente de ce message. Ceci pourrait prendre un moment." + "Warning: this is the only time this code will be displayed!": { + "en": "Warning: this is the only time this code will be displayed!", + "fr": "Attention: c’est la seule fois que ce code sera affichĂ© !" }, - "Unable to verify this device": { - "en": "You are logging into a new device", - "fr": "Vous vous connectez Ă  un nouvel appareil" + "We have compiled a list of the questions our users ask the most frequently. Your question may be answered there.": { + "en": "We have compiled a list of the questions our users ask the most frequently. Your question may be answered there.", + "fr": "Nous avons constituĂ© une liste des question les plus frĂ©quentes posĂ©es par nos utilisateurs. Votre question a peut-ĂȘtre dĂ©jĂ  une solution." + }, + "Welcome to Tchap": { "en": "Welcome to Tchap", "fr": "Bienvenue sur Tchap" }, + "Wrong Security Key": { + "en": "The Recovery Code is not valid. Check that it is the latest one.", + "fr": "Le Code de RĂ©cupĂ©ration n’est pas valide. VĂ©rifier que c’est le plus rĂ©cent." + }, + "You can close this disconnected tab, and go to the other %(brand)s tab.": { + "en": "You can close this disconnected tab, and go to the other %(brand)s tab.", + "fr": "Vous pouvez fermer cet onglet dĂ©connectĂ©, et aller Ă  l'autre onglet %(brand)s." }, - "Unverified session": { - "en": "Unverified device", - "fr": "Appareil non vĂ©rifiĂ©" + "Your Tchap Key password": { "en": "Your Tchap Key password", "fr": "Votre mot de passe ClĂ©s Tchap" }, + "Your Tchap Keys (encryption keys) have been successful saved in the tchap-keys.txt file. You can import them when you login again to unlock your messages (find out more).": { + "en": "Your Tchap Keys (encryption keys) have been successful saved in the tchap-keys.txt file. You can import them when you login again to unlock your messages (find out more).", + "fr": "Vos ClĂ©s Tchap (clĂ©s de chiffrement) ont Ă©tĂ© sauvegardĂ©es avec succĂšs dans le fichier tchap-keys.txt. Vous pourrez les importer Ă  votre prochaine connexion pour dĂ©verrouiller vos messages (en savoir plus)." }, - "Unverified sessions": { - "en": "Unverified devices", - "fr": "Appareils non vĂ©rifiĂ©s" + "Your account is still expired, please follow the link in the email you have received to renew it": { + "en": "Your account is still expired, please follow the link in the email you should have received to renew it", + "fr": "Votre compte est toujours expirĂ©, merci de cliquer sur le lien reçu dans le mail de renouvellement" }, - "Unverified sessions are sessions that have logged in with your credentials but have not been cross-verified.": { - "en": "Unverified devices are devices that have logged in with your credentials but have not been cross-verified (emoji exchange or ou Recovery Code).", - "fr": "Les appareils non vĂ©rifiĂ©s sont identifiĂ©s avec vos identifiants mais n’ont pas fait de vĂ©rification croisĂ©e (Ă©change d'emojis ou Code de RĂ©cupĂ©ration)." + "Your last three login attempts have failed. Please try again in a few minutes.": { + "en": "Your last three login attempts have failed. Please try again in a few minutes.", + "fr": "Vos trois derniĂšres tentatives de connexion ont Ă©chouĂ©. Veuillez rĂ©essayer dans quelques minutes." }, - "Upgrade private room": { - "en": "This room will be updated", - "fr": "Ce salon va ĂȘtre mis Ă  jour" + "Your password must include:": { "en": "Your password must include:", "fr": "Votre mot de passe doit comporter :" }, + "a lowercase letter": { "en": "a lowercase letter", "fr": "une lettre minuscule" }, + "a minimum of %(number)s characters": { + "en": "a minimum of %(number)s characters", + "fr": "%(number)s caractĂšres au minimum" }, - "Upgrade room": { - "en": "Upgrade room", - "fr": "Mettre Ă  jour le salon" + "a number": { "en": "a number", "fr": "un chiffre" }, + "a symbol": { "en": "a symbol", "fr": "un caractĂšre spĂ©cial" }, + "action|explore_public_rooms": { "en": "Explore public rooms", "fr": "Rejoindre un forum" }, + "action|start_chat": { "en": "New direct message", "fr": "Nouveau message direct" }, + "an uppercase letter": { "en": "an uppercase letter", "fr": "une lettre majuscule" }, + "auth|check_email_wrong_email_button": { "en": "Re-enter email address", "fr": "Re-saisir l'adresse mail" }, + "auth|check_email_wrong_email_prompt": { + "comment": "TODO contribute to element", + "en": "Wrong email address?", + "fr": "Mauvaise adresse mail ?" + }, + "auth|email_field_label": { "en": "Email", "fr": "Adresse mail" }, + "auth|enter_email_heading": { + "en": "Enter your email to reset password", + "fr": "Entrez votre adresse mail pour rĂ©initialiser votre mot de passe" + }, + "auth|forgot_password_send_email": { "en": "Send email", "fr": "Envoyer le mail" }, + "auth|misconfigured_title": { "en": " ", "fr": " " }, + "auth|reset_password|other_devices_logout_warning_1": { + "en": "We will log you out from your devices to lock the messages stored on them. This option is usefull if you think your account has been hacked or a device has been lost.", + "fr": "Nous allons vous dĂ©connecter de vos appareils afin de verrouiller les messages qu'ils contiennent. Cette option est utile si vous pensez que votre compte a Ă©tĂ© piratĂ© ou si vous avez perdu un de vos appareils." }, - "Use a secret phrase only you know, and optionally save a Security Key to use for backup.": { - "en": "Use a secret phrase only you know, and optionally save a Recovery Code to use for backup.", - "fr": "Utilisez une phrase secrĂšte que vous ĂȘtes seul Ă  connaĂźtre et enregistrez Ă©ventuellement un Code de RĂ©cupĂ©ration Ă  utiliser pour la sauvegarde." + "auth|reset_password|other_devices_logout_warning_2": { + "en": "If you want to keep your messages, save your Tchap keys from one of your devices before proceeding. They will help to restore your messages", + "fr": "Si vous voulez garder un accĂšs Ă  vos messages, sauvegardez vos clĂ©s Tchap Ă  partir de l’un de vos appareils avant de continuer. Elles vous permettront de dĂ©verrouiller vos messages" }, - "Use your Security Key to continue.": { - "en": "Use your Recovery Code to continue.", - "fr": "Utilisez votre Code de RĂ©cupĂ©ration pour continuer." + "auth|reset_password|sign_out_other_devices": { + "en": "Lock my messages and disconnect me from all my devices (in case your account is hacked or a device loss)", + "fr": "Verrouiller mes messages et me dĂ©connecter de tous mes appareils (en cas de piratage de votre compte ou perte d'un appareil)" }, - "User is already in the room": { - "en": "User is already in the room.", - "fr": "Cette personne est dĂ©jĂ  dans le salon." + "auth|reset_password_title": { + "comment": "TODO contribute to element translations", + "en": "Reset your password", + "fr": "RĂ©initialisez votre mot de passe" }, - "Verified session": { - "en": "Verified device", - "fr": "Appareil vĂ©rifiĂ©" + "auth|sign_in_instead": { + "comment": "TODO contribute to element translations", + "en": "Sign in instead", + "fr": "ou connectez-vous" }, - "Verified sessions": { - "en": "Verified devices", - "fr": "Appareils vĂ©rifiĂ©s" + "auth|uia|email_auth_header": { + "en": "Check your email to continue", + "fr": "VĂ©rifiez vos mails avant de continuer" }, - "Verified sessions are anywhere you are using this account after entering your passphrase or confirming your identity with another verified session.": { - "en": "Verified devices are anywhere you are using this account after entering your passphrase or confirming your identity with another verified device.", - "fr": "Les appareils vĂ©rifiĂ©s sont ceux qui utilisent ce compte aprĂšs avoir saisi la phrase de sĂ©curitĂ© ou confirmĂ© votre identitĂ© Ă  l’aide d’un autre appareil vĂ©rifiĂ©." + "auth|verify_email_explainer": { + "en": "We need to know it’s you before resetting your password.\n Click the link in the email we just sent to %(email)s", + "fr": "Nous avons besoin de savoir que c’est vous avant de rĂ©initialiser votre mot de passe.\n Cliquer sur le lien dans le mail que nous venons juste d’envoyer Ă  %(email)s" + }, + "auth|verify_email_heading": { + "en": "Verify your email to continue", + "fr": "VĂ©rifiez vos mails avant de continuer" + }, + "common|public_room": { "en": "Public room", "fr": "Forum" }, + "common|secure_backup": { "en": "Automatic Backup of Messages", "fr": "Sauvegarde automatique des messages" }, + "common|unverified": { "en": "Unverified", "fr": "Non vĂ©rifiĂ©" }, + "common|verified": { "en": "Verified ", "fr": "VĂ©rifiĂ©" }, + "create_room|generic_error": { + "en": "Tchap is not available at the moment (err:04). View the status of services: https://status.tchap.numerique.gouv.fr", + "fr": "La connexion Ă  Tchap n'est pas possible pour le moment (err:04). Voir l'Ă©tat du service: https://status.tchap.numerique.gouv.fr" + }, + "encryption|bootstrap_title": { + "en": "Setting up your Recovery Code", + "fr": "Configuration du Code de RĂ©cupĂ©ration" + }, + "encryption|cross_signing_not_ready": { + "en": "Cross-signing is not active.", + "fr": "La signature croisĂ©e n’est pas active" + }, + "encryption|cross_signing_ready": { + "en": "Cross-signing is activated on this device.", + "fr": "La signature croisĂ©e est activĂ©e sur cet appareil." + }, + "encryption|cross_signing_ready_no_backup": { + "en": "Cross-signing is ready but not the secure backup.", + "fr": "La signature croisĂ©e est activĂ©e mais pas la sauvegarde automatique des messages." + }, + "encryption|new_recovery_method_detected|description_1": { + "en": "A new Recovery Code for Secure Messages has been detected.", + "fr": "Un nouveau Code de RĂ©cupĂ©ration pour les messages sĂ©curisĂ©s a Ă©tĂ© dĂ©tectĂ©." + }, + "encryption|recovery_method_removed|description_1": { + "en": "This session has detected that your Security Phrase and code for Secure Messages have been removed.", + "fr": "Cette session a dĂ©tectĂ© que votre phrase secrĂšte et Code de RĂ©cupĂ©ration pour les messages sĂ©curisĂ©s ont Ă©tĂ© supprimĂ©s." + }, + "encryption|set_up_toast_description": { + "en": "Activate your Recovery Code to never lose your messages", + "fr": "Activez votre Code de RĂ©cupĂ©ration pour ne jamais perdre vos messages" }, - "Verified!": { - "en": "Verified!", - "fr": "VĂ©rifiĂ© !" + "encryption|set_up_toast_title": { + "en": "Activate message Secure Backup", + "fr": "Activer la sauvegarde automatique des messages" }, - "Verify session": { - "en": "Verify device", - "fr": "VĂ©rifier l'appareil" + "encryption|verification|after_new_login|reset_confirmation": { + "en": "Really reset Recovery Code?", + "fr": "RĂ©initialiser le Code de RĂ©cupĂ©ration, c’est certain ?" }, - "Verify this session": { - "en": "Verify this device", - "fr": "VĂ©rifier cet appareil" + "encryption|verification|after_new_login|unable_to_verify": { + "en": "You are logging into a new device", + "fr": "Vous vous connectez Ă  un nouvel appareil" }, - "Verify with Security Key": { + "encryption|verification|sas_emoji_caption_self": { + "en": "Confirm the emoji below are displayed on both devices, in the same order:", + "fr": "Confirmez si les objets sont les mĂȘmes sur vos 2 appareils." + }, + "encryption|verification|verification_description": { + "en": "Verify your identity to access locked messages and prove your identity to others.", + "fr": "VĂ©rifiez votre identitĂ© pour accĂ©der aux messages verrouillĂ©s et prouver votre identitĂ© aux autres." + }, + "encryption|verification|verification_success_with_backup": { + "en": "Your new device is now verified. It has access to your encrypted messages, and other users will see it as trusted.", + "fr": "Votre nouvel appareil est maintenant vĂ©rifiĂ©. Il a accĂšs Ă  vos messages chiffrĂ©s et les autres utilisateurs le verront comme fiable." + }, + "encryption|verification|verify_reset_warning_1": { + "en": "Resetting your Recovery Code cannot be undone. After resetting, you will no longer have access to your previous locked messages.", + "fr": "La rĂ©initialisation de votre Code de RĂ©cupĂ©ration ne peut pas ĂȘtre annulĂ©e. AprĂšs la rĂ©initialisation, vous n’aurez plus accĂšs Ă  vos anciens messages verrouillĂ©s." + }, + "encryption|verification|verify_reset_warning_2": { + "en": "Please only proceed if you're sure you've lost all of your other devices and your Recovery Code.", + "fr": "Veuillez ne continuer que si vous ĂȘtes certain d’avoir perdu tous vos autres appareils et votre Code de RĂ©cupĂ©ration." + }, + "encryption|verification|verify_using_key": { "en": "Verify with Recovery Code", "fr": "VĂ©rifier avec un Code de RĂ©cupĂ©ration" }, - "Verify with Security Key or Phrase": { + "encryption|verification|verify_using_key_or_phrase": { "en": "Verify with Recovery Code or Phrase", "fr": "VĂ©rifier avec un Code de RĂ©cupĂ©ration ou une phrase" }, - "Verify your current session for enhanced secure messaging.": { - "en": "Verify your current device to get your messages.", - "fr": "VĂ©rifier cet appareil afin de visualiser vos messages" + "encryption|verify_toast_description": { + "en": "You may not be able to recover your messages.", + "fr": "Vous risquez de ne pas pouvoir rĂ©cupĂ©rer vos messages." }, - "Verify your identity to access encrypted messages and prove your identity to others.": { - "en": "Verify your identity to access locked messages and prove your identity to others.", - "fr": "VĂ©rifiez votre identitĂ© pour accĂ©der aux messages verrouillĂ©s et prouver votre identitĂ© aux autres." + "encryption|verify_toast_title": { "en": "Verify this device", "fr": "VĂ©rifier cet appareil" }, + "error_app_opened_in_another_window": { + "comment": "2023-11-08: remove once the string is translated in element", + "en": "%(brand)s is open in another window. Click \"%(label)s\" to use %(brand)s here and disconnect the other window.", + "fr": "%(brand)s est ouvert dans une autre fenĂȘtre. Cliquez \"%(label)s\" pour utiliser %(brand)s ici et dĂ©connecter l'autre fenĂȘtre." }, - "Wait for at least %(wait)s seconds between two emails": { - "en": "Wait for at least %(wait)s seconds between two emails", - "fr": "Attendez au moins %(wait)s secondes entre l'envoi de deux mails" + "invite|error_already_joined_room": { + "en": "User is already in the room.", + "fr": "Cette personne est dĂ©jĂ  dans le salon." }, - "Waiting for this message. This could take a while. Find out more": { - "en": "Waiting for this message. This could take a while. Find out more", - "fr": "En attente de ce message. Ceci pourrait prendre un moment. En savoir plus" + "la messagerie instantanĂ©e de l'Administration": { + "en": "The instant messaging app of the French Administration", + "fr": "la messagerie instantanĂ©e de l'Administration" }, - "Warning: this is the only time this code will be displayed!": { - "en": "Warning: this is the only time this code will be displayed!", - "fr": "Attention: c’est la seule fois que ce code sera affichĂ© !" + "members_of_%(roomName)s.txt": { "en": "members_of_%(roomName)s.txt", "fr": "membres_de_%(roomName)s.txt" }, + "onboarding_free_e2ee_messaging_tchap_limited_voip": { + "en": "With free end-to-end encrypted messaging, %(brand)s is a great way to stay in touch.", + "fr": "GrĂące Ă  la messagerie chiffrĂ©e de bout en bout gratuite, %(brand)s est un excellent moyen de rester en contact." }, - "We have compiled a list of the questions our users ask the most frequently. Your question may be answered there.": { - "en": "We have compiled a list of the questions our users ask the most frequently. Your question may be answered there.", - "fr": "Nous avons constituĂ© une liste des question les plus frĂ©quentes posĂ©es par nos utilisateurs. Votre question a peut-ĂȘtre dĂ©jĂ  une solution." + "room|error_join_title": { "en": "Failed to join this room.", "fr": "Impossible de rejoindre ce salon" }, + "room|status_bar|server_connectivity_lost_description": { + "en": "Messages will be sent when your connection returns.", + "fr": "Les messages seront envoyĂ©s automatiquement dĂšs que la connexion sera rĂ©tablie." }, - "We'll generate a Security Key for you to store somewhere safe, like a password manager or a safe.": { + "room_list|join_public_room_label": { "en": "Join a public room", "fr": "Rejoindre un forum" }, + "room_settings|permissions|ban": { + "en": "Ban users", + "fr": "Interdire aux utilisateurs l’accĂšs au salon (dĂ©finitif)" + }, + "room_settings|permissions|banned_users_section": { "en": "Banned users", "fr": "Membres bannis" }, + "room_settings|permissions|kick": { "en": "Remove users", "fr": "Retirer des utilisateurs (rĂ©versible)" }, + "room_settings|permissions|muted_users_section": { "en": "Muted Users", "fr": "Membres en sourdine" }, + "room_settings|permissions|privileged_users_section": { "en": "Privileged Users", "fr": "Membres privilĂ©giĂ©s" }, + "settings|general|add_email_dialog_title": { "en": "Add Email Address", "fr": "Ajouter une adresse mail" }, + "settings|general|email_address_label": { "en": "Email Address", "fr": "Adresse mail" }, + "settings|general|emails_heading": { "en": "Email addresses", "fr": "Adresses mail" }, + "settings|general|error_invalid_email": { "en": "Invalid Email Address", "fr": "Adresse mail non valide" }, + "settings|key_backup|setup_secure_backup|backup_setup_success_description": { + "en": "Your messages are now automatically backed up on this device.", + "fr": "Vos messages sont maintenant automatiquement sauvegardĂ©s sur cet appareil." + }, + "settings|key_backup|setup_secure_backup|backup_setup_success_title": { + "en": "Secure backup successfully enabled.", + "fr": "Sauvegarde automatique activĂ©e avec succĂšs" + }, + "settings|key_backup|setup_secure_backup|generate_security_key_description": { "en": "We'll generate your unique Recovery Code for you to store somewhere safe, like a password manager or a safe.", "fr": "Nous gĂ©nĂšrerons votre Code de RĂ©cupĂ©ration unique que vous devrez stocker dans un endroit sĂ»r, comme un gestionnaire de mots de passe ou un coffre." }, - "Welcome to Tchap": { - "en": "Welcome to Tchap", - "fr": "Bienvenue sur Tchap" + "settings|key_backup|setup_secure_backup|generate_security_key_title": { + "en": "Generate a Recovery Code", + "fr": "GĂ©nĂ©rer un Code de RĂ©cupĂ©ration" }, - "Wrong Security Key": { - "en": "The Recovery Code is not valid. Check that it is the latest one.", - "fr": "Le Code de RĂ©cupĂ©ration n’est pas valide. VĂ©rifier que c’est le plus rĂ©cent." + "settings|key_backup|setup_secure_backup|security_key_safety_reminder": { + "en": "Keep it in a safe place, such as your password manager or a protected document on your computer. You will need to copy/paste it to retrieve your messages, so avoid taking screenshots.", + "fr": "Conservez-le dans un endroit sĂ»r, comme votre gestionnaire de mot de passe ou un document protĂ©gĂ© sur votre ordinateur. Vous aurez Ă  le copier / coller pour rĂ©cupĂ©rer vos messages, donc Ă©vitez la capture d’écran." }, - "You can also set up Secure Backup & manage your keys in Settings.": { + "settings|key_backup|setup_secure_backup|settings_reminder": { "en": "You can also set up Secure Backup & manage your keys in Settings.", "fr": "Vous pouvez aussi configurer la sauvegarde automatique des messages et gĂ©rer vos clĂ©s depuis les paramĂštres." }, - "You can close this disconnected tab, and go to the other %(brand)s tab.": { - "en": "You can close this disconnected tab, and go to the other %(brand)s tab.", - "fr": "Vous pouvez fermer cet onglet dĂ©connectĂ©, et aller Ă  l'autre onglet %(brand)s." + "settings|key_backup|setup_secure_backup|title_save_key": { + "en": "Write down your Recovery Code", + "fr": "Notez votre Code de RĂ©cupĂ©ration" }, - "You need to be able to kick users to do that.": { - "en": "You need to be able to kick users to do that.", - "fr": "Vous devez avoir l’autorisation de retirer des utilisateurs pour faire ceci." + "settings|key_backup|setup_secure_backup|use_phrase_only_you_know": { + "en": "Use a secret phrase only you know, and optionally save a Recovery Code to use for backup.", + "fr": "Utilisez une phrase secrĂšte que vous ĂȘtes seul Ă  connaĂźtre et enregistrez Ă©ventuellement un Code de RĂ©cupĂ©ration Ă  utiliser pour la sauvegarde." }, - "You should make especially certain that you recognise these sessions as they could represent an unauthorised use of your account.": { - "en": "You should make especially certain that you recognise these devices as they could represent an unauthorised use of your account.", - "fr": "Vous devriez vous assurer que vous connaissez ces appareils, car ils pourraient reprĂ©senter un usage frauduleux de votre compte." + "settings|security|backup_keys_description": { + "en": "Automatically back up your messages and retrieve them at any time using the Recovery Code.", + "fr": "Sauvegardez automatiquement vos messages et rĂ©cupĂ©rez-les Ă  tout moment Ă  l’aide du Code de RĂ©cupĂ©ration." }, - "Your %(brand)s is misconfigured": { - "en": " ", - "fr": " " + "settings|security|cryptography_section": { "en": "Tchap keys", "fr": "ClĂ©s Tchap" }, + "settings|security|export_megolm_keys": { "en": "Save your Tchap keys", "fr": "Sauvegardez vos clĂ©s Tchap" }, + "settings|security|ignore_users_section": { "en": "Ignored users", "fr": "Membres ignorĂ©s" }, + "settings|security|import_megolm_keys": { + "en": "Import your Tchap keys from the downloaded file", + "fr": "Importez vos clĂ©s Tchap depuis le fichier sauvegardĂ©" }, - "Your Tchap Key password": { - "en": "Your Tchap Key password", - "fr": "Votre mot de passe ClĂ©s Tchap" + "settings|security|key_backup_active": { + "en": "This device automatically backs up your messages.", + "fr": "Cet appareil sauvegarde automatiquement vos messages." }, - "Your Tchap Keys (encryption keys) have been successful saved in the tchap-keys.txt file. You can import them when you login again to unlock your messages (find out more).": { - "en": "Your Tchap Keys (encryption keys) have been successful saved in the tchap-keys.txt file. You can import them when you login again to unlock your messages (find out more).", - "fr": "Vos ClĂ©s Tchap (clĂ©s de chiffrement) ont Ă©tĂ© sauvegardĂ©es avec succĂšs dans le fichier tchap-keys.txt. Vous pourrez les importer Ă  votre prochaine connexion pour dĂ©verrouiller vos messages (en savoir plus)." + "settings|security|key_backup_connect": { "en": "Verify this device", "fr": "VĂ©rifier cet appareil" }, + "settings|security|key_backup_inactive_warning": { + "en": "This device is not backing up your messages.", + "fr": "Cet appareil ne sauvegarde pas vos messages." }, - "Your account is still expired, please follow the link in the email you have received to renew it": { - "en": "Your account is still expired, please follow the link in the email you should have received to renew it", - "fr": "Votre compte est toujours expirĂ©, merci de cliquer sur le lien reçu dans le mail de renouvellement" + "settings|security|message_search_unsupported_web": { + "comment": "We have to include a < otherwise the i18n checker crashes. So add an empty one.", + "en": "Currently %(brand)s does not support searching into messages.", + "fr": "Actuellement %(brand)s ne supporte pas la recherche dans les messages." + }, + "settings|security|restore_key_backup": { "en": "Retrieve my messages", "fr": "RĂ©cupĂ©rer mes messages" }, + "settings|sessions|best_security_note": { + "en": "Verify your devices to unlock your messages", + "fr": "VĂ©rifier tous vos appareils pour dĂ©verrouiller tous vos messages" + }, + "settings|sessions|current_session": { "en": "This device", "fr": "Cet appareil" }, + "settings|sessions|device_unverified_description_current": { + "en": "Verify your current device to get your messages.", + "fr": "VĂ©rifier cet appareil afin de visualiser vos messages" }, - "Your current session is ready for secure messaging.": { + "settings|sessions|device_verified_description_current": { "en": "Your device is ready for secure messaging.", "fr": "Votre appareil est prĂȘt Ă  envoyer des messages." }, - "Your keys are not being backed up from this session.": { - "en": "This device is not backing up your messages.", - "fr": "Cet appareil ne sauvegarde pas vos messages." + "settings|sessions|n_sessions_selected|one": { + "en": "%(count)s device selected", + "fr": "%(count)s appareil sĂ©lectionnĂ©" }, - "Your keys are now being backed up from this device.": { - "en": "Your messages are now automatically backed up on this device.", - "fr": "Vos messages sont maintenant automatiquement sauvegardĂ©s sur cet appareil." + "settings|sessions|n_sessions_selected|other": { + "en": "%(count)s devices selected", + "fr": "%(count)s appareils sĂ©lectionnĂ©s" }, - "Your last three login attempts have failed. Please try again in a few minutes.": { - "en": "Your last three login attempts have failed. Please try again in a few minutes.", - "fr": "Vos trois derniĂšres tentatives de connexion ont Ă©chouĂ©. Veuillez rĂ©essayer dans quelques minutes." + "settings|sessions|other_sessions_heading": { "en": "Other devices", "fr": "Autres appareils" }, + "settings|sessions|push_subheading": { + "en": "Receive push notifications on this device.", + "fr": "Recevoir les notifications push sur cet appareil" }, - "Your new device is now verified. It has access to your encrypted messages, and other users will see it as trusted.": { - "en": "Your new device is now verified. It has access to your encrypted messages, and other users will see it as trusted.", - "fr": "Votre nouvel appareil est maintenant vĂ©rifiĂ©. Il a accĂšs Ă  vos messages chiffrĂ©s et les autres utilisateurs le verront comme fiable." + "settings|sessions|sign_out": { "en": "Sign out of this device", "fr": "Se dĂ©connecter de cet appareil" }, + "settings|sessions|sign_out_all_other_sessions": { + "en": "Sign out of all other devices (%(otherSessionsCount)s)", + "fr": "DĂ©connecter tous les autres appareils (%(otherSessionsCount)s)" }, - "Your password must include:": { - "en": "Your password must include:", - "fr": "Votre mot de passe doit comporter :" + "settings|sessions|sign_out_confirm_description|one": { + "en": "Are you sure you want to sign out of %(count)s device?", + "fr": "Voulez-vous vraiment dĂ©connecter %(count)s appareil ?" }, - "a lowercase letter": { - "en": "a lowercase letter", - "fr": "une lettre minuscule" + "settings|sessions|sign_out_confirm_description|other": { + "en": "Are you sure you want to sign out of %(count)s devices?", + "fr": "Voulez-vous vraiment dĂ©connecter %(count)s de vos appareils ?" }, - "a minimum of %(number)s characters": { - "en": "a minimum of %(number)s characters", - "fr": "%(number)s caractĂšres au minimum" + "settings|sessions|sign_out_n_sessions|one": { + "en": "Sign out of %(count)s device", + "fr": "DĂ©connecter %(count)s appareil" }, - "a number": { - "en": "a number", - "fr": "un chiffre" - }, - "a symbol": { - "en": "a symbol", - "fr": "un caractĂšre spĂ©cial" - }, - "action": { - "start_chat": { - "en": "New direct message", - "fr": "Nouveau message direct" - } - }, - "an uppercase letter": { - "en": "an uppercase letter", - "fr": "une lettre majuscule" - }, - "auth": { - "check_email_wrong_email_button": { - "en": "Re-enter email address", - "fr": "Re-saisir l'adresse mail" - }, - "check_email_wrong_email_prompt": { - "comment": "TODO contribute to element", - "en": "Wrong email address?", - "fr": "Mauvaise adresse mail ?" - }, - "enter_email_heading": { - "en": "Enter your email to reset password", - "fr": "Entrez votre adresse mail pour rĂ©initialiser votre mot de passe" - }, - "reset_password_title": { - "comment": "TODO contribute to element translations", - "en": "Reset your password", - "fr": "RĂ©initialisez votre mot de passe" - }, - "sign_in_instead": { - "comment": "TODO contribute to element translations", - "en": "Sign in instead", - "fr": "ou connectez-vous" - }, - "verify_email_explainer": { - "en": "We need to know it’s you before resetting your password.\n Click the link in the email we just sent to %(email)s", - "fr": "Nous avons besoin de savoir que c’est vous avant de rĂ©initialiser votre mot de passe.\n Cliquer sur le lien dans le mail que nous venons juste d’envoyer Ă  %(email)s" - }, - "verify_email_heading": { - "Verify your email to continue": { - "en": "Verify your email to continue", - "fr": "VĂ©rifiez vos mails avant de continuer" - } - } - }, - "common": { - "unverified": { - "en": "Unverified", - "fr": "Non vĂ©rifiĂ©" - }, - "verified": { - "en": "Verified ", - "fr": "VĂ©rifiĂ©" - } + "settings|sessions|sign_out_n_sessions|other": { + "en": "Sign out of %(count)s devices", + "fr": "DĂ©connecter %(count)s appareils" }, - "la messagerie instantanĂ©e de l'Administration": { - "en": "The instant messaging app of the French Administration", - "fr": "la messagerie instantanĂ©e de l'Administration" + "settings|sessions|title": { "en": "My devices", "fr": "Mes appareils" }, + "settings|sessions|unverified_session": { "en": "Unverified device", "fr": "Appareil non vĂ©rifiĂ©" }, + "settings|sessions|unverified_sessions": { "en": "Unverified devices", "fr": "Appareils non vĂ©rifiĂ©s" }, + "settings|sessions|unverified_sessions_explainer_1": { + "en": "Unverified devices are devices that have logged in with your credentials but have not been cross-verified (emoji exchange or ou Recovery Code).", + "fr": "Les appareils non vĂ©rifiĂ©s sont identifiĂ©s avec vos identifiants mais n’ont pas fait de vĂ©rification croisĂ©e (Ă©change d'emojis ou Code de RĂ©cupĂ©ration)." }, - "members_of_%(roomName)s.txt": { - "en": "members_of_%(roomName)s.txt", - "fr": "membres_de_%(roomName)s.txt" + "settings|sessions|unverified_sessions_explainer_2": { + "en": "You should make especially certain that you recognise these devices as they could represent an unauthorised use of your account.", + "fr": "Vous devriez vous assurer que vous connaissez ces appareils, car ils pourraient reprĂ©senter un usage frauduleux de votre compte." }, - "onboarding_free_e2ee_messaging_tchap_limited_voip": { - "en": "With free end-to-end encrypted messaging, %(brand)s is a great way to stay in touch.", - "fr": "GrĂące Ă  la messagerie chiffrĂ©e de bout en bout gratuite, %(brand)s est un excellent moyen de rester en contact." + "settings|sessions|verified_session": { "en": "Verified device", "fr": "Appareil vĂ©rifiĂ©" }, + "settings|sessions|verified_sessions": { "en": "Verified devices", "fr": "Appareils vĂ©rifiĂ©s" }, + "settings|sessions|verified_sessions_explainer_1": { + "en": "Verified devices are anywhere you are using this account after entering your passphrase or confirming your identity with another verified device.", + "fr": "Les appareils vĂ©rifiĂ©s sont ceux qui utilisent ce compte aprĂšs avoir saisi la phrase de sĂ©curitĂ© ou confirmĂ© votre identitĂ© Ă  l’aide d’un autre appareil vĂ©rifiĂ©." + }, + "settings|sessions|verified_sessions_explainer_2": { + "en": "This means that you have all the keys needed to unlock your encrypted messages and confirm to other users that you trust this device.", + "fr": "Cela veut dire qu'ils disposent de toutes les clĂ©s nĂ©cessaires pour lire les messages chiffrĂ©s, et confirment aux autres utilisateurs que vous faites confiance Ă  cet appareil." + }, + "settings|sessions|verify_session": { "en": "Verify device", "fr": "VĂ©rifier l'appareil" }, + "settings|sidebar|metaspaces_favourites_description": { + "en": "Group all your favourite rooms in one place.", + "fr": "Regroupe tous vos salons favoris au mĂȘme endroit." + }, + "settings|sidebar|metaspaces_home_all_rooms_description": { + "en": "Show all your rooms in Home", + "fr": "Affiche tous vos salons dans l’accueil" + }, + "settings|sidebar|metaspaces_people_description": { + "en": "Group all your direct message room in one place.", + "fr": "Regroupe tous vos salons de message directs au mĂȘme endroit." + }, + "settings|sidebar|spaces_explainer": { + "en": "Spaces are ways to group rooms and direct messages.", + "fr": "Les espaces permettent de regrouper des salons et des messages directs." + }, + "slash_command|server_error_detail": { + "en": "Tchap is not available at the moment (err:03). View the status of services: https://status.tchap.numerique.gouv.fr", + "fr": "La connexion Ă  Tchap n'est pas possible pour le moment (err:03). Voir l'Ă©tat du service: https://status.tchap.numerique.gouv.fr" + }, + "threads|unable_to_decrypt": { + "en": "Waiting for this message. This could take a while.", + "fr": "En attente de ce message. Ceci pourrait prendre un moment." }, - "room_settings": { - "permissions": { - "ban": { - "en": "Ban users", - "fr": "Interdire aux utilisateurs l’accĂšs au salon (dĂ©finitif)" - }, - "kick": { - "en": "Remove users", - "fr": "Retirer des utilisateurs (rĂ©versible)" - } - } - }, - "widget": { - "capability": { - "remove_ban_invite_leave_active_room": { - "en": "Remove, ban, or invite people to your active room, and make you leave", - "fr": "Retirer, interdire l'accĂšs ou inviter des personnes dans votre salon actif et en partir" - }, - "remove_ban_invite_leave_this_room": { - "en": "Remove, ban, or invite people to this room, and make you leave", - "fr": "Retirer, interdire l'accĂšs ou inviter une personne dans ce salon et vous permettre de partir" - } - } + "threads|unable_to_decrypt_with_info_message": { + "en": "Waiting for this message. This could take a while. Find out more", + "fr": "En attente de ce message. Ceci pourrait prendre un moment. En savoir plus" + }, + "user_info|ban_button_room": { "en": "Ban from room", "fr": "Interdire l’accĂšs au salon (dĂ©finitif)" }, + "user_info|ban_button_space": { "en": "Ban from space", "fr": "Interdire l’accĂšs Ă  l'espace (dĂ©finitif)" }, + "user_info|ban_room_confirm_title": { + "en": "Ban from %(roomName)s", + "fr": "Interdire l’accĂšs Ă  %(roomName)s (dĂ©finitif)" + }, + "user_info|ban_space_everything": { + "en": "Ban them from everything I'm able to", + "fr": "Interdire l’accĂšs partout oĂč j’ai le droit de le faire (dĂ©finitif)" + }, + "user_info|ban_space_specific": { + "en": "Ban them from specific things I'm able to", + "fr": "Interdire l’accĂšs Ă  certains endroits oĂč j’ai le droit de le faire (dĂ©finitif)" + }, + "user_info|kick_button_room": { "en": "Remove from room", "fr": "Retirer du salon (rĂ©versible)" }, + "user_info|kick_button_room_name": { + "en": "Remove from %(roomName)s", + "fr": "Retirer de %(roomName)s (rĂ©versible)" + }, + "user_info|kick_button_space_everything": { + "en": "Remove them from everything I'm able to", + "fr": "Retirer de partout oĂč j’ai le droit de le faire (rĂ©versible)" + }, + "user_info|kick_space_specific": { + "en": "Remove them from specific things I'm able to", + "fr": "Retirer de certains endroits oĂč j’ai le droit de le faire (rĂ©versible)" + }, + "voip|connection_lost": { + "comment": "the element string does not have . Where is this used?", + "en": "Tchap is not available at the moment. View the status of services.", + "fr": "La connexion Ă  Tchap n'est pas possible pour le moment. Voir l'Ă©tat du service" + }, + "widget|capability|remove_ban_invite_leave_active_room": { + "en": "Remove, ban, or invite people to your active room, and make you leave", + "fr": "Retirer, interdire l'accĂšs ou inviter des personnes dans votre salon actif et en partir" + }, + "widget|capability|remove_ban_invite_leave_this_room": { + "en": "Remove, ban, or invite people to this room, and make you leave", + "fr": "Retirer, interdire l'accĂšs ou inviter une personne dans ce salon et vous permettre de partir" + }, + "widget|error_need_kick_permission": { + "en": "You need to be able to kick users to do that.", + "fr": "Vous devez avoir l’autorisation de retirer des utilisateurs pour faire ceci." } } diff --git a/modules/tchap-translations/tchap_translations_removed.json b/modules/tchap-translations/tchap_translations_removed.json index 4a3c0d4602..7f119119e3 100644 --- a/modules/tchap-translations/tchap_translations_removed.json +++ b/modules/tchap-translations/tchap_translations_removed.json @@ -1,24 +1,10 @@ [ "%(brand)s has been opened in another tab.", - "%(downloadButton)s or %(copyButton)s", "%(securityKey)s or %(recoveryFile)s", - "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.", - "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or enable unsafe scripts.", - "There was a problem communicating with the homeserver, please try again later.", - "This session is not backing up your keys, but you do have an existing backup you can restore from and add to going forward.", - "Connect this session to key backup before signing out to avoid losing any keys that may only be on this session.", - "Connectivity to the server has been lost.", - "Server may be unavailable, overloaded, or search timed out :(", "Cryptography", - "Enter email address (required on this homeserver)", - "It looks like you don't have a Security Key or any other devices you can verify against. This device will not be able to access old encrypted messages. In order to verify your identity on this device, you'll need to reset your verification keys.", "Not encrypted", "Please tell us what went wrong or, better, create a GitHub issue that describes the problem.", - "Room Addresses", - "Secure messages with this user are end-to-end encrypted and not able to be read by third parties.", "Sign out of all devices", - "To link to this room, please add an address.", - "Use an email address to recover your account", "Verification Request", "Verify other device", "Verify this device to mark it as trusted. Trusting this device gives you and other users extra peace of mind when using end-to-end encrypted messages.", @@ -26,14 +12,28 @@ "Verifying this user will mark their session as trusted, and also mark your session as trusted to them.", "Verify this user to mark them as trusted. Trusting users gives you extra peace of mind when using end-to-end encrypted messages.", "Waiting for partner to confirm
", - "You've successfully verified %(deviceName)s (%(deviceId)s)!", "auth|enter_email_explainer", + "auth|reset_password_email_field_description", + "auth|reset_password_email_field_required_invalid", "bug_reporting|before_submitting", "bug_reporting|github_issue", "common|matrix", "encryption|verification|complete_description", - "onboarding|download_f_droid", "encryption|verification|complete_title", + "encryption|verification|explainer", + "encryption|verification|no_key_or_device", + "encryption|verification|successful_device", + "error|connection", + "error|mixed_content", + "error|tls", + "error_dialog|search_failed|server_unavailable", + "onboarding|download_f_droid", "powered_by_matrix_with_logo", + "room|status_bar|server_connectivity_lost_title", + "room_settings|general|aliases_section", + "room_settings|security|public_without_alias_warning", + "settings|key_backup|setup_secure_backup|download_or_copy", + "settings|security|key_backup_connect_prompt", + "settings|security|key_backup_inactive", "welcome_to_element" ] diff --git a/package.json b/package.json index 048f86e07d..f4fe09fbe4 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "element-web", "productName": "Tchap", "version": "4.4.1", - "version-element-web": "1.11.44", + "version-element-web": "1.11.46", "description": "A feature-rich client for Matrix.org", "author": "DINUM", "repository": { @@ -90,8 +90,8 @@ "jsrsasign": "^10.5.25", "katex": "^0.16.0", "lodash": "^4.17.21", - "matrix-js-sdk": "28.2.0", - "matrix-react-sdk": "3.81.0", + "matrix-js-sdk": "29.0.0", + "matrix-react-sdk": "3.82.0", "matrix-widget-api": "^1.3.1", "react": "17.0.2", "react-dom": "17.0.2", @@ -184,7 +184,7 @@ "json-loader": "^0.5.7", "loader-utils": "^3.0.0", "matrix-mock-request": "^2.5.0", - "matrix-web-i18n": "^3.1.1", + "matrix-web-i18n": "^3.1.3", "mini-css-extract-plugin": "^1", "minimist": "^1.2.6", "mkdirp": "^3.0.0", diff --git a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.81.0.patch b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.82.0+001+initial.patch similarity index 63% rename from patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.81.0.patch rename to patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.82.0+001+initial.patch index ca0c639866..ec47e6655a 100644 --- a/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.81.0.patch +++ b/patches/activate-cross-signing-and-secure-storage-react/matrix-react-sdk+3.82.0+001+initial.patch @@ -1,16 +1,16 @@ diff --git a/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx b/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx -index cf08ffa..3f3210f 100644 +index 7ce7ae2..0e66b0f 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/MatrixChat.tsx -@@ -150,6 +150,7 @@ import { Filter } from "../views/dialogs/spotlight/Filter"; +@@ -148,6 +148,7 @@ import { Filter } from "../views/dialogs/spotlight/Filter"; import { checkSessionLockFree, getSessionLock } from "../../utils/SessionLock"; import { SessionLockStolenView } from "./auth/SessionLockStolenView"; import { ConfirmSessionLockTheftView } from "./auth/ConfirmSessionLockTheftView"; -+import TchapUrls from "../../../../../src/tchap/util/TchapUrls"; ++import TchapUrls from "../../../../../src/tchap/util/TchapUrls"; // :TCHAP: // legacy export export { default as Views } from "../../Views"; -@@ -1784,6 +1785,15 @@ export default class MatrixChat extends React.PureComponent { +@@ -1769,6 +1770,15 @@ export default class MatrixChat extends React.PureComponent { return; } @@ -27,10 +27,10 @@ index cf08ffa..3f3210f 100644 dis.dispatch({ action: "start_registration", diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx -index 933cfcc..365e76a 100644 +index 93b1333..2570ba2 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/CrossSigningPanel.tsx -@@ -229,14 +229,21 @@ export default class CrossSigningPanel extends React.PureComponent<{}, IState> { +@@ -227,14 +227,21 @@ export default class CrossSigningPanel extends React.PureComponent<{}, IState> { userSigningPrivateKeyCached; const actions: JSX.Element[] = []; @@ -40,21 +40,21 @@ index 933cfcc..365e76a 100644 // TODO: determine how better to expose this to users in addition to prompts at login/toast if (!keysExistEverywhere && homeserverSupportsCrossSigning) { -- let buttonCaption = _t("Set up Secure Backup"); -+ // :TCHAP: change > let buttonCaption = _t("Set up Secure Backup"); +- let buttonCaption = _t("encryption|set_up_toast_title"); ++ // :TCHAP: let buttonCaption = _t("encryption|set_up_toast_title"); + let buttonCaption = _t("Activate on this device"); + // end :TCHAP: -+ if (crossSigningPrivateKeysInStorage) { - buttonCaption = _t("Verify this session"); + buttonCaption = _t("encryption|verify_toast_title"); } - actions.push( -+ // TCHAP: change actions.push( ++ // :TCHAP: actions.push( + advancedActions.push( ++ // end :TCHAP: {buttonCaption} , -@@ -244,7 +251,9 @@ export default class CrossSigningPanel extends React.PureComponent<{}, IState> { +@@ -242,7 +249,9 @@ export default class CrossSigningPanel extends React.PureComponent<{}, IState> { } if (keysExistAnywhere) { @@ -65,7 +65,7 @@ index 933cfcc..365e76a 100644 {_t("action|reset")} , -@@ -256,6 +265,12 @@ export default class CrossSigningPanel extends React.PureComponent<{}, IState> { +@@ -254,6 +263,13 @@ export default class CrossSigningPanel extends React.PureComponent<{}, IState> { actionRow =
{actions}
; } @@ -75,11 +75,12 @@ index 933cfcc..365e76a 100644 + advancedActionRow =
{advancedActions}
; + } + // end :TCHAP: ++ return ( <> {summarisedStatus} -@@ -291,6 +306,7 @@ export default class CrossSigningPanel extends React.PureComponent<{}, IState> { - {homeserverSupportsCrossSigning ? _t("exists") : _t("not found")} +@@ -309,6 +325,7 @@ export default class CrossSigningPanel extends React.PureComponent<{}, IState> { + + {advancedActionRow} @@ -87,77 +88,66 @@ index 933cfcc..365e76a 100644 {errorSection} {actionRow} diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx -index a556799..5cde33c 100644 +index 1a63164..8ccec1c 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/SecureBackupPanel.tsx -@@ -257,6 +257,16 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { +@@ -266,12 +266,23 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { } else { statusDescription = ( <> + {/* TCHAP add Tchap text */} + -+ {_t( -+ "Your keys are not being backed up from this session.", -+ {}, -+ { b: (sub) => {sub} }, -+ )} ++ {_t( ++ "settings|security|key_backup_inactive_warning", ++ {}, ++ { b: (sub) => {sub} }, ++ )} + + {/* end TCHAP */} + {/* :TCHAP remove element text - {_t( - "This session is not backing up your keys, but you do have an existing backup you can restore from and add to going forward.", -@@ -269,6 +279,7 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { - "Connect this session to key backup before signing out to avoid losing any keys that may only be on this session.", - )} + {_t("settings|security|key_backup_inactive", {}, { b: (sub) => {sub} })} -+ end TCHAP */} + + {_t("settings|security|key_backup_connect_prompt")} + ++ end :TCHAP: */} ); - restoreButtonCaption = _t("Connect this session to Key Backup"); -@@ -323,13 +334,15 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { + restoreButtonCaption = _t("settings|security|key_backup_connect"); +@@ -333,6 +344,7 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { , ); -- if (!isSecureBackupRequired(MatrixClientPeg.safeGet())) { -- actions.push( -- -- {_t("Delete Backup")} -- , -- ); -- } -+ // :TCHAP: hide -+ // if (!isSecureBackupRequired(MatrixClientPeg.safeGet())) { -+ // actions.push( -+ // -+ // {_t("Delete Backup")} -+ // , -+ // ); -+ // } -+ // end :TCHAP: ++ /* :TCHAP: hide + if (!isSecureBackupRequired(MatrixClientPeg.safeGet())) { + actions.push( + +@@ -340,13 +352,16 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { + , + ); + } ++ end :TCHAP: */ } else { statusDescription = ( <> -@@ -340,9 +353,11 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { - { b: (sub) => {sub} }, - )} - -+ {/* :TCHAP: remove - {_t("Back up your keys before signing out to avoid losing them.")} + {_t("settings|security|key_backup_inactive_warning", {}, { b: (sub) => {sub} })} -+ end TCHAP */ } ++ {/* :TCHAP: remove + {_t("encryption|setup_secure_backup|explainer")} ++ end :TCHAP: */} ); actions.push( -@@ -355,7 +370,9 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { +@@ -359,7 +374,9 @@ export default class SecureBackupPanel extends React.PureComponent<{}, IState> { if (secretStorageKeyInAccount) { actions.push( - {_t("action|reset")} -+ {/* :TCHAP: change {_t("Reset")} into */} ++ {/* :TCHAP: _t("action|reset") */} + {_t("Generate a new code")} -+ {/* end :TCHAP */} ++ {/* end :TCHAP: */} , ); } diff --git a/patches/activate-expired-account-panel/matrix-js-sdk+28.2.0.patch b/patches/activate-expired-account-panel/matrix-js-sdk+29.0.0.patch similarity index 99% rename from patches/activate-expired-account-panel/matrix-js-sdk+28.2.0.patch rename to patches/activate-expired-account-panel/matrix-js-sdk+29.0.0.patch index 4e9f7f1650..53f28a74b8 100644 --- a/patches/activate-expired-account-panel/matrix-js-sdk+28.2.0.patch +++ b/patches/activate-expired-account-panel/matrix-js-sdk+29.0.0.patch @@ -41,7 +41,7 @@ index 57e8a18..525860d 100644 export interface UploadProgress { diff --git a/node_modules/matrix-js-sdk/src/sync.ts b/node_modules/matrix-js-sdk/src/sync.ts -index be13b0c..6731e6a 100644 +index 84b6255..770d2f8 100644 --- a/node_modules/matrix-js-sdk/src/sync.ts +++ b/node_modules/matrix-js-sdk/src/sync.ts @@ -615,6 +615,14 @@ export class SyncApi { diff --git a/patches/add-translations-for-server-errors/matrix-react-sdk+3.81.0.patch b/patches/add-translations-for-server-errors/matrix-react-sdk+3.82.0.patch similarity index 90% rename from patches/add-translations-for-server-errors/matrix-react-sdk+3.81.0.patch rename to patches/add-translations-for-server-errors/matrix-react-sdk+3.82.0.patch index a8f86f0603..e35b1c99a9 100644 --- a/patches/add-translations-for-server-errors/matrix-react-sdk+3.81.0.patch +++ b/patches/add-translations-for-server-errors/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/stores/RoomViewStore.tsx b/node_modules/matrix-react-sdk/src/stores/RoomViewStore.tsx -index d77e6d9..c4456ab 100644 +index 66d1528..7ebaa1b 100644 --- a/node_modules/matrix-react-sdk/src/stores/RoomViewStore.tsx +++ b/node_modules/matrix-react-sdk/src/stores/RoomViewStore.tsx @@ -600,6 +600,12 @@ export class RoomViewStore extends EventEmitter { @@ -13,5 +13,5 @@ index d77e6d9..c4456ab 100644 + /* end :TCHAP: */ + if (err.name === "ConnectionError") { - description = _t("There was an error joining."); + description = _t("room|error_join_connection"); } else if (err.errcode === "M_INCOMPATIBLE_ROOM_VERSION") { diff --git a/patches/auto-accept-tac/matrix-react-sdk+3.81.0.patch b/patches/auto-accept-tac/matrix-react-sdk+3.82.0.patch similarity index 98% rename from patches/auto-accept-tac/matrix-react-sdk+3.81.0.patch rename to patches/auto-accept-tac/matrix-react-sdk+3.82.0.patch index ca37455b08..14d5156d74 100644 --- a/patches/auto-accept-tac/matrix-react-sdk+3.81.0.patch +++ b/patches/auto-accept-tac/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/IdentityAuthClient.tsx b/node_modules/matrix-react-sdk/src/IdentityAuthClient.tsx -index a596156..2cc0f8b 100644 +index e4bbb76..efdbb25 100644 --- a/node_modules/matrix-react-sdk/src/IdentityAuthClient.tsx +++ b/node_modules/matrix-react-sdk/src/IdentityAuthClient.tsx @@ -29,6 +29,7 @@ import { diff --git a/patches/better-text-for-locked-messages/matrix-react-sdk+3.81.0.patch b/patches/better-text-for-locked-messages/matrix-react-sdk+3.82.0.patch similarity index 82% rename from patches/better-text-for-locked-messages/matrix-react-sdk+3.81.0.patch rename to patches/better-text-for-locked-messages/matrix-react-sdk+3.82.0.patch index 7bac07b6b6..dca9caaee0 100644 --- a/patches/better-text-for-locked-messages/matrix-react-sdk+3.81.0.patch +++ b/patches/better-text-for-locked-messages/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/messages/DecryptionFailureBody.tsx b/node_modules/matrix-react-sdk/src/components/views/messages/DecryptionFailureBody.tsx -index c3b615b..159cfa2 100644 +index 1a68e58..a32b4ea 100644 --- a/node_modules/matrix-react-sdk/src/components/views/messages/DecryptionFailureBody.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/messages/DecryptionFailureBody.tsx @@ -19,11 +19,25 @@ import { MatrixEvent } from "matrix-js-sdk/src/matrix"; @@ -11,11 +11,11 @@ index c3b615b..159cfa2 100644 function getErrorMessage(mxEvent?: MatrixEvent): string { return mxEvent?.isEncryptedDisabledForUnverifiedDevices - ? _t("The sender has blocked you from receiving this message") -- : _t("Unable to decrypt message"); -+ // :TCHAP: : _t("Unable to decrypt message"); + ? _t("timeline|decryption_failure_blocked") +- : _t("threads|unable_to_decrypt"); ++ // :TCHAP: : _t("threads|unable_to_decrypt"); + : _t( -+ "Waiting for this message. This could take a while. Find out more", ++ "threads|unable_to_decrypt_with_info_message", + {}, + { + a: (sub) => ( @@ -25,12 +25,12 @@ index c3b615b..159cfa2 100644 + ), + }, + ); -+ // end :TCHAP: ++ // end :TCHAP: } // A placeholder element for messages that could not be decrypted diff --git a/node_modules/matrix-react-sdk/src/components/views/rooms/ThreadSummary.tsx b/node_modules/matrix-react-sdk/src/components/views/rooms/ThreadSummary.tsx -index 8164511..2feb0e9 100644 +index ad79b47..716830e 100644 --- a/node_modules/matrix-react-sdk/src/components/views/rooms/ThreadSummary.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/rooms/ThreadSummary.tsx @@ -30,6 +30,8 @@ import MatrixClientContext from "../../../contexts/MatrixClientContext"; @@ -48,7 +48,7 @@ index 8164511..2feb0e9 100644 + // :TCHAP: + const undecryptedText = _t( -+ "Unable to decrypt message", ++ "threads|unable_to_decrypt_with_info_message", + {}, + { + a: (sub) => ( @@ -63,14 +63,14 @@ index 8164511..2feb0e9 100644 return ( <> = ({ thread, showDisp +@@ -113,7 +129,20 @@ export const ThreadMessagePreview: React.FC = ({ thread, showDisp className="mx_ThreadSummary_content mx_DecryptionFailureBody" - title={_t("Unable to decrypt message")} + title={_t("threads|unable_to_decrypt")} > -- {_t("Unable to decrypt message")} -+ { /* :TCHAP: {_t("Unable to decrypt message")}*/} +- {_t("threads|unable_to_decrypt")} ++ { /* :TCHAP: {_t("threads|unable_to_decrypt")}*/} + -+ {_t("Waiting for this message. This could take a while. Find out more", {}, ++ {_t("threads|unable_to_decrypt_with_info_message", {}, + { + a: (sub) => ( + @@ -81,6 +81,7 @@ index 8164511..2feb0e9 100644 + )} + + {/** end :TCHAP: */} ++ ) : (
diff --git a/patches/better-text-for-tab-switch/matrix-react-sdk+3.81.0.patch b/patches/better-text-for-tab-switch/matrix-react-sdk+3.82.0.patch similarity index 77% rename from patches/better-text-for-tab-switch/matrix-react-sdk+3.81.0.patch rename to patches/better-text-for-tab-switch/matrix-react-sdk+3.82.0.patch index 1b29c2e1ed..a9c276a5d4 100644 --- a/patches/better-text-for-tab-switch/matrix-react-sdk+3.81.0.patch +++ b/patches/better-text-for-tab-switch/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/SessionLockStolenView.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/SessionLockStolenView.tsx -index 0c0bc01..1a5ef24 100644 +index de93624..64378b8 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/SessionLockStolenView.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/SessionLockStolenView.tsx @@ -28,8 +28,13 @@ export function SessionLockStolenView(): JSX.Element { @@ -8,11 +8,13 @@ index 0c0bc01..1a5ef24 100644 + {/** :TCHAP: better messaging

{_t("common|error")}

-

{_t("%(brand)s has been opened in another tab.", { brand })}

+

{_t("error_app_open_in_another_tab", { brand })}

+-
+- ); + */} -+

{_t("%(brand)s has been connected in another tab", { brand })}

++

{_t("error_app_open_in_another_tab", { brand })}

+

{_t("You can close this disconnected tab, and go to the other %(brand)s tab.", { brand })}

+ {/** end :TCHAP: */} - - ); ++ ++ ); } diff --git a/patches/bug-reporting/matrix-react-sdk+3.81.0.patch b/patches/bug-reporting/matrix-react-sdk+3.82.0.patch similarity index 98% rename from patches/bug-reporting/matrix-react-sdk+3.81.0.patch rename to patches/bug-reporting/matrix-react-sdk+3.82.0.patch index 8fdfe5e51b..9cce23d1fc 100644 --- a/patches/bug-reporting/matrix-react-sdk+3.81.0.patch +++ b/patches/bug-reporting/matrix-react-sdk+3.82.0.patch @@ -145,7 +145,7 @@ index e679955..69f9b61 100644 export interface IAccessibleButtonProps extends React.InputHTMLAttributes { diff --git a/node_modules/matrix-react-sdk/src/components/views/elements/ErrorBoundary.tsx b/node_modules/matrix-react-sdk/src/components/views/elements/ErrorBoundary.tsx -index 53bd3d8..97e681c 100644 +index e6341a8..cf7db3c 100644 --- a/node_modules/matrix-react-sdk/src/components/views/elements/ErrorBoundary.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/elements/ErrorBoundary.tsx @@ -77,7 +77,9 @@ export default class ErrorBoundary extends React.PureComponent { @@ -160,10 +160,10 @@ index 53bd3d8..97e681c 100644 let bugReportSection; if (SdkConfig.get().bug_report_endpoint_url) { diff --git a/node_modules/matrix-react-sdk/src/components/views/rooms/RoomPreviewBar.tsx b/node_modules/matrix-react-sdk/src/components/views/rooms/RoomPreviewBar.tsx -index ee1a9a6..1d02755 100644 +index a4f8b4d..e1cc8c3 100644 --- a/node_modules/matrix-react-sdk/src/components/views/rooms/RoomPreviewBar.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/rooms/RoomPreviewBar.tsx -@@ -608,7 +608,9 @@ export default class RoomPreviewBar extends React.Component { +@@ -599,7 +599,9 @@ export default class RoomPreviewBar extends React.Component { { issueLink: (label) => ( diff --git a/node_modules/matrix-react-sdk/src/rageshake/submit-rageshake.ts b/node_modules/matrix-react-sdk/src/rageshake/submit-rageshake.ts -index 820f849..b450149 100644 +index 5cc8449..6f40b11 100644 --- a/node_modules/matrix-react-sdk/src/rageshake/submit-rageshake.ts +++ b/node_modules/matrix-react-sdk/src/rageshake/submit-rageshake.ts @@ -334,12 +334,13 @@ export async function submitFeedback( diff --git a/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.81.0.patch b/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.81.0.patch deleted file mode 100644 index 32c5936081..0000000000 --- a/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.81.0.patch +++ /dev/null @@ -1,98 +0,0 @@ -diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/CryptographyPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/CryptographyPanel.tsx -index 5a5e424..dd45888 100644 ---- a/node_modules/matrix-react-sdk/src/components/views/settings/CryptographyPanel.tsx -+++ b/node_modules/matrix-react-sdk/src/components/views/settings/CryptographyPanel.tsx -@@ -73,25 +73,36 @@ export default class CryptographyPanel extends React.Component { - } - - return ( -- -- -- -- -- -- -- -- -- -- -- --
{_t("Session ID:")} -- {deviceId} --
{_t("Session key:")} -- -- {identityKey} -- --
--
-+ {/* :TCHAP: change vocabulary and layout */} -+
-+
-+ {_t("These keys only apply to the current session.")} -+
-+
-+ {_t("Please note this is not your recovery code for your automatic backup.")} -+
-+
-+
-+ {_t("Advanced")} -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+
{_t("Session ID:")} -+ {deviceId} -+
{_t("Session key:")} -+ -+ {identityKey} -+ -+
-+
-+
{/** end :TCHAP: */} - {importExportButtons} - {noSendUnverifiedSetting} -
-diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx -index 89300be..f0a3aeb 100644 ---- a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx -+++ b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx -@@ -275,11 +275,13 @@ export default class SecurityUserSettingsTab extends React.Component -+ - --
-+ - ); -+ // end :TCHAP: - - const eventIndex = ( - -@@ -358,13 +360,14 @@ export default class SecurityUserSettingsTab extends React.Component - {warning} -+ { /* :TCHAP: move secureBackup and privacySection, and remove eventIndex */ } -+ {secureBackup} - -- {secureBackup} -- {eventIndex} - {crossSigning} - -+ {privacySection} - -- {privacySection} -+ { /* end :TCHAP: */ } - {advancedSection} - - ); diff --git a/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.82.0.patch b/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.82.0.patch new file mode 100644 index 0000000000..fecd0d3986 --- /dev/null +++ b/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.82.0.patch @@ -0,0 +1,100 @@ +diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/CryptographyPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/CryptographyPanel.tsx +index 0cb0485..6dadcf5 100644 +--- a/node_modules/matrix-react-sdk/src/components/views/settings/CryptographyPanel.tsx ++++ b/node_modules/matrix-react-sdk/src/components/views/settings/CryptographyPanel.tsx +@@ -72,6 +72,7 @@ export default class CryptographyPanel extends React.Component { + ); + } + ++ /* :TCHAP: redesign the returned component + return ( + + +@@ -96,7 +97,44 @@ export default class CryptographyPanel extends React.Component { + {noSendUnverifiedSetting} + + ); ++ */ ++ return ( ++ {/* :TCHAP: name changed in translations */} ++
++
++ {_t("These keys only apply to the current session.")} ++
++
++ {_t("Please note this is not your recovery code for your automatic backup.")} ++
++
++
++ {_t("common|advanced")} ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++
{_t("settings|security|session_id")} ++ {deviceId} ++
{_t("settings|security|session_key")} ++ ++ {identityKey} ++ ++
++
++
++ {importExportButtons} ++ {noSendUnverifiedSetting} ++
++ ); + } ++ // end :TCHAP: + + private onExportE2eKeysClicked = (): void => { + Modal.createDialogAsync( +diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx +index 74511df..5b124a1 100644 +--- a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx ++++ b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx +@@ -275,11 +275,20 @@ export default class SecurityUserSettingsTab extends React.Component ++ ++ ++ ); ++ /* + const secureBackup = ( + + + + ); ++ */ ++ // end :TCHAP: + + const eventIndex = ( + +@@ -354,13 +363,14 @@ export default class SecurityUserSettingsTab extends React.Component + {warning} ++ { /* :TCHAP: move secureBackup and privacySection, and remove eventIndex */ } ++ {secureBackup} + +- {secureBackup} +- {eventIndex} + {crossSigning} + ++ {privacySection} + +- {privacySection} ++ { /* end :TCHAP: */ } + {advancedSection} + + ); diff --git a/patches/content-scanner/matrix-react-sdk+3.81.0.patch b/patches/content-scanner/matrix-react-sdk+3.82.0.patch similarity index 97% rename from patches/content-scanner/matrix-react-sdk+3.81.0.patch rename to patches/content-scanner/matrix-react-sdk+3.82.0.patch index edd28d8f8b..8652a89632 100644 --- a/patches/content-scanner/matrix-react-sdk+3.81.0.patch +++ b/patches/content-scanner/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/messages/MAudioBody.tsx b/node_modules/matrix-react-sdk/src/components/views/messages/MAudioBody.tsx -index 4427716..12f9dc5 100644 +index 52cd233..106dd15 100644 --- a/node_modules/matrix-react-sdk/src/components/views/messages/MAudioBody.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/messages/MAudioBody.tsx @@ -23,7 +23,7 @@ import InlineSpinner from "../elements/InlineSpinner"; @@ -12,7 +12,7 @@ index 4427716..12f9dc5 100644 import { PlaybackManager } from "../../../audio/PlaybackManager"; import { isVoiceMessage } from "../../../utils/EventUtils"; diff --git a/node_modules/matrix-react-sdk/src/components/views/messages/MImageBody.tsx b/node_modules/matrix-react-sdk/src/components/views/messages/MImageBody.tsx -index ae60319..c16e2e7 100644 +index 4cb7d28..dc25c18 100644 --- a/node_modules/matrix-react-sdk/src/components/views/messages/MImageBody.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/messages/MImageBody.tsx @@ -22,7 +22,7 @@ import { CSSTransition, SwitchTransition } from "react-transition-group"; @@ -51,7 +51,7 @@ index 092b948..5908036 100644 import Tooltip from "../elements/Tooltip"; import { IMediaEventContent } from "../../../customisations/models/IMediaEventContent"; diff --git a/node_modules/matrix-react-sdk/src/components/views/messages/MVideoBody.tsx b/node_modules/matrix-react-sdk/src/components/views/messages/MVideoBody.tsx -index 2d34c90..91a1e5d 100644 +index df3ab6a..d057dc0 100644 --- a/node_modules/matrix-react-sdk/src/components/views/messages/MVideoBody.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/messages/MVideoBody.tsx @@ -25,7 +25,7 @@ import { mediaFromContent } from "../../../customisations/Media"; @@ -64,7 +64,7 @@ index 2d34c90..91a1e5d 100644 import RoomContext, { TimelineRenderingType } from "../../../contexts/RoomContext"; import MediaProcessingError from "./shared/MediaProcessingError"; diff --git a/node_modules/matrix-react-sdk/src/components/views/messages/MVoiceMessageBody.tsx b/node_modules/matrix-react-sdk/src/components/views/messages/MVoiceMessageBody.tsx -index 83f26e1..b0db4ea 100644 +index 096824e..fe73df6 100644 --- a/node_modules/matrix-react-sdk/src/components/views/messages/MVoiceMessageBody.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/messages/MVoiceMessageBody.tsx @@ -19,8 +19,8 @@ import React from "react"; diff --git a/patches/cross-signing-ui/matrix-react-sdk+3.81.0.patch b/patches/cross-signing-ui/matrix-react-sdk+3.82.0.patch similarity index 79% rename from patches/cross-signing-ui/matrix-react-sdk+3.81.0.patch rename to patches/cross-signing-ui/matrix-react-sdk+3.82.0.patch index bdfeed2295..fa983a6c70 100644 --- a/patches/cross-signing-ui/matrix-react-sdk+3.81.0.patch +++ b/patches/cross-signing-ui/matrix-react-sdk+3.82.0.patch @@ -16,32 +16,32 @@ index 53d5988..9b8ad77 100644 background-color: $background; border-radius: 4px; diff --git a/node_modules/matrix-react-sdk/src/async-components/views/dialogs/security/CreateSecretStorageDialog.tsx b/node_modules/matrix-react-sdk/src/async-components/views/dialogs/security/CreateSecretStorageDialog.tsx -index 1be7fd0..556fed8 100644 +index 026c072..12c4126 100644 --- a/node_modules/matrix-react-sdk/src/async-components/views/dialogs/security/CreateSecretStorageDialog.tsx +++ b/node_modules/matrix-react-sdk/src/async-components/views/dialogs/security/CreateSecretStorageDialog.tsx -@@ -186,13 +186,38 @@ export default class CreateSecretStorageDialog extends React.PureComponent ); } else { -@@ -746,6 +784,10 @@ export default class CreateSecretStorageDialog extends React.PureComponent @@ -91,10 +91,10 @@ index 1be7fd0..556fed8 100644 +

{_t("This is your recovery key")}

+

{_t("Warning: this is the only time this code will be displayed!")}

+ {/* end tchap */} -

- {_t( - "Store your Security Key somewhere safe, like a password manager or a safe, as it's used to safeguard your encrypted data.", -@@ -757,6 +799,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent{_t("settings|key_backup|setup_secure_backup|security_key_safety_reminder")}

+
+
+@@ -763,6 +805,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent{this.recoveryKey?.encodedPrivateKey}
@@ -102,7 +102,7 @@ index 1be7fd0..556fed8 100644 @@ -111,18 +111,17 @@ index 1be7fd0..556fed8 100644 kind="primary" className="mx_Dialog_primary mx_CreateSecretStorageDialog_recoveryKeyButtons_copyBtn" diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/CompleteSecurity.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/CompleteSecurity.tsx -index 23fcffa..d224632 100644 +index 71e47a8..a852a28 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/CompleteSecurity.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/CompleteSecurity.tsx @@ -66,7 +66,9 @@ export default class CompleteSecurity extends React.Component { return null; } else if (phase === Phase.Intro) { if (lostKeys) { -- icon = ; -+ //:tchap: hide anxious icon of warning -+ //icon = ; -+ //:tchap: end - title = _t("Unable to verify this device"); ++ /* :tchap: hide anxious icon of warning + icon = ; ++ end :tchap: */ + title = _t("encryption|verification|after_new_login|unable_to_verify"); } else { icon = ; @@ -92,9 +94,16 @@ export default class CompleteSecurity extends React.Component { @@ -141,10 +140,10 @@ index 23fcffa..d224632 100644 + onClick={tchapOnSkipClick} + // end :tchap: className="mx_CompleteSecurity_skip" - aria-label={_t("Skip verification for now")} + aria-label={_t("encryption|verification|after_new_login|skip_verification")} /> diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/SetupEncryptionBody.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/SetupEncryptionBody.tsx -index f8781cd..0304b6d 100644 +index 96422cf..9b33df9 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/SetupEncryptionBody.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/SetupEncryptionBody.tsx @@ -28,6 +28,10 @@ import { SetupEncryptionStore, Phase } from "../../../stores/SetupEncryptionStor @@ -158,34 +157,33 @@ index f8781cd..0304b6d 100644 function keyHasPassphrase(keyInfo: ISecretStorageKeyInfo): boolean { return Boolean(keyInfo.passphrase && keyInfo.passphrase.salt && keyInfo.passphrase.iterations); -@@ -160,14 +164,24 @@ export default class SetupEncryptionBody extends React.Component +@@ -159,11 +163,22 @@ export default class SetupEncryptionBody extends React.Component + if (lostKeys) { return (
-

-+ {/* :tchap: change message format by adding

- {_t( - "It looks like you don't have a Security Key or any other devices you can verify against. This device will not be able to access old encrypted messages. In order to verify your identity on this device, you'll need to reset your verification keys.", - )} -+ :tchap: end -+ */} -+ +-

{_t("encryption|verification|no_key_or_device")}

++ { /*:TCHAP: change

{_t("encryption|verification|no_key_or_device")}

*/ } ++

+ {_t( + "

The Tchap team is working on the deployment of a new feature to "+ + "prevent encryption key loss.

"+ + "

You can access it in the section :

Security and privacy > Secure Backup

", + {}, { 'p': (sub) =>

{sub}

} + )} -

++

++ {/* end :TCHAP: */}
-- {_t("Proceed with reset")} -+ {_t("Set up") /** :TCHAP: */} +- {_t("encryption|verification|reset_proceed_prompt")} ++ {/* :TCHAP: _t("encryption|verification|reset_proceed_prompt") */} ++ {_t("Set up")} ++ {/* end :TCHAP: */}
diff --git a/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts b/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts -index 873780b..2e6a705 100644 +index e55e665..b759430 100644 --- a/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts +++ b/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts @@ -50,7 +50,11 @@ const getIcon = (kind: Kind): string => { diff --git a/patches/customize-room-header-bar/matrix-react-sdk+3.81.0.patch b/patches/customize-room-header-bar/matrix-react-sdk+3.82.0.patch similarity index 85% rename from patches/customize-room-header-bar/matrix-react-sdk+3.81.0.patch rename to patches/customize-room-header-bar/matrix-react-sdk+3.82.0.patch index 00e9c640a5..75f5662e28 100644 --- a/patches/customize-room-header-bar/matrix-react-sdk+3.81.0.patch +++ b/patches/customize-room-header-bar/matrix-react-sdk+3.82.0.patch @@ -21,12 +21,12 @@ index 2614e17..79fe37e 100644 + display: -webkit-box; +} diff --git a/node_modules/matrix-react-sdk/src/components/views/rooms/RoomHeader.tsx b/node_modules/matrix-react-sdk/src/components/views/rooms/RoomHeader.tsx -index bb8dd49..13ba615 100644 +index 2635366..2cf96e8 100644 --- a/node_modules/matrix-react-sdk/src/components/views/rooms/RoomHeader.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/rooms/RoomHeader.tsx -@@ -48,6 +48,10 @@ import RoomAvatar from "../avatars/RoomAvatar"; - import { formatCount } from "../../../utils/FormattingUtils"; +@@ -49,6 +49,10 @@ import { formatCount } from "../../../utils/FormattingUtils"; import RightPanelStore from "../../../stores/right-panel/RightPanelStore"; + import { Linkify, topicToHtml } from "../../../HtmlUtils"; +import TchapUIFeature from "../../../../../../src/tchap/util/TchapUIFeature"; +import TchapExternalRoomHeader from "../../../../../../src/tchap/components/views/rooms/TchapExternalRoomHeader"; @@ -35,7 +35,7 @@ index bb8dd49..13ba615 100644 /** * A helper to transform a notification color to the what the Compound Icon Button * expects -@@ -110,7 +114,10 @@ export default function RoomHeader({ room }: { room: Room }): JSX.Element { +@@ -116,7 +120,10 @@ export default function RoomHeader({ room }: { room: Room }): JSX.Element { RightPanelStore.instance.showOrHidePanel(RightPanelPhases.RoomSummary); }} > @@ -47,17 +47,17 @@ index bb8dd49..13ba615 100644 {roomName} - {!isDirectMessage && roomState.getJoinRule() === JoinRule.Public && ( + {/* :tchap: remove public forum icon */} + {false && !isDirectMessage && roomState.getJoinRule() === JoinRule.Public && ( - + )} @@ -67,17 +67,17 @@ index bb8dd49..13ba615 100644 )} - {isDirectMessage && e2eStatus === E2EStatus.Warning && ( + {/* :tchap: do not show E2EStatus.Warning */} + {false && isDirectMessage && e2eStatus === E2EStatus.Warning && ( - + @@ -89,23 +89,22 @@ index bb8dd49..13ba615 100644 )} + { + //:tchap: activate video call only if directmessage and if feature is activated on homeserver + isDirectMessage && TchapUIFeature.isFeatureActiveForHomeserver("feature_video_call") && ( -+ //:tchap: end - -+ )} ++ ) /* end :TCHAP: */} ( - title: _t("Search failed"), - description: - error?.message ?? -- _t("Server may be unavailable, overloaded, or search timed out :("), -+ Tchapi18nUtils.getServerDownMessage(), +@@ -136,7 +137,8 @@ export const RoomSearchView = forwardRef( + logger.error("Search failed", error); + Modal.createDialog(ErrorDialog, { + title: _t("error_dialog|search_failed|title"), +- description: error?.message ?? _t("error_dialog|search_failed|server_unavailable"), ++ // :TCHAP: description: error?.message ?? _t("error_dialog|search_failed|server_unavailable"), ++ description: error?.message ?? Tchapi18nUtils.getServerDownMessage(), }); return false; }, diff --git a/node_modules/matrix-react-sdk/src/components/structures/RoomStatusBar.tsx b/node_modules/matrix-react-sdk/src/components/structures/RoomStatusBar.tsx -index 58c8225..ff4fd22 100644 +index 657823f..46a424b 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/RoomStatusBar.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/RoomStatusBar.tsx @@ -29,6 +29,7 @@ import InlineSpinner from "../views/elements/InlineSpinner"; @@ -31,12 +32,14 @@ index 58c8225..ff4fd22 100644 const STATUS_BAR_HIDDEN = 0; const STATUS_BAR_EXPANDED = 1; -@@ -276,7 +277,7 @@ export default class RoomStatusBar extends React.PureComponent { +@@ -270,7 +271,9 @@ export default class RoomStatusBar extends React.PureComponent {
-- {_t("Connectivity to the server has been lost.")} +- {_t("room|status_bar|server_connectivity_lost_title")} ++ {/* :TCHAP: _t("room|status_bar|server_connectivity_lost_title") */} + {Tchapi18nUtils.getServerDownMessage()} ++ {/* end :TCHAP: */}
- {_t("Sent messages will be stored until your connection has returned.")} + {_t("room|status_bar|server_connectivity_lost_description")} diff --git a/patches/export-room-members/matrix-react-sdk+3.81.0.patch b/patches/export-room-members/matrix-react-sdk+3.82.0.patch similarity index 97% rename from patches/export-room-members/matrix-react-sdk+3.81.0.patch rename to patches/export-room-members/matrix-react-sdk+3.82.0.patch index 7462451760..d40da3dbb5 100644 --- a/patches/export-room-members/matrix-react-sdk+3.81.0.patch +++ b/patches/export-room-members/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/rooms/MemberList.tsx b/node_modules/matrix-react-sdk/src/components/views/rooms/MemberList.tsx -index 216a540..3b0551f 100644 +index cb349b4..121c42b 100644 --- a/node_modules/matrix-react-sdk/src/components/views/rooms/MemberList.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/rooms/MemberList.tsx @@ -53,6 +53,7 @@ import { UIComponent } from "../../../settings/UIFeature"; diff --git a/patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.81.0.patch b/patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.82.0.patch similarity index 97% rename from patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.81.0.patch rename to patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.82.0.patch index 05c5839838..ead932dbfa 100644 --- a/patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.81.0.patch +++ b/patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/utils/MultiInviter.ts b/node_modules/matrix-react-sdk/src/utils/MultiInviter.ts -index 05e2b06..cbd64d0 100644 +index 1cf8ac6..903d385 100644 --- a/node_modules/matrix-react-sdk/src/utils/MultiInviter.ts +++ b/node_modules/matrix-react-sdk/src/utils/MultiInviter.ts @@ -244,6 +244,14 @@ export default class MultiInviter { diff --git a/patches/forgot-password/matrix-react-sdk+3.81.0.patch b/patches/forgot-password/matrix-react-sdk+3.82.0.patch similarity index 85% rename from patches/forgot-password/matrix-react-sdk+3.81.0.patch rename to patches/forgot-password/matrix-react-sdk+3.82.0.patch index 4e32234797..c98f610fe6 100644 --- a/patches/forgot-password/matrix-react-sdk+3.81.0.patch +++ b/patches/forgot-password/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/ForgotPassword.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/ForgotPassword.tsx -index 86d9656..5dea419 100644 +index 9487fc5..0177f0a 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/ForgotPassword.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/ForgotPassword.tsx @@ -42,6 +42,8 @@ import { VerifyEmailModal } from "./forgot-password/VerifyEmailModal"; @@ -82,7 +82,7 @@ index 86d9656..5dea419 100644 if (await this.sendVerificationMail()) { this.phase = Phase.EmailSent; return; -@@ -303,8 +338,10 @@ export default class ForgotPassword extends React.Component { +@@ -300,8 +335,10 @@ export default class ForgotPassword extends React.Component { errorText: "", }); @@ -93,7 +93,7 @@ index 86d9656..5dea419 100644 // Server error if (!this.state.serverIsAlive) return; -@@ -338,7 +375,7 @@ export default class ForgotPassword extends React.Component { +@@ -335,7 +372,7 @@ export default class ForgotPassword extends React.Component { { - onChange={() => this.setState({ logoutDevices: !this.state.logoutDevices })} - checked={this.state.logoutDevices} - > -- {_t("Sign out of all devices")} -+ { /* :TCHAP: _t("Sign out of all devices") */ -+ _t('Lock my messages and disconnect me from all my devices (in case your account is hacked or a device loss)') -+ /*end :TCHAP: */ } - -
- {this.state.errorText && } diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/forgot-password/EnterEmail.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/forgot-password/EnterEmail.tsx -index 7756571..81bc742 100644 +index fbb08c7..f1a53f2 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/forgot-password/EnterEmail.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/forgot-password/EnterEmail.tsx @@ -64,9 +64,11 @@ export const EnterEmail: React.FC = ({ diff --git a/patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.81.0.patch b/patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.82.0.patch similarity index 95% rename from patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.81.0.patch rename to patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.82.0.patch index ad40386a81..34f6718f01 100644 --- a/patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.81.0.patch +++ b/patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/GeneralUserSettingsTab.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/GeneralUserSettingsTab.tsx -index 7d48460..190caa6 100644 +index 40acfb3..76515f4 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/GeneralUserSettingsTab.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/GeneralUserSettingsTab.tsx @@ -59,6 +59,7 @@ import InlineSpinner from "../../../elements/InlineSpinner"; @@ -21,7 +21,7 @@ index 7d48460..190caa6 100644 const emails = this.state.loading3pids ? ( ) : ( -@@ -531,7 +534,8 @@ export default class GeneralUserSettingsTab extends React.Component + {/* :TCHAP: no aliases for rooms - + + end :TCHAP: */} - + {urlPreviewSettings} diff --git a/patches/login/matrix-react-sdk+3.81.0.patch b/patches/login/matrix-react-sdk+3.82.0.patch similarity index 91% rename from patches/login/matrix-react-sdk+3.81.0.patch rename to patches/login/matrix-react-sdk+3.82.0.patch index 38548d66b6..24e9d688ce 100644 --- a/patches/login/matrix-react-sdk+3.81.0.patch +++ b/patches/login/matrix-react-sdk+3.82.0.patch @@ -80,7 +80,7 @@ index 633febe..bb279b2 100644 {footer} diff --git a/node_modules/matrix-react-sdk/src/components/views/auth/PasswordLogin.tsx b/node_modules/matrix-react-sdk/src/components/views/auth/PasswordLogin.tsx -index 33c62a8..f9ed36c 100644 +index 6acc237..ef2cdb9 100644 --- a/node_modules/matrix-react-sdk/src/components/views/auth/PasswordLogin.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/auth/PasswordLogin.tsx @@ -50,6 +50,7 @@ interface IProps { @@ -156,7 +156,7 @@ index 33c62a8..f9ed36c 100644 {forgotPasswordJsx} {!this.props.busy && ( diff --git a/node_modules/matrix-react-sdk/src/utils/ErrorUtils.tsx b/node_modules/matrix-react-sdk/src/utils/ErrorUtils.tsx -index 91fe19b..a7d8963 100644 +index 526be31..57087d3 100644 --- a/node_modules/matrix-react-sdk/src/utils/ErrorUtils.tsx +++ b/node_modules/matrix-react-sdk/src/utils/ErrorUtils.tsx @@ -22,6 +22,8 @@ import SdkConfig from "../SdkConfig"; @@ -166,11 +166,11 @@ index 91fe19b..a7d8963 100644 +import Tchapi18nUtils from '../../../../src/tchap/i18n/Tchapi18nUtils'; // :TCHAP: + export const resourceLimitStrings = { - "monthly_active_user": _td("This homeserver has hit its Monthly Active User limit."), - "hs_blocked": _td("This homeserver has been blocked by its administrator."), + "monthly_active_user": _td("error|mau"), + "hs_blocked": _td("error|hs_blocked"), @@ -135,6 +137,10 @@ export function messageForLoginError( } else { - return _t("Incorrect username and/or password."); + return _t("auth|incorrect_credentials"); } + // :TCHAP: display proper message for TOO_MANY_REQUESTS, + } else if (err.httpStatus === 429) { @@ -183,12 +183,11 @@ index 91fe19b..a7d8963 100644 err: Error, serverConfig: Pick, ): ReactNode { -- let errorText = _t("There was a problem communicating with the homeserver, please try again later."); + /* :TCHAP: change default error text -+ * let errorText = _t("There was a problem communicating with the homeserver, please try again later."); + let errorText = _t("error|connection"); + */ + let errorText: ReactNode = Tchapi18nUtils.getServerDownMessage(""); -+ /* end of :TCHAP:*/ ++ /* end :TCHAP:*/ if (err instanceof ConnectionError) { if ( @@ -198,7 +197,7 @@ index 91fe19b..a7d8963 100644 + {/* :TCHAP: customize error message {_t( - "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or
enable unsafe scripts.", + "error|mixed_content", {}, @@ -169,13 +180,16 @@ export function messageForConnectionError( ); @@ -216,7 +215,7 @@ index 91fe19b..a7d8963 100644 + {/* :TCHAP: customize error message {_t( - "Can't connect to homeserver - please check your connectivity, ensure your homeserver's SSL certificate is trusted, and that a browser extension is not blocking requests.", + "error|tls", {}, @@ -186,7 +200,9 @@ export function messageForConnectionError( diff --git a/patches/no-voip-mentions-in-onboarding/matrix-react-sdk+3.81.0.patch b/patches/no-voip-mentions-in-onboarding/matrix-react-sdk+3.82.0.patch similarity index 100% rename from patches/no-voip-mentions-in-onboarding/matrix-react-sdk+3.81.0.patch rename to patches/no-voip-mentions-in-onboarding/matrix-react-sdk+3.82.0.patch diff --git a/patches/only-fr-and-en/matrix-react-sdk+3.81.0.patch b/patches/only-fr-and-en/matrix-react-sdk+3.82.0.patch similarity index 89% rename from patches/only-fr-and-en/matrix-react-sdk+3.81.0.patch rename to patches/only-fr-and-en/matrix-react-sdk+3.82.0.patch index 77742c5503..4586aeff9e 100644 --- a/patches/only-fr-and-en/matrix-react-sdk+3.81.0.patch +++ b/patches/only-fr-and-en/matrix-react-sdk+3.82.0.patch @@ -1,8 +1,8 @@ diff --git a/node_modules/matrix-react-sdk/src/languageHandler.tsx b/node_modules/matrix-react-sdk/src/languageHandler.tsx -index 8f77cc4..c5b771f 100644 +index 0a80be8..e0ae780 100644 --- a/node_modules/matrix-react-sdk/src/languageHandler.tsx +++ b/node_modules/matrix-react-sdk/src/languageHandler.tsx -@@ -509,7 +509,9 @@ type Language = { +@@ -520,7 +520,9 @@ type Language = { }; export async function getAllLanguagesFromJson(): Promise { diff --git a/patches/password-policy/matrix-react-sdk+3.81.0.patch b/patches/password-policy/matrix-react-sdk+3.82.0.patch similarity index 97% rename from patches/password-policy/matrix-react-sdk+3.81.0.patch rename to patches/password-policy/matrix-react-sdk+3.82.0.patch index 331c8131ac..aaa085483b 100644 --- a/patches/password-policy/matrix-react-sdk+3.81.0.patch +++ b/patches/password-policy/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/auth/PassphraseField.tsx b/node_modules/matrix-react-sdk/src/components/views/auth/PassphraseField.tsx -index 4efd06e..e0ad3cf 100644 +index a9048d7..8723016 100644 --- a/node_modules/matrix-react-sdk/src/components/views/auth/PassphraseField.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/auth/PassphraseField.tsx @@ -23,6 +23,7 @@ import withValidation, { IFieldState, IValidationResult } from "../elements/Vali diff --git a/patches/public-room-server-list/matrix-react-sdk+3.81.0.patch b/patches/public-room-server-list/matrix-react-sdk+3.82.0.patch similarity index 100% rename from patches/public-room-server-list/matrix-react-sdk+3.81.0.patch rename to patches/public-room-server-list/matrix-react-sdk+3.82.0.patch diff --git a/patches/registration-for-mainlining/matrix-react-sdk+3.81.0.patch b/patches/registration-for-mainlining/matrix-react-sdk+3.82.0.patch similarity index 91% rename from patches/registration-for-mainlining/matrix-react-sdk+3.81.0.patch rename to patches/registration-for-mainlining/matrix-react-sdk+3.82.0.patch index e587b1ab9c..466cf8159e 100644 --- a/patches/registration-for-mainlining/matrix-react-sdk+3.81.0.patch +++ b/patches/registration-for-mainlining/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/Registration.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/Registration.tsx -index 7a19848..d7ddd55 100644 +index f4e8ff1..9ee93e1 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/Registration.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/Registration.tsx @@ -50,8 +50,11 @@ import InteractiveAuth, { InteractiveAuthCallback } from "../InteractiveAuth"; @@ -68,7 +68,7 @@ index 7a19848..d7ddd55 100644 + { /* :TCHAP: remove the serverpicker, using AuthHeaderModifier. Inspired by InteractiveAuthEntryComponents. */} + + { /* end :TCHAP: */} @@ -76,15 +76,15 @@ index 7a19848..d7ddd55 100644
diff --git a/node_modules/matrix-react-sdk/src/components/views/auth/RegistrationForm.tsx b/node_modules/matrix-react-sdk/src/components/views/auth/RegistrationForm.tsx -index e12ac19..a5222bf 100644 +index 41a2aed..0e19925 100644 --- a/node_modules/matrix-react-sdk/src/components/views/auth/RegistrationForm.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/auth/RegistrationForm.tsx @@ -267,7 +267,7 @@ export default class RegistrationForm extends React.PureComponent _t("Use an email address to recover your account"), -+ // :TCHAP: this is confusing because email=username in the Tchap case. // description: () => _t("Use an email address to recover your account"), +- description: () => _t("auth|reset_password_email_field_description"), ++ // :TCHAP: this is confusing because email=username in the Tchap case. //description: () => _t("auth|reset_password_email_field_description"), hideDescriptionIfValid: true, rules: [ { @@ -92,15 +92,15 @@ index e12ac19..a5222bf 100644 test(this: RegistrationForm, { value, allowEmpty }) { return allowEmpty || !this.authStepIsRequired("m.login.email.identity") || !!value; }, -- invalid: () => _t("Enter email address (required on this homeserver)"), +- invalid: () => _t("auth|reset_password_email_field_required_invalid"), + // :TCHAP: don't mention homeserver, Tchap hides the concept from users. -+ //invalid: () => _t("Enter email address (required on this homeserver)"), -+ invalid: () => _t("Enter email address"), ++ //invalid: () => _t("auth|reset_password_email_field_required_invalid"), ++ invalid: () => _t("auth|email_field_label_required"), + // end :TCHAP: }, { key: "email", -@@ -566,16 +569,23 @@ export default class RegistrationForm extends React.PureComponent
diff --git a/patches/remove-fdroid/matrix-react-sdk+3.81.0.patch b/patches/remove-fdroid/matrix-react-sdk+3.82.0.patch similarity index 100% rename from patches/remove-fdroid/matrix-react-sdk+3.81.0.patch rename to patches/remove-fdroid/matrix-react-sdk+3.82.0.patch diff --git a/patches/remove-thread-buttons/matrix-react-sdk+3.81.0.patch b/patches/remove-thread-buttons/matrix-react-sdk+3.82.0.patch similarity index 96% rename from patches/remove-thread-buttons/matrix-react-sdk+3.81.0.patch rename to patches/remove-thread-buttons/matrix-react-sdk+3.82.0.patch index e200cbdda1..90fe6dda7b 100644 --- a/patches/remove-thread-buttons/matrix-react-sdk+3.81.0.patch +++ b/patches/remove-thread-buttons/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/context_menus/MessageContextMenu.tsx b/node_modules/matrix-react-sdk/src/components/views/context_menus/MessageContextMenu.tsx -index f92f66c..9f54a3b 100644 +index 98e9482..11d563a 100644 --- a/node_modules/matrix-react-sdk/src/components/views/context_menus/MessageContextMenu.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/context_menus/MessageContextMenu.tsx @@ -61,6 +61,8 @@ import { getForwardableEvent } from "../../../events/forward/getForwardableEvent @@ -24,7 +24,7 @@ index f92f66c..9f54a3b 100644 ); diff --git a/node_modules/matrix-react-sdk/src/components/views/messages/MessageActionBar.tsx b/node_modules/matrix-react-sdk/src/components/views/messages/MessageActionBar.tsx -index 2f9719d..233854f 100644 +index c183cdc..6d3738c 100644 --- a/node_modules/matrix-react-sdk/src/components/views/messages/MessageActionBar.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/messages/MessageActionBar.tsx @@ -61,6 +61,7 @@ import { ShowThreadPayload } from "../../../dispatcher/payloads/ShowThreadPayloa @@ -35,7 +35,7 @@ index 2f9719d..233854f 100644 interface IOptionsButtonProps { mxEvent: MatrixEvent; -@@ -349,7 +350,10 @@ export default class MessageActionBar extends React.PureComponent { +@@ -273,20 +274,24 @@ export default class LegacyRoomHeaderButtons extends HeaderButtons { onClick={this.onTimelineCardClicked} />, ); diff --git a/patches/show-icon-on-public-room/matrix-react-sdk+3.81.0.patch b/patches/show-icon-on-public-room/matrix-react-sdk+3.82.0.patch similarity index 97% rename from patches/show-icon-on-public-room/matrix-react-sdk+3.81.0.patch rename to patches/show-icon-on-public-room/matrix-react-sdk+3.82.0.patch index a16b9241b5..1199c298ec 100644 --- a/patches/show-icon-on-public-room/matrix-react-sdk+3.81.0.patch +++ b/patches/show-icon-on-public-room/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/avatars/DecoratedRoomAvatar.tsx b/node_modules/matrix-react-sdk/src/components/views/avatars/DecoratedRoomAvatar.tsx -index 23b065d..a3208fa 100644 +index 39997e1..5b88a91 100644 --- a/node_modules/matrix-react-sdk/src/components/views/avatars/DecoratedRoomAvatar.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/avatars/DecoratedRoomAvatar.tsx @@ -30,6 +30,9 @@ import TextWithTooltip from "../elements/TextWithTooltip"; @@ -27,7 +27,7 @@ index 23b065d..a3208fa 100644 @@ -62,6 +70,14 @@ function tooltipText(variant: Icon): string | undefined { switch (variant) { case Icon.Globe: - return _t("This room is public"); + return _t("room|header|room_is_public"); + // :TCHAP: add icons for custom room types + case Icon.Forum: + return _t("This room is a public forum"); @@ -65,7 +65,7 @@ index 23b065d..a3208fa 100644 this.props.room.on(RoomEvent.Timeline, this.onRoomTimeline); this.isWatchingTimeline = true; diff --git a/node_modules/matrix-react-sdk/src/components/views/right_panel/RoomSummaryCard.tsx b/node_modules/matrix-react-sdk/src/components/views/right_panel/RoomSummaryCard.tsx -index 982f04b..1be1e65 100644 +index 18cb705..d3272a8 100644 --- a/node_modules/matrix-react-sdk/src/components/views/right_panel/RoomSummaryCard.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/right_panel/RoomSummaryCard.tsx @@ -22,7 +22,7 @@ import MatrixClientContext from "../../../contexts/MatrixClientContext"; @@ -87,7 +87,7 @@ index 982f04b..1be1e65 100644 + + {/** remove the extra badge = ({ room, permalinkCreator, onClose, on mx_RoomSummaryCard_e2ee_verified: isRoomEncrypted && e2eStatus === E2EStatus.Verified, diff --git a/patches/simplify-exchange-key-message/matrix-react-sdk+3.81.0.patch b/patches/simplify-exchange-key-message/matrix-react-sdk+3.82.0.patch similarity index 87% rename from patches/simplify-exchange-key-message/matrix-react-sdk+3.81.0.patch rename to patches/simplify-exchange-key-message/matrix-react-sdk+3.82.0.patch index 8f9041d224..ca5b1b6afa 100644 --- a/patches/simplify-exchange-key-message/matrix-react-sdk+3.81.0.patch +++ b/patches/simplify-exchange-key-message/matrix-react-sdk+3.82.0.patch @@ -61,28 +61,28 @@ index e98ce97..b6527a2 100644 if (!member) return null; diff --git a/node_modules/matrix-react-sdk/src/components/views/right_panel/VerificationPanel.tsx b/node_modules/matrix-react-sdk/src/components/views/right_panel/VerificationPanel.tsx -index 5f1344f..5f6b74c 100644 +index c087219..e626a42 100644 --- a/node_modules/matrix-react-sdk/src/components/views/right_panel/VerificationPanel.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/right_panel/VerificationPanel.tsx @@ -295,10 +295,13 @@ export default class VerificationPanel extends React.PureComponent { +@@ -27,9 +27,14 @@ export default class VerificationComplete extends React.Component { public render(): React.ReactNode { return (
@@ -92,13 +92,8 @@ index 7282f52..cb717c7 100644 + {/*

{_t("encryption|verification|complete_title")}

{_t("encryption|verification|complete_description")}

-

-@@ -34,6 +38,8 @@ export default class VerificationComplete extends React.Component { - "Secure messages with this user are end-to-end encrypted and not able to be read by third parties.", - )} -

+

{_t("encryption|verification|explainer")}

+ end :TCHAP: */} -+ {_t( diff --git a/node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx b/node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx -index 0d1274f..2e9cf2c 100644 +index 374cb38..c13565c 100644 --- a/node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx -@@ -388,7 +388,7 @@ const TAG_AESTHETICS: TagAestheticsMap = { +@@ -382,7 +382,7 @@ const TAG_AESTHETICS: TagAestheticsMap = { defaultHidden: false, }, [DefaultTagID.DM]: { @@ -25,7 +25,7 @@ index 0d1274f..2e9cf2c 100644 defaultHidden: false, AuxButtonComponent: DmAuxButton, diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SidebarUserSettingsTab.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SidebarUserSettingsTab.tsx -index b5ad1ea..1b61154 100644 +index 4d6cf9a..9c81549 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SidebarUserSettingsTab.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SidebarUserSettingsTab.tsx @@ -120,7 +120,7 @@ const SidebarUserSettingsTab: React.FC = () => { @@ -35,10 +35,10 @@ index b5ad1ea..1b61154 100644 - {_t("common|people")} + {_t("Direct Messages") /* TCHAP: change label _t("common|people") */} - {_t("Group all your people in one place.")} - + + {_t("settings|sidebar|metaspaces_people_description")} diff --git a/node_modules/matrix-react-sdk/src/components/views/spaces/QuickSettingsButton.tsx b/node_modules/matrix-react-sdk/src/components/views/spaces/QuickSettingsButton.tsx -index e2c4159..d77f8a0 100644 +index 4750b99..884a146 100644 --- a/node_modules/matrix-react-sdk/src/components/views/spaces/QuickSettingsButton.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/spaces/QuickSettingsButton.tsx @@ -107,7 +107,9 @@ const QuickSettingsButton: React.FC<{ @@ -53,7 +53,7 @@ index e2c4159..d77f8a0 100644 >>>>>>> develop_tchap:patches/user-menu/matrix-react-sdk+3.81.0.patch --- a/node_modules/matrix-react-sdk/src/components/structures/UserMenu.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/UserMenu.tsx @@ -246,6 +246,28 @@ export default class UserMenu extends React.Component { diff --git a/patches/ux-improvements-for-xsss/matrix-react-sdk+3.81.0.patch b/patches/ux-improvements-for-xsss/matrix-react-sdk+3.82.0.patch similarity index 99% rename from patches/ux-improvements-for-xsss/matrix-react-sdk+3.81.0.patch rename to patches/ux-improvements-for-xsss/matrix-react-sdk+3.82.0.patch index 80bd32901a..b28de9ca6b 100644 --- a/patches/ux-improvements-for-xsss/matrix-react-sdk+3.81.0.patch +++ b/patches/ux-improvements-for-xsss/matrix-react-sdk+3.82.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx b/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx -index 0bead58..b872ec2 100644 +index f947a0d..80357b7 100644 --- a/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx @@ -48,6 +48,7 @@ interface IProps { diff --git a/scripts/tchap/translations/collect-reference-translations.sh b/scripts/tchap/translations/collect-reference-translations.sh index 7346aa4330..be1dfe5b3c 100755 --- a/scripts/tchap/translations/collect-reference-translations.sh +++ b/scripts/tchap/translations/collect-reference-translations.sh @@ -8,10 +8,14 @@ source scripts/tchap/translations/helpers.sh mkdir -p `realpath modules/tchap-translations/tmp` export OUTPUT_FILE=$1 -# Extract EN translations from tchap translations. +# Convert tchap translations from piped format ("aa|bb|cc") to nested format. TCHAP_TRANSLATION_FILE=`realpath modules/tchap-translations/tchap_translations.json` +TCHAP_TRANSLATION_NESTED_FILE=`realpath modules/tchap-translations/tmp/tchap_translations_nested.json` + node scripts/tchap/translations/reformatToNested.js --file=$TCHAP_TRANSLATION_FILE > $TCHAP_TRANSLATION_NESTED_FILE + +# Extract EN translations from tchap translations. TCHAP_TRANSLATION_EN_FILE=`realpath modules/tchap-translations/tmp/tchap_EN.json` -node scripts/tchap/translations/extractENTranslations.js --file=$TCHAP_TRANSLATION_FILE > $TCHAP_TRANSLATION_EN_FILE +node scripts/tchap/translations/extractENTranslations.js --file=$TCHAP_TRANSLATION_NESTED_FILE > $TCHAP_TRANSLATION_EN_FILE # Merge element translations from both web and react-sdk repos, into OUTPUT_FILE export ELEMENT_WEB_TRANSLATION_FILE=`realpath src/i18n/strings/en_EN.json` diff --git a/scripts/tchap/translations/reformatToNested.js b/scripts/tchap/translations/reformatToNested.js new file mode 100644 index 0000000000..fc58267bc3 --- /dev/null +++ b/scripts/tchap/translations/reformatToNested.js @@ -0,0 +1,49 @@ +/* + Change format from piped format ("aa|bb|cc") to nested format. Output result to stdout. + Usage : node scripts/tchap/translations/reformatToNested.js --file=$TCHAP_TRANSLATION_FILE > $OUTFILE + + aa|bb|cc format (piped format): + { + "security|backup_keys": { + "en": "Hello", + "fr": "Coucou" + } + } + + Nested format : + { + "security": { + "backup_keys": { + "en": "Hello", + "fr": "Coucou" + } + } + } +*/ + +const parseArgs = require("minimist"); + +const argv = parseArgs(process.argv.slice(2), {}); +const tchapTranslations = require(argv.file); + +const reformat = (translations) => { + for (const [key, value] of Object.entries(translations)) { + // Split "aa|bb|cc" into "aa" and "bb|cc" + let [parentKey, ...restOfKey] = key.split('|'); + restOfKey = restOfKey.join('|'); + if (restOfKey === '') { // no "|" in key + // do nothing, it's already in the right format. + } else { + // initialize translations[parentKey] if not exist + if (!(parentKey in translations)) { + translations[parentKey] = {}; + } + translations[parentKey][restOfKey] = value; + delete translations[key]; + reformat(translations[parentKey]); + } + } +} + +reformat(tchapTranslations); +console.log(JSON.stringify(tchapTranslations, null, 4)); diff --git a/scripts/tchap/translations/reformatToPiped.js b/scripts/tchap/translations/reformatToPiped.js new file mode 100644 index 0000000000..1a042da23a --- /dev/null +++ b/scripts/tchap/translations/reformatToPiped.js @@ -0,0 +1,41 @@ +/* + Change format from nested format to piped format ("aa|bb|cc"). Output result to stdout. + Usage : node scripts/tchap/translations/reformatToPiped.js --file=$TCHAP_TRANSLATION_FILE > $OUTFILE + + Nested format : + { + "security": { + "backup_keys": { + "en": "Hello", + "fr": "Coucou" + } + } + } + + aa|bb|cc format (piped format): + { + "security|backup_keys": { + "en": "Hello", + "fr": "Coucou" + } + } + */ + +const parseArgs = require("minimist"); + +const argv = parseArgs(process.argv.slice(2), {}); +const tchapTranslations = require(argv.file); + +const output = {}; +const reformat = (translations, parentKey) => { + for (const key of Object.keys(translations)) { + if ('en' in translations[key]) { + output[parentKey + key] = translations[key]; + } else { + reformat(translations[key], parentKey + key + '|'); + } + } +} + +reformat(tchapTranslations, ""); +console.log(JSON.stringify(output, null, 4)); \ No newline at end of file diff --git a/src/languageHandler.tsx b/src/languageHandler.tsx index eb53caa12c..511a9b21e3 100644 --- a/src/languageHandler.tsx +++ b/src/languageHandler.tsx @@ -39,7 +39,7 @@ import type EN from "./i18n/strings/en_EN.json"; * which we know will be injected by webpack. */ -export type TranslationKey = Leaves; +export type TranslationKey = Leaves; export class UserFriendlyError extends ReactUserFriendlyError { public constructor(message: TranslationKey, substitutionVariablesAndCause?: IVariables & ErrorOptions) { diff --git a/src/tchap/async-components/views/dialogs/security/TchapExportE2eKeysDialog.tsx b/src/tchap/async-components/views/dialogs/security/TchapExportE2eKeysDialog.tsx index b130a0fb25..47aafcf984 100644 --- a/src/tchap/async-components/views/dialogs/security/TchapExportE2eKeysDialog.tsx +++ b/src/tchap/async-components/views/dialogs/security/TchapExportE2eKeysDialog.tsx @@ -104,7 +104,7 @@ export default class TchapExportE2eKeysDialog extends React.Component[] = [{ value: JoinRule.Invite, label: _t("Private (invite only)"), - description: _t("Only invited people can join."), + description: _t("room_settings|security|join_rule_invite_description"), checked: joinRule === JoinRule.Invite || (joinRule === JoinRule.Restricted && !restrictedAllowRoomIds?.length), }, { value: JoinRule.Public, @@ -121,7 +121,7 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh // :TCHAP: do we need to add the following condition as well (joinRule === JoinRule.Restricted && !restrictedAllowRoomIds?.length)? if (joinRule === JoinRule.Invite) { - let privateRoomDescription =
{_t("Only invited people can join.")}
; + let privateRoomDescription =
{_t("room_settings|security|join_rule_invite_description")}
; // :TCHAP: We could add functions in 'TchapUtils' to determine the type of room and rely on this logic to display components as we did in Android : // :TCHAP: https://github.com/tchapgouv/tchap-android/blob/develop/vector/src/main/java/fr/gouv/tchap/core/utils/RoomUtils.kt#L31 if (accessRule) { @@ -142,7 +142,7 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh }; privateRoomDescription = (
-
{_t("Only invited people can join.")}
+
{_t("room_settings|security|join_rule_invite_description")}
- {_t("Anyone can find and join.")} + {_t("room_settings|security|join_rule_public_description")} {aliasWarning} ), @@ -183,7 +183,7 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh let upgradeRequiredPill; if (preferredRestrictionVersion) { upgradeRequiredPill = ( - {_t("Upgrade required")} + {_t("room_settings|security|join_rule_upgrade_required")} ); } @@ -198,11 +198,11 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh let moreText; if (shownSpaces.length < restrictedAllowRoomIds.length) { if (shownSpaces.length > 0) { - moreText = _t("& %(count)s more", { + moreText = _t("room_settings|security|join_rule_restricted_n_more", { count: restrictedAllowRoomIds.length - shownSpaces.length, }); } else { - moreText = _t("Currently, %(count)s spaces have access", { + moreText = _t("room_settings|security|join_rule_restricted_summary", { count: restrictedAllowRoomIds.length, }); } @@ -241,7 +241,7 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh
{_t( - "Anyone in a space can find and join. Edit which spaces can access here.", + "room_settings|security|join_rule_restricted_description", {}, { a: (sub) => ( @@ -258,7 +258,7 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh
-

{_t("Spaces with access")}

+

{_t("room_settings|security|join_rule_restricted_description_spaces")}

{shownSpaces.map((room) => { return ( @@ -273,21 +273,21 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh ); } else if (SpaceStore.instance.activeSpaceRoom) { description = _t( - "Anyone in can find and join. You can select other spaces too.", + "room_settings|security|join_rule_restricted_description_active_space", {}, { spaceName: () => {SpaceStore.instance.activeSpaceRoom.name}, }, ); } else { - description = _t("Anyone in a space can find and join. You can select multiple spaces."); + description = _t("room_settings|security|join_rule_restricted_description_prompt"); } definitions.splice(1, 0, { value: JoinRule.Restricted, label: ( <> - {_t("Space members")} + {_t("room_settings|security|join_rule_restricted")} {/* :tchap: do not show the pill upgrade room as it is not user friendly https://github.com/tchapgouv/tchap-web-v4/issues/578 @@ -323,11 +323,7 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh if (unableToUpdateSomeParents) { warning = ( - {_t( - "This room is in some spaces you're not an admin of. " + - "In those spaces, the old room will still be shown, " + - "but people will be prompted to join the new one.", - )} + {_t("room_settings|security|join_rule_restricted_upgrade_warning")} ); } @@ -337,10 +333,7 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh targetVersion, description: ( <> - {_t( - "This upgrade will allow members of selected spaces " + - "access to this room without an invite.", - )} + {_t("room_settings|security|join_rule_restricted_upgrade_description")} {warning} ), @@ -358,12 +351,12 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh (progress) => { const total = 2 + progress.updateSpacesTotal + progress.inviteUsersTotal; if (!progress.roomUpgraded) { - fn(_t("Upgrading room"), 0, total); + fn(_t("room_settings|security|join_rule_upgrade_upgrading_room"), 0, total); } else if (!progress.roomSynced) { - fn(_t("Loading new room"), 1, total); + fn(_t("room_settings|security|join_rule_upgrade_awaiting_room"), 1, total); } else if (progress.inviteUsersProgress < progress.inviteUsersTotal) { fn( - _t("Sending invites... (%(progress)s out of %(count)s)", { + _t("room_settings|security|join_rule_upgrade_sending_invites", { progress: progress.inviteUsersProgress, count: progress.inviteUsersTotal, }), @@ -372,7 +365,7 @@ const JoinRuleSettings = ({ room, promptUpgrade, aliasWarning, onError, beforeCh ); } else if (progress.updateSpacesProgress < progress.updateSpacesTotal) { fn( - _t("Updating spaces... (%(progress)s out of %(count)s)", { + _t("room_settings|security|join_rule_upgrade_sending_invites", { progress: progress.updateSpacesProgress, count: progress.updateSpacesTotal, }), diff --git a/src/tchap/components/views/settings/tabs/user/TchapHelpUserSettingsTab.tsx b/src/tchap/components/views/settings/tabs/user/TchapHelpUserSettingsTab.tsx index cc254cd342..ea5ed376fe 100644 --- a/src/tchap/components/views/settings/tabs/user/TchapHelpUserSettingsTab.tsx +++ b/src/tchap/components/views/settings/tabs/user/TchapHelpUserSettingsTab.tsx @@ -410,7 +410,7 @@ export default class HelpUserSettingsTab extends React.Component {this.renderLegal()} {this.renderCredits()}
- {_t("Advanced")} + {_t("common|advanced")}
{_t( diff --git a/test/setup/setupLanguage.ts b/test/setup/setupLanguage.ts index 8eead1cd3e..2dc4f0b048 100644 --- a/test/setup/setupLanguage.ts +++ b/test/setup/setupLanguage.ts @@ -25,6 +25,6 @@ fetchMock.config.overwriteRoutes = false; export function setupLanguageMock() { reactSetupLanguageMock(); - fetchMock.get("end:en_EN.json", _.merge(en, reactEn), { overwriteRoutes: true }); + fetchMock.get("end:en_EN.json", _.merge({}, en, reactEn), { overwriteRoutes: true }); } setupLanguageMock(); diff --git a/test/unit-tests/async-components/structures/ErrorView-test.tsx b/test/unit-tests/async-components/structures/ErrorView-test.tsx index 86898b0398..773c8106fd 100644 --- a/test/unit-tests/async-components/structures/ErrorView-test.tsx +++ b/test/unit-tests/async-components/structures/ErrorView-test.tsx @@ -18,8 +18,13 @@ import * as React from "react"; import { render } from "@testing-library/react"; import ErrorView from "../../../../src/async-components/structures/ErrorView"; +import { setupLanguageMock } from "../../../setup/setupLanguage"; describe("", () => { + beforeEach(() => { + setupLanguageMock(); + }); + it("should match snapshot", () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); diff --git a/test/unit-tests/components/views/auth/VectorAuthFooter-test.tsx b/test/unit-tests/components/views/auth/VectorAuthFooter-test.tsx index 22e13d3f7b..f91d57f48a 100644 --- a/test/unit-tests/components/views/auth/VectorAuthFooter-test.tsx +++ b/test/unit-tests/components/views/auth/VectorAuthFooter-test.tsx @@ -18,8 +18,13 @@ import * as React from "react"; import { render } from "@testing-library/react"; import VectorAuthFooter from "../../../../../src/components/views/auth/VectorAuthFooter"; +import { setupLanguageMock } from "../../../../setup/setupLanguage"; describe("", () => { + beforeEach(() => { + setupLanguageMock(); + }); + it("should match snapshot", () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); diff --git a/test/unit-tests/components/views/auth/VectorAuthPage-test.tsx b/test/unit-tests/components/views/auth/VectorAuthPage-test.tsx index 72e432506a..d4c58e0b8e 100644 --- a/test/unit-tests/components/views/auth/VectorAuthPage-test.tsx +++ b/test/unit-tests/components/views/auth/VectorAuthPage-test.tsx @@ -18,8 +18,13 @@ import * as React from "react"; import { render } from "@testing-library/react"; import VectorAuthPage from "../../../../../src/components/views/auth/VectorAuthPage"; +import { setupLanguageMock } from "../../../../setup/setupLanguage"; describe("", () => { + beforeEach(() => { + setupLanguageMock(); + }); + it("should match snapshot", () => { const { asFragment } = render(); expect(asFragment()).toMatchSnapshot(); diff --git a/test/unit-tests/vector/platform/ElectronPlatform-test.ts b/test/unit-tests/vector/platform/ElectronPlatform-test.ts index 3c93f98a28..128bacc99b 100644 --- a/test/unit-tests/vector/platform/ElectronPlatform-test.ts +++ b/test/unit-tests/vector/platform/ElectronPlatform-test.ts @@ -26,6 +26,7 @@ import DesktopCapturerSourcePicker from "matrix-react-sdk/src/components/views/e import { mocked } from "jest-mock"; import ElectronPlatform from "../../../../src/vector/platform/ElectronPlatform"; +import { setupLanguageMock } from "../../../setup/setupLanguage"; jest.mock("matrix-react-sdk/src/rageshake/rageshake", () => ({ flush: jest.fn(), @@ -51,6 +52,7 @@ describe("ElectronPlatform", () => { window.electron = mockElectron; jest.clearAllMocks(); Object.defineProperty(window, "navigator", { value: { userAgent: defaultUserAgent }, writable: true }); + setupLanguageMock(); }); const getElectronEventHandlerCall = (eventType: string): [type: string, handler: Function] | undefined => diff --git a/test/unit-tests/vector/platform/WebPlatform-test.ts b/test/unit-tests/vector/platform/WebPlatform-test.ts index af35137f99..00854a9dd2 100644 --- a/test/unit-tests/vector/platform/WebPlatform-test.ts +++ b/test/unit-tests/vector/platform/WebPlatform-test.ts @@ -19,12 +19,14 @@ import { UpdateCheckStatus } from "matrix-react-sdk/src/BasePlatform"; import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg"; import WebPlatform from "../../../../src/vector/platform/WebPlatform"; +import { setupLanguageMock } from "../../../setup/setupLanguage"; fetchMock.config.overwriteRoutes = true; describe("WebPlatform", () => { beforeEach(() => { jest.clearAllMocks(); + setupLanguageMock(); }); it("returns human readable name", () => { diff --git a/tsconfig.json b/tsconfig.json index c707ebaa54..03cc0c3123 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,7 +12,7 @@ "outDir": "./lib", "declaration": true, "jsx": "react", - "lib": ["es2020", "dom", "dom.iterable"], + "lib": ["es2021", "dom", "dom.iterable"], "strict": true }, "include": [ diff --git a/yarn.lock b/yarn.lock index 885f71f98a..71a4332fe8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -49,26 +49,26 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@^7.0.0", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" - integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== dependencies: "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.5" - "@babel/parser" "^7.23.5" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -91,12 +91,12 @@ dependencies: eslint-rule-composer "^0.3.0" -"@babel/generator@^7.23.5", "@babel/generator@^7.7.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" - integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== +"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== dependencies: - "@babel/types" "^7.23.5" + "@babel/types" "^7.23.6" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -115,21 +115,21 @@ dependencies: "@babel/types" "^7.22.15" -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" - integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.23.6": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz#b2e6826e0e20d337143655198b79d58fdc9bd43d" + integrity sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.20" @@ -150,10 +150,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz#a71c10f7146d809f4a256c373f462d9bba8cf6ba" - integrity sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug== +"@babel/helper-define-polyfill-provider@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" + integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -281,14 +281,14 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.22.19" -"@babel/helpers@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" - integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== +"@babel/helpers@^7.23.7": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34" + integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== dependencies: "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" "@babel/highlight@^7.23.4": version "7.23.4" @@ -299,10 +299,10 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.5", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" - integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.5", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" @@ -320,10 +320,10 @@ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz#20c60d4639d18f7da8602548512e9d3a4c8d7098" - integrity sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -555,10 +555,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz#93ac8e3531f347fba519b4703f9ff2a75c6ae27a" - integrity sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw== +"@babel/plugin-transform-async-generator-functions@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd" + integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA== dependencies: "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" @@ -605,16 +605,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-transform-classes@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz#e7a75f815e0c534cc4c9a39c56636c84fc0d64f2" - integrity sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg== +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" - "@babel/helper-optimise-call-expression" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-replace-supers" "^7.22.20" "@babel/helper-split-export-declaration" "^7.22.6" @@ -674,12 +673,13 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-for-of@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz#afe115ff0fbce735e02868d41489093c63e15559" - integrity sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw== +"@babel/plugin-transform-for-of@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" + integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" "@babel/plugin-transform-function-name@^7.23.3": version "7.23.3" @@ -910,15 +910,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.12.10": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz#5132b388580002fc5cb7c84eccfb968acdc231cb" - integrity sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz#52bbd20054855beb9deae3bee9ceb05289c343e6" + integrity sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw== dependencies: "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.23.3": @@ -958,12 +958,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-typescript@^7.23.3": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz#83da13ef62a1ebddf2872487527094b31c9adb84" - integrity sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA== + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" + integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.23.5" + "@babel/helper-create-class-features-plugin" "^7.23.6" "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.23.3" @@ -999,17 +999,17 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.12.11": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.5.tgz#350a3aedfa9f119ad045b068886457e895ba0ca1" - integrity sha512-0d/uxVD6tFGWXGDSfyMD1p2otoaKmu6+GD+NfAx0tMaH+dxORnp7T9TaVQ6mKyya7iBtCIVxHjWT7MuzzM9z+A== + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.8.tgz#7d6f8171ea7c221ecd28059e65ad37c20e441e3e" + integrity sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA== dependencies: "@babel/compat-data" "^7.23.5" - "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-compilation-targets" "^7.23.6" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" @@ -1030,13 +1030,13 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.23.3" - "@babel/plugin-transform-async-generator-functions" "^7.23.4" + "@babel/plugin-transform-async-generator-functions" "^7.23.7" "@babel/plugin-transform-async-to-generator" "^7.23.3" "@babel/plugin-transform-block-scoped-functions" "^7.23.3" "@babel/plugin-transform-block-scoping" "^7.23.4" "@babel/plugin-transform-class-properties" "^7.23.3" "@babel/plugin-transform-class-static-block" "^7.23.4" - "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-classes" "^7.23.8" "@babel/plugin-transform-computed-properties" "^7.23.3" "@babel/plugin-transform-destructuring" "^7.23.3" "@babel/plugin-transform-dotall-regex" "^7.23.3" @@ -1044,7 +1044,7 @@ "@babel/plugin-transform-dynamic-import" "^7.23.4" "@babel/plugin-transform-exponentiation-operator" "^7.23.3" "@babel/plugin-transform-export-namespace-from" "^7.23.4" - "@babel/plugin-transform-for-of" "^7.23.3" + "@babel/plugin-transform-for-of" "^7.23.6" "@babel/plugin-transform-function-name" "^7.23.3" "@babel/plugin-transform-json-strings" "^7.23.4" "@babel/plugin-transform-literals" "^7.23.3" @@ -1078,9 +1078,9 @@ "@babel/plugin-transform-unicode-regex" "^7.23.3" "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" "@babel/preset-modules" "0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" core-js-compat "^3.31.0" semver "^6.3.1" @@ -1117,14 +1117,14 @@ "@babel/plugin-transform-typescript" "^7.23.3" "@babel/register@^7.12.10": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.22.15.tgz#c2c294a361d59f5fa7bcc8b97ef7319c32ecaec7" - integrity sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg== + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.23.7.tgz#485a5e7951939d21304cae4af1719fdb887bc038" + integrity sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ== dependencies: clone-deep "^4.0.1" find-cache-dir "^2.0.0" make-dir "^2.1.0" - pirates "^4.0.5" + pirates "^4.0.6" source-map-support "^0.5.16" "@babel/regjsgen@^0.8.0": @@ -1133,9 +1133,9 @@ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== "@babel/runtime@^7.0.0", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.14.6", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.9", "@babel/runtime@^7.21.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" - integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.8.tgz#8ee6fe1ac47add7122902f257b8ddf55c898f650" + integrity sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw== dependencies: regenerator-runtime "^0.14.0" @@ -1148,26 +1148,26 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.18.5", "@babel/traverse@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" - integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== +"@babel/traverse@^7.18.5", "@babel/traverse@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== dependencies: "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" + "@babel/generator" "^7.23.6" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.5" - "@babel/types" "^7.23.5" - debug "^4.1.0" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" - integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== +"@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== dependencies: "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" @@ -1205,24 +1205,24 @@ integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== "@csstools/css-parser-algorithms@^2.3.1": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz#1e0d581dbf4518cb3e939c3b863cb7180c8cedad" - integrity sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA== + version "2.5.0" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.5.0.tgz#0c03cd5418a9f404a05ff2ffcb1b69d04e8ec532" + integrity sha512-abypo6m9re3clXA00eu5syw+oaPHbJTPapu9C4pzNsJ4hdZDzushT50Zhu+iIYXgEe1CxnRMn7ngsbV+MLrlpQ== "@csstools/css-tokenizer@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz#9dc431c9a5f61087af626e41ac2a79cce7bb253d" - integrity sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg== + version "2.2.3" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.3.tgz#b099d543ea57b64f495915a095ead583866c50c6" + integrity sha512-pp//EvZ9dUmGuGtG1p+n17gTHEOqu9jO+FiCUjNN3BDmyhdA2Jq9QsVeR7K8/2QCK17HSsioPlTW9ZkzoWb3Lg== "@csstools/media-query-list-parser@^2.1.4": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz#94bc8b3c3fd7112a40b7bf0b483e91eba0654a0f" - integrity sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ== + version "2.1.7" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.7.tgz#a4836e3dbd693081a30b32ce9c2a781e1be16788" + integrity sha512-lHPKJDkPUECsyAvD60joYfDmp8UERYxHGkFfyLJFTVK/ERJe0sVlIFLXU5XFxdjNDTerp5L4KeaKG+Z5S94qxQ== "@csstools/selector-specificity@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.0.tgz#798622546b63847e82389e473fd67f2707d82247" - integrity sha512-hBI9tfBtuPIi885ZsZ32IMEU/5nlZH/KOVYJCOh7gyMxaVLGmLedYqFN6Ui1LXkI8JlC8IsuC0rF0btcRZKd5g== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz#d84597fbc0f897240c12fc0a31e492b036c70e40" + integrity sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww== "@cypress/request@^3.0.0": version "3.0.1" @@ -1298,32 +1298,32 @@ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== -"@floating-ui/core@^1.4.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.2.tgz#53a0f7a98c550e63134d504f26804f6b83dbc071" - integrity sha512-Ii3MrfY/GAIN3OhXNzpCKaLxHQfJF9qvwq/kEJYdqDxeIHa01K8sldugal6TmeeXl+WMvhv9cnVzUTaFFJF09A== +"@floating-ui/core@^1.5.3": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.3.tgz#b6aa0827708d70971c8679a16cf680a515b8a52a" + integrity sha512-O0WKDOo0yhJuugCx6trZQj5jVJ9yR0ystG2JaNAemYUWce+pmM6WUEFIibnWyEJKdrDxhm75NoSRME35FNaM/Q== dependencies: - "@floating-ui/utils" "^0.1.3" + "@floating-ui/utils" "^0.2.0" -"@floating-ui/dom@^1.5.1": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa" - integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA== +"@floating-ui/dom@^1.5.4": + version "1.5.4" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.4.tgz#28df1e1cb373884224a463235c218dcbd81a16bb" + integrity sha512-jByEsHIY+eEdCjnTVu+E3ephzTOzkQ8hgUfGwos+bg7NlH33Zc5uO+QHz1mrQUOgIKKDD1RtS201P9NvAfq3XQ== dependencies: - "@floating-ui/core" "^1.4.2" - "@floating-ui/utils" "^0.1.3" + "@floating-ui/core" "^1.5.3" + "@floating-ui/utils" "^0.2.0" "@floating-ui/react-dom@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.4.tgz#b076fafbdfeb881e1d86ae748b7ff95150e9f3ec" - integrity sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.6.tgz#5ffcf40b6550817a973b54cdd443374f51ca7a5c" + integrity sha512-IB8aCRFxr8nFkdYZgH+Otd9EVQPJoynxeFRGTB8voPoZMRWo8XjYuCRgpI1btvuKY69XMiLnW+ym7zoBHM90Rw== dependencies: - "@floating-ui/dom" "^1.5.1" + "@floating-ui/dom" "^1.5.4" -"@floating-ui/utils@^0.1.3": - version "0.1.6" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" - integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== +"@floating-ui/utils@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" + integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== "@gar/promisify@^1.0.1": version "1.1.3" @@ -1331,12 +1331,12 @@ integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@humanwhocodes/config-array@^0.11.10": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -1344,10 +1344,10 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -1636,9 +1636,9 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + version "0.3.21" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz#5dc1df7b3dc4a6209e503a924e1ca56097a2bb15" + integrity sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -1707,9 +1707,9 @@ integrity sha512-vQ5PVppKu1PY7xy7QDw+RJLYLGFKhJyxLqjXHr0uEUJwfvz2IH2njTLXzrz77dOo9qacxJ9/YNOTe0Hl+98N0A== "@matrix-org/matrix-wysiwyg@^2.4.1": - version "2.20.0" - resolved "https://registry.yarnpkg.com/@matrix-org/matrix-wysiwyg/-/matrix-wysiwyg-2.20.0.tgz#a81578b827bc24dfc82e96e4db49c26168878cf1" - integrity sha512-33ZfcS4V0EmHpICgbh376ZHH0jO6YRqgazo+jQ5EMjh38iUoOgvonSz0tiPQKUjP+08niUxHZCZ1NQm3bzLGTA== + version "2.25.0" + resolved "https://registry.yarnpkg.com/@matrix-org/matrix-wysiwyg/-/matrix-wysiwyg-2.25.0.tgz#25ae14604c4552936afe0d7eb6be659dbf8fcd4e" + integrity sha512-MRty6fVhV6WJLH/hqlKfKl3UIyK//0W6WtKoC07av3UBEXLBsD4RqqpeA3oLDrccYL7LaoCmHfw0wgvldhXwpw== "@matrix-org/olm@https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.14.tgz": version "3.2.14" @@ -1722,10 +1722,10 @@ dependencies: "@babel/runtime" "^7.17.9" -"@matrix-org/react-sdk-module-api@^2.1.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@matrix-org/react-sdk-module-api/-/react-sdk-module-api-2.2.1.tgz#308bcb42a780200d3e7994235376784b51819379" - integrity sha512-+MXTMEapzGmhArUt86GYDQirOvm19+wvQLDApmHpUQvSZvYm7wOo1EwR9FFvSKve53fu+v6gI1grnj7YLzGQ9Q== +"@matrix-org/react-sdk-module-api@^2.1.0", "@matrix-org/react-sdk-module-api@^2.1.1": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@matrix-org/react-sdk-module-api/-/react-sdk-module-api-2.3.0.tgz#85be5cfc73be0494c13d4dc9050cb70c58d7a08b" + integrity sha512-x/ie44yaXNtE5AKcmQiW5yINVEIJ7IjjEc35vj6j52fM8tZ9XbJx9PANKSWsdd0NJp3OqyaeHftmN6ESfx4YoQ== dependencies: "@babel/runtime" "^7.17.9" @@ -1892,106 +1892,106 @@ dependencies: "@octokit/openapi-types" "^12.11.0" -"@percy/cli-app@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/cli-app/-/cli-app-1.27.5.tgz#9bd0e8210a711247bc63335fc595848a02d9f690" - integrity sha512-PD4zPi//Wd7Qi6N/KzzyyftQ/v1bG0i8R1sLUvgwIyePutsGLQISba4naBowAdaUytfcAjgwxTlM2okx77I69Q== +"@percy/cli-app@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/cli-app/-/cli-app-1.27.7.tgz#7ee373674ab8e0a5aec33f624390097a76c53ad6" + integrity sha512-IQuTC5X5JM65cqOluFM9lnydkw3hvkUdf6LTsBRtzmS7/qURyiBDvuxkKt37XUCfXm2XFP8J6B6ADBQL4YShPA== dependencies: - "@percy/cli-command" "1.27.5" - "@percy/cli-exec" "1.27.5" + "@percy/cli-command" "1.27.7" + "@percy/cli-exec" "1.27.7" -"@percy/cli-build@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/cli-build/-/cli-build-1.27.5.tgz#95f6f29a6e0dbf110be14b5f7e881ba574a7627e" - integrity sha512-KrYoqPCN2HJmTVm2S8oC6mdHbaOA4giK9m+RkIYzhvJgQ6OXYJ9u2B+bJYpckXLgMlyCw1Z6K4WW0sN/WCrQxQ== +"@percy/cli-build@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/cli-build/-/cli-build-1.27.7.tgz#7d8a200353ec7a3ec32131631e2e5145e53b357d" + integrity sha512-UmWaUFQAomlL4GpU/KPTq3hmJtXCMWQELwDnaQ1vnUf2rk17qSy5keSvCb/Ta8oPuObuRNoOHGrtUFPh1b7l2g== dependencies: - "@percy/cli-command" "1.27.5" + "@percy/cli-command" "1.27.7" -"@percy/cli-command@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/cli-command/-/cli-command-1.27.5.tgz#63ff8ad881fa171b2e11a29f9a6da7b9ae3541f9" - integrity sha512-VqOKCj1CgDh/yhNs2WK6GPyS5Rfpm+yJ/evISWUHtpbmac4JcFHMFUz/hiSo2T1bZEuzCz9meZi567ze45sf5g== +"@percy/cli-command@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/cli-command/-/cli-command-1.27.7.tgz#2341db97a7ddebda9587ba2e3efbcb21e0b06a43" + integrity sha512-nVHspbcTStwZOVYmcCowcFJsOLLJrhLfJbj2Rkvm3upf/E98x4+S9H+Tq9K4XcgznjFfLLRAHkkVFGnCdbO5qQ== dependencies: - "@percy/config" "1.27.5" - "@percy/core" "1.27.5" - "@percy/logger" "1.27.5" + "@percy/config" "1.27.7" + "@percy/core" "1.27.7" + "@percy/logger" "1.27.7" -"@percy/cli-config@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/cli-config/-/cli-config-1.27.5.tgz#1cc7ec8d03b86c65e360b19558194e76f6234289" - integrity sha512-1UA+wob8AqlkWDW6fqxm25NdoGNX4h4X1Koi+Cp17zieOpkfOG6AVUDJEWAxUxoN/gzk92zc+zDBTRgttEf4yA== +"@percy/cli-config@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/cli-config/-/cli-config-1.27.7.tgz#55f1046807849925e8fc94dc94c08afae103a99e" + integrity sha512-SppI7w9xQAUk4nCqXq0KE3HoKZ+IwgkJ6biAQuzv3BJ8GWz42hUGnH1fLEoK92MZMLiOHByiEFUoBzUKXPscZw== dependencies: - "@percy/cli-command" "1.27.5" + "@percy/cli-command" "1.27.7" -"@percy/cli-exec@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/cli-exec/-/cli-exec-1.27.5.tgz#f5367105eef56eb856e6e2ae61a5c8e5cf13e1af" - integrity sha512-MnvOtDyhP8E/N0KwGVb6bp7DwWadPdy1lHsmc5Kry3ZY6fVKJWRE9t9WfeDRkjUEAZgwaxtNxBetLRXFCjblEA== +"@percy/cli-exec@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/cli-exec/-/cli-exec-1.27.7.tgz#6122111a59f888e37e3f0b465cb1f7f80f217b1b" + integrity sha512-ZYSuQYu7hMbl/KbGwS/bEdAEXEY7MygheCJrmM43AGUIj8LSHnVTi09/z7ZpcStLibPmsraJ8Cm7GXhTNdhuAQ== dependencies: - "@percy/cli-command" "1.27.5" + "@percy/cli-command" "1.27.7" cross-spawn "^7.0.3" which "^2.0.2" -"@percy/cli-snapshot@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/cli-snapshot/-/cli-snapshot-1.27.5.tgz#0ea976057e528f08cabfb7cdb1ce7c8e311e2fa1" - integrity sha512-yUc8QvoKVS0vCzv8ixBt45/k8thrQVbeoOrAF8J+K0cM8so1j7ZEXyuQm4hByrPTovREsXUE84mBOB+F+UKgLg== +"@percy/cli-snapshot@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/cli-snapshot/-/cli-snapshot-1.27.7.tgz#ac64af3b02bade251a0efc6e79663a7d3af245c7" + integrity sha512-FGmNhXfOvW2RkcdEzeWWXo2fUp8UoRIb8bT0Bg6xcw5UGPUAoDVaFA8i4M5Qvi/K54Ed5VYfBX3y5sLcg2XRaw== dependencies: - "@percy/cli-command" "1.27.5" + "@percy/cli-command" "1.27.7" yaml "^2.0.0" -"@percy/cli-upload@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/cli-upload/-/cli-upload-1.27.5.tgz#8afa2f291010839fa8a3ec944d9b53258a0ef537" - integrity sha512-Hu+WYMIPr5Bov/FqU7h9ykhufK4fM3xC3HnepULxC+sjx6R4iBbZqkfFFAjTO6gPaepNXxSlIpGOzrw3EeUgTw== +"@percy/cli-upload@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/cli-upload/-/cli-upload-1.27.7.tgz#9ef454e81e3a286a147c7841bd521c8459e99cff" + integrity sha512-kC9wfZ6TBnOTlB2ge32IlEQlxGh+fLXUIlmelCXCTDL6zutn8mI117XOHaJDtsI7qtovM0cTBxoSySaBY4XNqg== dependencies: - "@percy/cli-command" "1.27.5" + "@percy/cli-command" "1.27.7" fast-glob "^3.2.11" image-size "^1.0.0" "@percy/cli@^1.3.0": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/cli/-/cli-1.27.5.tgz#9498653fde8354e6467b5dc9f74ce1ad8a144958" - integrity sha512-pgxhM6p5J6gT9sjx1+dVBU48UkrPr/h4H3Oy1bq4UkJyf/cSQwIw6MRSjnAnU/hq7hXpEx6VSeW1MMYhh3JHeQ== - dependencies: - "@percy/cli-app" "1.27.5" - "@percy/cli-build" "1.27.5" - "@percy/cli-command" "1.27.5" - "@percy/cli-config" "1.27.5" - "@percy/cli-exec" "1.27.5" - "@percy/cli-snapshot" "1.27.5" - "@percy/cli-upload" "1.27.5" - "@percy/client" "1.27.5" - "@percy/logger" "1.27.5" - -"@percy/client@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/client/-/client-1.27.5.tgz#c144a93ffa538a6ab317b84ce5f7e36644a713ff" - integrity sha512-C3WdSADXTMOFn362e7ctUA/pCdXT7f+nuSKwWPnOW8+2a4Z+qV6zr1VHubr3acIVfjENqc2z5t2tP0Lf8liJAg== - dependencies: - "@percy/env" "1.27.5" - "@percy/logger" "1.27.5" - -"@percy/config@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/config/-/config-1.27.5.tgz#ad29b034ed102c7ceb89a41858eb56bb0e50837d" - integrity sha512-c84ptxyWjOA/58GgYqxVvnM4pa/qDux3uHlpskdiC1gfTkG7A0R+EjH0SMYCP+HNYG0f/denLhczkjBU31JnnA== - dependencies: - "@percy/logger" "1.27.5" + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/cli/-/cli-1.27.7.tgz#004de5827790c827eac9195dae6914e9868736b3" + integrity sha512-FKt032Of8IhzA/ZLGAWgox5y5N534lTXW+W6AEeeMPHDm06eHCPgbMuMjajuhD0nGFRtSO6rJIPw+gFzIgJU7g== + dependencies: + "@percy/cli-app" "1.27.7" + "@percy/cli-build" "1.27.7" + "@percy/cli-command" "1.27.7" + "@percy/cli-config" "1.27.7" + "@percy/cli-exec" "1.27.7" + "@percy/cli-snapshot" "1.27.7" + "@percy/cli-upload" "1.27.7" + "@percy/client" "1.27.7" + "@percy/logger" "1.27.7" + +"@percy/client@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/client/-/client-1.27.7.tgz#79513a55f56b2693b601f8cb55f6850f7dadfcf8" + integrity sha512-pMaimVhfJEWyta40PyanH/Sv8mp+CBeO4HuJ72zadDrJVAwNNBfaNE8OzT298y8u/DrMz/AlNSA6OhVojDVAuQ== + dependencies: + "@percy/env" "1.27.7" + "@percy/logger" "1.27.7" + +"@percy/config@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/config/-/config-1.27.7.tgz#1185344d00a4bcfc8f61eb5fa2ecc05e667b9667" + integrity sha512-7XbnrVWgvMgYAIngyWt0nd/l5lQiioOzIkqm9iH+nbfH/ka9pE8U/AWsCuiWGz2Z/1p03gBDFc01cyM+ORjglQ== + dependencies: + "@percy/logger" "1.27.7" ajv "^8.6.2" cosmiconfig "^8.0.0" yaml "^2.0.0" -"@percy/core@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/core/-/core-1.27.5.tgz#2ea310e4ece1c65965d5637919c17f6c6e7ddb71" - integrity sha512-dJzhDGm+2EM3XBTcJFQoUZ/sD+t4Tlq2zu89wKuInUy6d9omNRMuyU+C2+6mbPQy9ZnARENFCDqGZFHfkVvAPw== +"@percy/core@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/core/-/core-1.27.7.tgz#daef80d280f117f8122264fae33be41ca8d62caa" + integrity sha512-lwweKGLbjsCWcAvaeHSK47IkaioBPKKjKd8fhhXFfv713aNL5CcokO9uUNMyBwrgqLY8jmPR/McMtROidUSowQ== dependencies: - "@percy/client" "1.27.5" - "@percy/config" "1.27.5" - "@percy/dom" "1.27.5" - "@percy/logger" "1.27.5" - "@percy/webdriver-utils" "1.27.5" + "@percy/client" "1.27.7" + "@percy/config" "1.27.7" + "@percy/dom" "1.27.7" + "@percy/logger" "1.27.7" + "@percy/webdriver-utils" "1.27.7" content-disposition "^0.5.4" cross-spawn "^7.0.3" extract-zip "^2.0.1" @@ -2009,42 +2009,42 @@ dependencies: "@percy/sdk-utils" "^1.3.1" -"@percy/dom@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/dom/-/dom-1.27.5.tgz#d6668bc3c1bfc97904ce11fce460328379c165fc" - integrity sha512-x+yuP78vmiZlrIjqCP1Jx8+nFUth3VXxIwybZE8kl5lOO87xMhJKr6r/oF2aJA2Z3BfbsE9qoEEz9W/4GIk7/w== +"@percy/dom@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/dom/-/dom-1.27.7.tgz#ea4b790e72a86ae5b8ba0cc8ebc66adee2d04ee1" + integrity sha512-FLMaAp7LByGFqvTEV1UwiQd+Ww1SHU2UuGOvgMPBwPgAKt2BB+FfZEYgaeORt5YXLfDJsIVk/lfvhJXzmb5k8Q== -"@percy/env@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/env/-/env-1.27.5.tgz#0b773b6789f9c8667b25ab3eb49a4306694ae92e" - integrity sha512-mzmqFz26N0FNpPzAJVpufSUntwxp2uJmWkHjI/MuZRZx3hckp+K09fv7wbX29BkAvfyEtvO7YZHWcSRdAM33Bg== +"@percy/env@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/env/-/env-1.27.7.tgz#bc465c2ea64661ab0f2731cb351595c99a296c42" + integrity sha512-TWgcxmRrcxwObc+kXfoh2eAywmB+6OGm9jxmf6wgdTf49zF70iS8mG6mJ7+r+PLz4MEmRCUTJ2S5I83iU6rLeQ== dependencies: - "@percy/logger" "1.27.5" + "@percy/logger" "1.27.7" -"@percy/logger@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/logger/-/logger-1.27.5.tgz#e1981b102c430b52333d53bb810fa32a680aaf9f" - integrity sha512-Dk0s6yKTTzjP7P4zFDF6wLeO+t6A19MRPVXcRebV2G7sOTZAfZMugeatShhNvVGw7PZ3Suynvu2A+byiMF7vtQ== +"@percy/logger@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/logger/-/logger-1.27.7.tgz#7d094c0a67defaeec5b0257cf6930e8a7a9adb04" + integrity sha512-w+r9tJPEUSflCPVajx15yfFtdaxjiqiWIu6i4sHKGwg0B24ivVb+6e1J5R2ry19F/YPjBi6llz5BRB9vasu+Iw== -"@percy/sdk-utils@1.27.5", "@percy/sdk-utils@^1.3.1": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.27.5.tgz#4c69177a3fbb47c22fefcc971333c288a99d3f4a" - integrity sha512-MoL/PegKdx9xPgxmvG3xuEMBUYwKO3s/8CnqFXvLNURc5Es6XRqCol7SDI/scsQSpkOaUKc/0rYhmMCRQOt+EA== +"@percy/sdk-utils@1.27.7", "@percy/sdk-utils@^1.3.1": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.27.7.tgz#b376c1ad653f3c70fea08a3db11eb63622ca6b53" + integrity sha512-E21dIEQ9wwGDno41FdMDYf6jJow5scbWGClqKE/ptB+950W4UF5C4hxhVVQoEJxDdLE/Gy/8ZJR7upvPHShWDg== -"@percy/webdriver-utils@1.27.5": - version "1.27.5" - resolved "https://registry.yarnpkg.com/@percy/webdriver-utils/-/webdriver-utils-1.27.5.tgz#b12d21bfb939b89598ed18b8e122f8e40f18d9bb" - integrity sha512-wfMbc9KAMBP9UaLMa5nXzR8ddOM4adDu/rSpcEOIQ8JWCHtYbmcaOIK7HEgOyEekY8O8wQ4SVRJ0OdaVxBrGYw== +"@percy/webdriver-utils@1.27.7": + version "1.27.7" + resolved "https://registry.yarnpkg.com/@percy/webdriver-utils/-/webdriver-utils-1.27.7.tgz#5c74452f6763b90aee4b713f21da2672bae1d28d" + integrity sha512-8nAQJOhphTsaTAqKfcDC/MDf/yJvJ0Hf8Owc90pisXakooEMNnAW4HzQlZIh4kyJQbw4iX9OFl6gVl+POTWhHQ== dependencies: - "@percy/config" "1.27.5" - "@percy/sdk-utils" "1.27.5" + "@percy/config" "1.27.7" + "@percy/sdk-utils" "1.27.7" "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@polka/url@^1.0.0-next.20": +"@polka/url@^1.0.0-next.24": version "1.0.0-next.24" resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.24.tgz#58601079e11784d20f82d0585865bb42305c4df3" integrity sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ== @@ -2254,35 +2254,35 @@ dependencies: "@babel/runtime" "^7.13.10" -"@sentry-internal/feedback@7.85.0": - version "7.85.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-7.85.0.tgz#94ef44d59a01f145895525a9bd737dc68f4c7d64" - integrity sha512-MlbIN+N8CWFJBjbqMmARe4+UPo9QRhRar0YoOfmNA2Xqk/EwXcjHWkealosHznXH7tqVbjB25QJpHtDystft/Q== +"@sentry-internal/feedback@7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/feedback/-/feedback-7.93.0.tgz#c6648ce625792c72d7afdbee8f5db878c7f16fee" + integrity sha512-4G7rMeQbYGfCHxEoFroABX+UREYc2BSbFqjLmLbIcWowSpgzcwweLLphWHKOciqK6f7DnNDK0jZzx3u7NrkWHw== dependencies: - "@sentry/core" "7.85.0" - "@sentry/types" "7.85.0" - "@sentry/utils" "7.85.0" + "@sentry/core" "7.93.0" + "@sentry/types" "7.93.0" + "@sentry/utils" "7.93.0" -"@sentry-internal/tracing@7.85.0": - version "7.85.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.85.0.tgz#1b4781a61e1e43badeff826cf40abe33dd760f1d" - integrity sha512-p3YMUwkPCy2su9cm/3+7QYR4RiMI0+07DU1BZtht9NLTzY2O87/yvUbn1v2yHR3vJQTy/+7N0ud9/mPBFznRQQ== +"@sentry-internal/tracing@7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.93.0.tgz#8cee8b610695d828af75edd2929b64b7caf0385d" + integrity sha512-DjuhmQNywPp+8fxC9dvhGrqgsUb6wI/HQp25lS2Re7VxL1swCasvpkg8EOYP4iBniVQ86QK0uITkOIRc5tdY1w== dependencies: - "@sentry/core" "7.85.0" - "@sentry/types" "7.85.0" - "@sentry/utils" "7.85.0" + "@sentry/core" "7.93.0" + "@sentry/types" "7.93.0" + "@sentry/utils" "7.93.0" "@sentry/browser@^7.0.0": - version "7.85.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.85.0.tgz#70cea7b53e22b4262f770d70e879ff1a621825de" - integrity sha512-x4sH7vTQnZQgy1U7NuN8XwhleAw7YMQitccHeC5m+kpIKGUO7w4Mdvu8rD3dnjmVmZvASpnwocAxy57/vCU6Ww== + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.93.0.tgz#acb559125ab0576091a3fc9718e520ba9b2eb1b9" + integrity sha512-MtLTcQ7y3rfk+aIvnnwCfSJvYhTJnIJi+Mf6y/ap6SKObdlsKMbQoJLlRViglGLq+nKxHLAvU0fONiCEmKfV6A== dependencies: - "@sentry-internal/feedback" "7.85.0" - "@sentry-internal/tracing" "7.85.0" - "@sentry/core" "7.85.0" - "@sentry/replay" "7.85.0" - "@sentry/types" "7.85.0" - "@sentry/utils" "7.85.0" + "@sentry-internal/feedback" "7.93.0" + "@sentry-internal/tracing" "7.93.0" + "@sentry/core" "7.93.0" + "@sentry/replay" "7.93.0" + "@sentry/types" "7.93.0" + "@sentry/utils" "7.93.0" "@sentry/bundler-plugin-core@2.10.2": version "2.10.2" @@ -2298,45 +2298,45 @@ magic-string "0.27.0" unplugin "1.0.1" -"@sentry/cli-darwin@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.22.3.tgz#d81f6a1b2060d20adb1da7e65e1c57e050e8ffcc" - integrity sha512-A1DwFTffg3+fF68qujaJI07dk/1H1pRuihlvS5WQ9sD7nQLnXZGoLUht4eULixhDzZYinWHKkcWzQ6k40UTvNA== - -"@sentry/cli-linux-arm64@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.22.3.tgz#9bdd3f3a441017b82fdbf0986fdf3b2e19ceda0c" - integrity sha512-PnBPb4LJ+A2LlqLjtVFn4mEizcVdxBSLZvB85pEGzq9DRXjZ6ZEuGWFHTVnWvjd79TB/s0me29QnLc3n4B6lgA== - -"@sentry/cli-linux-arm@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.22.3.tgz#74ae1d9bf8a9334e155412fc66c770573b264d7c" - integrity sha512-mDtLVbqbCu/5b/v2quTAMzY/atGlJVvrqO2Wvpro0Jb/LYhn7Y1pVBdoXEDcnOX82/pseFkLT8PFfq/OcezPhA== - -"@sentry/cli-linux-i686@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.22.3.tgz#8e077d2f48c6c9a791e2db303c55bd4b3f47e2f8" - integrity sha512-wxvbpQ2hiw4hwJWfJMp7K45BV40nXL62f91jLuftFXIbieKX1Li57NNKNu2JUVn7W1bJxkwz/PKGGTXSgeJlRw== - -"@sentry/cli-linux-x64@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.22.3.tgz#c3d653032105043b5e72202812c2b85dbbfbabbb" - integrity sha512-0GxsYNO5GyRWifeOpng+MmdUFZRA64bgA1n1prsEsXnoeLcm3Zj4Q63hBZmiwz9Qbhf5ibohkpf94a7dI7pv3A== - -"@sentry/cli-win32-i686@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.22.3.tgz#836baaa8af96b5249c753d2f0b5c111d4c850e4a" - integrity sha512-YERPsd7ClBrxKcmCUw+ZrAvQfbyIZFrqh269hgDuXFodpsB7LPGnI33ilo0uzmKdq2vGppTb6Z3gf1Rbq0Hadg== - -"@sentry/cli-win32-x64@2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.22.3.tgz#c450136539e8860d46434a932383005cffd89136" - integrity sha512-NUh56xWvgJo2KuC9lI6o6nTPXdzbpQUB4qGwJ73L9NP3HT2P1I27jtHyrC2zlXTVlYE23gQZGrL3wgW4Jy80QA== +"@sentry/cli-darwin@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-darwin/-/cli-darwin-2.25.0.tgz#a46c84852fbecdbd16948548f4c58302cb5471b9" + integrity sha512-OgBioypi9S+cooC4mPj/gYyvjw3oP9TH9ACgzobL0oP9gCpyF36iv044SWHLgeFUb45cPpVZ7f7WeSbufItzCQ== + +"@sentry/cli-linux-arm64@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.25.0.tgz#dcf61eac6adc6dcc5aee2eaebff2e901370abc75" + integrity sha512-GqxP3s0qHBgch3WI1my5P/h4YeEtNEar+jOGTPg66Bt042rUEHIlYuhULriu3v5rLnmlTuQ5i+LGr4Kq5SFW0Q== + +"@sentry/cli-linux-arm@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-arm/-/cli-linux-arm-2.25.0.tgz#bbea30b44b6b37c7e58d5e47b393d1139cdfe5ef" + integrity sha512-EZT//Dnajc03juqBTRUlU7x/1R1ODq5w6ZC9zO5tJfURxljUJ/kkAScHpfHiqzhPMNArK0gu7vYrOS4CTA7eBw== + +"@sentry/cli-linux-i686@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-i686/-/cli-linux-i686-2.25.0.tgz#b11c4bc6679c253dbd0e000a92198f3ccb41e53c" + integrity sha512-w25QuABMK7FDjlOgpWgJOhQdVQguOhz81DPoeXNWiDLcTHFsYDXxT88exaUQxrLhMNcRrQnS0rDhwd5y0cYh0g== + +"@sentry/cli-linux-x64@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-linux-x64/-/cli-linux-x64-2.25.0.tgz#c2c3be3db81ee08185557fa502ecfb5e516995ab" + integrity sha512-7Pr3JZTPWqSeLiG67v/7uR9prpCfNAW2naf/SSZOMg2ZTXSgG+kgXf6/ADI3WP1LtF3GVhexGtJ5eyFVYxfLsQ== + +"@sentry/cli-win32-i686@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-i686/-/cli-win32-i686-2.25.0.tgz#968f5093e3a74401fe15233808aee68311d15496" + integrity sha512-AuHBpFB2DZr19KE3g7qejaVmGb0d7E4ZN2cBKX1Vixb+KTi9/bEcRrWaQ2PpqLTVb2Wwglf/VlZgsxOjfhp7Ag== + +"@sentry/cli-win32-x64@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@sentry/cli-win32-x64/-/cli-win32-x64-2.25.0.tgz#9bb6b271642e1cc2b571acd395bece2683a3faed" + integrity sha512-EFGg2L4Wm8YNRV/yAy0bmztc2jkkhy0SfaQtxrHW22IRqfl2jXyKcHHmcEjwoYfCvIW+c5I0ftHhjueMuuRcXw== "@sentry/cli@^2.22.3": - version "2.22.3" - resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.22.3.tgz#e28613885c30979f4760de7365e5d30d5a32d51d" - integrity sha512-VFHdtrHsMyTRSZhDLeMyXvit7xB4e81KugIEwMve95c7h5HO672bfmCcM/403CAugj4NzvQ+IR2NKF/2SsEPlg== + version "2.25.0" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-2.25.0.tgz#2b142b763d21def99a3473f0cd3169f6b04f6235" + integrity sha512-N7k3NdiiEyQkQ43hRDAVqMf+Lg3GTWevO+ndg4yZ8Zv+J1jEVD6ZbqNnshSwWOx9qzcWQ+V/8ZgjmNuHbcNRxg== dependencies: https-proxy-agent "^5.0.0" node-fetch "^2.6.7" @@ -2344,61 +2344,61 @@ proxy-from-env "^1.1.0" which "^2.0.2" optionalDependencies: - "@sentry/cli-darwin" "2.22.3" - "@sentry/cli-linux-arm" "2.22.3" - "@sentry/cli-linux-arm64" "2.22.3" - "@sentry/cli-linux-i686" "2.22.3" - "@sentry/cli-linux-x64" "2.22.3" - "@sentry/cli-win32-i686" "2.22.3" - "@sentry/cli-win32-x64" "2.22.3" - -"@sentry/core@7.85.0": - version "7.85.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.85.0.tgz#dd90d772a5f75ff674f931f59b22a3fc286d0983" - integrity sha512-DFDAc4tWmHN5IWhr7XbHCiyF1Xgb95jz8Uj/JTX9atlgodId1UIbER77qpEmH3eQGid/QBdqrlR98zCixgSbwg== - dependencies: - "@sentry/types" "7.85.0" - "@sentry/utils" "7.85.0" + "@sentry/cli-darwin" "2.25.0" + "@sentry/cli-linux-arm" "2.25.0" + "@sentry/cli-linux-arm64" "2.25.0" + "@sentry/cli-linux-i686" "2.25.0" + "@sentry/cli-linux-x64" "2.25.0" + "@sentry/cli-win32-i686" "2.25.0" + "@sentry/cli-win32-x64" "2.25.0" + +"@sentry/core@7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.93.0.tgz#50a14bf305130dfef51810e4c97fcba4972a57ef" + integrity sha512-vZQSUiDn73n+yu2fEcH+Wpm4GbRmtxmnXnYCPgM6IjnXqkVm3awWAkzrheADblx3kmxrRiOlTXYHw9NTWs56fg== + dependencies: + "@sentry/types" "7.93.0" + "@sentry/utils" "7.93.0" "@sentry/node@^7.60.0": - version "7.85.0" - resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.85.0.tgz#cf4e6022b5cd1f3fb007186c5e04427b108ebe1d" - integrity sha512-uiBtRW9G017NHoCXBlK3ttkTwHXLFyI8ndHpaObtyajKTv3ptGIThVEn7DuK7Pwor//RjwjSEEOa7WDK+FdMVQ== - dependencies: - "@sentry-internal/tracing" "7.85.0" - "@sentry/core" "7.85.0" - "@sentry/types" "7.85.0" - "@sentry/utils" "7.85.0" + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.93.0.tgz#7786d05d1e3e984207a866b07df1bf891355892e" + integrity sha512-nUXPCZQm5Y9Ipv7iWXLNp5dbuyi1VvbJ3RtlwD7utgsNkRYB4ixtKE9w2QU8DZZAjaEF6w2X94OkYH6C932FWw== + dependencies: + "@sentry-internal/tracing" "7.93.0" + "@sentry/core" "7.93.0" + "@sentry/types" "7.93.0" + "@sentry/utils" "7.93.0" https-proxy-agent "^5.0.0" -"@sentry/replay@7.85.0": - version "7.85.0" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.85.0.tgz#81ad025bc85b343da71e1fb7bd7c5702690e48c8" - integrity sha512-zVtTKfO+lu5qTwHpETI/oGo8hU3rdKHr3CdI1vRLw+d60PcAa/pWVlXsQeLRTw8PFwE358gHcpFZezj/11afew== +"@sentry/replay@7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.93.0.tgz#55e3c424cd5529041fbc987e4c2e74e30a94b1b8" + integrity sha512-dMlLU8v+OkUeGCrPvTu5NriH7BGj3el4rGHWWAYicfJ2QXqTTq50vfasQBP1JeVNcFqnf1y653TdEIvo4RH4tw== dependencies: - "@sentry-internal/tracing" "7.85.0" - "@sentry/core" "7.85.0" - "@sentry/types" "7.85.0" - "@sentry/utils" "7.85.0" + "@sentry-internal/tracing" "7.93.0" + "@sentry/core" "7.93.0" + "@sentry/types" "7.93.0" + "@sentry/utils" "7.93.0" "@sentry/tracing@^7.0.0": - version "7.85.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.85.0.tgz#831fd6096c4d9e03ff55ac5919f7c7da30f73189" - integrity sha512-L3bpqiM+zu5f3o6zh6hx3xEzVENyhrkuMlpUOyDo0mUytqp763HqF1xz+R+trzze7R5VWrxJaRPARsCKlXu4Ig== + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.93.0.tgz#9785773049ae645cd0ee5b471e83a4dc9a79229c" + integrity sha512-n4XbAQ7e098Jzv4ZvpXAsFgM+XFfjhKci18r7s3UfDMnrB4FTCwhHZoeiygO8PZhB944mEFbNXNFhHkb8nTDbA== dependencies: - "@sentry-internal/tracing" "7.85.0" + "@sentry-internal/tracing" "7.93.0" -"@sentry/types@7.85.0": - version "7.85.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.85.0.tgz#648488b90f958ca6a86922cc5d26004853410ba6" - integrity sha512-R5jR4XkK5tBU2jDiPdSVqzkmjYRr666bcGaFGUHB/xDQCjPsjk+pEmCCL+vpuWoaZmQJUE1hVU7rgnVX81w8zg== +"@sentry/types@7.93.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.93.0.tgz#d76d26259b40cd0688e1d634462fbff31476c1ec" + integrity sha512-UnzUccNakhFRA/esWBWP+0v7cjNg+RilFBQC03Mv9OEMaZaS29zSbcOGtRzuFOXXLBdbr44BWADqpz3VW0XaNw== -"@sentry/utils@7.85.0", "@sentry/utils@^7.60.0": - version "7.85.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.85.0.tgz#b84467fd07bc2ef09fdf382ddcdcdc3f5b0d78b0" - integrity sha512-JZ7seNOLvhjAQ8GeB3GYknPQJkuhF88xAYOaESZP3xPOWBMFUN+IO4RqjMqMLFDniOwsVQS7GB/MfP+hxufieg== +"@sentry/utils@7.93.0", "@sentry/utils@^7.60.0": + version "7.93.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.93.0.tgz#36225038661fe977baf01e4695ef84794d591e45" + integrity sha512-Iovj7tUnbgSkh/WrAaMrd5UuYjW7AzyzZlFDIUrwidsyIdUficjCG2OIxYzh76H6nYIx9SxewW0R54Q6XoB4uA== dependencies: - "@sentry/types" "7.85.0" + "@sentry/types" "7.93.0" "@sentry/webpack-plugin@^2.0.0": version "2.10.2" @@ -2637,9 +2637,9 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.7" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" - integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== + version "7.6.8" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab" + integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== dependencies: "@babel/types" "^7.0.0" @@ -2652,9 +2652,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" - integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.5.tgz#7b7502be0aa80cc4ef22978846b983edaafcd4dd" + integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== dependencies: "@babel/types" "^7.20.7" @@ -2802,29 +2802,29 @@ integrity sha512-yslwR0zZ3zAT1qXcCPxIcD23CZ6W6nKsl6JufSJHAmdwOBuYwCVJkaMsEo9yzxGV7ATfoX8S+RgtnajOEtKxYA== "@types/node-fetch@^2.6.4": - version "2.6.9" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.9.tgz#15f529d247f1ede1824f7e7acdaa192d5f28071e" - integrity sha512-bQVlnMLFJ2d35DkPNjEPmd9ueO/rh5EiaZt2bhqiSarPjZIuIV6bPQVqcrEyvNo+AfTrRGVazle1tl597w3gfA== + version "2.6.10" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.10.tgz#ff5c1ceacab782f2b7ce69957d38c1c27b0dc469" + integrity sha512-PPpPK6F9ALFTn59Ka3BaL+qGuipRfxNE8qVgkp0bVixeiR2c2/L+IVOiBdu9JhhT22sWnQEp6YyHGI2b2+CMcA== dependencies: "@types/node" "*" form-data "^4.0.0" "@types/node@*": - version "20.10.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.3.tgz#4900adcc7fc189d5af5bb41da8f543cea6962030" - integrity sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg== + version "20.11.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.4.tgz#c724a5d6723182af758b91b994209336f4439cb7" + integrity sha512-6I0fMH8Aoy2lOejL3s4LhyIYX34DPwY8bl5xlNjBvUEk8OHrcuzsFt+Ied4LvJihbtXPM+8zUqdydfIti86v9g== dependencies: undici-types "~5.26.4" "@types/node@^16": - version "16.18.67" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.67.tgz#518feb681958dedf2d187b8b4d20bf3530afe1fb" - integrity sha512-gUa0tDO9oxyAYO9V9tqxDJguVMDpqUwH5I5Q9ASYBCso+8CUdJlKPKDYS1YSS9kyZWIduDafZvucGM0zGNKFjg== + version "16.18.71" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.71.tgz#305a955ab99353d4b8a9e9b6b6682ed6cbc186cc" + integrity sha512-ARO+458bNJQeNEFuPyT6W+q9ULotmsQzhV3XABsFSxEvRMUYENcBsNAHWYPlahU+UHa5gCVwyKT1Z3f1Wwr26Q== "@types/node@^18.17.5": - version "18.19.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.2.tgz#865107157bda220eef9fa8c2173152d6559a41ae" - integrity sha512-6wzfBdbWpe8QykUkXBjtmO3zITA0A3FIjoy+in0Y2K4KrCiRhNYJIdwAPDffZ3G6GnaKaSLSEa9ZuORLfEoiwg== + version "18.19.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.7.tgz#9a5f6ac7ec42a5dff68fe7faf2dd359710de4a12" + integrity sha512-IGRJfoNX10N/PfrReRZ1br/7SQ+2vF/tK3KXNwzXz82D32z5dMQEoOlFew18nLSN+vMNcLY4GrKfzwi/yWI8/w== dependencies: undici-types "~5.26.4" @@ -2861,9 +2861,9 @@ "@types/react" "^17" "@types/react-redux@^7.1.20": - version "7.1.32" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.32.tgz#bf162289e0c69e44a649dfcadb30f7f7c4cb00e4" - integrity sha512-YJYV0M27cyHHJIacaRsZRx5OETzK8KWjEGnix7UH3ngItYo4It0MUBzU6WNwqnwhbrPw5wx9KXluuoTZ85Gg7A== + version "7.1.33" + resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.33.tgz#53c5564f03f1ded90904e3c90f77e4bd4dc20b15" + integrity sha512-NF8m5AjWCkert+fosDsN3hAlHzpjSiXlVy9EgQEmLoBhaNXbmyeGs/aj5dQzKuF+/q+S7JQagorGDW8pJ28Hmg== dependencies: "@types/hoist-non-react-statics" "^3.3.0" "@types/react" "*" @@ -3259,6 +3259,23 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== +"@zxcvbn-ts/core@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@zxcvbn-ts/core/-/core-3.0.4.tgz#c5bde72235eb6c273cec78b672bb47c0d7045cad" + integrity sha512-aQeiT0F09FuJaAqNrxynlAwZ2mW/1MdXakKWNmGM1Qp/VaY6CnB/GfnMS2T8gB2231Esp1/maCWd8vTG4OuShw== + dependencies: + fastest-levenshtein "1.0.16" + +"@zxcvbn-ts/language-common@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@zxcvbn-ts/language-common/-/language-common-3.0.4.tgz#fa1d2a42f8c8a589555859795da90d6b8027b7c4" + integrity sha512-viSNNnRYtc7ULXzxrQIVUNwHAPSXRtoIwy/Tq4XQQdIknBzw4vz36lQLF6mvhMlTIlpjoN/Z1GFu/fwiAlUSsw== + +"@zxcvbn-ts/language-en@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@zxcvbn-ts/language-en/-/language-en-3.0.2.tgz#162ada6b2b556444efd5a7700e70845cfde6d6ec" + integrity sha512-Zp+zL+I6Un2Bj0tRXNs6VUBq3Djt+hwTwUz4dkt2qgsQz47U0/XthZ4ULrT/RxjwJRl5LwiaKOOZeOtmixHnjg== + abab@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" @@ -3291,9 +3308,9 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.0.0, acorn-walk@^8.0.2, acorn-walk@^8.1.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" - integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== acorn@^6.4.1: version "6.4.2" @@ -3301,9 +3318,9 @@ acorn@^6.4.1: integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== acorn@^8.0.4, acorn@^8.1.0, acorn@^8.4.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== agent-base@6: version "6.0.2" @@ -3797,9 +3814,9 @@ aws4@^1.8.0: integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== axe-core@^4.4.3: - version "4.8.2" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.8.2.tgz#2f6f3cde40935825cf4465e3c1c9e77b240ff6ae" - integrity sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g== + version "4.8.3" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.8.3.tgz#205df863dd9917d5979e9435dab4d47692759051" + integrity sha512-d5ZQHPSPkF9Tw+yfyDcRoUOc4g/8UloJJe5J8m4L5+c7AtDdjDLRxew/knnI4CxvtdxEUVgWz4x3OIQUIFiMfw== babel-jest@^29.0.0, babel-jest@^29.7.0: version "29.7.0" @@ -3845,29 +3862,29 @@ babel-plugin-jest-hoist@^29.6.3: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz#b2df0251d8e99f229a8e60fc4efa9a68b41c8313" - integrity sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q== +babel-plugin-polyfill-corejs2@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" + integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.5: - version "0.8.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz#25c2d20002da91fe328ff89095c85a391d6856cf" - integrity sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ== +babel-plugin-polyfill-corejs3@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" + integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" core-js-compat "^3.33.1" -babel-plugin-polyfill-regenerator@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz#d4c49e4b44614607c13fb769bcd85c72bb26a4a5" - integrity sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw== +babel-plugin-polyfill-regenerator@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" + integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.3" + "@babel/helper-define-polyfill-provider" "^0.4.4" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" @@ -3942,9 +3959,9 @@ base@^0.11.1: pascalcase "^0.1.1" basic-ftp@^5.0.2: - version "5.0.3" - resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.3.tgz#b14c0fe8111ce001ec913686434fe0c2fb461228" - integrity sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g== + version "5.0.4" + resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.0.4.tgz#28aeab7bfbbde5f5d0159cd8bb3b8e633bbb091d" + integrity sha512-8PzkB0arJFV4jJWSGOYR+OEic6aeKMu/osRhBULN6RY0ykby6LKhbmuQ5ublvaas5BOwboah5D87nrHyuh8PPA== batch@0.6.1: version "0.6.1" @@ -4163,7 +4180,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9, browserslist@^4.22.2, browserslist@^4.6.4: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.22.2, browserslist@^4.6.4: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== @@ -4391,9 +4408,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001538, caniuse-lite@^1.0.30001565: - version "1.0.30001566" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" - integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== + version "1.0.30001577" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001577.tgz#a24991eb4ad67324ba8b96716340d53151f2f6f8" + integrity sha512-rs2ZygrG1PNXMfmncM0B5H1hndY5ZCC9b5TkFaVNfZ+AUlyqcMyVIQtc3fsezi0NUCk5XZfDf9WS6WxMxnfdrg== caseless@~0.12.0: version "0.12.0" @@ -4546,9 +4563,9 @@ class-utils@^0.3.5: static-extend "^0.1.1" classnames@^2.2.6, classnames@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924" - integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw== + version "2.5.1" + resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" + integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== clean-css@^4.2.3: version "4.2.4" @@ -4873,9 +4890,9 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.31.0, core-js-compat@^3.33.1: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.34.0.tgz#61a4931a13c52f8f08d924522bba65f8c94a5f17" - integrity sha512-4ZIyeNbW/Cn1wkMMDy+mvrRUxrwFNjKwbhCfQpDd+eLgYipDqp8oGFGtLmhh18EDPKA0g3VUBYOxQGGwvWLVpA== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873" + integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw== dependencies: browserslist "^4.22.2" @@ -4885,9 +4902,9 @@ core-js@^2.4.0: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.0.0: - version "3.34.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.34.0.tgz#5705e6ad5982678612e96987d05b27c6c7c274a5" - integrity sha512-aDdvlDder8QmY91H88GzNi9EtQi2TjvQhpCX6B1v/dAZHU1AuLgHvRh54RiOerpEhEW46Tkf+vgAViB/CWC0ag== + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.35.0.tgz#58e651688484f83c34196ca13f099574ee53d6b4" + integrity sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg== core-util-is@1.0.2: version "1.0.2" @@ -5281,9 +5298,9 @@ cssstyle@^2.3.0: cssom "~0.3.6" csstype@^3.0.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" - integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== cyclist@^1.0.1: version "1.0.2" @@ -5301,9 +5318,9 @@ cypress-real-events@^1.7.1: integrity sha512-4LXVRsyq+xBh5TmlEyO1ojtBXtN7xw720Pwb9rEE9rkJuXmeH3VyoR1GGayMGr+Itqf11eEjfDewtDmcx6PWPQ== cypress@^13.0.0: - version "13.6.1" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.6.1.tgz#c5f714f08551666ed3ac1fa95718eabb23a416df" - integrity sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw== + version "13.6.2" + resolved "https://registry.yarnpkg.com/cypress/-/cypress-13.6.2.tgz#c70df09db0a45063298b3cecba2fa21109768e08" + integrity sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ== dependencies: "@cypress/request" "^3.0.0" "@cypress/xvfb" "^1.2.4" @@ -5407,7 +5424,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -5883,9 +5900,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.601: - version "1.4.605" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.605.tgz#d01f4e342b896d9ca7fae25d322e9ff4f0e41194" - integrity sha512-V52j+P5z6cdRqTjPR/bYNxx7ETCHIkm5VIGuyCy3CMrfSnbEpIlLnk5oHmZo7gYvDfh2TfHeanB6rawyQ23ktg== + version "1.4.632" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.632.tgz#df6253483b802eb83eee2fdc0e5067bd46f36f11" + integrity sha512-JGmudTwg7yxMYvR/gWbalqqQiyu7WTFv2Xu3vw4cJHXPFxNgAk0oy8UHaer8nLF4lZJa+rNoj6GsrKIVJTV6Tw== elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" @@ -6267,9 +6284,9 @@ eslint-plugin-deprecate@0.7.0: integrity sha512-MylhCqoH/SJ2MwzVgX0we6oE+lKPVwhOu9hAJ98vMCmbz3FNwqJ8XipdI23bCF7NHxUbhd6mdxFjywKE52pt7A== eslint-plugin-import@^2.26.0: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: array-includes "^3.1.7" array.prototype.findlastindex "^1.2.3" @@ -6287,7 +6304,7 @@ eslint-plugin-import@^2.26.0: object.groupby "^1.0.1" object.values "^1.1.7" semver "^6.3.1" - tsconfig-paths "^3.14.2" + tsconfig-paths "^3.15.0" eslint-plugin-matrix-org@^1.0.0: version "1.2.1" @@ -6787,15 +6804,15 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fastest-levenshtein@^1.0.16: +fastest-levenshtein@1.0.16, fastest-levenshtein@^1.0.16: version "1.0.16" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== dependencies: reusify "^1.0.4" @@ -7045,15 +7062,10 @@ focus-lock@^1.0.0: dependencies: tslib "^2.0.3" -focus-visible@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/focus-visible/-/focus-visible-5.2.0.tgz#3a9e41fccf587bd25dcc2ef045508284f0a4d6b3" - integrity sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ== - follow-redirects@^1.0.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== for-each@^0.3.3: version "0.3.3" @@ -7455,9 +7467,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" @@ -7558,7 +7570,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== @@ -7662,9 +7674,9 @@ hmac-drbg@^1.0.1: minimalistic-crypto-utils "^1.0.1" hoek@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - integrity sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA== + version "4.3.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.3.1.tgz#1d2ea831857e4ecdce7fd5ffe07acdf8eb368cca" + integrity sha512-v7E+yIjcHECn973i0xHm4kJkEpv3C8sbYS4344WXbzYqRyiDD7rjnnKo4hsJkejQBAFdRMUGNHySeSPKSH9Rqw== hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: version "3.3.2" @@ -7934,9 +7946,9 @@ ignore@^5.2.0, ignore@^5.2.4: integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== image-size@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" - integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.1.1.tgz#ddd67d4dc340e52ac29ce5f546a09f4e29e840ac" + integrity sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ== dependencies: queue "6.0.2" @@ -9755,10 +9767,10 @@ matrix-events-sdk@0.0.1: resolved "https://registry.yarnpkg.com/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz#c8c38911e2cb29023b0bbac8d6f32e0de2c957dd" integrity sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA== -matrix-js-sdk@28.2.0: - version "28.2.0" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-28.2.0.tgz#2ec2d15c8f1e0dff85e7ec9e9ad061b039320def" - integrity sha512-YENmPaiGgWwCqoYWoL/8oD7QPWd6M/A0xdNhC4yMSiFny419AjUdPQk/EbM8RTSzQV27F79llhWisnz+/AXdaA== +matrix-js-sdk@29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-29.0.0.tgz#ce01e8a9226763282ee5ee9b012d3f0cab0c50f2" + integrity sha512-lE5F+aQrwFB/Pn6MMdqCVa4aeRpnasM1gYK2FTmDG8gv6D/gMshdlBBA1K0xL4UYUx76vw6VRQBknJ+J+/eQRA== dependencies: "@babel/runtime" "^7.12.5" "@matrix-org/matrix-sdk-crypto-wasm" "^1.2.3-alpha.0" @@ -9782,22 +9794,25 @@ matrix-mock-request@^2.5.0: dependencies: expect "^28.1.0" -matrix-react-sdk@3.81.0: - version "3.81.0" - resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.81.0.tgz#3c07b431151243cfe6edb93b802666b94c7a3e6d" - integrity sha512-TKlKBdvSEtPcWgNsDPy5bye23OYUSrSi7Q4d3VFPqitoOvR3WIE3pNKLpRDwoakDVanUCLc4wHUCN9L9VyMvNA== +matrix-react-sdk@3.82.0: + version "3.82.0" + resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.82.0.tgz#a7de18668f91294f515bb0188043934af3c38ce2" + integrity sha512-2hjCCI1fkkRm/yYuhCVXLm1MprqsyvQVrhuscP5ZsQ4oumeVue9mEzWDuyZI8DFyRX1za7qgHjVLgo5tDyhPVw== dependencies: "@babel/runtime" "^7.12.5" "@matrix-org/analytics-events" "^0.7.0" "@matrix-org/emojibase-bindings" "^1.1.2" "@matrix-org/matrix-wysiwyg" "^2.4.1" - "@matrix-org/react-sdk-module-api" "^2.1.0" + "@matrix-org/react-sdk-module-api" "^2.1.1" "@matrix-org/spec" "^1.7.0" "@sentry/browser" "^7.0.0" "@sentry/tracing" "^7.0.0" "@testing-library/react-hooks" "^8.0.1" "@vector-im/compound-design-tokens" "^0.0.5" "@vector-im/compound-web" "^0.4.0" + "@zxcvbn-ts/core" "^3.0.4" + "@zxcvbn-ts/language-common" "^3.0.4" + "@zxcvbn-ts/language-en" "^3.0.2" await-lock "^2.1.0" blurhash "^1.1.3" classnames "^2.2.6" @@ -9809,7 +9824,6 @@ matrix-react-sdk@3.81.0: escape-html "^1.0.3" file-saver "^2.0.5" filesize "10.0.12" - focus-visible "^5.2.0" gfm.css "^1.1.2" glob-to-regexp "^0.4.1" graphemer "^1.4.0" @@ -9826,7 +9840,7 @@ matrix-react-sdk@3.81.0: maplibre-gl "^2.0.0" matrix-encrypt-attachment "^1.0.3" matrix-events-sdk "0.0.1" - matrix-js-sdk "28.2.0" + matrix-js-sdk "29.0.0" matrix-widget-api "^1.5.0" memoize-one "^6.0.0" minimist "^1.2.5" @@ -9851,9 +9865,8 @@ matrix-react-sdk@3.81.0: ua-parser-js "^1.0.2" uuid "^9.0.0" what-input "^5.2.10" - zxcvbn "^4.4.2" -matrix-web-i18n@^3.1.1: +matrix-web-i18n@^3.1.3: version "3.1.5" resolved "https://registry.yarnpkg.com/matrix-web-i18n/-/matrix-web-i18n-3.1.5.tgz#cab9adb233b63b3760d6e40f71fff8041c648789" integrity sha512-xe9Letv1KT04X7CalnK080cRUBvlVum5fSspaxPJ575W/+ZEwwN2mktF7Bl5gDMpuFLuXvP97xkr66BOB4I+3g== @@ -10260,10 +10273,10 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" -mrmime@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== +mrmime@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== ms@2.0.0: version "2.0.0" @@ -11129,7 +11142,7 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== -pirates@^4.0.4, pirates@^4.0.5: +pirates@^4.0.4, pirates@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== @@ -11766,9 +11779,9 @@ postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + version "6.0.15" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz#11cc2b21eebc0b99ea374ffb9887174855a01535" + integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -11823,9 +11836,9 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.1 source-map "^0.6.1" postcss@^8.2.1, postcss@^8.3.11, postcss@^8.4.16, postcss@^8.4.28: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" @@ -12446,9 +12459,9 @@ regenerator-runtime@^0.11.0: integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" - integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + version "0.14.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== regenerator-transform@^0.15.2: version "0.15.2" @@ -12744,12 +12757,12 @@ rxjs@^7.5.1, rxjs@^7.8.1: tslib "^2.1.0" safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" has-symbols "^1.0.3" isarray "^2.0.5" @@ -12764,12 +12777,12 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + version "1.0.2" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" + integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" + call-bind "^1.0.5" + get-intrinsic "^1.2.2" is-regex "^1.1.4" safe-regex@^1.1.0: @@ -12954,14 +12967,15 @@ set-blocking@^2.0.0: integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" + integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== dependencies: define-data-property "^1.1.1" - get-intrinsic "^1.2.1" + function-bind "^1.1.2" + get-intrinsic "^1.2.2" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.1" set-function-name@^2.0.0, set-function-name@^2.0.1: version "2.0.1" @@ -13061,12 +13075,12 @@ signal-exit@^4.0.1: integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sirv@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.3.tgz#ca5868b87205a74bef62a469ed0296abceccd446" - integrity sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA== + version "2.0.4" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.4.tgz#5dd9a725c578e34e449f332703eb2a74e46a29b0" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== dependencies: - "@polka/url" "^1.0.0-next.20" - mrmime "^1.0.0" + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" totalist "^3.0.0" sisteransi@^1.0.5: @@ -13401,9 +13415,9 @@ stream-http@^2.7.2: xtend "^4.0.0" stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.2.tgz#548bff71c92322e1ade886979f7f67c0723eb9e4" + integrity sha512-rV4Bovi9xx0BFzOb/X0B2GqoIjvqPCttZdu0Wgtx2Dxkj7ETyWl9gmqJ4EutWRLvtZWm8dxE+InQZX1IryZn/w== string-length@^4.0.1: version "4.0.2" @@ -13610,9 +13624,9 @@ stylelint-config-standard@^34.0.0: stylelint-config-recommended "^13.0.0" stylelint-scss@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-5.3.1.tgz#7f0f5f06d0a2a3c515aa71d3a8de3548045e03e1" - integrity sha512-5I9ZDIm77BZrjOccma5WyW2nJEKjXDd4Ca8Kk+oBapSO4pewSlno3n+OyimcyVJJujQZkBN2D+xuMkIamSc6hA== + version "5.3.2" + resolved "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-5.3.2.tgz#c54564dfbd98de0c08742b9c43025cda91acf940" + integrity sha512-4LzLaayFhFyneJwLo0IUa8knuIvj+zF0vBFueQs4e3tEaAMIQX8q5th8ziKkgOavr6y/y9yoBe+RXN/edwLzsQ== dependencies: known-css-properties "^0.29.0" postcss-media-query-parser "^0.2.3" @@ -13884,9 +13898,9 @@ terser@^4.1.2, terser@^4.6.3: source-map-support "~0.5.12" terser@^5.3.4: - version "5.25.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.25.0.tgz#6579b4cca45b08bf0fdaa1a04605fd5860dfb2ac" - integrity sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg== + version "5.26.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" + integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -14093,9 +14107,9 @@ ts-morph@^13.0.1: code-block-writer "^11.0.0" ts-node@^10.9.1: - version "10.9.1" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" @@ -14123,10 +14137,10 @@ ts-prune@^0.10.3: "true-myth" "^4.1.0" ts-morph "^13.0.1" -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -14474,9 +14488,9 @@ url@^0.11.0: qs "^6.11.2" use-callback-ref@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5" - integrity sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w== + version "1.3.1" + resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.1.tgz#9be64c3902cbd72b07fe55e56408ae3a26036fd0" + integrity sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ== dependencies: tslib "^2.0.0" @@ -15055,9 +15069,9 @@ ws@^7.3.1: integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== ws@^8.0.0, ws@^8.11.0: - version "8.14.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== xml-name-validator@^4.0.0: version "4.0.0" @@ -15198,8 +15212,3 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - -zxcvbn@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/zxcvbn/-/zxcvbn-4.4.2.tgz#28ec17cf09743edcab056ddd8b1b06262cc73c30" - integrity sha512-Bq0B+ixT/DMyG8kgX2xWcI5jUvCwqrMxSFam7m0lAf78nf04hv6lNCsyLYdyYTrCVMqNDY/206K7eExYCeSyUQ==