From e72dfc3bfd0a0abc06beb8e216f4f49f427621c0 Mon Sep 17 00:00:00 2001
From: 7heMech <83923848+7heMech@users.noreply.github.com>
Date: Wed, 4 Feb 2026 12:14:10 +0000
Subject: [PATCH 01/89] Add reuseport to improve performance and reduce packet
drops
---
backend/templates/stream.conf | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/backend/templates/stream.conf b/backend/templates/stream.conf
index 3a10387b..d365897a 100644
--- a/backend/templates/stream.conf
+++ b/backend/templates/stream.conf
@@ -5,8 +5,8 @@
{% if enabled %}
{% if tcp_forwarding == 1 or tcp_forwarding == true -%}
server {
- listen {{ incoming_port }} {%- if certificate %} ssl {%- endif %};
- {% unless ipv6 -%} # {%- endunless -%} listen [::]:{{ incoming_port }} {%- if certificate %} ssl {%- endif %};
+ listen {{ incoming_port }} reuseport {%- if certificate %} ssl {%- endif %};
+ {% unless ipv6 -%} # {%- endunless -%} listen [::]:{{ incoming_port }} reuseport {%- if certificate %} ssl {%- endif %};
{%- include "_certificates_stream.conf" %}
@@ -23,8 +23,8 @@ server {
{% if udp_forwarding == 1 or udp_forwarding == true -%}
server {
- listen {{ incoming_port }} udp;
- {% unless ipv6 -%} # {%- endunless -%} listen [::]:{{ incoming_port }} udp;
+ listen {{ incoming_port }} udp reuseport;
+ {% unless ipv6 -%} # {%- endunless -%} listen [::]:{{ incoming_port }} udp reuseport;
proxy_pass {{ forwarding_host }}:{{ forwarding_port }};
From 7e5f8d824bb9bfd7a8db785be18197c1975fb082 Mon Sep 17 00:00:00 2001
From: MarioGervais <17948611+MarioGervais@users.noreply.github.com>
Date: Wed, 25 Feb 2026 20:55:27 -0500
Subject: [PATCH 02/89] Update fr.json
feat(i18n): complete French translation - add missing certificate key-type strings
---
frontend/src/locale/src/fr.json | 1299 ++++++++++++++++---------------
1 file changed, 654 insertions(+), 645 deletions(-)
diff --git a/frontend/src/locale/src/fr.json b/frontend/src/locale/src/fr.json
index c715c028..d8a6de69 100644
--- a/frontend/src/locale/src/fr.json
+++ b/frontend/src/locale/src/fr.json
@@ -1,647 +1,656 @@
{
- "access-list": {
- "defaultMessage": "Liste d'accès"
- },
- "access-list.access-count": {
- "defaultMessage": "{count} {count, plural, one {Règle} other {Règles}}"
- },
- "access-list.auth-count": {
- "defaultMessage": "{count} {count, plural, one {Utilisateur} other {Utilisateurs}}"
- },
- "access-list.help-rules-last": {
- "defaultMessage": "S'il existe au moins une règle, cette règle de refuser tout sera ajoutée en dernier."
- },
- "access-list.help.rules-order": {
- "defaultMessage": "Notez que les directives autoriser et refuser seront appliquées dans l'ordre où elles sont définies."
- },
- "access-list.pass-auth": {
- "defaultMessage": "Transmettre l'authentification au serveur en amont"
- },
- "access-list.public": {
- "defaultMessage": "Accessible au public"
- },
- "access-list.public.subtitle": {
- "defaultMessage": "Aucune authentification de base requise"
- },
- "access-list.satisfy-any": {
- "defaultMessage": "Valide n'importe quelle règle"
- },
- "access-list.subtitle": {
- "defaultMessage": "{utilisateurs} {utilisateurs, plural, one {Utilisateur} other {Utilisateurs}}, {règles} {règles, plural, one {Règle} other {Règles}} - Crée : {date}"
- },
- "access-lists": {
- "defaultMessage": "Listes d'accès"
- },
- "action.add": {
- "defaultMessage": "Ajouter"
- },
- "action.add-location": {
- "defaultMessage": "Ajouter localisation"
- },
- "action.close": {
- "defaultMessage": "Fermer"
- },
- "action.delete": {
- "defaultMessage": "Supprimer"
- },
- "action.disable": {
- "defaultMessage": "Désactiver"
- },
- "action.download": {
- "defaultMessage": "Télécharger"
- },
- "action.edit": {
- "defaultMessage": "Modifier"
- },
- "action.enable": {
- "defaultMessage": "Activer"
- },
- "action.permissions": {
- "defaultMessage": "Permissions"
- },
- "action.renew": {
- "defaultMessage": "Renouveler"
- },
- "action.view-details": {
- "defaultMessage": "Voir les Détails"
- },
- "auditlogs": {
- "defaultMessage": "Journaux d'audit"
- },
- "cancel": {
- "defaultMessage": "Annuler"
- },
- "certificate": {
- "defaultMessage": "Certificat"
- },
- "certificate.custom-certificate": {
- "defaultMessage": "Certificat"
- },
- "certificate.custom-certificate-key": {
- "defaultMessage": "Clé du Certificat"
- },
- "certificate.custom-intermediate": {
- "defaultMessage": "Certificat intermédiaire"
- },
- "certificate.in-use": {
- "defaultMessage": "Utilisé"
- },
- "certificate.none.subtitle": {
- "defaultMessage": "Aucun certificat assigné"
- },
- "certificate.none.subtitle.for-http": {
- "defaultMessage": "Cet hôte n'utilisera pas le HTTPS"
- },
- "certificate.none.title": {
- "defaultMessage": "Aucun"
- },
- "certificate.not-in-use": {
- "defaultMessage": "Non utilisé"
- },
- "certificate.renew": {
- "defaultMessage": "Renouveler Certificat"
- },
- "certificates": {
- "defaultMessage": "Certificats"
- },
- "certificates.custom": {
- "defaultMessage": "Certificat personnalisé"
- },
- "certificates.custom.warning": {
- "defaultMessage": "Les fichiers de clé protégés par une passphrase ne sont pas acceptés."
- },
- "certificates.dns.credentials": {
- "defaultMessage": "Contenu du fichier d'identifiants"
- },
- "certificates.dns.credentials-note": {
- "defaultMessage": "Ce plugin nécessite un fichier de configuration contenant un jeton d'API ou d'autres informations d'identification pour votre fournisseur."
- },
- "certificates.dns.credentials-warning": {
- "defaultMessage": "Ces données seront stockées en clair dans la base de données et dans un fichier !"
- },
- "certificates.dns.propagation-seconds": {
- "defaultMessage": "Propagation Seconds"
- },
- "certificates.dns.propagation-seconds-note": {
- "defaultMessage": "Laisser vide pour utiliser la valeur par défaut du plugin. Nombre de secondes à attendre pour la propagation DNS."
- },
- "certificates.dns.provider": {
- "defaultMessage": "Fournisseur DNS"
- },
- "certificates.dns.warning": {
- "defaultMessage": "Cette section requiert une certaine connaissance de Certbot et de ses plugins DNS. Veuillez consulter la documentation des plugins correspondants."
- },
- "certificates.http.reachability-404": {
- "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il ne semble pas s'agir de Nginx Proxy Manager. Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
- },
- "certificates.http.reachability-failed-to-check": {
- "defaultMessage": "Impossible de vérifier l'accessibilité en raison d'une erreur de communication avec site24x7.com."
- },
- "certificates.http.reachability-not-resolved": {
- "defaultMessage": "Aucun serveur n'est disponible pour ce domaine. Veuillez vérifier que votre domaine existe et pointe vers l'adresse IP où votre instance NPM est exécutée. Si nécessaire, le port 80 est ouvert dans votre routeur."
- },
- "certificates.http.reachability-ok": {
- "defaultMessage": "Votre serveur est accessible et la création de certificats devrait être possible."
- },
- "certificates.http.reachability-other": {
- "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il a renvoyé un code d'état inattendu {code}. S'agit-il du serveur NPM ? Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
- },
- "certificates.http.reachability-wrong-data": {
- "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il a renvoyé des données inattendues. S'agit-il du serveur NPM ? Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
- },
- "certificates.http.test-results": {
- "defaultMessage": "Résultats du test"
- },
- "certificates.http.warning": {
- "defaultMessage": "Ces domaines doivent déjà être configurés pour pointer vers cette installation."
- },
- "certificates.request.subtitle": {
- "defaultMessage": "avec Let's Encrypt"
- },
- "certificates.request.title": {
- "defaultMessage": "Demander un nouveau certificat"
- },
- "column.access": {
- "defaultMessage": "Accès"
- },
- "column.authorization": {
- "defaultMessage": "Autorisation"
- },
- "column.authorizations": {
- "defaultMessage": "Autorisations"
- },
- "column.custom-locations": {
- "defaultMessage": "Emplacement personnalisé"
- },
- "column.destination": {
- "defaultMessage": "Destination"
- },
- "column.details": {
- "defaultMessage": "Détails"
- },
- "column.email": {
- "defaultMessage": "eMail"
- },
- "column.event": {
- "defaultMessage": "Évènement"
- },
- "column.expires": {
- "defaultMessage": "Expire"
- },
- "column.http-code": {
- "defaultMessage": "Code HTTP"
- },
- "column.incoming-port": {
- "defaultMessage": "Port entrant"
- },
- "column.name": {
- "defaultMessage": "Nom"
- },
- "column.protocol": {
- "defaultMessage": "Protocole"
- },
- "column.provider": {
- "defaultMessage": "Fournisseur"
- },
- "column.roles": {
- "defaultMessage": "Rôles"
- },
- "column.rules": {
- "defaultMessage": "Règles"
- },
- "column.satisfy": {
- "defaultMessage": "Valide"
- },
- "column.satisfy-all": {
- "defaultMessage": "All"
- },
- "column.satisfy-any": {
- "defaultMessage": "Any"
- },
- "column.scheme": {
- "defaultMessage": "Schéma"
- },
- "column.source": {
- "defaultMessage": "Source"
- },
- "column.ssl": {
- "defaultMessage": "SSL"
- },
- "column.status": {
- "defaultMessage": "Statut"
- },
- "created-on": {
- "defaultMessage": "Créé : {date}"
- },
- "dashboard": {
- "defaultMessage": "Tableau de bord"
- },
- "dead-host": {
- "defaultMessage": "Hôte 404"
- },
- "dead-hosts": {
- "defaultMessage": "Hôtes 404"
- },
- "dead-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Hôte 404} other {Hôtes 404}}"
- },
- "disabled": {
- "defaultMessage": "Désactivé"
- },
- "domain-names": {
- "defaultMessage": "Noms de domaine"
- },
- "domain-names.max": {
- "defaultMessage": "{count} noms de domaine au maximum"
- },
- "domain-names.placeholder": {
- "defaultMessage": "Commencez à écrire pour ajouter un domaine…"
- },
- "domain-names.wildcards-not-permitted": {
- "defaultMessage": "Les Wildcards ne sont pas permises dans ce cas"
- },
- "domain-names.wildcards-not-supported": {
- "defaultMessage": "Les Wildcards ne sont pas prises en charge par cette autorité de certification."
- },
- "domains.force-ssl": {
- "defaultMessage": "Forcer SSL"
- },
- "domains.hsts-enabled": {
- "defaultMessage": "HSTS activé"
- },
- "domains.hsts-subdomains": {
- "defaultMessage": "Sous-domaines HSTS"
- },
- "domains.http2-support": {
- "defaultMessage": "Prise en charge de HTTP/2"
- },
- "domains.use-dns": {
- "defaultMessage": "Utiliser le challenge DNS"
- },
- "email-address": {
- "defaultMessage": "Adresse eMail"
- },
- "empty-search": {
- "defaultMessage": "Aucun résultat trouvé"
- },
- "empty-subtitle": {
- "defaultMessage": "Pourquoi n'en créez-vous pas un ?"
- },
- "enabled": {
- "defaultMessage": "Activé"
- },
- "error.access.at-least-one": {
- "defaultMessage": "Une autorisation ou une règle d'accès est requise."
- },
- "error.access.duplicate-usernames": {
- "defaultMessage": "Les noms d'utilisateurs autorisés doivent être uniques"
- },
- "error.invalid-auth": {
- "defaultMessage": "Adresse eMail ou mot de passe invalide"
- },
- "error.invalid-domain": {
- "defaultMessage": "Domaine invalide : {domain}"
- },
- "error.invalid-email": {
- "defaultMessage": "Adresse eMail invalide"
- },
- "error.max-character-length": {
- "defaultMessage": "La longueur maximale est {max} caractère{max, plural, one {} other {s}}"
- },
- "error.max-domains": {
- "defaultMessage": "Trop de domaines, le maximum est {max}"
- },
- "error.maximum": {
- "defaultMessage": "Le maximum est {max}"
- },
- "error.min-character-length": {
- "defaultMessage": "La longueur minimale est {min} caractère{min, plural, one {} other {s}}"
- },
- "error.minimum": {
- "defaultMessage": "Le minimum est {min}"
- },
- "error.passwords-must-match": {
- "defaultMessage": "Les mots de passe doivent correspondre"
- },
- "error.required": {
- "defaultMessage": "Ceci est obligatoire"
- },
- "expires.on": {
- "defaultMessage": "Expire : {date}"
- },
- "footer.github-fork": {
- "defaultMessage": "Forkez-moi sur Github"
- },
- "host.flags.block-exploits": {
- "defaultMessage": "Bloquer les exploits courants"
- },
- "host.flags.cache-assets": {
- "defaultMessage": "Ressources du cache"
- },
- "host.flags.preserve-path": {
- "defaultMessage": "Préserver le chemin"
- },
- "host.flags.protocols": {
- "defaultMessage": "Protocoles"
- },
- "host.flags.websockets-upgrade": {
- "defaultMessage": "Prise en charge de Websockets"
- },
- "host.forward-port": {
- "defaultMessage": "Port de redirection"
- },
- "host.forward-scheme": {
- "defaultMessage": "Schéma"
- },
- "hosts": {
- "defaultMessage": "Hôtes"
- },
- "http-only": {
- "defaultMessage": "HTTP uniquement"
- },
- "lets-encrypt": {
- "defaultMessage": "Let's Encrypt"
- },
- "lets-encrypt-via-dns": {
- "defaultMessage": "Let's Encrypt via DNS"
- },
- "lets-encrypt-via-http": {
- "defaultMessage": "Let's Encrypt via HTTP"
- },
- "loading": {
- "defaultMessage": "Chargement…"
- },
- "login.title": {
- "defaultMessage": "Connectez-vous à votre compte"
- },
- "nginx-config.label": {
- "defaultMessage": "Configuration Nginx personnalisée"
- },
- "nginx-config.placeholder": {
- "defaultMessage": "# Mettez ici votre configuration Nginx personnalisé à vos risques et périls !"
- },
- "no-permission-error": {
- "defaultMessage": "Vous n'avez pas la permission de voir ce contenu."
- },
- "notfound.action": {
- "defaultMessage": "Ramenez-moi à l'accueil"
- },
- "notfound.content": {
- "defaultMessage": "Nous sommes désolés, mais la page que vous cherchez est introuvable"
- },
- "notfound.title": {
- "defaultMessage": "Oops… Vous avez découvert une page d'erreur"
- },
- "notification.error": {
- "defaultMessage": "Erreur"
- },
- "notification.object-deleted": {
- "defaultMessage": "{object} a été supprimé"
- },
- "notification.object-disabled": {
- "defaultMessage": "{object} a été désactivé"
- },
- "notification.object-enabled": {
- "defaultMessage": "{object} a été activé"
- },
- "notification.object-renewed": {
- "defaultMessage": "{object} a été renouvelé"
- },
- "notification.object-saved": {
- "defaultMessage": "{object} a été enregistré"
- },
- "notification.success": {
- "defaultMessage": "Réussi"
- },
- "object.actions-title": {
- "defaultMessage": "{object} #{id}"
- },
- "object.add": {
- "defaultMessage": "Ajouter {object}"
- },
- "object.delete": {
- "defaultMessage": "Supprimer {object}"
- },
- "object.delete.content": {
- "defaultMessage": "Êtes-vous sûr de vouloir supprimer {object} ?"
- },
- "object.edit": {
- "defaultMessage": "Modifier {object}"
- },
- "object.empty": {
- "defaultMessage": "Il n'y a aucun {objects}"
- },
- "object.event.created": {
- "defaultMessage": "{object} créé"
- },
- "object.event.deleted": {
- "defaultMessage": "{object} supprimé"
- },
- "object.event.disabled": {
- "defaultMessage": "{object} désactivé"
- },
- "object.event.enabled": {
- "defaultMessage": "{object} activé"
- },
- "object.event.renewed": {
- "defaultMessage": "{object} renouvelé"
- },
- "object.event.updated": {
- "defaultMessage": "{object} mis à jour"
- },
- "offline": {
- "defaultMessage": "Hors ligne"
- },
- "online": {
- "defaultMessage": "En ligne"
- },
- "options": {
- "defaultMessage": "Options"
- },
- "password": {
- "defaultMessage": "Mot de passe"
- },
- "password.generate": {
- "defaultMessage": "Générer un mot de passe aléatoire"
- },
- "password.hide": {
- "defaultMessage": "Masquer le mot de passe"
- },
- "password.show": {
- "defaultMessage": "Afficher le mot de passe"
- },
- "permissions.hidden": {
- "defaultMessage": "Masquer"
- },
- "permissions.manage": {
- "defaultMessage": "Gérer"
- },
- "permissions.view": {
- "defaultMessage": "Voir uniquement"
- },
- "permissions.visibility.all": {
- "defaultMessage": "Tous les éléments"
- },
- "permissions.visibility.title": {
- "defaultMessage": "Éléments visibles"
- },
- "permissions.visibility.user": {
- "defaultMessage": "Éléments créés uniquement"
- },
- "proxy-host": {
- "defaultMessage": "Hôte proxy"
- },
- "proxy-host.forward-host": {
- "defaultMessage": "Nom d'hôte de redirection / IP"
- },
- "proxy-hosts": {
- "defaultMessage": "Hôtes proxy"
- },
- "proxy-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Hôte proxy} other {Hôtes proxy}}"
- },
- "public": {
- "defaultMessage": "Publique"
- },
- "redirection-host": {
- "defaultMessage": "Hôte de redirection"
- },
- "redirection-host.forward-domain": {
- "defaultMessage": "Domaine de redirection"
- },
- "redirection-host.forward-http-code": {
- "defaultMessage": "Code HTTP"
- },
- "redirection-hosts": {
- "defaultMessage": "Hôtes de redirection"
- },
- "redirection-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Hôte de redirection} other {Hôtes de redirection}}"
- },
- "role.admin": {
- "defaultMessage": "Administrateur"
- },
- "role.standard-user": {
- "defaultMessage": "Utilisateur standard"
- },
- "save": {
- "defaultMessage": "Enregistrer"
- },
- "setting": {
- "defaultMessage": "Paramètre"
- },
- "settings": {
- "defaultMessage": "Paramètres"
- },
- "settings.default-site": {
- "defaultMessage": "Site par défaut"
- },
- "settings.default-site.404": {
- "defaultMessage": "Page 404"
- },
- "settings.default-site.444": {
- "defaultMessage": "Aucune réponse (444)"
- },
- "settings.default-site.congratulations": {
- "defaultMessage": "Page de félicitations"
- },
- "settings.default-site.description": {
- "defaultMessage": "ce qu'il faut afficher lorsqu'un hôte inconnu est détecté par Nginx"
- },
- "settings.default-site.html": {
- "defaultMessage": "HTML personnalisé"
- },
- "settings.default-site.html.placeholder": {
- "defaultMessage": ""
- },
- "settings.default-site.redirect": {
- "defaultMessage": "Redirection"
- },
- "setup.preamble": {
- "defaultMessage": "Commencez par créer votre compte administrateur."
- },
- "setup.title": {
- "defaultMessage": "Bienvenue !"
- },
- "sign-in": {
- "defaultMessage": "Se connecter"
- },
- "ssl-certificate": {
- "defaultMessage": "Certificat SSL"
- },
- "stream": {
- "defaultMessage": "Stream"
- },
- "stream.forward-host": {
- "defaultMessage": "Hôte destinataire"
- },
- "stream.incoming-port": {
- "defaultMessage": "Port d'entrée"
- },
- "streams": {
- "defaultMessage": "Streams"
- },
- "streams.count": {
- "defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}"
- },
- "streams.tcp": {
- "defaultMessage": "TCP"
- },
- "streams.udp": {
- "defaultMessage": "UDP"
- },
- "test": {
- "defaultMessage": "Test"
- },
- "update-available": {
- "defaultMessage": "Mise à jour disponible : {latestVersion}"
- },
- "user": {
- "defaultMessage": "Utilisateur"
- },
- "user.change-password": {
- "defaultMessage": "Modifier le mot de passe"
- },
- "user.confirm-password": {
- "defaultMessage": "Confirmer le mot de passe"
- },
- "user.current-password": {
- "defaultMessage": "Mot de passe actuel"
- },
- "user.edit-profile": {
- "defaultMessage": "Modifier le profil"
- },
- "user.full-name": {
- "defaultMessage": "Nom complet"
- },
- "user.login-as": {
- "defaultMessage": "Se connecter en tant que {name}"
- },
- "user.logout": {
- "defaultMessage": "Déconnexion"
- },
- "user.new-password": {
- "defaultMessage": "Nouveau mot de passe"
- },
- "user.nickname": {
- "defaultMessage": "Pseudonyme"
- },
- "user.set-password": {
- "defaultMessage": "Définir le mot de passe"
- },
- "user.set-permissions": {
- "defaultMessage": "Définir les autorisations pour {name}"
- },
- "user.switch-dark": {
- "defaultMessage": "Passer au mode Sombre"
- },
- "user.switch-light": {
- "defaultMessage": "Passer au mode Lumineux"
- },
- "username": {
- "defaultMessage": "Nom d'utilisateur"
- },
- "users": {
- "defaultMessage": "Utilisateurs"
- }
+ "access-list": {
+ "defaultMessage": "Liste d'accès"
+ },
+ "access-list.access-count": {
+ "defaultMessage": "{count} {count, plural, one {Règle} other {Règles}}"
+ },
+ "access-list.auth-count": {
+ "defaultMessage": "{count} {count, plural, one {Utilisateur} other {Utilisateurs}}"
+ },
+ "access-list.help-rules-last": {
+ "defaultMessage": "S'il existe au moins une règle, cette règle de refuser tout sera ajoutée en dernier."
+ },
+ "access-list.help.rules-order": {
+ "defaultMessage": "Notez que les directives autoriser et refuser seront appliquées dans l'ordre où elles sont définies."
+ },
+ "access-list.pass-auth": {
+ "defaultMessage": "Transmettre l'authentification au serveur en amont"
+ },
+ "access-list.public": {
+ "defaultMessage": "Accessible au public"
+ },
+ "access-list.public.subtitle": {
+ "defaultMessage": "Aucune authentification de base requise"
+ },
+ "access-list.satisfy-any": {
+ "defaultMessage": "Valide n'importe quelle règle"
+ },
+ "access-list.subtitle": {
+ "defaultMessage": "{utilisateurs} {utilisateurs, plural, one {Utilisateur} other {Utilisateurs}}, {règles} {règles, plural, one {Règle} other {Règles}} - Crée : {date}"
+ },
+ "access-lists": {
+ "defaultMessage": "Listes d'accès"
+ },
+ "action.add": {
+ "defaultMessage": "Ajouter"
+ },
+ "action.add-location": {
+ "defaultMessage": "Ajouter localisation"
+ },
+ "action.close": {
+ "defaultMessage": "Fermer"
+ },
+ "action.delete": {
+ "defaultMessage": "Supprimer"
+ },
+ "action.disable": {
+ "defaultMessage": "Désactiver"
+ },
+ "action.download": {
+ "defaultMessage": "Télécharger"
+ },
+ "action.edit": {
+ "defaultMessage": "Modifier"
+ },
+ "action.enable": {
+ "defaultMessage": "Activer"
+ },
+ "action.permissions": {
+ "defaultMessage": "Permissions"
+ },
+ "action.renew": {
+ "defaultMessage": "Renouveler"
+ },
+ "action.view-details": {
+ "defaultMessage": "Voir les Détails"
+ },
+ "auditlogs": {
+ "defaultMessage": "Journaux d'audit"
+ },
+ "cancel": {
+ "defaultMessage": "Annuler"
+ },
+ "certificate": {
+ "defaultMessage": "Certificat"
+ },
+ "certificate.custom-certificate": {
+ "defaultMessage": "Certificat"
+ },
+ "certificate.custom-certificate-key": {
+ "defaultMessage": "Clé du Certificat"
+ },
+ "certificate.custom-intermediate": {
+ "defaultMessage": "Certificat intermédiaire"
+ },
+ "certificate.in-use": {
+ "defaultMessage": "Utilisé"
+ },
+ "certificate.none.subtitle": {
+ "defaultMessage": "Aucun certificat assigné"
+ },
+ "certificate.none.subtitle.for-http": {
+ "defaultMessage": "Cet hôte n'utilisera pas le HTTPS"
+ },
+ "certificate.none.title": {
+ "defaultMessage": "Aucun"
+ },
+ "certificate.not-in-use": {
+ "defaultMessage": "Non utilisé"
+ },
+ "certificate.renew": {
+ "defaultMessage": "Renouveler Certificat"
+ },
+ "certificates": {
+ "defaultMessage": "Certificats"
+ },
+ "certificates.custom": {
+ "defaultMessage": "Certificat personnalisé"
+ },
+ "certificates.custom.warning": {
+ "defaultMessage": "Les fichiers de clé protégés par une passphrase ne sont pas acceptés."
+ },
+ "certificates.dns.credentials": {
+ "defaultMessage": "Contenu du fichier d'identifiants"
+ },
+ "certificates.dns.credentials-note": {
+ "defaultMessage": "Ce plugin nécessite un fichier de configuration contenant un jeton d'API ou d'autres informations d'identification pour votre fournisseur."
+ },
+ "certificates.dns.credentials-warning": {
+ "defaultMessage": "Ces données seront stockées en clair dans la base de données et dans un fichier !"
+ },
+ "certificates.dns.propagation-seconds": {
+ "defaultMessage": "Propagation Seconds"
+ },
+ "certificates.dns.propagation-seconds-note": {
+ "defaultMessage": "Laisser vide pour utiliser la valeur par défaut du plugin. Nombre de secondes à attendre pour la propagation DNS."
+ },
+ "certificates.dns.provider": {
+ "defaultMessage": "Fournisseur DNS"
+ },
+ "certificates.dns.warning": {
+ "defaultMessage": "Cette section requiert une certaine connaissance de Certbot et de ses plugins DNS. Veuillez consulter la documentation des plugins correspondants."
+ },
+ "certificates.http.reachability-404": {
+ "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il ne semble pas s'agir de Nginx Proxy Manager. Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
+ },
+ "certificates.http.reachability-failed-to-check": {
+ "defaultMessage": "Impossible de vérifier l'accessibilité en raison d'une erreur de communication avec site24x7.com."
+ },
+ "certificates.http.reachability-not-resolved": {
+ "defaultMessage": "Aucun serveur n'est disponible pour ce domaine. Veuillez vérifier que votre domaine existe et pointe vers l'adresse IP où votre instance NPM est exécutée. Si nécessaire, le port 80 est ouvert dans votre routeur."
+ },
+ "certificates.http.reachability-ok": {
+ "defaultMessage": "Votre serveur est accessible et la création de certificats devrait être possible."
+ },
+ "certificates.http.reachability-other": {
+ "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il a renvoyé un code d'état inattendu {code}. S'agit-il du serveur NPM ? Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
+ },
+ "certificates.http.reachability-wrong-data": {
+ "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il a renvoyé des données inattendues. S'agit-il du serveur NPM ? Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
+ },
+ "certificates.http.test-results": {
+ "defaultMessage": "Résultats du test"
+ },
+ "certificates.http.warning": {
+ "defaultMessage": "Ces domaines doivent déjà être configurés pour pointer vers cette installation."
+ },
+ "certificates.key-type": {
+ "defaultMessage": "Type de clé"
+ },
+ "certificates.key-type-description": {
+ "defaultMessage": "RSA est largement répandu, ECDSA est plus rapide et plus sécurisé, mais peut ne pas être supporté par les systèmes plus anciens"
+ },
+ "certificates.key-type-ecdsa": {
+ "defaultMessage": "ECDSA 256"
+ },
+ "certificates.key-type-rsa": {
+ "defaultMessage": "RSA 2048"
+ },
+ "certificates.request.subtitle": {
+ "defaultMessage": "avec Let's Encrypt"
+ },
+ "certificates.request.title": {
+ "defaultMessage": "Demander un nouveau certificat"
+ },
+ "column.access": {
+ "defaultMessage": "Accès"
+ },
+ "column.authorization": {
+ "defaultMessage": "Autorisation"
+ },
+ "column.authorizations": {
+ "defaultMessage": "Autorisations"
+ },
+ "column.custom-locations": {
+ "defaultMessage": "Emplacement personnalisé"
+ },
+ "column.destination": {
+ "defaultMessage": "Destination"
+ },
+ "column.details": {
+ "defaultMessage": "Détails"
+ },
+ "column.email": {
+ "defaultMessage": "eMail"
+ },
+ "column.event": {
+ "defaultMessage": "Évènement"
+ },
+ "column.expires": {
+ "defaultMessage": "Expire"
+ },
+ "column.http-code": {
+ "defaultMessage": "Code HTTP"
+ },
+ "column.incoming-port": {
+ "defaultMessage": "Port entrant"
+ },
+ "column.name": {
+ "defaultMessage": "Nom"
+ },
+ "column.protocol": {
+ "defaultMessage": "Protocole"
+ },
+ "column.provider": {
+ "defaultMessage": "Fournisseur"
+ },
+ "column.roles": {
+ "defaultMessage": "Rôles"
+ },
+ "column.rules": {
+ "defaultMessage": "Règles"
+ },
+ "column.satisfy": {
+ "defaultMessage": "Valide"
+ },
+ "column.satisfy-all": {
+ "defaultMessage": "All"
+ },
+ "column.satisfy-any": {
+ "defaultMessage": "Any"
+ },
+ "column.scheme": {
+ "defaultMessage": "Schéma"
+ },
+ "column.source": {
+ "defaultMessage": "Source"
+ },
+ "column.ssl": {
+ "defaultMessage": "SSL"
+ },
+ "column.status": {
+ "defaultMessage": "Statut"
+ },
+ "created-on": {
+ "defaultMessage": "Créé : {date}"
+ },
+ "dashboard": {
+ "defaultMessage": "Tableau de bord"
+ },
+ "dead-host": {
+ "defaultMessage": "Hôte 404"
+ },
+ "dead-hosts": {
+ "defaultMessage": "Hôtes 404"
+ },
+ "dead-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {Hôte 404} other {Hôtes 404}}"
+ },
+ "disabled": {
+ "defaultMessage": "Désactivé"
+ },
+ "domain-names": {
+ "defaultMessage": "Noms de domaine"
+ },
+ "domain-names.max": {
+ "defaultMessage": "{count} noms de domaine au maximum"
+ },
+ "domain-names.placeholder": {
+ "defaultMessage": "Commencez à écrire pour ajouter un domaine…"
+ },
+ "domain-names.wildcards-not-permitted": {
+ "defaultMessage": "Les Wildcards ne sont pas permises dans ce cas"
+ },
+ "domain-names.wildcards-not-supported": {
+ "defaultMessage": "Les Wildcards ne sont pas prises en charge par cette autorité de certification."
+ },
+ "domains.force-ssl": {
+ "defaultMessage": "Forcer SSL"
+ },
+ "domains.hsts-enabled": {
+ "defaultMessage": "HSTS activé"
+ },
+ "domains.hsts-subdomains": {
+ "defaultMessage": "Sous-domaines HSTS"
+ },
+ "domains.http2-support": {
+ "defaultMessage": "Prise en charge de HTTP/2"
+ },
+ "domains.use-dns": {
+ "defaultMessage": "Utiliser le challenge DNS"
+ },
+ "email-address": {
+ "defaultMessage": "Adresse eMail"
+ },
+ "empty-search": {
+ "defaultMessage": "Aucun résultat trouvé"
+ },
+ "empty-subtitle": {
+ "defaultMessage": "Pourquoi n'en créez-vous pas un ?"
+ },
+ "enabled": {
+ "defaultMessage": "Activé"
+ },
+ "error.access.at-least-one": {
+ "defaultMessage": "Une autorisation ou une règle d'accès est requise."
+ },
+ "error.access.duplicate-usernames": {
+ "defaultMessage": "Les noms d'utilisateurs autorisés doivent être uniques"
+ },
+ "error.invalid-auth": {
+ "defaultMessage": "Adresse eMail ou mot de passe invalide"
+ },
+ "error.invalid-domain": {
+ "defaultMessage": "Domaine invalide : {domain}"
+ },
+ "error.invalid-email": {
+ "defaultMessage": "Adresse eMail invalide"
+ },
+ "error.max-character-length": {
+ "defaultMessage": "La longueur maximale est {max} caractère{max, plural, one {} other {s}}"
+ },
+ "error.max-domains": {
+ "defaultMessage": "Trop de domaines, le maximum est {max}"
+ },
+ "error.maximum": {
+ "defaultMessage": "Le maximum est {max}"
+ },
+ "error.min-character-length": {
+ "defaultMessage": "La longueur minimale est {min} caractère{min, plural, one {} other {s}}"
+ },
+ "error.minimum": {
+ "defaultMessage": "Le minimum est {min}"
+ },
+ "error.passwords-must-match": {
+ "defaultMessage": "Les mots de passe doivent correspondre"
+ },
+ "error.required": {
+ "defaultMessage": "Ceci est obligatoire"
+ },
+ "expires.on": {
+ "defaultMessage": "Expire : {date}"
+ },
+ "footer.github-fork": {
+ "defaultMessage": "Forkez-moi sur Github"
+ },
+ "host.flags.block-exploits": {
+ "defaultMessage": "Bloquer les exploits courants"
+ },
+ "host.flags.cache-assets": {
+ "defaultMessage": "Ressources du cache"
+ },
+ "host.flags.preserve-path": {
+ "defaultMessage": "Préserver le chemin"
+ },
+ "host.flags.protocols": {
+ "defaultMessage": "Protocoles"
+ },
+ "host.flags.websockets-upgrade": {
+ "defaultMessage": "Prise en charge de Websockets"
+ },
+ "host.forward-port": {
+ "defaultMessage": "Port de redirection"
+ },
+ "host.forward-scheme": {
+ "defaultMessage": "Schéma"
+ },
+ "hosts": {
+ "defaultMessage": "Hôtes"
+ },
+ "http-only": {
+ "defaultMessage": "HTTP uniquement"
+ },
+ "lets-encrypt": {
+ "defaultMessage": "Let's Encrypt"
+ },
+ "lets-encrypt-via-dns": {
+ "defaultMessage": "Let's Encrypt via DNS"
+ },
+ "lets-encrypt-via-http": {
+ "defaultMessage": "Let's Encrypt via HTTP"
+ },
+ "loading": {
+ "defaultMessage": "Chargement…"
+ },
+ "login.title": {
+ "defaultMessage": "Connectez-vous à votre compte"
+ },
+ "nginx-config.label": {
+ "defaultMessage": "Configuration Nginx personnalisée"
+ },
+ "nginx-config.placeholder": {
+ "defaultMessage": "# Mettez ici votre configuration Nginx personnalisé à vos risques et périls !"
+ },
+ "no-permission-error": {
+ "defaultMessage": "Vous n'avez pas la permission de voir ce contenu."
+ },
+ "notfound.action": {
+ "defaultMessage": "Ramenez-moi à l'accueil"
+ },
+ "notfound.content": {
+ "defaultMessage": "Nous sommes désolés, mais la page que vous cherchez est introuvable"
+ },
+ "notfound.title": {
+ "defaultMessage": "Oops… Vous avez découvert une page d'erreur"
+ },
+ "notification.error": {
+ "defaultMessage": "Erreur"
+ },
+ "notification.object-deleted": {
+ "defaultMessage": "{object} a été supprimé"
+ },
+ "notification.object-disabled": {
+ "defaultMessage": "{object} a été désactivé"
+ },
+ "notification.object-enabled": {
+ "defaultMessage": "{object} a été activé"
+ },
+ "notification.object-renewed": {
+ "defaultMessage": "{object} a été renouvelé"
+ },
+ "notification.object-saved": {
+ "defaultMessage": "{object} a été enregistré"
+ },
+ "notification.success": {
+ "defaultMessage": "Réussi"
+ },
+ "object.actions-title": {
+ "defaultMessage": "{object} #{id}"
+ },
+ "object.add": {
+ "defaultMessage": "Ajouter {object}"
+ },
+ "object.delete": {
+ "defaultMessage": "Supprimer {object}"
+ },
+ "object.delete.content": {
+ "defaultMessage": "Êtes-vous sûr de vouloir supprimer {object} ?"
+ },
+ "object.edit": {
+ "defaultMessage": "Modifier {object}"
+ },
+ "object.empty": {
+ "defaultMessage": "Il n'y a aucun {objects}"
+ },
+ "object.event.created": {
+ "defaultMessage": "{object} créé"
+ },
+ "object.event.deleted": {
+ "defaultMessage": "{object} supprimé"
+ },
+ "object.event.disabled": {
+ "defaultMessage": "{object} désactivé"
+ },
+ "object.event.enabled": {
+ "defaultMessage": "{object} activé"
+ },
+ "object.event.renewed": {
+ "defaultMessage": "{object} renouvelé"
+ },
+ "object.event.updated": {
+ "defaultMessage": "{object} mis à jour"
+ },
+ "offline": {
+ "defaultMessage": "Hors ligne"
+ },
+ "online": {
+ "defaultMessage": "En ligne"
+ },
+ "options": {
+ "defaultMessage": "Options"
+ },
+ "password": {
+ "defaultMessage": "Mot de passe"
+ },
+ "password.generate": {
+ "defaultMessage": "Générer un mot de passe aléatoire"
+ },
+ "password.hide": {
+ "defaultMessage": "Masquer le mot de passe"
+ },
+ "password.show": {
+ "defaultMessage": "Afficher le mot de passe"
+ },
+ "permissions.hidden": {
+ "defaultMessage": "Masquer"
+ },
+ "permissions.manage": {
+ "defaultMessage": "Gérer"
+ },
+ "permissions.view": {
+ "defaultMessage": "Voir uniquement"
+ },
+ "permissions.visibility.all": {
+ "defaultMessage": "Tous les éléments"
+ },
+ "permissions.visibility.title": {
+ "defaultMessage": "Éléments visibles"
+ },
+ "permissions.visibility.user": {
+ "defaultMessage": "Éléments créés uniquement"
+ },
+ "proxy-host": {
+ "defaultMessage": "Hôte proxy"
+ },
+ "proxy-host.forward-host": {
+ "defaultMessage": "Nom d'hôte de redirection / IP"
+ },
+ "proxy-hosts": {
+ "defaultMessage": "Hôtes proxy"
+ },
+ "proxy-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {Hôte proxy} other {Hôtes proxy}}"
+ },
+ "public": {
+ "defaultMessage": "Publique"
+ },
+ "redirection-host": {
+ "defaultMessage": "Hôte de redirection"
+ },
+ "redirection-host.forward-domain": {
+ "defaultMessage": "Domaine de redirection"
+ },
+ "redirection-host.forward-http-code": {
+ "defaultMessage": "Code HTTP"
+ },
+ "redirection-hosts": {
+ "defaultMessage": "Hôtes de redirection"
+ },
+ "redirection-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {Hôte de redirection} other {Hôtes de redirection}}"
+ },
+ "role.admin": {
+ "defaultMessage": "Administrateur"
+ },
+ "role.standard-user": {
+ "defaultMessage": "Utilisateur standard"
+ },
+ "save": {
+ "defaultMessage": "Enregistrer"
+ },
+ "setting": {
+ "defaultMessage": "Paramètre"
+ },
+ "settings": {
+ "defaultMessage": "Paramètres"
+ },
+ "settings.default-site": {
+ "defaultMessage": "Site par défaut"
+ },
+ "settings.default-site.404": {
+ "defaultMessage": "Page 404"
+ },
+ "settings.default-site.444": {
+ "defaultMessage": "Aucune réponse (444)"
+ },
+ "settings.default-site.congratulations": {
+ "defaultMessage": "Page de félicitations"
+ },
+ "settings.default-site.description": {
+ "defaultMessage": "ce qu'il faut afficher lorsqu'un hôte inconnu est détecté par Nginx"
+ },
+ "settings.default-site.html": {
+ "defaultMessage": "HTML personnalisé"
+ },
+ "settings.default-site.html.placeholder": {
+ "defaultMessage": ""
+ },
+ "settings.default-site.redirect": {
+ "defaultMessage": "Redirection"
+ },
+ "setup.preamble": {
+ "defaultMessage": "Commencez par créer votre compte administrateur."
+ },
+ "setup.title": {
+ "defaultMessage": "Bienvenue !"
+ },
+ "sign-in": {
+ "defaultMessage": "Se connecter"
+ },
+ "ssl-certificate": {
+ "defaultMessage": "Certificat SSL"
+ },
+ "stream": {
+ "defaultMessage": "Stream"
+ },
+ "stream.forward-host": {
+ "defaultMessage": "Hôte destinataire"
+ },
+ "stream.incoming-port": {
+ "defaultMessage": "Port d'entrée"
+ },
+ "streams": {
+ "defaultMessage": "Streams"
+ },
+ "streams.count": {
+ "defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}"
+ },
+ "streams.tcp": {
+ "defaultMessage": "TCP"
+ },
+ "streams.udp": {
+ "defaultMessage": "UDP"
+ },
+ "test": {
+ "defaultMessage": "Test"
+ },
+ "user": {
+ "defaultMessage": "Utilisateur"
+ },
+ "user.change-password": {
+ "defaultMessage": "Modifier le mot de passe"
+ },
+ "user.confirm-password": {
+ "defaultMessage": "Confirmer le mot de passe"
+ },
+ "user.current-password": {
+ "defaultMessage": "Mot de passe actuel"
+ },
+ "user.edit-profile": {
+ "defaultMessage": "Modifier le profil"
+ },
+ "user.full-name": {
+ "defaultMessage": "Nom complet"
+ },
+ "user.login-as": {
+ "defaultMessage": "Se connecter en tant que {name}"
+ },
+ "user.logout": {
+ "defaultMessage": "Déconnexion"
+ },
+ "user.new-password": {
+ "defaultMessage": "Nouveau mot de passe"
+ },
+ "user.nickname": {
+ "defaultMessage": "Pseudonyme"
+ },
+ "user.set-password": {
+ "defaultMessage": "Définir le mot de passe"
+ },
+ "user.set-permissions": {
+ "defaultMessage": "Définir les autorisations pour {name}"
+ },
+ "user.switch-dark": {
+ "defaultMessage": "Passer au mode Sombre"
+ },
+ "user.switch-light": {
+ "defaultMessage": "Passer au mode Lumineux"
+ },
+ "username": {
+ "defaultMessage": "Nom d'utilisateur"
+ },
+ "users": {
+ "defaultMessage": "Utilisateurs"
+ }
}
From dea7007802aef7a0f0005e243352190c2566f919 Mon Sep 17 00:00:00 2001
From: MarioGervais <17948611+MarioGervais@users.noreply.github.com>
Date: Wed, 25 Feb 2026 21:08:53 -0500
Subject: [PATCH 03/89] feat(i18n): complete French (fr) translation
Add 4 missing certificate key-type strings, remove obsolete update-available key
---
frontend/src/locale/src/fr.json | 1308 +++++++++++++++----------------
1 file changed, 654 insertions(+), 654 deletions(-)
diff --git a/frontend/src/locale/src/fr.json b/frontend/src/locale/src/fr.json
index d8a6de69..f3756127 100644
--- a/frontend/src/locale/src/fr.json
+++ b/frontend/src/locale/src/fr.json
@@ -1,656 +1,656 @@
{
- "access-list": {
- "defaultMessage": "Liste d'accès"
- },
- "access-list.access-count": {
- "defaultMessage": "{count} {count, plural, one {Règle} other {Règles}}"
- },
- "access-list.auth-count": {
- "defaultMessage": "{count} {count, plural, one {Utilisateur} other {Utilisateurs}}"
- },
- "access-list.help-rules-last": {
- "defaultMessage": "S'il existe au moins une règle, cette règle de refuser tout sera ajoutée en dernier."
- },
- "access-list.help.rules-order": {
- "defaultMessage": "Notez que les directives autoriser et refuser seront appliquées dans l'ordre où elles sont définies."
- },
- "access-list.pass-auth": {
- "defaultMessage": "Transmettre l'authentification au serveur en amont"
- },
- "access-list.public": {
- "defaultMessage": "Accessible au public"
- },
- "access-list.public.subtitle": {
- "defaultMessage": "Aucune authentification de base requise"
- },
- "access-list.satisfy-any": {
- "defaultMessage": "Valide n'importe quelle règle"
- },
- "access-list.subtitle": {
- "defaultMessage": "{utilisateurs} {utilisateurs, plural, one {Utilisateur} other {Utilisateurs}}, {règles} {règles, plural, one {Règle} other {Règles}} - Crée : {date}"
- },
- "access-lists": {
- "defaultMessage": "Listes d'accès"
- },
- "action.add": {
- "defaultMessage": "Ajouter"
- },
- "action.add-location": {
- "defaultMessage": "Ajouter localisation"
- },
- "action.close": {
- "defaultMessage": "Fermer"
- },
- "action.delete": {
- "defaultMessage": "Supprimer"
- },
- "action.disable": {
- "defaultMessage": "Désactiver"
- },
- "action.download": {
- "defaultMessage": "Télécharger"
- },
- "action.edit": {
- "defaultMessage": "Modifier"
- },
- "action.enable": {
- "defaultMessage": "Activer"
- },
- "action.permissions": {
- "defaultMessage": "Permissions"
- },
- "action.renew": {
- "defaultMessage": "Renouveler"
- },
- "action.view-details": {
- "defaultMessage": "Voir les Détails"
- },
- "auditlogs": {
- "defaultMessage": "Journaux d'audit"
- },
- "cancel": {
- "defaultMessage": "Annuler"
- },
- "certificate": {
- "defaultMessage": "Certificat"
- },
- "certificate.custom-certificate": {
- "defaultMessage": "Certificat"
- },
- "certificate.custom-certificate-key": {
- "defaultMessage": "Clé du Certificat"
- },
- "certificate.custom-intermediate": {
- "defaultMessage": "Certificat intermédiaire"
- },
- "certificate.in-use": {
- "defaultMessage": "Utilisé"
- },
- "certificate.none.subtitle": {
- "defaultMessage": "Aucun certificat assigné"
- },
- "certificate.none.subtitle.for-http": {
- "defaultMessage": "Cet hôte n'utilisera pas le HTTPS"
- },
- "certificate.none.title": {
- "defaultMessage": "Aucun"
- },
- "certificate.not-in-use": {
- "defaultMessage": "Non utilisé"
- },
- "certificate.renew": {
- "defaultMessage": "Renouveler Certificat"
- },
- "certificates": {
- "defaultMessage": "Certificats"
- },
- "certificates.custom": {
- "defaultMessage": "Certificat personnalisé"
- },
- "certificates.custom.warning": {
- "defaultMessage": "Les fichiers de clé protégés par une passphrase ne sont pas acceptés."
- },
- "certificates.dns.credentials": {
- "defaultMessage": "Contenu du fichier d'identifiants"
- },
- "certificates.dns.credentials-note": {
- "defaultMessage": "Ce plugin nécessite un fichier de configuration contenant un jeton d'API ou d'autres informations d'identification pour votre fournisseur."
- },
- "certificates.dns.credentials-warning": {
- "defaultMessage": "Ces données seront stockées en clair dans la base de données et dans un fichier !"
- },
- "certificates.dns.propagation-seconds": {
- "defaultMessage": "Propagation Seconds"
- },
- "certificates.dns.propagation-seconds-note": {
- "defaultMessage": "Laisser vide pour utiliser la valeur par défaut du plugin. Nombre de secondes à attendre pour la propagation DNS."
- },
- "certificates.dns.provider": {
- "defaultMessage": "Fournisseur DNS"
- },
- "certificates.dns.warning": {
- "defaultMessage": "Cette section requiert une certaine connaissance de Certbot et de ses plugins DNS. Veuillez consulter la documentation des plugins correspondants."
- },
- "certificates.http.reachability-404": {
- "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il ne semble pas s'agir de Nginx Proxy Manager. Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
- },
- "certificates.http.reachability-failed-to-check": {
- "defaultMessage": "Impossible de vérifier l'accessibilité en raison d'une erreur de communication avec site24x7.com."
- },
- "certificates.http.reachability-not-resolved": {
- "defaultMessage": "Aucun serveur n'est disponible pour ce domaine. Veuillez vérifier que votre domaine existe et pointe vers l'adresse IP où votre instance NPM est exécutée. Si nécessaire, le port 80 est ouvert dans votre routeur."
- },
- "certificates.http.reachability-ok": {
- "defaultMessage": "Votre serveur est accessible et la création de certificats devrait être possible."
- },
- "certificates.http.reachability-other": {
- "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il a renvoyé un code d'état inattendu {code}. S'agit-il du serveur NPM ? Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
- },
- "certificates.http.reachability-wrong-data": {
- "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il a renvoyé des données inattendues. S'agit-il du serveur NPM ? Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
- },
- "certificates.http.test-results": {
- "defaultMessage": "Résultats du test"
- },
- "certificates.http.warning": {
- "defaultMessage": "Ces domaines doivent déjà être configurés pour pointer vers cette installation."
- },
- "certificates.key-type": {
- "defaultMessage": "Type de clé"
- },
- "certificates.key-type-description": {
- "defaultMessage": "RSA est largement répandu, ECDSA est plus rapide et plus sécurisé, mais peut ne pas être supporté par les systèmes plus anciens"
- },
- "certificates.key-type-ecdsa": {
- "defaultMessage": "ECDSA 256"
- },
- "certificates.key-type-rsa": {
- "defaultMessage": "RSA 2048"
- },
- "certificates.request.subtitle": {
- "defaultMessage": "avec Let's Encrypt"
- },
- "certificates.request.title": {
- "defaultMessage": "Demander un nouveau certificat"
- },
- "column.access": {
- "defaultMessage": "Accès"
- },
- "column.authorization": {
- "defaultMessage": "Autorisation"
- },
- "column.authorizations": {
- "defaultMessage": "Autorisations"
- },
- "column.custom-locations": {
- "defaultMessage": "Emplacement personnalisé"
- },
- "column.destination": {
- "defaultMessage": "Destination"
- },
- "column.details": {
- "defaultMessage": "Détails"
- },
- "column.email": {
- "defaultMessage": "eMail"
- },
- "column.event": {
- "defaultMessage": "Évènement"
- },
- "column.expires": {
- "defaultMessage": "Expire"
- },
- "column.http-code": {
- "defaultMessage": "Code HTTP"
- },
- "column.incoming-port": {
- "defaultMessage": "Port entrant"
- },
- "column.name": {
- "defaultMessage": "Nom"
- },
- "column.protocol": {
- "defaultMessage": "Protocole"
- },
- "column.provider": {
- "defaultMessage": "Fournisseur"
- },
- "column.roles": {
- "defaultMessage": "Rôles"
- },
- "column.rules": {
- "defaultMessage": "Règles"
- },
- "column.satisfy": {
- "defaultMessage": "Valide"
- },
- "column.satisfy-all": {
- "defaultMessage": "All"
- },
- "column.satisfy-any": {
- "defaultMessage": "Any"
- },
- "column.scheme": {
- "defaultMessage": "Schéma"
- },
- "column.source": {
- "defaultMessage": "Source"
- },
- "column.ssl": {
- "defaultMessage": "SSL"
- },
- "column.status": {
- "defaultMessage": "Statut"
- },
- "created-on": {
- "defaultMessage": "Créé : {date}"
- },
- "dashboard": {
- "defaultMessage": "Tableau de bord"
- },
- "dead-host": {
- "defaultMessage": "Hôte 404"
- },
- "dead-hosts": {
- "defaultMessage": "Hôtes 404"
- },
- "dead-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Hôte 404} other {Hôtes 404}}"
- },
- "disabled": {
- "defaultMessage": "Désactivé"
- },
- "domain-names": {
- "defaultMessage": "Noms de domaine"
- },
- "domain-names.max": {
- "defaultMessage": "{count} noms de domaine au maximum"
- },
- "domain-names.placeholder": {
- "defaultMessage": "Commencez à écrire pour ajouter un domaine…"
- },
- "domain-names.wildcards-not-permitted": {
- "defaultMessage": "Les Wildcards ne sont pas permises dans ce cas"
- },
- "domain-names.wildcards-not-supported": {
- "defaultMessage": "Les Wildcards ne sont pas prises en charge par cette autorité de certification."
- },
- "domains.force-ssl": {
- "defaultMessage": "Forcer SSL"
- },
- "domains.hsts-enabled": {
- "defaultMessage": "HSTS activé"
- },
- "domains.hsts-subdomains": {
- "defaultMessage": "Sous-domaines HSTS"
- },
- "domains.http2-support": {
- "defaultMessage": "Prise en charge de HTTP/2"
- },
- "domains.use-dns": {
- "defaultMessage": "Utiliser le challenge DNS"
- },
- "email-address": {
- "defaultMessage": "Adresse eMail"
- },
- "empty-search": {
- "defaultMessage": "Aucun résultat trouvé"
- },
- "empty-subtitle": {
- "defaultMessage": "Pourquoi n'en créez-vous pas un ?"
- },
- "enabled": {
- "defaultMessage": "Activé"
- },
- "error.access.at-least-one": {
- "defaultMessage": "Une autorisation ou une règle d'accès est requise."
- },
- "error.access.duplicate-usernames": {
- "defaultMessage": "Les noms d'utilisateurs autorisés doivent être uniques"
- },
- "error.invalid-auth": {
- "defaultMessage": "Adresse eMail ou mot de passe invalide"
- },
- "error.invalid-domain": {
- "defaultMessage": "Domaine invalide : {domain}"
- },
- "error.invalid-email": {
- "defaultMessage": "Adresse eMail invalide"
- },
- "error.max-character-length": {
- "defaultMessage": "La longueur maximale est {max} caractère{max, plural, one {} other {s}}"
- },
- "error.max-domains": {
- "defaultMessage": "Trop de domaines, le maximum est {max}"
- },
- "error.maximum": {
- "defaultMessage": "Le maximum est {max}"
- },
- "error.min-character-length": {
- "defaultMessage": "La longueur minimale est {min} caractère{min, plural, one {} other {s}}"
- },
- "error.minimum": {
- "defaultMessage": "Le minimum est {min}"
- },
- "error.passwords-must-match": {
- "defaultMessage": "Les mots de passe doivent correspondre"
- },
- "error.required": {
- "defaultMessage": "Ceci est obligatoire"
- },
- "expires.on": {
- "defaultMessage": "Expire : {date}"
- },
- "footer.github-fork": {
- "defaultMessage": "Forkez-moi sur Github"
- },
- "host.flags.block-exploits": {
- "defaultMessage": "Bloquer les exploits courants"
- },
- "host.flags.cache-assets": {
- "defaultMessage": "Ressources du cache"
- },
- "host.flags.preserve-path": {
- "defaultMessage": "Préserver le chemin"
- },
- "host.flags.protocols": {
- "defaultMessage": "Protocoles"
- },
- "host.flags.websockets-upgrade": {
- "defaultMessage": "Prise en charge de Websockets"
- },
- "host.forward-port": {
- "defaultMessage": "Port de redirection"
- },
- "host.forward-scheme": {
- "defaultMessage": "Schéma"
- },
- "hosts": {
- "defaultMessage": "Hôtes"
- },
- "http-only": {
- "defaultMessage": "HTTP uniquement"
- },
- "lets-encrypt": {
- "defaultMessage": "Let's Encrypt"
- },
- "lets-encrypt-via-dns": {
- "defaultMessage": "Let's Encrypt via DNS"
- },
- "lets-encrypt-via-http": {
- "defaultMessage": "Let's Encrypt via HTTP"
- },
- "loading": {
- "defaultMessage": "Chargement…"
- },
- "login.title": {
- "defaultMessage": "Connectez-vous à votre compte"
- },
- "nginx-config.label": {
- "defaultMessage": "Configuration Nginx personnalisée"
- },
- "nginx-config.placeholder": {
- "defaultMessage": "# Mettez ici votre configuration Nginx personnalisé à vos risques et périls !"
- },
- "no-permission-error": {
- "defaultMessage": "Vous n'avez pas la permission de voir ce contenu."
- },
- "notfound.action": {
- "defaultMessage": "Ramenez-moi à l'accueil"
- },
- "notfound.content": {
- "defaultMessage": "Nous sommes désolés, mais la page que vous cherchez est introuvable"
- },
- "notfound.title": {
- "defaultMessage": "Oops… Vous avez découvert une page d'erreur"
- },
- "notification.error": {
- "defaultMessage": "Erreur"
- },
- "notification.object-deleted": {
- "defaultMessage": "{object} a été supprimé"
- },
- "notification.object-disabled": {
- "defaultMessage": "{object} a été désactivé"
- },
- "notification.object-enabled": {
- "defaultMessage": "{object} a été activé"
- },
- "notification.object-renewed": {
- "defaultMessage": "{object} a été renouvelé"
- },
- "notification.object-saved": {
- "defaultMessage": "{object} a été enregistré"
- },
- "notification.success": {
- "defaultMessage": "Réussi"
- },
- "object.actions-title": {
- "defaultMessage": "{object} #{id}"
- },
- "object.add": {
- "defaultMessage": "Ajouter {object}"
- },
- "object.delete": {
- "defaultMessage": "Supprimer {object}"
- },
- "object.delete.content": {
- "defaultMessage": "Êtes-vous sûr de vouloir supprimer {object} ?"
- },
- "object.edit": {
- "defaultMessage": "Modifier {object}"
- },
- "object.empty": {
- "defaultMessage": "Il n'y a aucun {objects}"
- },
- "object.event.created": {
- "defaultMessage": "{object} créé"
- },
- "object.event.deleted": {
- "defaultMessage": "{object} supprimé"
- },
- "object.event.disabled": {
- "defaultMessage": "{object} désactivé"
- },
- "object.event.enabled": {
- "defaultMessage": "{object} activé"
- },
- "object.event.renewed": {
- "defaultMessage": "{object} renouvelé"
- },
- "object.event.updated": {
- "defaultMessage": "{object} mis à jour"
- },
- "offline": {
- "defaultMessage": "Hors ligne"
- },
- "online": {
- "defaultMessage": "En ligne"
- },
- "options": {
- "defaultMessage": "Options"
- },
- "password": {
- "defaultMessage": "Mot de passe"
- },
- "password.generate": {
- "defaultMessage": "Générer un mot de passe aléatoire"
- },
- "password.hide": {
- "defaultMessage": "Masquer le mot de passe"
- },
- "password.show": {
- "defaultMessage": "Afficher le mot de passe"
- },
- "permissions.hidden": {
- "defaultMessage": "Masquer"
- },
- "permissions.manage": {
- "defaultMessage": "Gérer"
- },
- "permissions.view": {
- "defaultMessage": "Voir uniquement"
- },
- "permissions.visibility.all": {
- "defaultMessage": "Tous les éléments"
- },
- "permissions.visibility.title": {
- "defaultMessage": "Éléments visibles"
- },
- "permissions.visibility.user": {
- "defaultMessage": "Éléments créés uniquement"
- },
- "proxy-host": {
- "defaultMessage": "Hôte proxy"
- },
- "proxy-host.forward-host": {
- "defaultMessage": "Nom d'hôte de redirection / IP"
- },
- "proxy-hosts": {
- "defaultMessage": "Hôtes proxy"
- },
- "proxy-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Hôte proxy} other {Hôtes proxy}}"
- },
- "public": {
- "defaultMessage": "Publique"
- },
- "redirection-host": {
- "defaultMessage": "Hôte de redirection"
- },
- "redirection-host.forward-domain": {
- "defaultMessage": "Domaine de redirection"
- },
- "redirection-host.forward-http-code": {
- "defaultMessage": "Code HTTP"
- },
- "redirection-hosts": {
- "defaultMessage": "Hôtes de redirection"
- },
- "redirection-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Hôte de redirection} other {Hôtes de redirection}}"
- },
- "role.admin": {
- "defaultMessage": "Administrateur"
- },
- "role.standard-user": {
- "defaultMessage": "Utilisateur standard"
- },
- "save": {
- "defaultMessage": "Enregistrer"
- },
- "setting": {
- "defaultMessage": "Paramètre"
- },
- "settings": {
- "defaultMessage": "Paramètres"
- },
- "settings.default-site": {
- "defaultMessage": "Site par défaut"
- },
- "settings.default-site.404": {
- "defaultMessage": "Page 404"
- },
- "settings.default-site.444": {
- "defaultMessage": "Aucune réponse (444)"
- },
- "settings.default-site.congratulations": {
- "defaultMessage": "Page de félicitations"
- },
- "settings.default-site.description": {
- "defaultMessage": "ce qu'il faut afficher lorsqu'un hôte inconnu est détecté par Nginx"
- },
- "settings.default-site.html": {
- "defaultMessage": "HTML personnalisé"
- },
- "settings.default-site.html.placeholder": {
- "defaultMessage": ""
- },
- "settings.default-site.redirect": {
- "defaultMessage": "Redirection"
- },
- "setup.preamble": {
- "defaultMessage": "Commencez par créer votre compte administrateur."
- },
- "setup.title": {
- "defaultMessage": "Bienvenue !"
- },
- "sign-in": {
- "defaultMessage": "Se connecter"
- },
- "ssl-certificate": {
- "defaultMessage": "Certificat SSL"
- },
- "stream": {
- "defaultMessage": "Stream"
- },
- "stream.forward-host": {
- "defaultMessage": "Hôte destinataire"
- },
- "stream.incoming-port": {
- "defaultMessage": "Port d'entrée"
- },
- "streams": {
- "defaultMessage": "Streams"
- },
- "streams.count": {
- "defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}"
- },
- "streams.tcp": {
- "defaultMessage": "TCP"
- },
- "streams.udp": {
- "defaultMessage": "UDP"
- },
- "test": {
- "defaultMessage": "Test"
- },
- "user": {
- "defaultMessage": "Utilisateur"
- },
- "user.change-password": {
- "defaultMessage": "Modifier le mot de passe"
- },
- "user.confirm-password": {
- "defaultMessage": "Confirmer le mot de passe"
- },
- "user.current-password": {
- "defaultMessage": "Mot de passe actuel"
- },
- "user.edit-profile": {
- "defaultMessage": "Modifier le profil"
- },
- "user.full-name": {
- "defaultMessage": "Nom complet"
- },
- "user.login-as": {
- "defaultMessage": "Se connecter en tant que {name}"
- },
- "user.logout": {
- "defaultMessage": "Déconnexion"
- },
- "user.new-password": {
- "defaultMessage": "Nouveau mot de passe"
- },
- "user.nickname": {
- "defaultMessage": "Pseudonyme"
- },
- "user.set-password": {
- "defaultMessage": "Définir le mot de passe"
- },
- "user.set-permissions": {
- "defaultMessage": "Définir les autorisations pour {name}"
- },
- "user.switch-dark": {
- "defaultMessage": "Passer au mode Sombre"
- },
- "user.switch-light": {
- "defaultMessage": "Passer au mode Lumineux"
- },
- "username": {
- "defaultMessage": "Nom d'utilisateur"
- },
- "users": {
- "defaultMessage": "Utilisateurs"
- }
+ "access-list": {
+ "defaultMessage": "Liste d'accès"
+ },
+ "access-list.access-count": {
+ "defaultMessage": "{count} {count, plural, one {Règle} other {Règles}}"
+ },
+ "access-list.auth-count": {
+ "defaultMessage": "{count} {count, plural, one {Utilisateur} other {Utilisateurs}}"
+ },
+ "access-list.help-rules-last": {
+ "defaultMessage": "S'il existe au moins une règle, cette règle de refuser tout sera ajoutée en dernier."
+ },
+ "access-list.help.rules-order": {
+ "defaultMessage": "Notez que les directives autoriser et refuser seront appliquées dans l'ordre où elles sont définies."
+ },
+ "access-list.pass-auth": {
+ "defaultMessage": "Transmettre l'authentification au serveur en amont"
+ },
+ "access-list.public": {
+ "defaultMessage": "Accessible au public"
+ },
+ "access-list.public.subtitle": {
+ "defaultMessage": "Aucune authentification de base requise"
+ },
+ "access-list.satisfy-any": {
+ "defaultMessage": "Valide n'importe quelle règle"
+ },
+ "access-list.subtitle": {
+ "defaultMessage": "{utilisateurs} {utilisateurs, plural, one {Utilisateur} other {Utilisateurs}}, {règles} {règles, plural, one {Règle} other {Règles}} - Crée : {date}"
+ },
+ "access-lists": {
+ "defaultMessage": "Listes d'accès"
+ },
+ "action.add": {
+ "defaultMessage": "Ajouter"
+ },
+ "action.add-location": {
+ "defaultMessage": "Ajouter localisation"
+ },
+ "action.close": {
+ "defaultMessage": "Fermer"
+ },
+ "action.delete": {
+ "defaultMessage": "Supprimer"
+ },
+ "action.disable": {
+ "defaultMessage": "Désactiver"
+ },
+ "action.download": {
+ "defaultMessage": "Télécharger"
+ },
+ "action.edit": {
+ "defaultMessage": "Modifier"
+ },
+ "action.enable": {
+ "defaultMessage": "Activer"
+ },
+ "action.permissions": {
+ "defaultMessage": "Permissions"
+ },
+ "action.renew": {
+ "defaultMessage": "Renouveler"
+ },
+ "action.view-details": {
+ "defaultMessage": "Voir les Détails"
+ },
+ "auditlogs": {
+ "defaultMessage": "Journaux d'audit"
+ },
+ "cancel": {
+ "defaultMessage": "Annuler"
+ },
+ "certificate": {
+ "defaultMessage": "Certificat"
+ },
+ "certificate.custom-certificate": {
+ "defaultMessage": "Certificat"
+ },
+ "certificate.custom-certificate-key": {
+ "defaultMessage": "Clé du Certificat"
+ },
+ "certificate.custom-intermediate": {
+ "defaultMessage": "Certificat intermédiaire"
+ },
+ "certificate.in-use": {
+ "defaultMessage": "Utilisé"
+ },
+ "certificate.none.subtitle": {
+ "defaultMessage": "Aucun certificat assigné"
+ },
+ "certificate.none.subtitle.for-http": {
+ "defaultMessage": "Cet hôte n'utilisera pas le HTTPS"
+ },
+ "certificate.none.title": {
+ "defaultMessage": "Aucun"
+ },
+ "certificate.not-in-use": {
+ "defaultMessage": "Non utilisé"
+ },
+ "certificate.renew": {
+ "defaultMessage": "Renouveler Certificat"
+ },
+ "certificates": {
+ "defaultMessage": "Certificats"
+ },
+ "certificates.custom": {
+ "defaultMessage": "Certificat personnalisé"
+ },
+ "certificates.custom.warning": {
+ "defaultMessage": "Les fichiers de clé protégés par une passphrase ne sont pas acceptés."
+ },
+ "certificates.dns.credentials": {
+ "defaultMessage": "Contenu du fichier d'identifiants"
+ },
+ "certificates.dns.credentials-note": {
+ "defaultMessage": "Ce plugin nécessite un fichier de configuration contenant un jeton d'API ou d'autres informations d'identification pour votre fournisseur."
+ },
+ "certificates.dns.credentials-warning": {
+ "defaultMessage": "Ces données seront stockées en clair dans la base de données et dans un fichier !"
+ },
+ "certificates.dns.propagation-seconds": {
+ "defaultMessage": "Propagation Seconds"
+ },
+ "certificates.dns.propagation-seconds-note": {
+ "defaultMessage": "Laisser vide pour utiliser la valeur par défaut du plugin. Nombre de secondes à attendre pour la propagation DNS."
+ },
+ "certificates.dns.provider": {
+ "defaultMessage": "Fournisseur DNS"
+ },
+ "certificates.dns.warning": {
+ "defaultMessage": "Cette section requiert une certaine connaissance de Certbot et de ses plugins DNS. Veuillez consulter la documentation des plugins correspondants."
+ },
+ "certificates.http.reachability-404": {
+ "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il ne semble pas s'agir de Nginx Proxy Manager. Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
+ },
+ "certificates.http.reachability-failed-to-check": {
+ "defaultMessage": "Impossible de vérifier l'accessibilité en raison d'une erreur de communication avec site24x7.com."
+ },
+ "certificates.http.reachability-not-resolved": {
+ "defaultMessage": "Aucun serveur n'est disponible pour ce domaine. Veuillez vérifier que votre domaine existe et pointe vers l'adresse IP où votre instance NPM est exécutée. Si nécessaire, le port 80 est ouvert dans votre routeur."
+ },
+ "certificates.http.reachability-ok": {
+ "defaultMessage": "Votre serveur est accessible et la création de certificats devrait être possible."
+ },
+ "certificates.http.reachability-other": {
+ "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il a renvoyé un code d'état inattendu {code}. S'agit-il du serveur NPM ? Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
+ },
+ "certificates.http.reachability-wrong-data": {
+ "defaultMessage": "Un serveur a été trouvé sur ce domaine, mais il a renvoyé des données inattendues. S'agit-il du serveur NPM ? Veuillez vérifier que votre domaine pointe bien vers l'adresse IP où votre instance NPM est exécutée."
+ },
+ "certificates.http.test-results": {
+ "defaultMessage": "Résultats du test"
+ },
+ "certificates.http.warning": {
+ "defaultMessage": "Ces domaines doivent déjà être configurés pour pointer vers cette installation."
+ },
+ "certificates.request.subtitle": {
+ "defaultMessage": "avec Let's Encrypt"
+ },
+ "certificates.request.title": {
+ "defaultMessage": "Demander un nouveau certificat"
+ },
+ "certificates.key-type": {
+ "defaultMessage": "Type de clé"
+ },
+ "certificates.key-type-description": {
+ "defaultMessage": "RSA est largement répandu, ECDSA est plus rapide et plus sécurisé, mais peut ne pas être supporté par les systèmes plus anciens"
+ },
+ "certificates.key-type-ecdsa": {
+ "defaultMessage": "ECDSA 256"
+ },
+ "certificates.key-type-rsa": {
+ "defaultMessage": "RSA 2048"
+ },
+ "column.access": {
+ "defaultMessage": "Accès"
+ },
+ "column.authorization": {
+ "defaultMessage": "Autorisation"
+ },
+ "column.authorizations": {
+ "defaultMessage": "Autorisations"
+ },
+ "column.custom-locations": {
+ "defaultMessage": "Emplacement personnalisé"
+ },
+ "column.destination": {
+ "defaultMessage": "Destination"
+ },
+ "column.details": {
+ "defaultMessage": "Détails"
+ },
+ "column.email": {
+ "defaultMessage": "eMail"
+ },
+ "column.event": {
+ "defaultMessage": "Évènement"
+ },
+ "column.expires": {
+ "defaultMessage": "Expire"
+ },
+ "column.http-code": {
+ "defaultMessage": "Code HTTP"
+ },
+ "column.incoming-port": {
+ "defaultMessage": "Port entrant"
+ },
+ "column.name": {
+ "defaultMessage": "Nom"
+ },
+ "column.protocol": {
+ "defaultMessage": "Protocole"
+ },
+ "column.provider": {
+ "defaultMessage": "Fournisseur"
+ },
+ "column.roles": {
+ "defaultMessage": "Rôles"
+ },
+ "column.rules": {
+ "defaultMessage": "Règles"
+ },
+ "column.satisfy": {
+ "defaultMessage": "Valide"
+ },
+ "column.satisfy-all": {
+ "defaultMessage": "All"
+ },
+ "column.satisfy-any": {
+ "defaultMessage": "Any"
+ },
+ "column.scheme": {
+ "defaultMessage": "Schéma"
+ },
+ "column.source": {
+ "defaultMessage": "Source"
+ },
+ "column.ssl": {
+ "defaultMessage": "SSL"
+ },
+ "column.status": {
+ "defaultMessage": "Statut"
+ },
+ "created-on": {
+ "defaultMessage": "Créé : {date}"
+ },
+ "dashboard": {
+ "defaultMessage": "Tableau de bord"
+ },
+ "dead-host": {
+ "defaultMessage": "Hôte 404"
+ },
+ "dead-hosts": {
+ "defaultMessage": "Hôtes 404"
+ },
+ "dead-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {Hôte 404} other {Hôtes 404}}"
+ },
+ "disabled": {
+ "defaultMessage": "Désactivé"
+ },
+ "domain-names": {
+ "defaultMessage": "Noms de domaine"
+ },
+ "domain-names.max": {
+ "defaultMessage": "{count} noms de domaine au maximum"
+ },
+ "domain-names.placeholder": {
+ "defaultMessage": "Commencez à écrire pour ajouter un domaine…"
+ },
+ "domain-names.wildcards-not-permitted": {
+ "defaultMessage": "Les Wildcards ne sont pas permises dans ce cas"
+ },
+ "domain-names.wildcards-not-supported": {
+ "defaultMessage": "Les Wildcards ne sont pas prises en charge par cette autorité de certification."
+ },
+ "domains.force-ssl": {
+ "defaultMessage": "Forcer SSL"
+ },
+ "domains.hsts-enabled": {
+ "defaultMessage": "HSTS activé"
+ },
+ "domains.hsts-subdomains": {
+ "defaultMessage": "Sous-domaines HSTS"
+ },
+ "domains.http2-support": {
+ "defaultMessage": "Prise en charge de HTTP/2"
+ },
+ "domains.use-dns": {
+ "defaultMessage": "Utiliser le challenge DNS"
+ },
+ "email-address": {
+ "defaultMessage": "Adresse eMail"
+ },
+ "empty-search": {
+ "defaultMessage": "Aucun résultat trouvé"
+ },
+ "empty-subtitle": {
+ "defaultMessage": "Pourquoi n'en créez-vous pas un ?"
+ },
+ "enabled": {
+ "defaultMessage": "Activé"
+ },
+ "error.access.at-least-one": {
+ "defaultMessage": "Une autorisation ou une règle d'accès est requise."
+ },
+ "error.access.duplicate-usernames": {
+ "defaultMessage": "Les noms d'utilisateurs autorisés doivent être uniques"
+ },
+ "error.invalid-auth": {
+ "defaultMessage": "Adresse eMail ou mot de passe invalide"
+ },
+ "error.invalid-domain": {
+ "defaultMessage": "Domaine invalide : {domain}"
+ },
+ "error.invalid-email": {
+ "defaultMessage": "Adresse eMail invalide"
+ },
+ "error.max-character-length": {
+ "defaultMessage": "La longueur maximale est {max} caractère{max, plural, one {} other {s}}"
+ },
+ "error.max-domains": {
+ "defaultMessage": "Trop de domaines, le maximum est {max}"
+ },
+ "error.maximum": {
+ "defaultMessage": "Le maximum est {max}"
+ },
+ "error.min-character-length": {
+ "defaultMessage": "La longueur minimale est {min} caractère{min, plural, one {} other {s}}"
+ },
+ "error.minimum": {
+ "defaultMessage": "Le minimum est {min}"
+ },
+ "error.passwords-must-match": {
+ "defaultMessage": "Les mots de passe doivent correspondre"
+ },
+ "error.required": {
+ "defaultMessage": "Ceci est obligatoire"
+ },
+ "expires.on": {
+ "defaultMessage": "Expire : {date}"
+ },
+ "footer.github-fork": {
+ "defaultMessage": "Forkez-moi sur Github"
+ },
+ "host.flags.block-exploits": {
+ "defaultMessage": "Bloquer les exploits courants"
+ },
+ "host.flags.cache-assets": {
+ "defaultMessage": "Ressources du cache"
+ },
+ "host.flags.preserve-path": {
+ "defaultMessage": "Préserver le chemin"
+ },
+ "host.flags.protocols": {
+ "defaultMessage": "Protocoles"
+ },
+ "host.flags.websockets-upgrade": {
+ "defaultMessage": "Prise en charge de Websockets"
+ },
+ "host.forward-port": {
+ "defaultMessage": "Port de redirection"
+ },
+ "host.forward-scheme": {
+ "defaultMessage": "Schéma"
+ },
+ "hosts": {
+ "defaultMessage": "Hôtes"
+ },
+ "http-only": {
+ "defaultMessage": "HTTP uniquement"
+ },
+ "lets-encrypt": {
+ "defaultMessage": "Let's Encrypt"
+ },
+ "lets-encrypt-via-dns": {
+ "defaultMessage": "Let's Encrypt via DNS"
+ },
+ "lets-encrypt-via-http": {
+ "defaultMessage": "Let's Encrypt via HTTP"
+ },
+ "loading": {
+ "defaultMessage": "Chargement…"
+ },
+ "login.title": {
+ "defaultMessage": "Connectez-vous à votre compte"
+ },
+ "nginx-config.label": {
+ "defaultMessage": "Configuration Nginx personnalisée"
+ },
+ "nginx-config.placeholder": {
+ "defaultMessage": "# Mettez ici votre configuration Nginx personnalisé à vos risques et périls !"
+ },
+ "no-permission-error": {
+ "defaultMessage": "Vous n'avez pas la permission de voir ce contenu."
+ },
+ "notfound.action": {
+ "defaultMessage": "Ramenez-moi à l'accueil"
+ },
+ "notfound.content": {
+ "defaultMessage": "Nous sommes désolés, mais la page que vous cherchez est introuvable"
+ },
+ "notfound.title": {
+ "defaultMessage": "Oops… Vous avez découvert une page d'erreur"
+ },
+ "notification.error": {
+ "defaultMessage": "Erreur"
+ },
+ "notification.object-deleted": {
+ "defaultMessage": "{object} a été supprimé"
+ },
+ "notification.object-disabled": {
+ "defaultMessage": "{object} a été désactivé"
+ },
+ "notification.object-enabled": {
+ "defaultMessage": "{object} a été activé"
+ },
+ "notification.object-renewed": {
+ "defaultMessage": "{object} a été renouvelé"
+ },
+ "notification.object-saved": {
+ "defaultMessage": "{object} a été enregistré"
+ },
+ "notification.success": {
+ "defaultMessage": "Réussi"
+ },
+ "object.actions-title": {
+ "defaultMessage": "{object} #{id}"
+ },
+ "object.add": {
+ "defaultMessage": "Ajouter {object}"
+ },
+ "object.delete": {
+ "defaultMessage": "Supprimer {object}"
+ },
+ "object.delete.content": {
+ "defaultMessage": "Êtes-vous sûr de vouloir supprimer {object} ?"
+ },
+ "object.edit": {
+ "defaultMessage": "Modifier {object}"
+ },
+ "object.empty": {
+ "defaultMessage": "Il n'y a aucun {objects}"
+ },
+ "object.event.created": {
+ "defaultMessage": "{object} créé"
+ },
+ "object.event.deleted": {
+ "defaultMessage": "{object} supprimé"
+ },
+ "object.event.disabled": {
+ "defaultMessage": "{object} désactivé"
+ },
+ "object.event.enabled": {
+ "defaultMessage": "{object} activé"
+ },
+ "object.event.renewed": {
+ "defaultMessage": "{object} renouvelé"
+ },
+ "object.event.updated": {
+ "defaultMessage": "{object} mis à jour"
+ },
+ "offline": {
+ "defaultMessage": "Hors ligne"
+ },
+ "online": {
+ "defaultMessage": "En ligne"
+ },
+ "options": {
+ "defaultMessage": "Options"
+ },
+ "password": {
+ "defaultMessage": "Mot de passe"
+ },
+ "password.generate": {
+ "defaultMessage": "Générer un mot de passe aléatoire"
+ },
+ "password.hide": {
+ "defaultMessage": "Masquer le mot de passe"
+ },
+ "password.show": {
+ "defaultMessage": "Afficher le mot de passe"
+ },
+ "permissions.hidden": {
+ "defaultMessage": "Masquer"
+ },
+ "permissions.manage": {
+ "defaultMessage": "Gérer"
+ },
+ "permissions.view": {
+ "defaultMessage": "Voir uniquement"
+ },
+ "permissions.visibility.all": {
+ "defaultMessage": "Tous les éléments"
+ },
+ "permissions.visibility.title": {
+ "defaultMessage": "Éléments visibles"
+ },
+ "permissions.visibility.user": {
+ "defaultMessage": "Éléments créés uniquement"
+ },
+ "proxy-host": {
+ "defaultMessage": "Hôte proxy"
+ },
+ "proxy-host.forward-host": {
+ "defaultMessage": "Nom d'hôte de redirection / IP"
+ },
+ "proxy-hosts": {
+ "defaultMessage": "Hôtes proxy"
+ },
+ "proxy-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {Hôte proxy} other {Hôtes proxy}}"
+ },
+ "public": {
+ "defaultMessage": "Publique"
+ },
+ "redirection-host": {
+ "defaultMessage": "Hôte de redirection"
+ },
+ "redirection-host.forward-domain": {
+ "defaultMessage": "Domaine de redirection"
+ },
+ "redirection-host.forward-http-code": {
+ "defaultMessage": "Code HTTP"
+ },
+ "redirection-hosts": {
+ "defaultMessage": "Hôtes de redirection"
+ },
+ "redirection-hosts.count": {
+ "defaultMessage": "{count} {count, plural, one {Hôte de redirection} other {Hôtes de redirection}}"
+ },
+ "role.admin": {
+ "defaultMessage": "Administrateur"
+ },
+ "role.standard-user": {
+ "defaultMessage": "Utilisateur standard"
+ },
+ "save": {
+ "defaultMessage": "Enregistrer"
+ },
+ "setting": {
+ "defaultMessage": "Paramètre"
+ },
+ "settings": {
+ "defaultMessage": "Paramètres"
+ },
+ "settings.default-site": {
+ "defaultMessage": "Site par défaut"
+ },
+ "settings.default-site.404": {
+ "defaultMessage": "Page 404"
+ },
+ "settings.default-site.444": {
+ "defaultMessage": "Aucune réponse (444)"
+ },
+ "settings.default-site.congratulations": {
+ "defaultMessage": "Page de félicitations"
+ },
+ "settings.default-site.description": {
+ "defaultMessage": "ce qu'il faut afficher lorsqu'un hôte inconnu est détecté par Nginx"
+ },
+ "settings.default-site.html": {
+ "defaultMessage": "HTML personnalisé"
+ },
+ "settings.default-site.html.placeholder": {
+ "defaultMessage": ""
+ },
+ "settings.default-site.redirect": {
+ "defaultMessage": "Redirection"
+ },
+ "setup.preamble": {
+ "defaultMessage": "Commencez par créer votre compte administrateur."
+ },
+ "setup.title": {
+ "defaultMessage": "Bienvenue !"
+ },
+ "sign-in": {
+ "defaultMessage": "Se connecter"
+ },
+ "ssl-certificate": {
+ "defaultMessage": "Certificat SSL"
+ },
+ "stream": {
+ "defaultMessage": "Stream"
+ },
+ "stream.forward-host": {
+ "defaultMessage": "Hôte destinataire"
+ },
+ "stream.incoming-port": {
+ "defaultMessage": "Port d'entrée"
+ },
+ "streams": {
+ "defaultMessage": "Streams"
+ },
+ "streams.count": {
+ "defaultMessage": "{count} {count, plural, one {Stream} other {Streams}}"
+ },
+ "streams.tcp": {
+ "defaultMessage": "TCP"
+ },
+ "streams.udp": {
+ "defaultMessage": "UDP"
+ },
+ "test": {
+ "defaultMessage": "Test"
+ },
+ "user": {
+ "defaultMessage": "Utilisateur"
+ },
+ "user.change-password": {
+ "defaultMessage": "Modifier le mot de passe"
+ },
+ "user.confirm-password": {
+ "defaultMessage": "Confirmer le mot de passe"
+ },
+ "user.current-password": {
+ "defaultMessage": "Mot de passe actuel"
+ },
+ "user.edit-profile": {
+ "defaultMessage": "Modifier le profil"
+ },
+ "user.full-name": {
+ "defaultMessage": "Nom complet"
+ },
+ "user.login-as": {
+ "defaultMessage": "Se connecter en tant que {name}"
+ },
+ "user.logout": {
+ "defaultMessage": "Déconnexion"
+ },
+ "user.new-password": {
+ "defaultMessage": "Nouveau mot de passe"
+ },
+ "user.nickname": {
+ "defaultMessage": "Pseudonyme"
+ },
+ "user.set-password": {
+ "defaultMessage": "Définir le mot de passe"
+ },
+ "user.set-permissions": {
+ "defaultMessage": "Définir les autorisations pour {name}"
+ },
+ "user.switch-dark": {
+ "defaultMessage": "Passer au mode Sombre"
+ },
+ "user.switch-light": {
+ "defaultMessage": "Passer au mode Lumineux"
+ },
+ "username": {
+ "defaultMessage": "Nom d'utilisateur"
+ },
+ "users": {
+ "defaultMessage": "Utilisateurs"
+ }
}
From 278b1c92b3812946e0a93cf9dad80bfdfbae1a2e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Muhammet=20Eren=20Karaku=C5=9F?=
Date: Mon, 2 Mar 2026 11:05:45 +0300
Subject: [PATCH 04/89] fix(i18n): correct Irish locale flag and language label
- Fix locale key in lang-list.json from "locale-ie-GA" to "locale-ga-IE"
to match the actual locale code used in IntlProvider
- Add ga -> ie mapping in getFlagCodeForLocale() so the Ireland flag is
shown instead of the Gabon flag
- Add missing ["ga", "ga-IE"] entry to check-locales.cjs validation list
Fixes NginxProxyManager/nginx-proxy-manager#5354
---
frontend/check-locales.cjs | 1 +
frontend/src/locale/IntlProvider.tsx | 1 +
frontend/src/locale/src/lang-list.json | 2 +-
3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/frontend/check-locales.cjs b/frontend/check-locales.cjs
index 75d2d8fc..deb418a3 100755
--- a/frontend/check-locales.cjs
+++ b/frontend/check-locales.cjs
@@ -13,6 +13,7 @@ const allLocales = [
["es", "es-ES"],
["et", "et-EE"],
["fr", "fr-FR"],
+ ["ga", "ga-IE"],
["it", "it-IT"],
["ja", "ja-JP"],
["nl", "nl-NL"],
diff --git a/frontend/src/locale/IntlProvider.tsx b/frontend/src/locale/IntlProvider.tsx
index dabe81b5..a5fb956c 100755
--- a/frontend/src/locale/IntlProvider.tsx
+++ b/frontend/src/locale/IntlProvider.tsx
@@ -72,6 +72,7 @@ const getFlagCodeForLocale = (locale?: string) => {
vi: "vn", // Vietnam
ko: "kr", // Korea
cs: "cz", // Czechia
+ ga: "ie", // Ireland (Irish)
};
if (specialCases[thisLocale]) {
diff --git a/frontend/src/locale/src/lang-list.json b/frontend/src/locale/src/lang-list.json
index 79dabe22..2e7112cf 100644
--- a/frontend/src/locale/src/lang-list.json
+++ b/frontend/src/locale/src/lang-list.json
@@ -8,7 +8,7 @@
"locale-et-EE": {
"defaultMessage": "Eesti"
},
- "locale-ie-GA": {
+ "locale-ga-IE": {
"defaultMessage": "Gaeilge"
},
"locale-de-DE": {
From cbcbd95812035ab291f34c625b56f3604a2cb764 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Muhammet=20Eren=20Karaku=C5=9F?=
Date: Mon, 2 Mar 2026 11:15:03 +0300
Subject: [PATCH 05/89] test(i18n): add tests for getFlagCodeForLocale flag
mapping
Cover standard locales, all special-case mappings (ja, zh, vi, ko, cs,
ga), and the undefined/fallback path to prevent future flag regressions.
---
frontend/src/locale/Utils.test.tsx | 27 ++++++++++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/frontend/src/locale/Utils.test.tsx b/frontend/src/locale/Utils.test.tsx
index e998dc31..a49460fe 100644
--- a/frontend/src/locale/Utils.test.tsx
+++ b/frontend/src/locale/Utils.test.tsx
@@ -1,4 +1,4 @@
-import { formatDateTime } from "src/locale";
+import { formatDateTime, getFlagCodeForLocale } from "src/locale";
import { afterAll, beforeAll, describe, expect, it } from "vitest";
describe("DateFormatter", () => {
@@ -72,3 +72,28 @@ describe("DateFormatter", () => {
expect(text).toBe("-100");
});
});
+
+describe("getFlagCodeForLocale", () => {
+ it("returns correct flag code for standard locales", () => {
+ expect(getFlagCodeForLocale("en-US")).toBe("EN");
+ expect(getFlagCodeForLocale("de-DE")).toBe("DE");
+ expect(getFlagCodeForLocale("fr-FR")).toBe("FR");
+ });
+
+ it("returns correct flag code for special-case locales", () => {
+ expect(getFlagCodeForLocale("ja-JP")).toBe("JP");
+ expect(getFlagCodeForLocale("zh-CN")).toBe("CN");
+ expect(getFlagCodeForLocale("vi-VN")).toBe("VN");
+ expect(getFlagCodeForLocale("ko-KR")).toBe("KR");
+ expect(getFlagCodeForLocale("cs-CZ")).toBe("CZ");
+ });
+
+ it("returns IE (Ireland) for Irish locale, not GA (Gabon)", () => {
+ expect(getFlagCodeForLocale("ga-IE")).toBe("IE");
+ });
+
+ it("falls back to EN when no locale is provided", () => {
+ expect(getFlagCodeForLocale()).toBe("EN");
+ expect(getFlagCodeForLocale(undefined)).toBe("EN");
+ });
+});
From 4a9ad2baf7d7c44e3dee3ad97f03765e28d9c820 Mon Sep 17 00:00:00 2001
From: Nishant <5211104+roundone@users.noreply.github.com>
Date: Fri, 6 Mar 2026 19:37:51 +0530
Subject: [PATCH 06/89] docs: add selfhosting.sh guide to third-party list
---
docs/src/third-party/index.md | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/docs/src/third-party/index.md b/docs/src/third-party/index.md
index cd54b45b..dac77ee9 100644
--- a/docs/src/third-party/index.md
+++ b/docs/src/third-party/index.md
@@ -14,7 +14,8 @@ Known integrations:
- [Proxmox Scripts](https://github.com/ej52/proxmox-scripts/tree/main/apps/nginx-proxy-manager)
- [Proxmox VE Helper-Scripts](https://community-scripts.github.io/ProxmoxVE/scripts?id=nginxproxymanager)
- [nginxproxymanagerGraf](https://github.com/ma-karai/nginxproxymanagerGraf)
+- [selfhosting.sh Nginx Proxy Manager Guide](https://selfhosting.sh/apps/nginx-proxy-manager/) - Complete Docker Compose setup guide with SSL configuration, access lists, and proxy host management.
If you would like your integration of NPM listed, please open a
-[Github issue](https://github.com/NginxProxyManager/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=)
+[Github issue](https://github.com/NginxProxyManager/nginx-proxy-manager/issues/new?assignees=&labels=enhancement&template=feature_request.md&title=)
\ No newline at end of file
From d88f0b26186c14236f3c307876545fa7e82ece78 Mon Sep 17 00:00:00 2001
From: Alexey Krainev
Date: Fri, 13 Mar 2026 01:19:22 +0500
Subject: [PATCH 07/89] Update ru.json
---
frontend/src/locale/src/ru.json | 134 ++++++++++++++++++++++++++++++--
1 file changed, 127 insertions(+), 7 deletions(-)
diff --git a/frontend/src/locale/src/ru.json b/frontend/src/locale/src/ru.json
index 44dff129..d81a4cc8 100644
--- a/frontend/src/locale/src/ru.json
+++ b/frontend/src/locale/src/ru.json
@@ -1,4 +1,61 @@
{
+ "2fa.backup-codes-remaining": {
+ "defaultMessage": "Осталось резервных кодов: {count}"
+ },
+ "2fa.backup-warning": {
+ "defaultMessage": "Сохраните коды в надежном месте. Они одноразовые."
+ },
+ "2fa.disable": {
+ "defaultMessage": "Выключить двухфакторную аутентификацию"
+ },
+ "2fa.disable-confirm": {
+ "defaultMessage": "Выключить 2FA"
+ },
+ "2fa.disable-warning": {
+ "defaultMessage": "Выключение двухфакторной аутентификации снизит защиту вашего аккаунта."
+ },
+ "2fa.disabled": {
+ "defaultMessage": "Выключена"
+ },
+ "2fa.done": {
+ "defaultMessage": "Я сохранил резервные коды"
+ },
+ "2fa.enable": {
+ "defaultMessage": "Включить двухфакторную аутентификацию"
+ },
+ "2fa.enabled": {
+ "defaultMessage": "Включена"
+ },
+ "2fa.enter-code": {
+ "defaultMessage": "Введите код подтверждения"
+ },
+ "2fa.enter-code-disable": {
+ "defaultMessage": "Введите код подтверждения для отключения"
+ },
+ "2fa.regenerate": {
+ "defaultMessage": "Перевыпустить"
+ },
+ "2fa.regenerate-backup": {
+ "defaultMessage": "Перевыпустить резервные коды"
+ },
+ "2fa.regenerate-instructions": {
+ "defaultMessage": "Введите код проверки, чтобы создать новые резервные коды. Прежние перестанут работать."
+ },
+ "2fa.secret-key": {
+ "defaultMessage": "Секретный ключ"
+ },
+ "2fa.setup-instructions": {
+ "defaultMessage": "Отсканируйте QR-код приложением или введите ключ настройки вручную."
+ },
+ "2fa.status": {
+ "defaultMessage": "Статус"
+ },
+ "2fa.title": {
+ "defaultMessage": "Двухфакторная аутентификация"
+ },
+ "2fa.verify-enable": {
+ "defaultMessage": "Проверить и включить"
+ },
"access-list": {
"defaultMessage": "Список доступа"
},
@@ -15,14 +72,17 @@
"defaultMessage": "Обратите внимание: разрешающие и запрещающие директивы применяются в порядке их определения."
},
"access-list.pass-auth": {
- "defaultMessage": "Передавать авторизацию на upstream-сервер"
+ "defaultMessage": "Проксировать авторизацию"
},
"access-list.public": {
- "defaultMessage": "Общедоступный"
+ "defaultMessage": "Публичный"
},
"access-list.public.subtitle": {
"defaultMessage": "Без аутентификации"
},
+ "access-list.rule-source.placeholder": {
+ "defaultMessage": "192.168.1.100 или 192.168.1.0/24 или 2001:0db8::/32"
+ },
"access-list.satisfy-any": {
"defaultMessage": "Любое совпадение"
},
@@ -38,12 +98,18 @@
"action.add-location": {
"defaultMessage": "Добавить маршрут"
},
+ "action.allow": {
+ "defaultMessage": "Разрешить"
+ },
"action.close": {
"defaultMessage": "Закрыть"
},
"action.delete": {
"defaultMessage": "Удалить"
},
+ "action.deny": {
+ "defaultMessage": "Запретить"
+ },
"action.disable": {
"defaultMessage": "Выключить"
},
@@ -68,6 +134,9 @@
"auditlogs": {
"defaultMessage": "Журнал аудита"
},
+ "auto": {
+ "defaultMessage": "Авто"
+ },
"cancel": {
"defaultMessage": "Отменить"
},
@@ -128,6 +197,9 @@
"certificates.dns.provider": {
"defaultMessage": "DNS-провайдер"
},
+ "certificates.dns.provider.placeholder": {
+ "defaultMessage": "Выберите провайдера..."
+ },
"certificates.dns.warning": {
"defaultMessage": "Этот раздел требует знаний о Certbot и его DNS-плагинах. Пожалуйста, обратитесь к документации соответствующих плагинов."
},
@@ -275,6 +347,9 @@
"domain-names.wildcards-not-supported": {
"defaultMessage": "Подстановочные домены не поддерживаются этим центром сертификации"
},
+ "domains.advanced": {
+ "defaultMessage": "Расширенные"
+ },
"domains.force-ssl": {
"defaultMessage": "Всегда SSL"
},
@@ -287,6 +362,9 @@
"domains.http2-support": {
"defaultMessage": "Поддержка HTTP/2"
},
+ "domains.trust-forwarded-proto": {
+ "defaultMessage": "Доверять X-Forwarded-Proto"
+ },
"domains.use-dns": {
"defaultMessage": "Проверка через DNS"
},
@@ -360,7 +438,7 @@
"defaultMessage": "Поддержка WebSocket"
},
"host.forward-port": {
- "defaultMessage": "Порт перенаправления"
+ "defaultMessage": "Целевой порт"
},
"host.forward-scheme": {
"defaultMessage": "Схема"
@@ -383,6 +461,21 @@
"loading": {
"defaultMessage": "Загрузка…"
},
+ "login.2fa-code": {
+ "defaultMessage": "Код проверки"
+ },
+ "login.2fa-code-placeholder": {
+ "defaultMessage": "Введите код"
+ },
+ "login.2fa-description": {
+ "defaultMessage": "Введите код из приложения для аутентификации"
+ },
+ "login.2fa-title": {
+ "defaultMessage": "Двухфакторная аутентификация"
+ },
+ "login.2fa-verify": {
+ "defaultMessage": "Проверить"
+ },
"login.title": {
"defaultMessage": "Авторизация"
},
@@ -504,7 +597,7 @@
"defaultMessage": "Прокси-хост"
},
"proxy-host.forward-host": {
- "defaultMessage": "Хост / IP перенаправления"
+ "defaultMessage": "Целевой хост"
},
"proxy-hosts": {
"defaultMessage": "Прокси-хосты"
@@ -513,13 +606,13 @@
"defaultMessage": "{count} {count, plural, one {прокси-хост} few {прокси-хоста} many {прокси-хостов} other {прокси-хоста}}"
},
"public": {
- "defaultMessage": "Общедоступный"
+ "defaultMessage": "Публичный"
},
"redirection-host": {
"defaultMessage": "Редирект-хост"
},
"redirection-host.forward-domain": {
- "defaultMessage": "Домен перенаправления"
+ "defaultMessage": "Целевой домен"
},
"redirection-host.forward-http-code": {
"defaultMessage": "HTTP-код"
@@ -530,6 +623,24 @@
"redirection-hosts.count": {
"defaultMessage": "{count} {count, plural, one {редирект-хост} few {редирект-хоста} many {редирект-хостов} other {редирект-хоста}}"
},
+ "redirection-hosts.http-code.300": {
+ "defaultMessage": "300 Множественный выбор"
+ },
+ "redirection-hosts.http-code.301": {
+ "defaultMessage": "301 Ресурс перемещен навсегда"
+ },
+ "redirection-hosts.http-code.302": {
+ "defaultMessage": "302 Ресурс временно перемещен"
+ },
+ "redirection-hosts.http-code.303": {
+ "defaultMessage": "303 Смотрите другой ресурс"
+ },
+ "redirection-hosts.http-code.307": {
+ "defaultMessage": "307 Временное перенаправление"
+ },
+ "redirection-hosts.http-code.308": {
+ "defaultMessage": "308 Ресурс перемещен навсегда"
+ },
"role.admin": {
"defaultMessage": "Администратор"
},
@@ -585,7 +696,10 @@
"defaultMessage": "Поток"
},
"stream.forward-host": {
- "defaultMessage": "Хост перенаправления"
+ "defaultMessage": "Целевой хост"
+ },
+ "stream.forward-host.placeholder": {
+ "defaultMessage": "example.com или 10.0.0.1 или 2001:db8:3333:4444:5555:6666:7777:8888"
},
"stream.incoming-port": {
"defaultMessage": "Входящий порт"
@@ -605,6 +719,9 @@
"test": {
"defaultMessage": "Проверить"
},
+ "update-available": {
+ "defaultMessage": "Доступно обновление: {latestVersion}"
+ },
"user": {
"defaultMessage": "Пользователь"
},
@@ -647,6 +764,9 @@
"user.switch-light": {
"defaultMessage": "Включить светлую тему"
},
+ "user.two-factor": {
+ "defaultMessage": "Настроить 2FA"
+ },
"username": {
"defaultMessage": "Имя пользователя"
},
From 10e33b39d7a73ed2f0389453270aa55205ab2a8c Mon Sep 17 00:00:00 2001
From: Alexey Krainev
Date: Fri, 13 Mar 2026 01:50:55 +0500
Subject: [PATCH 08/89] Fix ru.json
---
frontend/src/locale/src/ru.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/frontend/src/locale/src/ru.json b/frontend/src/locale/src/ru.json
index d81a4cc8..c18be998 100644
--- a/frontend/src/locale/src/ru.json
+++ b/frontend/src/locale/src/ru.json
@@ -27,10 +27,10 @@
"defaultMessage": "Включена"
},
"2fa.enter-code": {
- "defaultMessage": "Введите код подтверждения"
+ "defaultMessage": "Введите код проверки"
},
"2fa.enter-code-disable": {
- "defaultMessage": "Введите код подтверждения для отключения"
+ "defaultMessage": "Введите код проверки для выключения"
},
"2fa.regenerate": {
"defaultMessage": "Перевыпустить"
From 9e4c92a066d8e5f537284635c1fdbbf0e20dd5f7 Mon Sep 17 00:00:00 2001
From: Terry Git Cracken
Date: Sat, 14 Mar 2026 20:08:49 -0500
Subject: [PATCH 09/89] docs: add NPM Auth Gateway to third-party integrations
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add NPM Auth Gateway — a companion app that adds user-level access
control with auto IP whitelisting on top of NPM's access list system.
NPM remains authoritative. The gateway only reads/writes through
NPM's REST API. If the gateway goes down, all existing IP whitelists
persist in NPM.
Running in production managing 90+ proxy hosts.
---
docs/src/third-party/index.md | 1 +
docs/src/third-party/npm-auth-gateway.md | 83 ++++++++++++++++++++++++
2 files changed, 84 insertions(+)
create mode 100644 docs/src/third-party/npm-auth-gateway.md
diff --git a/docs/src/third-party/index.md b/docs/src/third-party/index.md
index cd54b45b..60768b5a 100644
--- a/docs/src/third-party/index.md
+++ b/docs/src/third-party/index.md
@@ -14,6 +14,7 @@ Known integrations:
- [Proxmox Scripts](https://github.com/ej52/proxmox-scripts/tree/main/apps/nginx-proxy-manager)
- [Proxmox VE Helper-Scripts](https://community-scripts.github.io/ProxmoxVE/scripts?id=nginxproxymanager)
- [nginxproxymanagerGraf](https://github.com/ma-karai/nginxproxymanagerGraf)
+- [NPM Auth Gateway](https://github.com/Mark0025/npm-auth-gateway) — User-level access control with auto IP whitelisting via auth providers. [Details](/third-party/npm-auth-gateway)
If you would like your integration of NPM listed, please open a
diff --git a/docs/src/third-party/npm-auth-gateway.md b/docs/src/third-party/npm-auth-gateway.md
new file mode 100644
index 00000000..7dce9327
--- /dev/null
+++ b/docs/src/third-party/npm-auth-gateway.md
@@ -0,0 +1,83 @@
+---
+outline: deep
+---
+
+# NPM Auth Gateway
+
+User-level access control for Nginx Proxy Manager with auto IP whitelisting.
+
+**Repository:** [github.com/Mark0025/npm-auth-gateway](https://github.com/Mark0025/npm-auth-gateway)
+
+## What It Does
+
+NPM Auth Gateway is a companion app that adds user management on top of NPM's access list system. Instead of manually adding IPs to access lists, users log in through an auth provider and their IP is automatically whitelisted on the access lists they've been assigned to.
+
+NPM remains fully in control — the gateway only reads and writes through NPM's REST API. All access enforcement stays in NPM's nginx config.
+
+## The Problem It Solves
+
+- **Manual IP management** — every time a user needs access, an admin manually adds their IP to an access list
+- **IP changes** — mobile users, VPNs, and travel mean IPs change constantly
+- **No user visibility** — access lists contain IPs, but there's no record of who each IP belongs to
+- **Scaling** — managing 10+ users across multiple access lists gets tedious
+
+## How It Works
+
+```
+Browser → NPM (SSL) → Auth Gateway → Auth Provider
+ ↓
+ NPM REST API (:81)
+ auto-add IP to access lists
+```
+
+1. Admin creates a user by email
+2. Admin assigns access — a table of proxy hosts with checkboxes showing which hosts each access list protects
+3. User logs in → IP detected → automatically added to their assigned NPM access lists
+4. User's IP changes → they log in again → new IP auto-added
+5. Admin revokes access → user's IPs removed from all access lists
+
+## Key Features
+
+- **Auto IP whitelisting** on login
+- **Per-host access control** with checkboxes (not abstract groups)
+- **Admin/user roles** — admin sees everything, users see only their assigned hosts
+- **Personalized dashboard** — users see their services as clickable cards
+- **Login logging** with IP history per user
+- **One-click revoke** — removes user's IPs from all access lists
+- **Searchable tables** for proxy hosts and users
+- **Survives gateway failure** — NPM keeps enforcing existing whitelists
+
+## Architecture
+
+| Responsibility | Who Handles It |
+|---|---|
+| SSL termination | **NPM** |
+| Proxy host configuration | **NPM** |
+| Access list enforcement | **NPM** |
+| IP whitelisting | **NPM** |
+| User identity | **Auth Provider** |
+| User → access list mapping | **Gateway** |
+| Auto IP whitelisting | **Gateway** |
+
+**No database required.** NPM stores all proxy/ACL config. User metadata lives in the auth provider. Zero state duplication.
+
+## NPM API Endpoints Used
+
+| Endpoint | Purpose |
+|---|---|
+| `POST /api/tokens` | Authentication |
+| `GET /api/nginx/proxy-hosts` | List proxy hosts |
+| `GET /api/nginx/access-lists` | List access lists |
+| `PUT /api/nginx/access-lists/:id` | Update access list IPs |
+| `POST /api/nginx/access-lists` | Create access list |
+| `GET /api/nginx/certificates` | List SSL certificates |
+
+## Setup
+
+See the [repository README](https://github.com/Mark0025/npm-auth-gateway) for Docker deployment instructions.
+
+## Tech Stack
+
+Next.js / React / TypeScript / Docker
+
+The auth provider is swappable — the proof of concept uses Clerk, but any OIDC provider works (Auth0, Keycloak, Authentik, etc.).
From cafb614b8063774639407efa22ce9209754f8d1f Mon Sep 17 00:00:00 2001
From: 12LuA <71656192+12LuA@users.noreply.github.com>
Date: Wed, 18 Mar 2026 13:47:03 +0100
Subject: [PATCH 10/89] Fix typo in debug mode comment
---
backend/lib/config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/backend/lib/config.js b/backend/lib/config.js
index 544bbfec..a491c190 100644
--- a/backend/lib/config.js
+++ b/backend/lib/config.js
@@ -211,7 +211,7 @@ const isPostgres = () => {
};
/**
- * Are we running in debug mdoe?
+ * Are we running in debug mode?
*
* @returns {boolean}
*/
From 1b782997ef7db59f54dd129bf87e329765028050 Mon Sep 17 00:00:00 2001
From: fankesyooni
Date: Thu, 19 Mar 2026 11:10:24 +0800
Subject: [PATCH 11/89] fix: postgres data volume path
---
docs/src/setup/index.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/src/setup/index.md b/docs/src/setup/index.md
index 286a2e35..844a80df 100644
--- a/docs/src/setup/index.md
+++ b/docs/src/setup/index.md
@@ -150,7 +150,7 @@ services:
POSTGRES_PASSWORD: 'npmpass'
POSTGRES_DB: 'npm'
volumes:
- - ./postgresql:/var/lib/postgresql
+ - ./postgres_data:/var/lib/postgresql/data
```
::: warning
From 40f39a7f19705fa51d7fe7cc25d388cd884169e1 Mon Sep 17 00:00:00 2001
From: Stephan Paternotte
Date: Sat, 21 Mar 2026 11:20:25 +0100
Subject: [PATCH 12/89] Update nl.json - completion and corrections
Adding Ducth language translation for latest additions
Capitalisation
Infinitive verb form
---
frontend/src/locale/src/nl.json | 273 +++++++++++++++++++++++---------
1 file changed, 195 insertions(+), 78 deletions(-)
diff --git a/frontend/src/locale/src/nl.json b/frontend/src/locale/src/nl.json
index 81c37054..d37fcf47 100644
--- a/frontend/src/locale/src/nl.json
+++ b/frontend/src/locale/src/nl.json
@@ -1,4 +1,61 @@
{
+ "2fa.backup-codes-remaining": {
+ "defaultMessage": "Resterende back-upcodes: {count}"
+ },
+ "2fa.backup-warning": {
+ "defaultMessage": "Sla deze back-upcodes op een veilige plaats op. Elke code kan slechts één keer worden gebruikt."
+ },
+ "2fa.disable": {
+ "defaultMessage": "Twee-Factor Authenticatie uitschakelen"
+ },
+ "2fa.disable-confirm": {
+ "defaultMessage": "2FA uitschakelen"
+ },
+ "2fa.disable-warning": {
+ "defaultMessage": "Als u tweefactorauthenticatie uitschakelt, wordt uw account minder veilig."
+ },
+ "2fa.disabled": {
+ "defaultMessage": "Uitgeschakeld"
+ },
+ "2fa.done": {
+ "defaultMessage": "Ik heb mijn back-upcodes opgeslagen"
+ },
+ "2fa.enable": {
+ "defaultMessage": "Twee-Factor Authenticatie inschakelen"
+ },
+ "2fa.enabled": {
+ "defaultMessage": "Ingeschakeld"
+ },
+ "2fa.enter-code": {
+ "defaultMessage": "Verificatiecode invoeren"
+ },
+ "2fa.enter-code-disable": {
+ "defaultMessage": "Verificatiecode invoeren om uit te schakelen"
+ },
+ "2fa.regenerate": {
+ "defaultMessage": "Opnieuw genereren"
+ },
+ "2fa.regenerate-backup": {
+ "defaultMessage": "Back-upcodes opnieuw genereren"
+ },
+ "2fa.regenerate-instructions": {
+ "defaultMessage": "Voer een verificatiecode in om nieuwe back-upcodes te genereren. Oude codes worden ongeldig gemaakt."
+ },
+ "2fa.secret-key": {
+ "defaultMessage": "Geheime sleutel"
+ },
+ "2fa.setup-instructions": {
+ "defaultMessage": "Scan deze QR-code met uw authenticator-app, of voer de code handmatig in."
+ },
+ "2fa.status": {
+ "defaultMessage": "Status"
+ },
+ "2fa.title": {
+ "defaultMessage": "Twee-factor Authenticatie"
+ },
+ "2fa.verify-enable": {
+ "defaultMessage": "Verifiëren en inschakelen"
+ },
"access-list": {
"defaultMessage": "Toegangslijst"
},
@@ -12,10 +69,10 @@
"defaultMessage": "Als er minimaal 1 regel bestaat, wordt deze regel als laatste toegevoegd"
},
"access-list.help.rules-order": {
- "defaultMessage": "Onthoud dat de regels van boven naar beneden worden toegevoegd."
+ "defaultMessage": "Houd er rekening mee dat de regels worden toegepast in de volgorde waarin ze zijn gedefinieerd."
},
"access-list.pass-auth": {
- "defaultMessage": "Pass Auth to Upstream"
+ "defaultMessage": "Authenticatie verder omhoog doorgeven"
},
"access-list.public": {
"defaultMessage": "Publiekelijk toegankelijk"
@@ -23,6 +80,9 @@
"access-list.public.subtitle": {
"defaultMessage": "Geen basisautentificatie vereist"
},
+ "access-list.rule-source.placeholder": {
+ "defaultMessage": "192.168.1.100 or 192.168.1.0/24 or 2001:0db8::/32"
+ },
"access-list.satisfy-any": {
"defaultMessage": "Voldoe aan elke"
},
@@ -36,7 +96,10 @@
"defaultMessage": "Toevoegen"
},
"action.add-location": {
- "defaultMessage": "Locatie Toevoegen"
+ "defaultMessage": "Locatie toevoegen"
+ },
+ "action.allow": {
+ "defaultMessage": "Toestaan"
},
"action.close": {
"defaultMessage": "Sluiten"
@@ -44,11 +107,14 @@
"action.delete": {
"defaultMessage": "Verwijderen"
},
+ "action.deny": {
+ "defaultMessage": "Afwijzen"
+ },
"action.disable": {
"defaultMessage": "Uitzetten"
},
"action.download": {
- "defaultMessage": "Download"
+ "defaultMessage": "Downloaden"
},
"action.edit": {
"defaultMessage": "Bewerken"
@@ -57,17 +123,20 @@
"defaultMessage": "Aanzetten"
},
"action.permissions": {
- "defaultMessage": "Rechten"
+ "defaultMessage": "Machtigingen"
},
"action.renew": {
"defaultMessage": "Vernieuwen"
},
"action.view-details": {
- "defaultMessage": "Bekijk Details"
+ "defaultMessage": "Details weergeven"
},
"auditlogs": {
"defaultMessage": "Logboeken"
},
+ "auto": {
+ "defaultMessage": "Autom."
+ },
"cancel": {
"defaultMessage": "Annuleren"
},
@@ -78,13 +147,13 @@
"defaultMessage": "Certificaat"
},
"certificate.custom-certificate-key": {
- "defaultMessage": "Certificaat Sleutel"
+ "defaultMessage": "Certificaatsleutel"
},
"certificate.custom-intermediate": {
- "defaultMessage": "Intermediate Certificaat"
+ "defaultMessage": "Intermediate certificaat"
},
"certificate.in-use": {
- "defaultMessage": "In Gebruik"
+ "defaultMessage": "In gebruik"
},
"certificate.none.subtitle": {
"defaultMessage": "Geen certificaat toegewezen"
@@ -96,58 +165,61 @@
"defaultMessage": "Geen"
},
"certificate.not-in-use": {
- "defaultMessage": "Niet Gebruikt"
+ "defaultMessage": "Niet gebruikt"
},
"certificate.renew": {
- "defaultMessage": "Certificaat Vernieuwen"
+ "defaultMessage": "Certificaat vernieuwen"
},
"certificates": {
"defaultMessage": "Certificaten"
},
"certificates.custom": {
- "defaultMessage": "Aangepast Certificaat"
+ "defaultMessage": "Aangepast certificaat"
},
"certificates.custom.warning": {
- "defaultMessage": "Sleutels met een wachtzin zijn niet ondersteund."
+ "defaultMessage": "Sleutels met een wachtwoordzin zijn niet ondersteund."
},
"certificates.dns.credentials": {
- "defaultMessage": "Credentials File Content"
+ "defaultMessage": "Inloggegevens bestandsinhoud"
},
"certificates.dns.credentials-note": {
- "defaultMessage": "Deze plugin vereist een configuratiebestand met een API token of andere gegevens van de provider."
+ "defaultMessage": "Deze plugin vereist een configuratiebestand met een API-token of andere gegevens van de provider."
},
"certificates.dns.credentials-warning": {
- "defaultMessage": "Deze data zal worden opgeslagen als plaintext in de database en in een bestand!"
+ "defaultMessage": "Deze gegevens worden opgeslagen als plaintext in de database en in een bestand!"
},
"certificates.dns.propagation-seconds": {
"defaultMessage": "Verwerkingstijd (seconden)"
},
"certificates.dns.propagation-seconds-note": {
- "defaultMessage": "Laat leeg om de standaardwaarde van de plugin te gebruiken. Aantal seconden om te wachten op DNS propagatie."
+ "defaultMessage": "Laat leeg om de standaardwaarde van de plugin te gebruiken. Aantal seconden om te wachten op DNS-propagatie."
},
"certificates.dns.provider": {
- "defaultMessage": "DNS Provider"
+ "defaultMessage": "DNS-leverancier"
+ },
+ "certificates.dns.provider.placeholder": {
+ "defaultMessage": "Kiese een leverancier..."
},
"certificates.dns.warning": {
"defaultMessage": "Deze sectie vereist wat informatie over Certbot en zijn DNS plugins. Gebruik de documentatie van de bijbehorende plugins."
},
"certificates.http.reachability-404": {
- "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar dat lijkt niet Nginx Proxy Manager te zijn. Zorg ervoor dat je domein naar het IP waar je NPM instance draait wijst."
+ "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar dat lijkt niet Nginx Proxy Manager te zijn. Zorg ervoor dat je domein verwijst naar het IP waar je NPM-instantie draait."
},
"certificates.http.reachability-failed-to-check": {
"defaultMessage": "Bereikbaarheid kan niet worden bepaald door een communicatiefout met site24x7.com."
},
"certificates.http.reachability-not-resolved": {
- "defaultMessage": "Er is geen server beschikbaar op dit domein. Zorg ervoor dat je domein bestaat en naar het IP waar je NPM instance draait wijst en eventueel port 80 wordt doorgegeven in je router."
+ "defaultMessage": "Er is geen server beschikbaar op dit domein. Zorg ervoor dat je domein bestaat en verwijst naar het IP waar je NPM-instantie draait en eventueel port 80 wordt doorgegeven in je router."
},
"certificates.http.reachability-ok": {
- "defaultMessage": "Jouw server is bereikbaar en certificaten kunnen worden aangemaakt."
+ "defaultMessage": "Je server is bereikbaar en certificaten kunnen worden aangemaakt."
},
"certificates.http.reachability-other": {
- "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte statuscode ({code}) teruggegeven. Is dat de NPM server? Zorg ervoor dat je domein naar het IP waar je NPM instance draait wijst."
+ "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte statuscode ({code}) teruggegeven. Is dat de NPM-server? Zorg ervoor dat je domein verwijst naar het IP waar je NPM-instantie draait."
},
"certificates.http.reachability-wrong-data": {
- "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte gegevens teruggegeven. Is dat de NPM server? Zorg ervoor dat je domein naar het IP waar je NPM instance draait wijst."
+ "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte gegevens teruggegeven. Is dat de NPM-server? Zorg ervoor dat je domein verwijst naar het IP waar je NPM-instantie draait."
},
"certificates.http.test-results": {
"defaultMessage": "Testresultaten"
@@ -171,19 +243,19 @@
"defaultMessage": "met Let's Encrypt"
},
"certificates.request.title": {
- "defaultMessage": "Vraag een nieuwe Certificaat aan"
+ "defaultMessage": "Vraag een nieuw certificaat aan"
},
"column.access": {
"defaultMessage": "Toegang"
},
"column.authorization": {
- "defaultMessage": "Authorizatie"
+ "defaultMessage": "Authorisatie"
},
"column.authorizations": {
- "defaultMessage": "Authorizaties"
+ "defaultMessage": "Authorisaties"
},
"column.custom-locations": {
- "defaultMessage": "Aangepaste Locaties"
+ "defaultMessage": "Aangepaste locaties"
},
"column.destination": {
"defaultMessage": "Doel"
@@ -192,7 +264,7 @@
"defaultMessage": "Details"
},
"column.email": {
- "defaultMessage": "Email"
+ "defaultMessage": "E-mail"
},
"column.event": {
"defaultMessage": "Gebeurtenis"
@@ -201,10 +273,10 @@
"defaultMessage": "Verloopt"
},
"column.http-code": {
- "defaultMessage": "HTTP Code"
+ "defaultMessage": "HTTP-code"
},
"column.incoming-port": {
- "defaultMessage": "Inkomende Poort"
+ "defaultMessage": "Inkomende poort"
},
"column.name": {
"defaultMessage": "Naam"
@@ -222,7 +294,7 @@
"defaultMessage": "Regels"
},
"column.satisfy": {
- "defaultMessage": "Vervul"
+ "defaultMessage": "Vervullen"
},
"column.satisfy-all": {
"defaultMessage": "Alle"
@@ -246,7 +318,7 @@
"defaultMessage": "Aangemaakt: {date}"
},
"dashboard": {
- "defaultMessage": "Dashboard"
+ "defaultMessage": "Bedieningspaneel"
},
"dead-host": {
"defaultMessage": "404 Host"
@@ -275,20 +347,26 @@
"domain-names.wildcards-not-supported": {
"defaultMessage": "Wildcards zijn niet ondersteund voor deze CA"
},
+ "domains.advanced": {
+ "defaultMessage": "Geavanceerd"
+ },
"domains.force-ssl": {
- "defaultMessage": "Forceer SSL"
+ "defaultMessage": "SSL forceren"
},
"domains.hsts-enabled": {
- "defaultMessage": "HSTS Aangezet"
+ "defaultMessage": "HSTS ingeschakeld"
},
"domains.hsts-subdomains": {
- "defaultMessage": "HSTS Subdomein"
+ "defaultMessage": "HSTS-subdomein"
},
"domains.http2-support": {
- "defaultMessage": "HTTP/2 Ondersteuning"
+ "defaultMessage": "HTTP/2-ondersteuning"
+ },
+ "domains.trust-forwarded-proto": {
+ "defaultMessage": "Upstream Forwarded Proto Headers vertrouwen"
},
"domains.use-dns": {
- "defaultMessage": "Gebruik DNS Challenge"
+ "defaultMessage": "DNS Challenge gebruiken"
},
"email-address": {
"defaultMessage": "E-mailadres"
@@ -297,19 +375,19 @@
"defaultMessage": "Geen resultaten gevonden"
},
"empty-subtitle": {
- "defaultMessage": "Waarom niet een maken?"
+ "defaultMessage": "Waarom maak je er geen aan?"
},
"enabled": {
"defaultMessage": "Aangezet"
},
"error.access.at-least-one": {
- "defaultMessage": "Minimaal één authorizatie- of één toegangsregel is vereist"
+ "defaultMessage": "Minstens één authorisatie- of één toegangsregel is vereist"
},
"error.access.duplicate-usernames": {
"defaultMessage": "Gebruikersnamen moeten uniek zijn"
},
"error.invalid-auth": {
- "defaultMessage": "Ongeldige email of wachtwoord"
+ "defaultMessage": "Ongeldige e-mail of wachtwoord"
},
"error.invalid-domain": {
"defaultMessage": "Ongeldige domeinnaam: {domain}"
@@ -318,19 +396,19 @@
"defaultMessage": "Ongeldig e-mailadres"
},
"error.max-character-length": {
- "defaultMessage": "Maximale lengte is {max} karakter{max, plural, one {} other {s}}"
+ "defaultMessage": "Maximale lengte is {max} teken{max, plural, one {} other {s}}"
},
"error.max-domains": {
"defaultMessage": "Te veel domeinnamen, max is {max}"
},
"error.maximum": {
- "defaultMessage": "Maximale is {max}"
+ "defaultMessage": "Maximum is {max}"
},
"error.min-character-length": {
- "defaultMessage": "Minimale lengte is {min} karakter{min, plural, one {} other {s}}"
+ "defaultMessage": "Minimale lengte is {min} teken{min, plural, one {} other {s}}"
},
"error.minimum": {
- "defaultMessage": "Minimale is {min}"
+ "defaultMessage": "Minimum is {min}"
},
"error.passwords-must-match": {
"defaultMessage": "Wachtwoorden moeten overeenkomen"
@@ -345,19 +423,19 @@
"defaultMessage": "Maak een Fork op Github"
},
"host.flags.block-exploits": {
- "defaultMessage": "Blokkeer Veelvoorkomende Kwetsbaarheden"
+ "defaultMessage": "Veelvoorkomende kwetsbaarheden blokkeren"
},
"host.flags.cache-assets": {
"defaultMessage": "Cache Assets"
},
"host.flags.preserve-path": {
- "defaultMessage": "Pad Behouden"
+ "defaultMessage": "Pad behouden"
},
"host.flags.protocols": {
"defaultMessage": "Protocollen"
},
"host.flags.websockets-upgrade": {
- "defaultMessage": "Websockets Ondersteuning"
+ "defaultMessage": "Websockets-ondersteuning"
},
"host.forward-port": {
"defaultMessage": "Poort Doorsturen"
@@ -383,17 +461,32 @@
"loading": {
"defaultMessage": "Laden…"
},
+ "login.2fa-code": {
+ "defaultMessage": "Verificatiecode"
+ },
+ "login.2fa-code-placeholder": {
+ "defaultMessage": "Code invoeren"
+ },
+ "login.2fa-description": {
+ "defaultMessage": "Voer de code in vanuit uw authenticator-app"
+ },
+ "login.2fa-title": {
+ "defaultMessage": "Twee-factor Authenticatie"
+ },
+ "login.2fa-verify": {
+ "defaultMessage": "Verifiëren"
+ },
"login.title": {
"defaultMessage": "Inloggen"
},
"nginx-config.label": {
- "defaultMessage": "Aangepaste Nginx Configuratie"
+ "defaultMessage": "Aangepaste Nginx-configuratie"
},
"nginx-config.placeholder": {
- "defaultMessage": "# Voeg jouw aangepaste Nginx configuratie hier op eigen risico toe!"
+ "defaultMessage": "# Voer hier je aangepaste Nginx-configuratie in op eigen risico!"
},
"no-permission-error": {
- "defaultMessage": "Jij hebt geen toegang om dit te bekijken."
+ "defaultMessage": "Je hebt geen toegang om dit te bekijken."
},
"notfound.action": {
"defaultMessage": "Thuis"
@@ -429,16 +522,16 @@
"defaultMessage": "{object} #{id}"
},
"object.add": {
- "defaultMessage": "Voeg {object} toe"
+ "defaultMessage": "{object} toevoegen"
},
"object.delete": {
- "defaultMessage": "Verwijder {object}"
+ "defaultMessage": "{object} verwijderen"
},
"object.delete.content": {
"defaultMessage": "Weet je zeker dat je {object} wilt verwijderen?"
},
"object.edit": {
- "defaultMessage": "Bewerk {object}"
+ "defaultMessage": "{object} bewerken"
},
"object.empty": {
"defaultMessage": "Er zijn geen {objects}"
@@ -477,28 +570,28 @@
"defaultMessage": "Willekeurig wachtwoord genereren"
},
"password.hide": {
- "defaultMessage": "Wachtwoord Verbergen"
+ "defaultMessage": "Wachtwoord verbergen"
},
"password.show": {
- "defaultMessage": "Toon Wachtwoord"
+ "defaultMessage": "Wachtwoord weergeven"
},
"permissions.hidden": {
"defaultMessage": "Verborgen"
},
"permissions.manage": {
- "defaultMessage": "Beheer"
+ "defaultMessage": "Beheren"
},
"permissions.view": {
- "defaultMessage": "Alleen Bekijken"
+ "defaultMessage": "Alleen weergeven"
},
"permissions.visibility.all": {
- "defaultMessage": "Alle Items"
+ "defaultMessage": "Alle items"
},
"permissions.visibility.title": {
- "defaultMessage": "Item Zichtbaarheid"
+ "defaultMessage": "Zichtbaarheid"
},
"permissions.visibility.user": {
- "defaultMessage": "Alleen Aangemaakte Items"
+ "defaultMessage": "Alleen aangemaakte items"
},
"proxy-host": {
"defaultMessage": "Proxy Host"
@@ -516,25 +609,43 @@
"defaultMessage": "Openbaar"
},
"redirection-host": {
- "defaultMessage": "Redirection Host"
+ "defaultMessage": "Doorgestuurde Host"
},
"redirection-host.forward-domain": {
"defaultMessage": "Doorgestuurd Domein"
},
"redirection-host.forward-http-code": {
- "defaultMessage": "HTTP Code"
+ "defaultMessage": "HTTP-code"
},
"redirection-hosts": {
- "defaultMessage": "Redirection Hosts"
+ "defaultMessage": "Doorgestuurde Hosts"
},
"redirection-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Redirection Host} other {Redirection Hosts}}"
+ "defaultMessage": "{count} {count, plural, one {Doorgestuurde Host} other {Doorgestuurde Hosts}}"
+ },
+ "redirection-hosts.http-code.300": {
+ "defaultMessage": "300 Meerdere opties"
+ },
+ "redirection-hosts.http-code.301": {
+ "defaultMessage": "301 Permanent verplaatst"
+ },
+ "redirection-hosts.http-code.302": {
+ "defaultMessage": "302 Tijdelijk verplaatst"
+ },
+ "redirection-hosts.http-code.303": {
+ "defaultMessage": "303 Zie overig"
+ },
+ "redirection-hosts.http-code.307": {
+ "defaultMessage": "307 Tijdelijk doorgestuurd"
+ },
+ "redirection-hosts.http-code.308": {
+ "defaultMessage": "308 Permanent doorgestuurd"
},
"role.admin": {
"defaultMessage": "Beheerder"
},
"role.standard-user": {
- "defaultMessage": "Standaard Gebruiker"
+ "defaultMessage": "Standaardgebruiker"
},
"save": {
"defaultMessage": "Opslaan"
@@ -564,13 +675,13 @@
"defaultMessage": "Aangepaste HTML"
},
"settings.default-site.html.placeholder": {
- "defaultMessage": ""
+ "defaultMessage": ""
},
"settings.default-site.redirect": {
"defaultMessage": "Omleiding"
},
"setup.preamble": {
- "defaultMessage": "Begin met het aanmaken van je beheerder account."
+ "defaultMessage": "Begin met het aanmaken van je beheerderaccount."
},
"setup.title": {
"defaultMessage": "Welkom!"
@@ -579,7 +690,7 @@
"defaultMessage": "Inloggen"
},
"ssl-certificate": {
- "defaultMessage": "SSL Certificaten"
+ "defaultMessage": "SSL-certificaat"
},
"stream": {
"defaultMessage": "Stream"
@@ -587,6 +698,9 @@
"stream.forward-host": {
"defaultMessage": "Doorgestuurde Host"
},
+ "stream.forward-host.placeholder": {
+ "defaultMessage": "example.com or 10.0.0.1 or 2001:db8:3333:4444:5555:6666:7777:8888"
+ },
"stream.incoming-port": {
"defaultMessage": "Inkomende Poort"
},
@@ -603,25 +717,25 @@
"defaultMessage": "UDP"
},
"test": {
- "defaultMessage": "Test"
+ "defaultMessage": "Testen"
},
"update-available": {
- "defaultMessage": "Update Beschikbaar: {latestVersion}"
+ "defaultMessage": "Update beschikbaar: {latestVersion}"
},
"user": {
"defaultMessage": "Gebruiker"
},
"user.change-password": {
- "defaultMessage": "Verander Wachtwoord"
+ "defaultMessage": "Wachtwoord wijzigen"
},
"user.confirm-password": {
- "defaultMessage": "Bevestig Wachtwoord"
+ "defaultMessage": "Wachtwoord bevestigen"
},
"user.current-password": {
"defaultMessage": "Huidig Wachtwoord"
},
"user.edit-profile": {
- "defaultMessage": "Profiel Bewerken"
+ "defaultMessage": "Profiel bewerken"
},
"user.full-name": {
"defaultMessage": "Volledige Naam"
@@ -633,22 +747,25 @@
"defaultMessage": "Uitloggen"
},
"user.new-password": {
- "defaultMessage": "Nieuw Wachtwoord"
+ "defaultMessage": "Nieuw wachtwoord"
},
"user.nickname": {
"defaultMessage": "Bijnaam"
},
"user.set-password": {
- "defaultMessage": "Zet Wachtwoord"
+ "defaultMessage": "Wachtwoord instellen"
},
"user.set-permissions": {
- "defaultMessage": "Zet machtigingen voor {name}"
+ "defaultMessage": "Machtigingen instellen voor {name}"
},
"user.switch-dark": {
- "defaultMessage": "Verander naar donkere modus"
+ "defaultMessage": "Donkere modus inschakelen"
},
"user.switch-light": {
- "defaultMessage": "Verander naar lichte modus"
+ "defaultMessage": "Lichte modus inschakelen"
+ },
+ "user.two-factor": {
+ "defaultMessage": "Twee-factor Auth"
},
"username": {
"defaultMessage": "Gebruikersnaam"
From 1635e512c729f84693f94edd9f289aa7b71bacf5 Mon Sep 17 00:00:00 2001
From: Edward Klesel
Date: Sat, 21 Mar 2026 21:49:28 +0000
Subject: [PATCH 13/89] Change access list client insert to synchronous to
ensure order preserved
---
backend/internal/access-list.js | 47 +++++++++++++--------------------
1 file changed, 18 insertions(+), 29 deletions(-)
diff --git a/backend/internal/access-list.js b/backend/internal/access-list.js
index 60a7105d..2107f219 100644
--- a/backend/internal/access-list.js
+++ b/backend/internal/access-list.js
@@ -48,20 +48,17 @@ const internalAccessList = {
return true;
});
- // Clients
- data.clients?.map((client) => {
- promises.push(
- accessListClientModel.query().insert({
- access_list_id: row.id,
- address: client.address,
- directive: client.directive,
- }),
- );
- return true;
- });
-
await Promise.all(promises);
+ // Clients
+ for (const client of data.clients ?? []) {
+ await accessListClientModel.query().insert({
+ access_list_id: row.id,
+ address: client.address,
+ directive: client.directive,
+ });
+ }
+
// re-fetch with expansions
const freshRow = await internalAccessList.get(
access,
@@ -154,25 +151,17 @@ const internalAccessList = {
// Check for clients and add/update/remove them
if (typeof data.clients !== "undefined" && data.clients) {
- const clientPromises = [];
- data.clients.map((client) => {
- if (client.address) {
- clientPromises.push(
- accessListClientModel.query().insert({
- access_list_id: data.id,
- address: client.address,
- directive: client.directive,
- }),
- );
- }
- return true;
- });
-
const query = accessListClientModel.query().delete().where("access_list_id", data.id);
await query;
- // Add new clitens
- if (clientPromises.length) {
- await Promise.all(clientPromises);
+
+ for (const client of data.clients) {
+ if (client.address) {
+ await accessListClientModel.query().insert({
+ access_list_id: data.id,
+ address: client.address,
+ directive: client.directive,
+ });
+ }
}
}
From 7cfac7354d2d0e744b982ddae3bd2957e52d57e4 Mon Sep 17 00:00:00 2001
From: Arihant Jain <47983999+Arihant101@users.noreply.github.com>
Date: Wed, 25 Mar 2026 02:33:16 -0400
Subject: [PATCH 14/89] Fix grammar and clarity issues in README.md
Corrected minor grammatical errors and improved clarity in README.md.
---
README.md | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/README.md b/README.md
index ae162fbc..c22f12fa 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@
-This project comes as a pre-built docker image that enables you to easily forward to your websites
+This project comes as a pre-built Docker image that enables you to easily forward to your websites
running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt.
- [Quick Setup](#quick-setup)
@@ -20,9 +20,9 @@ running at home or otherwise, including free SSL, without having to know too muc
## Project Goal
I created this project to fill a personal need to provide users with an easy way to accomplish reverse
-proxying hosts with SSL termination and it had to be so easy that a monkey could do it. This goal hasn't changed.
-While there might be advanced options they are optional and the project should be as simple as possible
-so that the barrier for entry here is low.
+proxying hosts with SSL termination, and it had to be so easy that a monkey could do it. This goal hasn't changed.
+While there might be advanced options, they are optional, and the project should be as simple as possible
+so that the barrier to entry here is low.
@@ -30,11 +30,11 @@ so that the barrier for entry here is low.
## Features
- Beautiful and Secure Admin Interface based on [Tabler](https://tabler.github.io/)
-- Easily create forwarding domains, redirections, streams and 404 hosts without knowing anything about Nginx
+- Easily create forwarding domains, redirections, streams, and 404 hosts without knowing anything about Nginx
- Free SSL using Let's Encrypt or provide your own custom SSL certificates
- Access Lists and basic HTTP Authentication for your hosts
- Advanced Nginx configuration available for super users
-- User management, permissions and audit log
+- User management, permissions, and audit log
::: warning
`armv7` is no longer supported in version 2.14+. This is due to Nodejs dropping support for armhf. Please
@@ -43,15 +43,15 @@ use the `2.13.7` image tag if this applies to you.
## Hosting your home network
-I won't go in to too much detail here but here are the basics for someone new to this self-hosted world.
+I won't go into too much detail here, but here are the basics for someone new to this self-hosted world.
1. Your home router will have a Port Forwarding section somewhere. Log in and find it
-2. Add port forwarding for port 80 and 443 to the server hosting this project
+2. Add port forwarding for ports 80 and 443 to the server hosting this project
3. Configure your domain name details to point to your home, either with a static ip or a service like
- DuckDNS
- [Amazon Route53](https://github.com/jc21/route53-ddns)
- [Cloudflare](https://github.com/jc21/cloudflare-ddns)
-4. Use the Nginx Proxy Manager as your gateway to forward to your other web based services
+4. Use the Nginx Proxy Manager as your gateway to forward to your other web-based services
## Quick Setup
From 65b905789fe0290239cdbf2fb979e3200f97f8e9 Mon Sep 17 00:00:00 2001
From: Flop
Date: Fri, 27 Mar 2026 15:44:54 -0400
Subject: [PATCH 15/89] Updating french translation
---
frontend/src/locale/src/fr.json | 137 +++++++++++++++++++++++++++++++-
1 file changed, 133 insertions(+), 4 deletions(-)
diff --git a/frontend/src/locale/src/fr.json b/frontend/src/locale/src/fr.json
index c715c028..04320266 100644
--- a/frontend/src/locale/src/fr.json
+++ b/frontend/src/locale/src/fr.json
@@ -1,4 +1,61 @@
{
+ "2fa.backup-codes-remaining": {
+ "defaultMessage": "Codes de secours restants : {count}"
+ },
+ "2fa.backup-warning": {
+ "defaultMessage": "Sauvegardez ces codes de secours dans un endroit sûr. Chaque code ne peut être utilisé qu'une seule fois."
+ },
+ "2fa.disable": {
+ "defaultMessage": "Désactiver l'authentification à deux facteurs"
+ },
+ "2fa.disable-confirm": {
+ "defaultMessage": "Désactiver la 2FA"
+ },
+ "2fa.disable-warning": {
+ "defaultMessage": "La désactivation de l'authentification à deux facteurs rendra votre compte moins sécurisé."
+ },
+ "2fa.disabled": {
+ "defaultMessage": "Désactivée"
+ },
+ "2fa.done": {
+ "defaultMessage": "J'ai sauvegardé mes codes de secours"
+ },
+ "2fa.enable": {
+ "defaultMessage": "Activer l'authentification à deux facteurs"
+ },
+ "2fa.enabled": {
+ "defaultMessage": "Activée"
+ },
+ "2fa.enter-code": {
+ "defaultMessage": "Entrez le code de vérification"
+ },
+ "2fa.enter-code-disable": {
+ "defaultMessage": "Entrez le code de vérification pour désactiver"
+ },
+ "2fa.regenerate": {
+ "defaultMessage": "Régénérer"
+ },
+ "2fa.regenerate-backup": {
+ "defaultMessage": "Régénérer les codes de secours"
+ },
+ "2fa.regenerate-instructions": {
+ "defaultMessage": "Entrez un code de vérification pour générer de nouveaux codes de secours. Vos anciens codes seront invalidés."
+ },
+ "2fa.secret-key": {
+ "defaultMessage": "Clé secrète"
+ },
+ "2fa.setup-instructions": {
+ "defaultMessage": "Scannez ce QR code avec votre application d'authentification, ou entrez la clé secrète manuellement."
+ },
+ "2fa.status": {
+ "defaultMessage": "Statut"
+ },
+ "2fa.title": {
+ "defaultMessage": "Authentification à deux facteurs"
+ },
+ "2fa.verify-enable": {
+ "defaultMessage": "Vérifier et activer"
+ },
"access-list": {
"defaultMessage": "Liste d'accès"
},
@@ -23,6 +80,9 @@
"access-list.public.subtitle": {
"defaultMessage": "Aucune authentification de base requise"
},
+ "access-list.rule-source.placeholder": {
+ "defaultMessage": "192.168.1.100 ou 192.168.1.0/24 ou 2001:0db8::/32"
+ },
"access-list.satisfy-any": {
"defaultMessage": "Valide n'importe quelle règle"
},
@@ -38,12 +98,18 @@
"action.add-location": {
"defaultMessage": "Ajouter localisation"
},
+ "action.allow": {
+ "defaultMessage": "Autoriser"
+ },
"action.close": {
"defaultMessage": "Fermer"
},
"action.delete": {
"defaultMessage": "Supprimer"
},
+ "action.deny": {
+ "defaultMessage": "Refuser"
+ },
"action.disable": {
"defaultMessage": "Désactiver"
},
@@ -68,6 +134,9 @@
"auditlogs": {
"defaultMessage": "Journaux d'audit"
},
+ "auto": {
+ "defaultMessage": "Auto"
+ },
"cancel": {
"defaultMessage": "Annuler"
},
@@ -128,6 +197,9 @@
"certificates.dns.provider": {
"defaultMessage": "Fournisseur DNS"
},
+ "certificates.dns.provider.placeholder": {
+ "defaultMessage": "Sélectionner un fournisseur..."
+ },
"certificates.dns.warning": {
"defaultMessage": "Cette section requiert une certaine connaissance de Certbot et de ses plugins DNS. Veuillez consulter la documentation des plugins correspondants."
},
@@ -155,6 +227,18 @@
"certificates.http.warning": {
"defaultMessage": "Ces domaines doivent déjà être configurés pour pointer vers cette installation."
},
+ "certificates.key-type": {
+ "defaultMessage": "Type de clé"
+ },
+ "certificates.key-type-description": {
+ "defaultMessage": "RSA est largement compatible, ECDSA est plus rapide et plus sécurisé mais peut ne pas être pris en charge par les anciens systèmes"
+ },
+ "certificates.key-type-ecdsa": {
+ "defaultMessage": "ECDSA 256"
+ },
+ "certificates.key-type-rsa": {
+ "defaultMessage": "RSA 2048"
+ },
"certificates.request.subtitle": {
"defaultMessage": "avec Let's Encrypt"
},
@@ -180,7 +264,7 @@
"defaultMessage": "Détails"
},
"column.email": {
- "defaultMessage": "eMail"
+ "defaultMessage": "e-mail"
},
"column.event": {
"defaultMessage": "Évènement"
@@ -263,6 +347,9 @@
"domain-names.wildcards-not-supported": {
"defaultMessage": "Les Wildcards ne sont pas prises en charge par cette autorité de certification."
},
+ "domains.advanced": {
+ "defaultMessage": "Avancé"
+ },
"domains.force-ssl": {
"defaultMessage": "Forcer SSL"
},
@@ -275,11 +362,14 @@
"domains.http2-support": {
"defaultMessage": "Prise en charge de HTTP/2"
},
+ "domains.trust-forwarded-proto": {
+ "defaultMessage": "Faire confiance aux en-têtes Forwarded Proto en amont"
+ },
"domains.use-dns": {
"defaultMessage": "Utiliser le challenge DNS"
},
"email-address": {
- "defaultMessage": "Adresse eMail"
+ "defaultMessage": "Adresse e-mail"
},
"empty-search": {
"defaultMessage": "Aucun résultat trouvé"
@@ -297,13 +387,13 @@
"defaultMessage": "Les noms d'utilisateurs autorisés doivent être uniques"
},
"error.invalid-auth": {
- "defaultMessage": "Adresse eMail ou mot de passe invalide"
+ "defaultMessage": "Adresse e-mail ou mot de passe invalide"
},
"error.invalid-domain": {
"defaultMessage": "Domaine invalide : {domain}"
},
"error.invalid-email": {
- "defaultMessage": "Adresse eMail invalide"
+ "defaultMessage": "Adresse e-mail invalide"
},
"error.max-character-length": {
"defaultMessage": "La longueur maximale est {max} caractère{max, plural, one {} other {s}}"
@@ -371,6 +461,21 @@
"loading": {
"defaultMessage": "Chargement…"
},
+ "login.2fa-code": {
+ "defaultMessage": "Code de vérification"
+ },
+ "login.2fa-code-placeholder": {
+ "defaultMessage": "Entrez le code"
+ },
+ "login.2fa-description": {
+ "defaultMessage": "Entrez le code depuis votre application d'authentification"
+ },
+ "login.2fa-title": {
+ "defaultMessage": "Authentification à deux facteurs"
+ },
+ "login.2fa-verify": {
+ "defaultMessage": "Vérifier"
+ },
"login.title": {
"defaultMessage": "Connectez-vous à votre compte"
},
@@ -518,6 +623,24 @@
"redirection-hosts.count": {
"defaultMessage": "{count} {count, plural, one {Hôte de redirection} other {Hôtes de redirection}}"
},
+ "redirection-hosts.http-code.300": {
+ "defaultMessage": "300 Choix multiples"
+ },
+ "redirection-hosts.http-code.301": {
+ "defaultMessage": "301 Déplacé définitivement"
+ },
+ "redirection-hosts.http-code.302": {
+ "defaultMessage": "302 Déplacé temporairement"
+ },
+ "redirection-hosts.http-code.303": {
+ "defaultMessage": "303 Voir autre"
+ },
+ "redirection-hosts.http-code.307": {
+ "defaultMessage": "307 Redirection temporaire"
+ },
+ "redirection-hosts.http-code.308": {
+ "defaultMessage": "308 Redirection permanente"
+ },
"role.admin": {
"defaultMessage": "Administrateur"
},
@@ -575,6 +698,9 @@
"stream.forward-host": {
"defaultMessage": "Hôte destinataire"
},
+ "stream.forward-host.placeholder": {
+ "defaultMessage": "example.com ou 10.0.0.1 ou 2001:db8:3333:4444:5555:6666:7777:8888"
+ },
"stream.incoming-port": {
"defaultMessage": "Port d'entrée"
},
@@ -638,6 +764,9 @@
"user.switch-light": {
"defaultMessage": "Passer au mode Lumineux"
},
+ "user.two-factor": {
+ "defaultMessage": "Auth. à deux facteurs"
+ },
"username": {
"defaultMessage": "Nom d'utilisateur"
},
From 986c4cae6cc6e7f300866f46624de2f22c4a4630 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tr=E1=BA=A7n=20B=C3=A1ch?=
<45133811+barttran2k@users.noreply.github.com>
Date: Tue, 7 Apr 2026 00:09:34 +0700
Subject: [PATCH 16/89] fix(security): undefined variable `next` referenced in
route erro
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The GET /schema route handler's function signature is `(req, res)` (only two parameters), but the catch block calls `next(err)`. Since `next` is not defined in this scope, this will throw a `ReferenceError` at runtime when an error occurs, potentially crashing the process or causing an unhandled rejection instead of properly returning an error response.
Affected files: schema.js
Signed-off-by: Trần Bách <45133811+barttran2k@users.noreply.github.com>
---
backend/routes/schema.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/backend/routes/schema.js b/backend/routes/schema.js
index 86bc1866..0a57c57c 100644
--- a/backend/routes/schema.js
+++ b/backend/routes/schema.js
@@ -18,7 +18,7 @@ router
/**
* GET /schema
*/
- .get(async (req, res) => {
+ .get(async (req, res, next) => {
try {
const swaggerJSON = await getCompiledSchema();
From 82a326ea0ba700275f76c9af9e4279febbdf1666 Mon Sep 17 00:00:00 2001
From: Stephan Paternotte
Date: Fri, 10 Apr 2026 15:24:48 +0200
Subject: [PATCH 17/89] Update nl.json
Consistency in Dutch translation of 'enable' and 'disable'
---
frontend/src/locale/src/nl.json | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/frontend/src/locale/src/nl.json b/frontend/src/locale/src/nl.json
index d37fcf47..ed6cd17c 100644
--- a/frontend/src/locale/src/nl.json
+++ b/frontend/src/locale/src/nl.json
@@ -111,7 +111,7 @@
"defaultMessage": "Afwijzen"
},
"action.disable": {
- "defaultMessage": "Uitzetten"
+ "defaultMessage": "Uitschakelen"
},
"action.download": {
"defaultMessage": "Downloaden"
@@ -120,7 +120,7 @@
"defaultMessage": "Bewerken"
},
"action.enable": {
- "defaultMessage": "Aanzetten"
+ "defaultMessage": "Inschakelen"
},
"action.permissions": {
"defaultMessage": "Machtigingen"
@@ -330,7 +330,7 @@
"defaultMessage": "{count} {count, plural, one {404 Host} other {404 Hosts}}"
},
"disabled": {
- "defaultMessage": "Uitgezet"
+ "defaultMessage": "Uitgeschakeld"
},
"domain-names": {
"defaultMessage": "Domeinnamen"
@@ -504,10 +504,10 @@
"defaultMessage": "{object} is verwijderd"
},
"notification.object-disabled": {
- "defaultMessage": "{object} is uitgezet"
+ "defaultMessage": "{object} is uitgeschakeld"
},
"notification.object-enabled": {
- "defaultMessage": "{object} is aangezet"
+ "defaultMessage": "{object} is ingeschakeld"
},
"notification.object-renewed": {
"defaultMessage": "{object} is vernieuwd"
@@ -543,10 +543,10 @@
"defaultMessage": "{object} is verwijderd"
},
"object.event.disabled": {
- "defaultMessage": "{object} is uitgezet"
+ "defaultMessage": "{object} is uitgeschakeld"
},
"object.event.enabled": {
- "defaultMessage": "{object} is aangezet"
+ "defaultMessage": "{object} is ingeschakeld"
},
"object.event.renewed": {
"defaultMessage": "{object} is vernieuwd"
From d161b944b16d96688852a08c9aa268c370d5fca5 Mon Sep 17 00:00:00 2001
From: MichaelJanssenNesai
Date: Mon, 13 Apr 2026 15:30:32 +0200
Subject: [PATCH 18/89] Update dns plugin for deSec to 1.3.2
There a a couple of bug fixes (e.g. for DNS challenge with CNAME) for deSec.
---
backend/certbot/dns-plugins.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/backend/certbot/dns-plugins.json b/backend/certbot/dns-plugins.json
index 0588f985..c2f65d26 100644
--- a/backend/certbot/dns-plugins.json
+++ b/backend/certbot/dns-plugins.json
@@ -133,7 +133,7 @@
"full_plugin_name": "dns-desec",
"name": "deSEC",
"package_name": "certbot-dns-desec",
- "version": "~=1.2.1"
+ "version": "~=1.3.2"
},
"digitalocean": {
"credentials": "dns_digitalocean_token = 0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff",
From 871787ac95f9d44df706aad5b113d1db06464965 Mon Sep 17 00:00:00 2001
From: Stephan Paternotte
Date: Mon, 13 Apr 2026 16:18:04 +0200
Subject: [PATCH 19/89] Update nl.json
fixes for CRs by @TheMazeIsAmazing
Thanks. Well spotted!
---
frontend/src/locale/src/nl.json | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/frontend/src/locale/src/nl.json b/frontend/src/locale/src/nl.json
index ed6cd17c..6bb1ac57 100644
--- a/frontend/src/locale/src/nl.json
+++ b/frontend/src/locale/src/nl.json
@@ -3,7 +3,7 @@
"defaultMessage": "Resterende back-upcodes: {count}"
},
"2fa.backup-warning": {
- "defaultMessage": "Sla deze back-upcodes op een veilige plaats op. Elke code kan slechts één keer worden gebruikt."
+ "defaultMessage": "Bewaar deze back-upcodes op een veilige plaats. Elke code kan slechts één keer worden gebruikt."
},
"2fa.disable": {
"defaultMessage": "Twee-Factor Authenticatie uitschakelen"
@@ -12,7 +12,7 @@
"defaultMessage": "2FA uitschakelen"
},
"2fa.disable-warning": {
- "defaultMessage": "Als u tweefactorauthenticatie uitschakelt, wordt uw account minder veilig."
+ "defaultMessage": "Als je tweefactorauthenticatie uitschakelt, wordt je account minder beveiligd."
},
"2fa.disabled": {
"defaultMessage": "Uitgeschakeld"
@@ -45,7 +45,7 @@
"defaultMessage": "Geheime sleutel"
},
"2fa.setup-instructions": {
- "defaultMessage": "Scan deze QR-code met uw authenticator-app, of voer de code handmatig in."
+ "defaultMessage": "Scan deze QR-code met je authenticator-app, of voer de code handmatig in."
},
"2fa.status": {
"defaultMessage": "Status"
@@ -81,7 +81,7 @@
"defaultMessage": "Geen basisautentificatie vereist"
},
"access-list.rule-source.placeholder": {
- "defaultMessage": "192.168.1.100 or 192.168.1.0/24 or 2001:0db8::/32"
+ "defaultMessage": "192.168.1.100 of 192.168.1.0/24 of 2001:0db8::/32"
},
"access-list.satisfy-any": {
"defaultMessage": "Voldoe aan elke"
@@ -183,7 +183,7 @@
"defaultMessage": "Inloggegevens bestandsinhoud"
},
"certificates.dns.credentials-note": {
- "defaultMessage": "Deze plugin vereist een configuratiebestand met een API-token of andere gegevens van de provider."
+ "defaultMessage": "Deze plugin vereist een configuratiebestand met een API-token of andere gegevens van je provider."
},
"certificates.dns.credentials-warning": {
"defaultMessage": "Deze gegevens worden opgeslagen als plaintext in de database en in een bestand!"
@@ -198,7 +198,7 @@
"defaultMessage": "DNS-leverancier"
},
"certificates.dns.provider.placeholder": {
- "defaultMessage": "Kiese een leverancier..."
+ "defaultMessage": "Kies een leverancier..."
},
"certificates.dns.warning": {
"defaultMessage": "Deze sectie vereist wat informatie over Certbot en zijn DNS plugins. Gebruik de documentatie van de bijbehorende plugins."
@@ -216,10 +216,10 @@
"defaultMessage": "Je server is bereikbaar en certificaten kunnen worden aangemaakt."
},
"certificates.http.reachability-other": {
- "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte statuscode ({code}) teruggegeven. Is dat de NPM-server? Zorg ervoor dat je domein verwijst naar het IP waar je NPM-instantie draait."
+ "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte statuscode ({code}) teruggegeven. Is dat de NPM-server? Zorg ervoor dat je domein verwijst naar het IP waar jouw NPM-instantie draait."
},
"certificates.http.reachability-wrong-data": {
- "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte gegevens teruggegeven. Is dat de NPM-server? Zorg ervoor dat je domein verwijst naar het IP waar je NPM-instantie draait."
+ "defaultMessage": "Er is een server gevonden op deze domeinnaam, maar heeft een onverwachte gegevens teruggegeven. Is dat de NPM-server? Zorg ervoor dat je domein verwijst naar het IP waar jouw NPM-instantie draait."
},
"certificates.http.test-results": {
"defaultMessage": "Testresultaten"
@@ -231,7 +231,7 @@
"defaultMessage": "Sleuteltype"
},
"certificates.key-type-description": {
- "defaultMessage": "RSA is breed compatibel, ECDSA is sneller en veiliger maar wordt mogelijk niet ondersteund door oudere systemen"
+ "defaultMessage": "RSA is algemeen toepasbaar, ECDSA is sneller en veiliger maar wordt mogelijk niet ondersteund door oudere systemen"
},
"certificates.key-type-ecdsa": {
"defaultMessage": "ECDSA 256"
@@ -318,7 +318,7 @@
"defaultMessage": "Aangemaakt: {date}"
},
"dashboard": {
- "defaultMessage": "Bedieningspaneel"
+ "defaultMessage": "Dashboard"
},
"dead-host": {
"defaultMessage": "404 Host"
@@ -468,7 +468,7 @@
"defaultMessage": "Code invoeren"
},
"login.2fa-description": {
- "defaultMessage": "Voer de code in vanuit uw authenticator-app"
+ "defaultMessage": "Voer de code in vanuit je authenticator-app"
},
"login.2fa-title": {
"defaultMessage": "Twee-factor Authenticatie"
@@ -477,7 +477,7 @@
"defaultMessage": "Verifiëren"
},
"login.title": {
- "defaultMessage": "Inloggen"
+ "defaultMessage": "Log in op je account"
},
"nginx-config.label": {
"defaultMessage": "Aangepaste Nginx-configuratie"
@@ -681,7 +681,7 @@
"defaultMessage": "Omleiding"
},
"setup.preamble": {
- "defaultMessage": "Begin met het aanmaken van je beheerderaccount."
+ "defaultMessage": "Begin met het aanmaken van jouw beheerderaccount."
},
"setup.title": {
"defaultMessage": "Welkom!"
@@ -699,7 +699,7 @@
"defaultMessage": "Doorgestuurde Host"
},
"stream.forward-host.placeholder": {
- "defaultMessage": "example.com or 10.0.0.1 or 2001:db8:3333:4444:5555:6666:7777:8888"
+ "defaultMessage": "voorbeeld.nl of 10.0.0.1 of 2001:db8:3333:4444:5555:6666:7777:8888"
},
"stream.incoming-port": {
"defaultMessage": "Inkomende Poort"
From a03c47932ec60155ffe8632d7ad78e3e4fec3367 Mon Sep 17 00:00:00 2001
From: Stephan Paternotte
Date: Mon, 13 Apr 2026 16:56:54 +0200
Subject: [PATCH 20/89] Update nl.json
More updates after running the PR-version on live server.
Applied consistency with https://nl.wikipedia.org/wiki/Lijst_van_HTTP-statuscodes
---
frontend/src/locale/src/nl.json | 30 +++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/frontend/src/locale/src/nl.json b/frontend/src/locale/src/nl.json
index 6bb1ac57..e4bada9b 100644
--- a/frontend/src/locale/src/nl.json
+++ b/frontend/src/locale/src/nl.json
@@ -210,7 +210,7 @@
"defaultMessage": "Bereikbaarheid kan niet worden bepaald door een communicatiefout met site24x7.com."
},
"certificates.http.reachability-not-resolved": {
- "defaultMessage": "Er is geen server beschikbaar op dit domein. Zorg ervoor dat je domein bestaat en verwijst naar het IP waar je NPM-instantie draait en eventueel port 80 wordt doorgegeven in je router."
+ "defaultMessage": "Er is geen server beschikbaar op dit domein. Zorg ervoor dat je domein bestaat en verwijst naar het IP waar je NPM-instantie draait en eventueel port 80 wordt doorgestuurd in je router."
},
"certificates.http.reachability-ok": {
"defaultMessage": "Je server is bereikbaar en certificaten kunnen worden aangemaakt."
@@ -609,7 +609,7 @@
"defaultMessage": "Openbaar"
},
"redirection-host": {
- "defaultMessage": "Doorgestuurde Host"
+ "defaultMessage": "Omgeleide Host"
},
"redirection-host.forward-domain": {
"defaultMessage": "Doorgestuurd Domein"
@@ -618,28 +618,28 @@
"defaultMessage": "HTTP-code"
},
"redirection-hosts": {
- "defaultMessage": "Doorgestuurde Hosts"
+ "defaultMessage": "Omgeleide Hosts"
},
"redirection-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {Doorgestuurde Host} other {Doorgestuurde Hosts}}"
+ "defaultMessage": "{count} {count, plural, one {Omgeleide Host} other {Omgeleide Hosts}}"
},
"redirection-hosts.http-code.300": {
- "defaultMessage": "300 Meerdere opties"
+ "defaultMessage": "300 Meerkeuze"
},
"redirection-hosts.http-code.301": {
- "defaultMessage": "301 Permanent verplaatst"
+ "defaultMessage": "301 Definitief verplaatst"
},
"redirection-hosts.http-code.302": {
"defaultMessage": "302 Tijdelijk verplaatst"
},
"redirection-hosts.http-code.303": {
- "defaultMessage": "303 Zie overig"
+ "defaultMessage": "303 Zie andere"
},
"redirection-hosts.http-code.307": {
- "defaultMessage": "307 Tijdelijk doorgestuurd"
+ "defaultMessage": "307 Tijdelijke omleiding"
},
"redirection-hosts.http-code.308": {
- "defaultMessage": "308 Permanent doorgestuurd"
+ "defaultMessage": "308 Definitieve omleiding"
},
"role.admin": {
"defaultMessage": "Beheerder"
@@ -657,19 +657,19 @@
"defaultMessage": "Instellingen"
},
"settings.default-site": {
- "defaultMessage": "Standaard Site"
+ "defaultMessage": "Standaardbestemming"
},
"settings.default-site.404": {
- "defaultMessage": "404 Pagina"
+ "defaultMessage": "404-pagina"
},
"settings.default-site.444": {
- "defaultMessage": "Geen Antwoord (444)"
+ "defaultMessage": "Geen reactie (444)"
},
"settings.default-site.congratulations": {
- "defaultMessage": "Felicitatiepagina"
+ "defaultMessage": "Felicitatie-pagina"
},
"settings.default-site.description": {
- "defaultMessage": "Wat te tonen als Nginx een onbekende Host ontvangt"
+ "defaultMessage": "Wat als Nginx een onbekende Host ontvangt?"
},
"settings.default-site.html": {
"defaultMessage": "Aangepaste HTML"
@@ -678,7 +678,7 @@
"defaultMessage": ""
},
"settings.default-site.redirect": {
- "defaultMessage": "Omleiding"
+ "defaultMessage": "Omleiden"
},
"setup.preamble": {
"defaultMessage": "Begin met het aanmaken van jouw beheerderaccount."
From 218e32bf150486f39645b684efd1f9256afd6560 Mon Sep 17 00:00:00 2001
From: Stephan Paternotte
Date: Mon, 13 Apr 2026 17:24:39 +0200
Subject: [PATCH 21/89] Update nl.json
Hyphen inserted for "404-Host"
---
frontend/src/locale/src/nl.json | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/frontend/src/locale/src/nl.json b/frontend/src/locale/src/nl.json
index e4bada9b..f8a751b6 100644
--- a/frontend/src/locale/src/nl.json
+++ b/frontend/src/locale/src/nl.json
@@ -321,13 +321,13 @@
"defaultMessage": "Dashboard"
},
"dead-host": {
- "defaultMessage": "404 Host"
+ "defaultMessage": "404-Host"
},
"dead-hosts": {
- "defaultMessage": "404 Hosts"
+ "defaultMessage": "404-Hosts"
},
"dead-hosts.count": {
- "defaultMessage": "{count} {count, plural, one {404 Host} other {404 Hosts}}"
+ "defaultMessage": "{count} {count, plural, one {404-Host} other {404-Hosts}}"
},
"disabled": {
"defaultMessage": "Uitgeschakeld"
From 69d94b4a53c7cc54e16070eae8230338f915897f Mon Sep 17 00:00:00 2001
From: Jhonatan carvajal antigua
<54653531+jcarvajalantigua@users.noreply.github.com>
Date: Tue, 14 Apr 2026 00:03:10 -0400
Subject: [PATCH 22/89] Add SECURITY.md for security policy and reporting
Added a security policy document outlining supported versions and vulnerability reporting procedures.
---
SECURITY.md | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
create mode 100644 SECURITY.md
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000..15947983
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,30 @@
+# Security Policy
+
+## Supported Versions
+
+Only the latest stable release receives security updates.
+Older versions are not actively maintained.
+
+| Version | Supported |
+| ------- | --------- |
+| 2.14.x (latest) | :white_check_mark: |
+| < 2.14.0 | :x: |
+
+Docker images: `jc21/nginx-proxy-manager:latest`, `jc21/nginx-proxy-manager:2`
+
+See all releases: https://github.com/NginxProxyManager/nginx-proxy-manager/releases
+
+## Reporting a Vulnerability
+
+**Do NOT open a public GitHub Issue to report a security vulnerability.**
+
+Use GitHub's private vulnerability reporting:
+https://github.com/NginxProxyManager/nginx-proxy-manager/security/advisories/new
+
+Please include:
+- Affected version (Docker image tag or release)
+- Description of the vulnerability
+- Steps to reproduce
+- Potential impact
+
+Once a fix is available, a public GitHub Security Advisory will be published.
From cea69e4ba5c52c1f750752d8b007e507613056a1 Mon Sep 17 00:00:00 2001
From: Alexander Gumi
Date: Tue, 14 Apr 2026 11:05:03 +0300
Subject: [PATCH 23/89] Add hoster.by DNS provider
---
backend/certbot/dns-plugins.json | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/backend/certbot/dns-plugins.json b/backend/certbot/dns-plugins.json
index 0588f985..a4ec821d 100644
--- a/backend/certbot/dns-plugins.json
+++ b/backend/certbot/dns-plugins.json
@@ -351,6 +351,14 @@
"package_name": "certbot-dns-hover",
"version": "~=1.2.1"
},
+ "hosterby": {
+ "credentials": "dns_hosterby_access_key = YOUR_ACCESS_KEY\ndns_hosterby_secret_key = YOUR_SECRET_KEY",
+ "dependencies": "",
+ "full_plugin_name": "dns-hosterby",
+ "name": "hoster.by",
+ "package_name": "certbot-dns-hosterby",
+ "version": "~=0.1.0"
+ },
"infomaniak": {
"credentials": "dns_infomaniak_token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"dependencies": "",
From 26a2bcab4276ac54b543ec070d9fa25189175604 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20B=C3=A1ra?=
Date: Thu, 16 Apr 2026 09:13:10 +0200
Subject: [PATCH 24/89] Fix translation in streams table ignoring current
enable/disable state
---
frontend/src/pages/Nginx/Streams/Table.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/src/pages/Nginx/Streams/Table.tsx b/frontend/src/pages/Nginx/Streams/Table.tsx
index 4b9ff7d6..64c0780f 100644
--- a/frontend/src/pages/Nginx/Streams/Table.tsx
+++ b/frontend/src/pages/Nginx/Streams/Table.tsx
@@ -130,7 +130,7 @@ export default function Table({ data, isFetching, isFiltered, onEdit, onDelete,
}}
>
-
+
Date: Sun, 26 Apr 2026 14:14:30 +0200
Subject: [PATCH 25/89] fix #5441
---
backend/internal/user.js | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/backend/internal/user.js b/backend/internal/user.js
index d13931d5..fad0de28 100644
--- a/backend/internal/user.js
+++ b/backend/internal/user.js
@@ -87,7 +87,13 @@ const internalUser = {
}
return access
- .can("users:update", data.id)
+ .can("users:permissions", data.id)
+ .catch(() => {
+ delete data.roles;
+ })
+ .then(() => {
+ return access.can("users:update", data.id);
+ })
.then(() => {
// Make sure that the user being updated doesn't change their email to another user that is already using it
// 1. get user we want to update
From f7c2219680d12b71a128c730dff98a6ad108c273 Mon Sep 17 00:00:00 2001
From: Stephan Paternotte
Date: Tue, 5 May 2026 19:13:52 +0200
Subject: [PATCH 26/89] Update nl.json
More improvements re. @TheMazeIsAmazing
---
frontend/src/locale/src/nl.json | 48 ++++++++++++++++-----------------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/frontend/src/locale/src/nl.json b/frontend/src/locale/src/nl.json
index f8a751b6..70d4a0e2 100644
--- a/frontend/src/locale/src/nl.json
+++ b/frontend/src/locale/src/nl.json
@@ -6,7 +6,7 @@
"defaultMessage": "Bewaar deze back-upcodes op een veilige plaats. Elke code kan slechts één keer worden gebruikt."
},
"2fa.disable": {
- "defaultMessage": "Twee-Factor Authenticatie uitschakelen"
+ "defaultMessage": "Tweefactorauthenticatie uitschakelen"
},
"2fa.disable-confirm": {
"defaultMessage": "2FA uitschakelen"
@@ -21,7 +21,7 @@
"defaultMessage": "Ik heb mijn back-upcodes opgeslagen"
},
"2fa.enable": {
- "defaultMessage": "Twee-Factor Authenticatie inschakelen"
+ "defaultMessage": "Tweefactorauthenticatie inschakelen"
},
"2fa.enabled": {
"defaultMessage": "Ingeschakeld"
@@ -51,7 +51,7 @@
"defaultMessage": "Status"
},
"2fa.title": {
- "defaultMessage": "Twee-factor Authenticatie"
+ "defaultMessage": "-factor Authenticatie"
},
"2fa.verify-enable": {
"defaultMessage": "Verifiëren en inschakelen"
@@ -72,7 +72,7 @@
"defaultMessage": "Houd er rekening mee dat de regels worden toegepast in de volgorde waarin ze zijn gedefinieerd."
},
"access-list.pass-auth": {
- "defaultMessage": "Authenticatie verder omhoog doorgeven"
+ "defaultMessage": "Authenticatie naar upstream doorgeven"
},
"access-list.public": {
"defaultMessage": "Publiekelijk toegankelijk"
@@ -183,7 +183,7 @@
"defaultMessage": "Inloggegevens bestandsinhoud"
},
"certificates.dns.credentials-note": {
- "defaultMessage": "Deze plugin vereist een configuratiebestand met een API-token of andere gegevens van je provider."
+ "defaultMessage": "Deze plugin vereist een configuratiebestand met een API-token of andere gegevens van je aanbieder."
},
"certificates.dns.credentials-warning": {
"defaultMessage": "Deze gegevens worden opgeslagen als plaintext in de database en in een bestand!"
@@ -195,10 +195,10 @@
"defaultMessage": "Laat leeg om de standaardwaarde van de plugin te gebruiken. Aantal seconden om te wachten op DNS-propagatie."
},
"certificates.dns.provider": {
- "defaultMessage": "DNS-leverancier"
+ "defaultMessage": "DNS-aanbieder"
},
"certificates.dns.provider.placeholder": {
- "defaultMessage": "Kies een leverancier..."
+ "defaultMessage": "Kies een aanbieder..."
},
"certificates.dns.warning": {
"defaultMessage": "Deze sectie vereist wat informatie over Certbot en zijn DNS plugins. Gebruik de documentatie van de bijbehorende plugins."
@@ -285,7 +285,7 @@
"defaultMessage": "Protocol"
},
"column.provider": {
- "defaultMessage": "Provider"
+ "defaultMessage": "Aanbieder"
},
"column.roles": {
"defaultMessage": "Rollen"
@@ -363,10 +363,10 @@
"defaultMessage": "HTTP/2-ondersteuning"
},
"domains.trust-forwarded-proto": {
- "defaultMessage": "Upstream Forwarded Proto Headers vertrouwen"
+ "defaultMessage": "Forwarded-Proto-headers van upstream vertrouwen"
},
"domains.use-dns": {
- "defaultMessage": "DNS Challenge gebruiken"
+ "defaultMessage": "DNS-challenge gebruiken"
},
"email-address": {
"defaultMessage": "E-mailadres"
@@ -387,7 +387,7 @@
"defaultMessage": "Gebruikersnamen moeten uniek zijn"
},
"error.invalid-auth": {
- "defaultMessage": "Ongeldige e-mail of wachtwoord"
+ "defaultMessage": "Ongeldig e-mail of wachtwoord"
},
"error.invalid-domain": {
"defaultMessage": "Ongeldige domeinnaam: {domain}"
@@ -426,7 +426,7 @@
"defaultMessage": "Veelvoorkomende kwetsbaarheden blokkeren"
},
"host.flags.cache-assets": {
- "defaultMessage": "Cache Assets"
+ "defaultMessage": "Assets opslaan"
},
"host.flags.preserve-path": {
"defaultMessage": "Pad behouden"
@@ -438,7 +438,7 @@
"defaultMessage": "Websockets-ondersteuning"
},
"host.forward-port": {
- "defaultMessage": "Poort Doorsturen"
+ "defaultMessage": "Poort doorsturen"
},
"host.forward-scheme": {
"defaultMessage": "Schema"
@@ -468,10 +468,10 @@
"defaultMessage": "Code invoeren"
},
"login.2fa-description": {
- "defaultMessage": "Voer de code in vanuit je authenticator-app"
+ "defaultMessage": "Voer de code in vanuit je Authenticator-app"
},
"login.2fa-title": {
- "defaultMessage": "Twee-factor Authenticatie"
+ "defaultMessage": "Tweefactorauthenticatie"
},
"login.2fa-verify": {
"defaultMessage": "Verifiëren"
@@ -594,13 +594,13 @@
"defaultMessage": "Alleen aangemaakte items"
},
"proxy-host": {
- "defaultMessage": "Proxy Host"
+ "defaultMessage": "Proxyhost"
},
"proxy-host.forward-host": {
"defaultMessage": "Hostname / IP Doorsturen"
},
"proxy-hosts": {
- "defaultMessage": "Proxy Hosts"
+ "defaultMessage": "Proxyhosts"
},
"proxy-hosts.count": {
"defaultMessage": "{count} {count, plural, one {Proxy Host} other {Proxy Hosts}}"
@@ -609,7 +609,7 @@
"defaultMessage": "Openbaar"
},
"redirection-host": {
- "defaultMessage": "Omgeleide Host"
+ "defaultMessage": "Omleidingshost"
},
"redirection-host.forward-domain": {
"defaultMessage": "Doorgestuurd Domein"
@@ -666,7 +666,7 @@
"defaultMessage": "Geen reactie (444)"
},
"settings.default-site.congratulations": {
- "defaultMessage": "Felicitatie-pagina"
+ "defaultMessage": "Felicitatiepagina"
},
"settings.default-site.description": {
"defaultMessage": "Wat als Nginx een onbekende Host ontvangt?"
@@ -696,13 +696,13 @@
"defaultMessage": "Stream"
},
"stream.forward-host": {
- "defaultMessage": "Doorgestuurde Host"
+ "defaultMessage": "Doelhost"
},
"stream.forward-host.placeholder": {
"defaultMessage": "voorbeeld.nl of 10.0.0.1 of 2001:db8:3333:4444:5555:6666:7777:8888"
},
"stream.incoming-port": {
- "defaultMessage": "Inkomende Poort"
+ "defaultMessage": "Inkomende poort"
},
"streams": {
"defaultMessage": "Streams"
@@ -732,13 +732,13 @@
"defaultMessage": "Wachtwoord bevestigen"
},
"user.current-password": {
- "defaultMessage": "Huidig Wachtwoord"
+ "defaultMessage": "Huidig wachtwoord"
},
"user.edit-profile": {
"defaultMessage": "Profiel bewerken"
},
"user.full-name": {
- "defaultMessage": "Volledige Naam"
+ "defaultMessage": "Volledige naam"
},
"user.login-as": {
"defaultMessage": "Inloggen als {name}"
@@ -765,7 +765,7 @@
"defaultMessage": "Lichte modus inschakelen"
},
"user.two-factor": {
- "defaultMessage": "Twee-factor Auth"
+ "defaultMessage": "Tweefactorauthenticatie"
},
"username": {
"defaultMessage": "Gebruikersnaam"
From a6f8b7dd1d225e16f0f8b7ac77e1796fd23dc714 Mon Sep 17 00:00:00 2001
From: Stephan Paternotte
Date: Tue, 5 May 2026 19:53:16 +0200
Subject: [PATCH 27/89] Update nl.json
---
frontend/src/locale/src/nl.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/src/locale/src/nl.json b/frontend/src/locale/src/nl.json
index 70d4a0e2..86d49d95 100644
--- a/frontend/src/locale/src/nl.json
+++ b/frontend/src/locale/src/nl.json
@@ -51,7 +51,7 @@
"defaultMessage": "Status"
},
"2fa.title": {
- "defaultMessage": "-factor Authenticatie"
+ "defaultMessage": "Tweefactorauthenticatie"
},
"2fa.verify-enable": {
"defaultMessage": "Verifiëren en inschakelen"
From ff066d56266e1598f32c61cd96eefa357c4736a6 Mon Sep 17 00:00:00 2001
From: DOLBA3B
Date: Tue, 5 May 2026 21:12:04 +0200
Subject: [PATCH 28/89] Adds column sorting to Nginx tables
---
frontend/src/components/Table/TableHeader.tsx | 31 +++++++++++++++++--
frontend/src/pages/Nginx/DeadHosts/Table.tsx | 22 +++++++++++--
frontend/src/pages/Nginx/ProxyHosts/Table.tsx | 28 +++++++++++++++--
.../pages/Nginx/RedirectionHosts/Table.tsx | 22 +++++++++++--
frontend/src/pages/Nginx/Streams/Table.tsx | 24 ++++++++++++--
5 files changed, 117 insertions(+), 10 deletions(-)
diff --git a/frontend/src/components/Table/TableHeader.tsx b/frontend/src/components/Table/TableHeader.tsx
index bf627ce9..dd409d59 100644
--- a/frontend/src/components/Table/TableHeader.tsx
+++ b/frontend/src/components/Table/TableHeader.tsx
@@ -1,3 +1,5 @@
+import { IconArrowsSort, IconChevronDown, IconChevronUp } from "@tabler/icons-react";
+import { flexRender } from "@tanstack/react-table";
import type { TableLayoutProps } from "src/components";
function TableHeader(props: TableLayoutProps) {
@@ -11,9 +13,34 @@ function TableHeader(props: TableLayoutProps) {
{headerGroup.headers.map((header: any) => {
const { column } = header;
const { className } = (column.columnDef.meta as any) ?? {};
+ const canSort = column.getCanSort();
+ const sortDir = column.getIsSorted();
+
+ const headerContent = header.isPlaceholder
+ ? null
+ : typeof column.columnDef.header === "string"
+ ? column.columnDef.header
+ : flexRender(column.columnDef.header, header.getContext());
+
+ const sortIcon = canSort ? (
+ sortDir === "asc" ? (
+
+ ) : sortDir === "desc" ? (
+
+ ) : (
+
+ )
+ ) : null;
+
return (
-
- {typeof column.columnDef.header === "string" ? `${column.columnDef.header}` : null}
+ |
+ {headerContent}
+ {sortIcon}
|
);
})}
diff --git a/frontend/src/pages/Nginx/DeadHosts/Table.tsx b/frontend/src/pages/Nginx/DeadHosts/Table.tsx
index f8a1a275..17143e75 100644
--- a/frontend/src/pages/Nginx/DeadHosts/Table.tsx
+++ b/frontend/src/pages/Nginx/DeadHosts/Table.tsx
@@ -1,6 +1,12 @@
import { IconDotsVertical, IconEdit, IconPower, IconTrash } from "@tabler/icons-react";
-import { createColumnHelper, getCoreRowModel, useReactTable } from "@tanstack/react-table";
-import { useMemo } from "react";
+import {
+ createColumnHelper,
+ getCoreRowModel,
+ getSortedRowModel,
+ type SortingState,
+ useReactTable,
+} from "@tanstack/react-table";
+import { useMemo, useState } from "react";
import type { DeadHost } from "src/api/backend";
import {
CertificateFormatter,
@@ -29,6 +35,7 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
() => [
columnHelper.accessor((row: any) => row.owner, {
id: "owner",
+ enableSorting: false,
cell: (info: any) => {
const value = info.getValue();
return ;
@@ -40,6 +47,11 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
columnHelper.accessor((row: any) => row, {
id: "domainNames",
header: intl.formatMessage({ id: "column.source" }),
+ sortingFn: (a, b) => {
+ const aVal = a.original.domainNames?.[0] ?? "";
+ const bVal = b.original.domainNames?.[0] ?? "";
+ return aVal.localeCompare(bVal);
+ },
cell: (info: any) => {
const value = info.getValue();
return ;
@@ -47,6 +59,7 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
}),
columnHelper.accessor((row: any) => row.certificate, {
id: "certificate",
+ enableSorting: false,
header: intl.formatMessage({ id: "column.ssl" }),
cell: (info: any) => {
return ;
@@ -128,10 +141,15 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
[columnHelper, onDelete, onEdit, onDisableToggle],
);
+ const [sorting, setSorting] = useState([]);
+
const tableInstance = useReactTable({
columns,
data,
+ state: { sorting },
+ onSortingChange: setSorting,
getCoreRowModel: getCoreRowModel(),
+ getSortedRowModel: getSortedRowModel(),
rowCount: data.length,
meta: {
isFetching,
diff --git a/frontend/src/pages/Nginx/ProxyHosts/Table.tsx b/frontend/src/pages/Nginx/ProxyHosts/Table.tsx
index 9d58b26a..5af58081 100644
--- a/frontend/src/pages/Nginx/ProxyHosts/Table.tsx
+++ b/frontend/src/pages/Nginx/ProxyHosts/Table.tsx
@@ -1,6 +1,12 @@
import { IconDotsVertical, IconEdit, IconPower, IconTrash } from "@tabler/icons-react";
-import { createColumnHelper, getCoreRowModel, useReactTable } from "@tanstack/react-table";
-import { useMemo } from "react";
+import {
+ createColumnHelper,
+ getCoreRowModel,
+ getSortedRowModel,
+ type SortingState,
+ useReactTable,
+} from "@tanstack/react-table";
+import { useMemo, useState } from "react";
import type { ProxyHost } from "src/api/backend";
import {
AccessListFormatter,
@@ -30,6 +36,7 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
() => [
columnHelper.accessor((row: any) => row.owner, {
id: "owner",
+ enableSorting: false,
cell: (info: any) => {
const value = info.getValue();
return ;
@@ -41,6 +48,11 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
columnHelper.accessor((row: any) => row, {
id: "domainNames",
header: intl.formatMessage({ id: "column.source" }),
+ sortingFn: (a, b) => {
+ const aVal = a.original.domainNames?.[0] ?? "";
+ const bVal = b.original.domainNames?.[0] ?? "";
+ return aVal.localeCompare(bVal);
+ },
cell: (info: any) => {
const value = info.getValue();
return ;
@@ -49,6 +61,11 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
columnHelper.accessor((row: any) => row, {
id: "forwardHost",
header: intl.formatMessage({ id: "column.destination" }),
+ sortingFn: (a, b) => {
+ const aVal = `${a.original.forwardHost}:${a.original.forwardPort}`;
+ const bVal = `${b.original.forwardHost}:${b.original.forwardPort}`;
+ return aVal.localeCompare(bVal);
+ },
cell: (info: any) => {
const value = info.getValue();
return `${value.forwardScheme}://${value.forwardHost}:${value.forwardPort}`;
@@ -56,6 +73,7 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
}),
columnHelper.accessor((row: any) => row.certificate, {
id: "certificate",
+ enableSorting: false,
header: intl.formatMessage({ id: "column.ssl" }),
cell: (info: any) => {
return ;
@@ -63,6 +81,7 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
}),
columnHelper.accessor((row: any) => row.accessList, {
id: "accessList",
+ enableSorting: false,
header: intl.formatMessage({ id: "column.access" }),
cell: (info: any) => {
return ;
@@ -144,10 +163,15 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
[columnHelper, onEdit, onDisableToggle, onDelete],
);
+ const [sorting, setSorting] = useState([]);
+
const tableInstance = useReactTable({
columns,
data,
+ state: { sorting },
+ onSortingChange: setSorting,
getCoreRowModel: getCoreRowModel(),
+ getSortedRowModel: getSortedRowModel(),
rowCount: data.length,
meta: {
isFetching,
diff --git a/frontend/src/pages/Nginx/RedirectionHosts/Table.tsx b/frontend/src/pages/Nginx/RedirectionHosts/Table.tsx
index 6ac41523..8e2d90f5 100644
--- a/frontend/src/pages/Nginx/RedirectionHosts/Table.tsx
+++ b/frontend/src/pages/Nginx/RedirectionHosts/Table.tsx
@@ -1,6 +1,12 @@
import { IconDotsVertical, IconEdit, IconPower, IconTrash } from "@tabler/icons-react";
-import { createColumnHelper, getCoreRowModel, useReactTable } from "@tanstack/react-table";
-import { useMemo } from "react";
+import {
+ createColumnHelper,
+ getCoreRowModel,
+ getSortedRowModel,
+ type SortingState,
+ useReactTable,
+} from "@tanstack/react-table";
+import { useMemo, useState } from "react";
import type { RedirectionHost } from "src/api/backend";
import {
CertificateFormatter,
@@ -29,6 +35,7 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
() => [
columnHelper.accessor((row: any) => row.owner, {
id: "owner",
+ enableSorting: false,
cell: (info: any) => {
const value = info.getValue();
return ;
@@ -40,6 +47,11 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
columnHelper.accessor((row: any) => row, {
id: "domainNames",
header: intl.formatMessage({ id: "column.source" }),
+ sortingFn: (a, b) => {
+ const aVal = a.original.domainNames?.[0] ?? "";
+ const bVal = b.original.domainNames?.[0] ?? "";
+ return aVal.localeCompare(bVal);
+ },
cell: (info: any) => {
const value = info.getValue();
return ;
@@ -68,6 +80,7 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
}),
columnHelper.accessor((row: any) => row.certificate, {
id: "certificate",
+ enableSorting: false,
header: intl.formatMessage({ id: "column.ssl" }),
cell: (info: any) => {
return ;
@@ -149,10 +162,15 @@ export default function Table({ data, isFetching, onEdit, onDelete, onDisableTog
[columnHelper, onEdit, onDisableToggle, onDelete],
);
+ const [sorting, setSorting] = useState([]);
+
const tableInstance = useReactTable({
columns,
data,
+ state: { sorting },
+ onSortingChange: setSorting,
getCoreRowModel: getCoreRowModel(),
+ getSortedRowModel: getSortedRowModel(),
rowCount: data.length,
meta: {
isFetching,
diff --git a/frontend/src/pages/Nginx/Streams/Table.tsx b/frontend/src/pages/Nginx/Streams/Table.tsx
index 4b9ff7d6..9ccddf73 100644
--- a/frontend/src/pages/Nginx/Streams/Table.tsx
+++ b/frontend/src/pages/Nginx/Streams/Table.tsx
@@ -1,6 +1,12 @@
import { IconDotsVertical, IconEdit, IconPower, IconTrash } from "@tabler/icons-react";
-import { createColumnHelper, getCoreRowModel, useReactTable } from "@tanstack/react-table";
-import { useMemo } from "react";
+import {
+ createColumnHelper,
+ getCoreRowModel,
+ getSortedRowModel,
+ type SortingState,
+ useReactTable,
+} from "@tanstack/react-table";
+import { useMemo, useState } from "react";
import type { Stream } from "src/api/backend";
import {
CertificateFormatter,
@@ -29,6 +35,7 @@ export default function Table({ data, isFetching, isFiltered, onEdit, onDelete,
() => [
columnHelper.accessor((row: any) => row.owner, {
id: "owner",
+ enableSorting: false,
cell: (info: any) => {
const value = info.getValue();
return ;
@@ -40,6 +47,7 @@ export default function Table({ data, isFetching, isFiltered, onEdit, onDelete,
columnHelper.accessor((row: any) => row, {
id: "incomingPort",
header: intl.formatMessage({ id: "column.incoming-port" }),
+ sortingFn: (a, b) => (a.original.incomingPort ?? 0) - (b.original.incomingPort ?? 0),
cell: (info: any) => {
const value = info.getValue();
return ;
@@ -48,6 +56,11 @@ export default function Table({ data, isFetching, isFiltered, onEdit, onDelete,
columnHelper.accessor((row: any) => row, {
id: "forwardHttpCode",
header: intl.formatMessage({ id: "column.destination" }),
+ sortingFn: (a, b) => {
+ const aVal = `${a.original.forwardingHost}:${a.original.forwardingPort}`;
+ const bVal = `${b.original.forwardingHost}:${b.original.forwardingPort}`;
+ return aVal.localeCompare(bVal);
+ },
cell: (info: any) => {
const value = info.getValue();
return `${value.forwardingHost}:${value.forwardingPort}`;
@@ -55,6 +68,7 @@ export default function Table({ data, isFetching, isFiltered, onEdit, onDelete,
}),
columnHelper.accessor((row: any) => row, {
id: "tcpForwarding",
+ enableSorting: false,
header: intl.formatMessage({ id: "column.protocol" }),
cell: (info: any) => {
const value = info.getValue();
@@ -76,6 +90,7 @@ export default function Table({ data, isFetching, isFiltered, onEdit, onDelete,
}),
columnHelper.accessor((row: any) => row.certificate, {
id: "certificate",
+ enableSorting: false,
header: intl.formatMessage({ id: "column.ssl" }),
cell: (info: any) => {
return ;
@@ -157,10 +172,15 @@ export default function Table({ data, isFetching, isFiltered, onEdit, onDelete,
[columnHelper, onEdit, onDisableToggle, onDelete],
);
+ const [sorting, setSorting] = useState([]);
+
const tableInstance = useReactTable({
columns,
data,
+ state: { sorting },
+ onSortingChange: setSorting,
getCoreRowModel: getCoreRowModel(),
+ getSortedRowModel: getSortedRowModel(),
rowCount: data.length,
meta: {
isFetching,
From c869d5a42b222a3f22c7a848e4f8397c98546efc Mon Sep 17 00:00:00 2001
From: Ludovic <56892223+Ludo-code@users.noreply.github.com>
Date: Tue, 12 May 2026 01:56:05 +0200
Subject: [PATCH 29/89] Add RcodeZero DNS plugin to dns-plugins.json
---
backend/certbot/dns-plugins.json | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/backend/certbot/dns-plugins.json b/backend/certbot/dns-plugins.json
index 0588f985..6baf37c1 100644
--- a/backend/certbot/dns-plugins.json
+++ b/backend/certbot/dns-plugins.json
@@ -662,5 +662,13 @@
"name": "ZoneEdit",
"package_name": "certbot-dns-zoneedit",
"version": "~=0.3.2"
+ },
+ "rcode0": {
+ "credentials": "dns_rcode0_api_key = acme_0123456789abcdef0123456789abcdef01234567",
+ "dependencies": "",
+ "full_plugin_name": "dns-rcode0",
+ "name": "RcodeZero",
+ "package_name": "certbot-dns-rcode0",
+ "version": "~=0.0.0.2"
}
}
From b66fd9d3aecfa09db5babffa8a04f4f1369dec86 Mon Sep 17 00:00:00 2001
From: Markus
Date: Tue, 12 May 2026 09:24:28 +0200
Subject: [PATCH 30/89] Added PUT and DELETE method to
Access-Control-Allow-Methods field
---
backend/lib/express/cors.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/backend/lib/express/cors.js b/backend/lib/express/cors.js
index 6fbf3baf..e6d1d633 100644
--- a/backend/lib/express/cors.js
+++ b/backend/lib/express/cors.js
@@ -3,7 +3,7 @@ export default (req, res, next) => {
res.set({
"Access-Control-Allow-Origin": req.headers.origin,
"Access-Control-Allow-Credentials": true,
- "Access-Control-Allow-Methods": "OPTIONS, GET, POST",
+ "Access-Control-Allow-Methods": "OPTIONS, GET, POST, PUT, DELETE",
"Access-Control-Allow-Headers":
"Content-Type, Cache-Control, Pragma, Expires, Authorization, X-Dataset-Total, X-Dataset-Offset, X-Dataset-Limit",
"Access-Control-Max-Age": 5 * 60,
From 18b3404f46b98dd4672d46795720c7d0e6065ed0 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Wed, 13 May 2026 13:27:59 +1000
Subject: [PATCH 31/89] Update all packages and fix related problems
---
backend/biome.json | 2 +-
backend/internal/certificate.js | 4 +-
backend/package.json | 26 +-
backend/yarn.lock | 1327 +++++++++--------------------
frontend/biome.json | 2 +-
frontend/package.json | 42 +-
frontend/tsconfig.json | 4 +-
frontend/vite.config.ts | 5 +-
frontend/yarn.lock | 1382 ++++++++++++-------------------
test/package.json | 14 +-
test/yarn.lock | 482 ++++++-----
11 files changed, 1221 insertions(+), 2069 deletions(-)
diff --git a/backend/biome.json b/backend/biome.json
index ab681046..a0164fd9 100644
--- a/backend/biome.json
+++ b/backend/biome.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://biomejs.dev/schemas/2.4.5/schema.json",
+ "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index d54e941d..499e1463 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -1,7 +1,7 @@
import fs from "node:fs";
import https from "node:https";
import path from "path";
-import archiver from "archiver";
+import { ZipArchive } from "archiver";
import _ from "lodash";
import moment from "moment";
import { ProxyAgent } from "proxy-agent";
@@ -370,7 +370,7 @@ const internalCertificate = {
* @returns {Promise}
*/
zipFiles: async (source, out) => {
- const archive = archiver("zip", { zlib: { level: 9 } });
+ const archive = new ZipArchive({ zlib: { level: 9 } });
const stream = fs.createWriteStream(out);
return new Promise((resolve, reject) => {
diff --git a/backend/package.json b/backend/package.json
index e31bf223..34c39217 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -13,36 +13,36 @@
"regenerate-config": "node scripts/regenerate-config"
},
"dependencies": {
- "@apidevtools/json-schema-ref-parser": "^15.3.1",
- "ajv": "^8.18.0",
- "archiver": "^7.0.1",
+ "@apidevtools/json-schema-ref-parser": "^15.3.5",
+ "ajv": "^8.20.0",
+ "archiver": "^8.0.0",
"batchflow": "^0.4.0",
"bcrypt": "^6.0.0",
- "better-sqlite3": "^12.6.2",
+ "better-sqlite3": "^12.10.0",
"body-parser": "^2.2.2",
"compression": "^1.8.1",
"express": "^5.2.1",
"express-fileupload": "^1.5.2",
"gravatar": "^1.8.2",
"jsonwebtoken": "^9.0.3",
- "knex": "3.1.0",
- "liquidjs": "10.24.0",
- "lodash": "^4.17.23",
+ "knex": "3.2.10",
+ "liquidjs": "10.25.7",
+ "lodash": "^4.18.1",
"moment": "^2.30.1",
- "mysql2": "^3.18.2",
+ "mysql2": "^3.22.3",
"node-rsa": "^1.1.1",
"objection": "3.1.5",
- "otplib": "^13.3.0",
+ "otplib": "^13.4.0",
"path": "^0.12.7",
- "pg": "^8.19.0",
- "proxy-agent": "^6.5.0",
+ "pg": "^8.20.0",
+ "proxy-agent": "^8.0.1",
"signale": "1.4.0",
- "sqlite3": "^5.1.7",
+ "sqlite3": "^6.0.1",
"temp-write": "^6.0.1"
},
"devDependencies": {
"@apidevtools/swagger-parser": "^12.1.0",
- "@biomejs/biome": "^2.4.5",
+ "@biomejs/biome": "^2.4.15",
"chalk": "5.6.2",
"nodemon": "^3.1.14"
},
diff --git a/backend/yarn.lock b/backend/yarn.lock
index 4fbf7eee..c1f18e64 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -10,10 +10,10 @@
"@types/json-schema" "^7.0.15"
js-yaml "^4.1.0"
-"@apidevtools/json-schema-ref-parser@^15.3.1":
- version "15.3.1"
- resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.3.1.tgz#93f70004a085f62319705e32f25af748752ea5a4"
- integrity sha512-FIweGOR9zrNuskfDXn8dfsA4eJEe8LmmGsGSDikEZvgYm36SO36yMhasXSOX7/OTGZ3b7I9iPhOxB24D8xL5uQ==
+"@apidevtools/json-schema-ref-parser@^15.3.5":
+ version "15.3.5"
+ resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-15.3.5.tgz#503726178d8d792eea7b195566272aaee6837e2f"
+ integrity sha512-orNOYXw3hYXxxisXMldjzjBzqqTLBPbwOtHg7ovBPvfBHDue1qM9YJENZ3W2BQuS+7z4ThogMbEzEsov57Itkg==
dependencies:
js-yaml "^4.1.1"
@@ -39,172 +39,131 @@
ajv-draft-04 "^1.0.0"
call-me-maybe "^1.0.2"
-"@biomejs/biome@^2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.4.5.tgz#90e75c1b6c60eb5bf8e8bfb193a1fbe9dc868f16"
- integrity sha512-OWNCyMS0Q011R6YifXNOg6qsOg64IVc7XX6SqGsrGszPbkVCoaO7Sr/lISFnXZ9hjQhDewwZ40789QmrG0GYgQ==
+"@biomejs/biome@^2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.4.15.tgz#cb84ad6eb4235e7230b3c105a825e9bc03399944"
+ integrity sha512-j5VH3a/h/HXTKBM50MDMxRCzkeLv9S2XJcW2WgnZT1+xyisi+0bISrXR82gCX+8S9lvK0skEvHJRN+3Ktr2hlw==
optionalDependencies:
- "@biomejs/cli-darwin-arm64" "2.4.5"
- "@biomejs/cli-darwin-x64" "2.4.5"
- "@biomejs/cli-linux-arm64" "2.4.5"
- "@biomejs/cli-linux-arm64-musl" "2.4.5"
- "@biomejs/cli-linux-x64" "2.4.5"
- "@biomejs/cli-linux-x64-musl" "2.4.5"
- "@biomejs/cli-win32-arm64" "2.4.5"
- "@biomejs/cli-win32-x64" "2.4.5"
+ "@biomejs/cli-darwin-arm64" "2.4.15"
+ "@biomejs/cli-darwin-x64" "2.4.15"
+ "@biomejs/cli-linux-arm64" "2.4.15"
+ "@biomejs/cli-linux-arm64-musl" "2.4.15"
+ "@biomejs/cli-linux-x64" "2.4.15"
+ "@biomejs/cli-linux-x64-musl" "2.4.15"
+ "@biomejs/cli-win32-arm64" "2.4.15"
+ "@biomejs/cli-win32-x64" "2.4.15"
-"@biomejs/cli-darwin-arm64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.5.tgz#a62472ab3529a3905b16e1f3fdbbc74f2e5f0023"
- integrity sha512-lGS4Nd5O3KQJ6TeWv10mElnx1phERhBxqGP/IKq0SvZl78kcWDFMaTtVK+w3v3lusRFxJY78n07PbKplirsU5g==
+"@biomejs/cli-darwin-arm64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.15.tgz#3469daa56ac3ff4f16588a120df706381a96f65c"
+ integrity sha512-rF3PPqLq1yoST79zaQbDjVJwsuIeci/O+9bgNmC5QpgOqz6aqYuzA4abyAGx+mgyiDXn4A049xAN8gijbuR1Qg==
-"@biomejs/cli-darwin-x64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.5.tgz#e8bb001fcf6a8c751b0971cccf53993e9ba2e6e9"
- integrity sha512-6MoH4tyISIBNkZ2Q5T1R7dLd5BsITb2yhhhrU9jHZxnNSNMWl+s2Mxu7NBF8Y3a7JJcqq9nsk8i637z4gqkJxQ==
+"@biomejs/cli-darwin-x64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.15.tgz#0697b81089409635da16682ac1e539165c262006"
+ integrity sha512-/5KHXYMfSJs1fNXiX30xFtI8JcCFV6zaVVLxOa0M2sfqBKHkpQhRTv94yxQWxeTY2lzo2OuTlNvPC+hDQt2wcQ==
-"@biomejs/cli-linux-arm64-musl@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.5.tgz#b7ef7902237f16113061659a4c54aff5ad4513d5"
- integrity sha512-iqLDgpzobG7gpBF0fwEVS/LT8kmN7+S0E2YKFDtqliJfzNLnAiV2Nnyb+ehCDCJgAZBASkYHR2o60VQWikpqIg==
+"@biomejs/cli-linux-arm64-musl@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.15.tgz#c6af054e3732c361e9ad8c44070f909666b5616f"
+ integrity sha512-ZPcxznxm0pogHBLZhYntyR3sR+MrZjqJIKEr7ZqVen0Rl+P/4upVmfYXjftizi9RoqZntg33fv/1fbdhbYXpEQ==
-"@biomejs/cli-linux-arm64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.5.tgz#f110af748965cb1b57624dbbbd7acba729da8780"
- integrity sha512-U1GAG6FTjhAO04MyH4xn23wRNBkT6H7NentHh+8UxD6ShXKBm5SY4RedKJzkUThANxb9rUKIPc7B8ew9Xo/cWg==
+"@biomejs/cli-linux-arm64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.15.tgz#527cef60339649a442d51a9cd129ae9dfe9da926"
+ integrity sha512-owaAMZD/T4LrD0ELNCk0Km3qrRHuM0X6EAyVE1FSqGY0rbLoiDLrO4Us2tllm6cAeB2Ioa9C2C08NZPdr8+0Ug==
-"@biomejs/cli-linux-x64-musl@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.5.tgz#c3493eba094216e735538c55354dbc8867b51909"
- integrity sha512-NlKa7GpbQmNhZf9kakQeddqZyT7itN7jjWdakELeXyTU3pg/83fTysRRDPJD0akTfKDl6vZYNT9Zqn4MYZVBOA==
+"@biomejs/cli-linux-x64-musl@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.15.tgz#b39292ad106c3d5a612bf3c61ba3119f66833013"
+ integrity sha512-CNq/9W38SYSH023lfcQ4KKU8K0YX8T//FZUhcgtMMRABDojx5XsMV7jlweAvGSl389wJQB29Qo6Zb/a+jdvt+w==
-"@biomejs/cli-linux-x64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.5.tgz#15805550db4e45ffbd6c42d140d0cb5c6dbe07af"
- integrity sha512-NdODlSugMzTlENPTa4z0xB82dTUlCpsrOxc43///aNkTLblIYH4XpYflBbf5ySlQuP8AA4AZd1qXhV07IdrHdQ==
+"@biomejs/cli-linux-x64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.15.tgz#7360b7f81ff03ec6d9350bedc76b89f783b0945d"
+ integrity sha512-0jj7THz12GbUOLmMibktK6DZjqz2zV64KFxyBtcFTKPiiOIY0a7vns1elpO1dERvxpsZ5ik0oFfz0oGwFde1+g==
-"@biomejs/cli-win32-arm64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.5.tgz#8dae57dc8ffc1e82e00a59e623b5023c09726a4d"
- integrity sha512-EBfrTqRIWOFSd7CQb/0ttjHMR88zm3hGravnDwUA9wHAaCAYsULKDebWcN5RmrEo1KBtl/gDVJMrFjNR0pdGUw==
+"@biomejs/cli-win32-arm64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.15.tgz#9542aac679174892a9379267e0c0048f8eee4d9f"
+ integrity sha512-ouhkYdlhp/1GghEJPdWwD/Vi3gQ1nFxuSpMolWsbq3Lsq3QUR4jl6UdhhscdCugKU5vOEuMiJhvKj66O0OCq+w==
-"@biomejs/cli-win32-x64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.5.tgz#0b4d3355e0d6856cff8ed722e05ec7b0652e43ab"
- integrity sha512-Pmhv9zT95YzECfjEHNl3mN9Vhusw9VA5KHY0ZvlGsxsjwS5cb7vpRnHzJIv0vG7jB0JI7xEaMH9ddfZm/RozBw==
+"@biomejs/cli-win32-x64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.15.tgz#80288e4eea8f916fc5c876e9a486baadb8de537d"
+ integrity sha512-zBrGq5mx5wwpnow4+2BxUvleDM+GNd4sLbPaMapsSLQLD0NGRCquqPBTgN+7XkUteHvj7M+BstuI8tmnV7+HgQ==
-"@gar/promisify@^1.0.1":
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
- integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
-
-"@isaacs/cliui@^8.0.2":
- version "8.0.2"
- resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
- integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
+"@isaacs/fs-minipass@^4.0.0":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz#2d59ae3ab4b38fb4270bfa23d30f8e2e86c7fe32"
+ integrity sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==
dependencies:
- string-width "^5.1.2"
- string-width-cjs "npm:string-width@^4.2.0"
- strip-ansi "^7.0.1"
- strip-ansi-cjs "npm:strip-ansi@^6.0.1"
- wrap-ansi "^8.1.0"
- wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
+ minipass "^7.0.4"
"@noble/hashes@^2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-2.0.1.tgz#fc1a928061d1232b0a52bb754393c37a5216c89e"
integrity sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==
-"@npmcli/fs@^1.0.0":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257"
- integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==
- dependencies:
- "@gar/promisify" "^1.0.1"
- semver "^7.3.5"
+"@otplib/core@13.4.0":
+ version "13.4.0"
+ resolved "https://registry.yarnpkg.com/@otplib/core/-/core-13.4.0.tgz#14db803de5bd09f7c412eba86c7d193a09d57187"
+ integrity sha512-JqOGcvZQi2wIkEQo8f3/iAjstavpXy6gouIDMHygjNuH6Q0FjbHOiXMdcE94RwfgDNMABhzwUmvaPsxvgm9NYw==
-"@npmcli/move-file@^1.0.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674"
- integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==
+"@otplib/hotp@13.4.0":
+ version "13.4.0"
+ resolved "https://registry.yarnpkg.com/@otplib/hotp/-/hotp-13.4.0.tgz#e12a69cc54c000213e4bf2d92dc9741a6897d3a2"
+ integrity sha512-MJjE0x06mn2ptymz5qZmQveb+vWFuaIftqE0b5/TZZqUOK7l97cV8lRTmid5BpAQMwJDNLW6RnYxGeCRiNdekw==
dependencies:
- mkdirp "^1.0.4"
- rimraf "^3.0.2"
+ "@otplib/core" "13.4.0"
+ "@otplib/uri" "13.4.0"
-"@otplib/core@13.3.0":
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/@otplib/core/-/core-13.3.0.tgz#7f037af6cc5907c2cff9cf6092952088a0ce5a6e"
- integrity sha512-pnQDOuCmFVeF/XnboJq9TOJgLoo2idNPJKMymOF8vGqJJ+ReKRYM9bUGjNPRWC0tHjMwu1TXbnzyBp494JgRag==
-
-"@otplib/hotp@13.3.0":
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/@otplib/hotp/-/hotp-13.3.0.tgz#135e45c6350ae60bbc1170a1801a6100e49794b8"
- integrity sha512-XJMZGz2bg4QJwK7ulvl1GUI2VMn/flaIk/E/BTKAejHsX2kUtPF1bRhlZ2+elq8uU5Fs9Z9FHcQK2CPZNQbbUQ==
+"@otplib/plugin-base32-scure@13.4.0":
+ version "13.4.0"
+ resolved "https://registry.yarnpkg.com/@otplib/plugin-base32-scure/-/plugin-base32-scure-13.4.0.tgz#04c3b31075bc733ed3fb54d3335a65813faed0fe"
+ integrity sha512-/t9YWJmMbB8bF5z8mXrBZc2FXBe8B/3hG5FhWr9K8cFwFhyxScbPysmZe8s1UTzSA6N+s8Uv8aIfCtVXPNjJWw==
dependencies:
- "@otplib/core" "13.3.0"
- "@otplib/uri" "13.3.0"
-
-"@otplib/plugin-base32-scure@13.3.0":
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/@otplib/plugin-base32-scure/-/plugin-base32-scure-13.3.0.tgz#3362fc5dd568e9cecac913fd0fa169148c469142"
- integrity sha512-/jYbL5S6GB0Ie3XGEWtLIr9s5ZICl/BfmNL7+8/W7usZaUU4GiyLd2S+JGsNCslPyqNekSudD864nDAvRI0s8w==
- dependencies:
- "@otplib/core" "13.3.0"
+ "@otplib/core" "13.4.0"
"@scure/base" "^2.0.0"
-"@otplib/plugin-crypto-noble@13.3.0":
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/@otplib/plugin-crypto-noble/-/plugin-crypto-noble-13.3.0.tgz#edfd6c8c54730cfdfc52c6a3fcd797e204fdd0e2"
- integrity sha512-wmV+jBVncepgwv99G7Plrdzd0tHfbpXk2U+OD7MO7DzpDqOYEgOPi+IIneksJSTL8QvWdfi+uQEuhnER4fKouA==
+"@otplib/plugin-crypto-noble@13.4.0":
+ version "13.4.0"
+ resolved "https://registry.yarnpkg.com/@otplib/plugin-crypto-noble/-/plugin-crypto-noble-13.4.0.tgz#048c6ad84fd718a2b66f108048aa2f7fd118e5d8"
+ integrity sha512-KrvE4m7Zv+TT1944HzgqFJWJpKb6AyoxDbvhPStmBqdMlv5Gekb80d66cuFRL08kkPgJ5gXUSb5SFpYeB+bACg==
dependencies:
"@noble/hashes" "^2.0.1"
- "@otplib/core" "13.3.0"
+ "@otplib/core" "13.4.0"
-"@otplib/totp@13.3.0":
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/@otplib/totp/-/totp-13.3.0.tgz#1d1f61cfd1acd773e1051e6b918227ae34545808"
- integrity sha512-XfjGNoN8d9S3Ove2j7AwkVV7+QDFsV7Lm7YwSiezNaHffkWtJ60aJYpmf+01dARdPST71U2ptueMsRJso4sq4A==
+"@otplib/totp@13.4.0":
+ version "13.4.0"
+ resolved "https://registry.yarnpkg.com/@otplib/totp/-/totp-13.4.0.tgz#f43543435f9ea4c7798913ef8f975462f80fce63"
+ integrity sha512-dK+vl0f0ekzf6mCENRI9AKS2NJUC7OjI3+X8e7QSnhQ2WM7I+i4PGpb3QxKi5hxjTtwVuoZwXR2CFtXdcRtNdQ==
dependencies:
- "@otplib/core" "13.3.0"
- "@otplib/hotp" "13.3.0"
- "@otplib/uri" "13.3.0"
+ "@otplib/core" "13.4.0"
+ "@otplib/hotp" "13.4.0"
+ "@otplib/uri" "13.4.0"
-"@otplib/uri@13.3.0":
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/@otplib/uri/-/uri-13.3.0.tgz#7474d6dc0fdf8ab2d0cf2b79e2001446c4e7b6b3"
- integrity sha512-3oh6nBXy+cm3UX9cxEAGZiDrfxHU2gfelYFV+XNCx+8dq39VaQVymwlU2yjPZiMAi/3agaUeEftf2RwM5F+Cyg==
+"@otplib/uri@13.4.0":
+ version "13.4.0"
+ resolved "https://registry.yarnpkg.com/@otplib/uri/-/uri-13.4.0.tgz#23fa0b727bec026bb871afd42e1c3e5ff57bed1d"
+ integrity sha512-x1ozBa5bPbdZCrrTL/HK21qchiK7jYElTu+0ft22abeEhiLYgH1+SIULvOcVk3CK8YwF4kdcidvkq4ciejucJA==
dependencies:
- "@otplib/core" "13.3.0"
-
-"@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==
+ "@otplib/core" "13.4.0"
"@scure/base@^2.0.0":
version "2.0.0"
resolved "https://registry.yarnpkg.com/@scure/base/-/base-2.0.0.tgz#ba6371fddf92c2727e88ad6ab485db6e624f9a98"
integrity sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==
-"@tootallnate/once@1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
- integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
-
-"@tootallnate/quickjs-emscripten@^0.23.0":
- version "0.23.0"
- resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c"
- integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==
-
"@types/json-schema@^7.0.15":
version "7.0.15"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
-abbrev@1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
- integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+abbrev@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-4.0.0.tgz#ec933f0e27b6cd60e89b5c6b2a304af42209bb05"
+ integrity sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==
abort-controller@^3.0.0:
version "3.0.0"
@@ -221,32 +180,10 @@ accepts@^2.0.0:
mime-types "^3.0.0"
negotiator "^1.0.0"
-agent-base@6, agent-base@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
- integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
- dependencies:
- debug "4"
-
-agent-base@^7.1.0, agent-base@^7.1.2:
- version "7.1.4"
- resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8"
- integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==
-
-agentkeepalive@^4.1.3:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a"
- integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==
- dependencies:
- humanize-ms "^1.2.1"
-
-aggregate-error@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
- integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
- dependencies:
- clean-stack "^2.0.0"
- indent-string "^4.0.0"
+agent-base@9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-9.0.0.tgz#ec9efb08314e1e75b0852d74aabf9a387f99834e"
+ integrity sha512-TQf59BsZnytt8GdJKLPfUZ54g/iaUL2OWDSFCCvMOhsHduDQxO8xC4PNeyIkVcA5KwL2phPSv0douC0fgWzmnA==
ajv-draft-04@^1.0.0:
version "1.0.0"
@@ -260,7 +197,7 @@ ajv-formats@^2.1.1:
dependencies:
ajv "^8.0.0"
-ajv@^8.0.0, ajv@^8.17.1, ajv@^8.18.0:
+ajv@^8.0.0, ajv@^8.17.1:
version "8.18.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.18.0.tgz#8864186b6738d003eb3a933172bb3833e10cefbc"
integrity sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==
@@ -270,16 +207,21 @@ ajv@^8.0.0, ajv@^8.17.1, ajv@^8.18.0:
json-schema-traverse "^1.0.0"
require-from-string "^2.0.2"
+ajv@^8.20.0:
+ version "8.20.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.20.0.tgz#304b3636add88ba7d936760dd50ece006dea95f9"
+ integrity sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ fast-uri "^3.0.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+
ansi-regex@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-ansi-regex@^6.0.1:
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1"
- integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==
-
ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -294,11 +236,6 @@ ansi-styles@^4.0.0:
dependencies:
color-convert "^2.0.1"
-ansi-styles@^6.1.0:
- version "6.2.3"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041"
- integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==
-
anymatch@~3.1.2:
version "3.1.3"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
@@ -307,44 +244,20 @@ anymatch@~3.1.2:
normalize-path "^3.0.0"
picomatch "^2.0.4"
-"aproba@^1.0.3 || ^2.0.0":
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.1.0.tgz#75500a190313d95c64e871e7e4284c6ac219f0b1"
- integrity sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==
-
-archiver-utils@^5.0.0, archiver-utils@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-5.0.2.tgz#63bc719d951803efc72cf961a56ef810760dd14d"
- integrity sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==
+archiver@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/archiver/-/archiver-8.0.0.tgz#b02b8d0b978488e6dbebf1e0ebbc4103f5ffae3b"
+ integrity sha512-fV1orZfsnPn9BaSByR/qE67rJCLJEy2Ox5bq7nJh+jquWaNh6Sfec75kJ2T6PtdGUbPQlrVoSVCEOa5SdiTQ1g==
dependencies:
- glob "^10.0.0"
- graceful-fs "^4.2.0"
- is-stream "^2.0.1"
- lazystream "^1.0.0"
- lodash "^4.17.15"
- normalize-path "^3.0.0"
- readable-stream "^4.0.0"
-
-archiver@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/archiver/-/archiver-7.0.1.tgz#c9d91c350362040b8927379c7aa69c0655122f61"
- integrity sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==
- dependencies:
- archiver-utils "^5.0.2"
async "^3.2.4"
buffer-crc32 "^1.0.0"
+ is-stream "^4.0.0"
+ lazystream "^1.0.0"
+ normalize-path "^3.0.0"
readable-stream "^4.0.0"
- readdir-glob "^1.1.2"
+ readdir-glob "^3.0.0"
tar-stream "^3.0.0"
- zip-stream "^6.0.1"
-
-are-we-there-yet@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd"
- integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==
- dependencies:
- delegates "^1.0.0"
- readable-stream "^3.6.0"
+ zip-stream "^7.0.2"
argparse@^2.0.1:
version "2.0.1"
@@ -380,11 +293,6 @@ b4a@^1.6.4:
resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.8.0.tgz#1ca3ba0edc9469aaabef5647e769a83d50180b1a"
integrity sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
balanced-match@^4.0.2:
version "4.0.3"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.3.tgz#6337a2f23e0604a30481423432f99eac603599f9"
@@ -400,10 +308,10 @@ base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-basic-ftp@^5.0.2:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.2.0.tgz#7c2dff63c918bde60e6bad1f2ff93dcf5137a40a"
- integrity sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw==
+basic-ftp@^5.2.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.3.1.tgz#3148ee9af43c0522514a4f973fecb1d3cbb6d71e"
+ integrity sha512-bopVNp6ugyA150DDuZfPFdt1KZ5a94ZDiwX4hMgZDzF+GttD80lEy8kj98kbyhLXnPvhtIo93mdnLIjpCAeeOw==
batchflow@^0.4.0:
version "0.4.0"
@@ -418,10 +326,10 @@ bcrypt@^6.0.0:
node-addon-api "^8.3.0"
node-gyp-build "^4.8.4"
-better-sqlite3@^12.6.2:
- version "12.6.2"
- resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-12.6.2.tgz#770649f28a62e543a360f3dfa1afe4cc944b1937"
- integrity sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA==
+better-sqlite3@^12.10.0:
+ version "12.10.0"
+ resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-12.10.0.tgz#bde622d14a18008583a53bc53501ae98f1a12221"
+ integrity sha512-CyzaZRQKyHkB2ZInfTTl2nvT33EbDpjkLEbE8/Zck3Ll6O0qqvuGdrJ45HgtH+HykRg88ITY3AdreBGN70aBSQ==
dependencies:
bindings "^1.5.0"
prebuild-install "^7.1.1"
@@ -467,21 +375,6 @@ body-parser@^2.2.1, body-parser@^2.2.2:
raw-body "^3.0.1"
type-is "^2.0.1"
-brace-expansion@^1.1.7:
- version "1.1.12"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
- integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-brace-expansion@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
- integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
- dependencies:
- balanced-match "^1.0.0"
-
brace-expansion@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.2.tgz#b6c16d0791087af6c2bc463f52a8142046c06b6f"
@@ -489,6 +382,13 @@ brace-expansion@^5.0.2:
dependencies:
balanced-match "^4.0.2"
+brace-expansion@^5.0.5:
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.6.tgz#ec68fe0a641a29d8711579caf641d05bae1f2285"
+ integrity sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==
+ dependencies:
+ balanced-match "^4.0.2"
+
braces@~3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
@@ -534,30 +434,6 @@ bytes@3.1.2, bytes@^3.1.2, bytes@~3.1.2:
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5"
integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==
-cacache@^15.2.0:
- version "15.3.0"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb"
- integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==
- dependencies:
- "@npmcli/fs" "^1.0.0"
- "@npmcli/move-file" "^1.0.1"
- chownr "^2.0.0"
- fs-minipass "^2.0.0"
- glob "^7.1.4"
- infer-owner "^1.0.4"
- lru-cache "^6.0.0"
- minipass "^3.1.1"
- minipass-collect "^1.0.2"
- minipass-flush "^1.0.5"
- minipass-pipeline "^1.2.2"
- mkdirp "^1.0.3"
- p-map "^4.0.0"
- promise-inflight "^1.0.1"
- rimraf "^3.0.2"
- ssri "^8.0.1"
- tar "^6.0.2"
- unique-filename "^1.1.1"
-
call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
@@ -618,15 +494,10 @@ chownr@^1.1.1:
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
-chownr@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
- integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
-
-clean-stack@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
- integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
+chownr@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-3.0.0.tgz#9855e64ecd240a9cc4267ce8a4aa5d24a1da15e4"
+ integrity sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==
cliui@^6.0.0:
version "6.0.0"
@@ -661,11 +532,6 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-color-support@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
- integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
-
colorette@2.0.19:
version "2.0.19"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798"
@@ -676,14 +542,14 @@ commander@^10.0.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
-compress-commons@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-6.0.2.tgz#26d31251a66b9d6ba23a84064ecd3a6a71d2609e"
- integrity sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==
+compress-commons@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-7.0.1.tgz#280665524f98e02d704b0df511842c2da19077fd"
+ integrity sha512-g0S8KAD8qf4+V//pr3BfB1aBnARLXNz2Gx+jmHU0LEriUuoQUOPOulVquHKTJ8+EAIIO7fhseNDr9wK5Q9FKBQ==
dependencies:
crc-32 "^1.2.0"
- crc32-stream "^6.0.0"
- is-stream "^2.0.1"
+ crc32-stream "^7.0.1"
+ is-stream "^4.0.0"
normalize-path "^3.0.0"
readable-stream "^4.0.0"
@@ -707,16 +573,6 @@ compression@^1.8.1:
safe-buffer "5.2.1"
vary "~1.1.2"
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
-console-control-strings@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
- integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
-
content-disposition@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-1.0.1.tgz#a8b7bbeb2904befdfb6787e5c0c086959f605f9b"
@@ -747,27 +603,18 @@ crc-32@^1.2.0:
resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"
integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
-crc32-stream@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-6.0.0.tgz#8529a3868f8b27abb915f6c3617c0fadedbf9430"
- integrity sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==
+crc32-stream@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-7.0.1.tgz#e573ff657b789e8b5a131cb298f731d7d12e0f42"
+ integrity sha512-IBWsY8xznyQrcHn8h4bC8/4ErNke5elzgG8GcqF4RFPw6aHkWWRc7Tgw6upjaTX/CT/yQgqYENkxYsTYN+hW2g==
dependencies:
crc-32 "^1.2.0"
readable-stream "^4.0.0"
-cross-spawn@^7.0.6:
- version "7.0.6"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
- integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
- dependencies:
- path-key "^3.1.0"
- shebang-command "^2.0.0"
- which "^2.0.1"
-
-data-uri-to-buffer@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b"
- integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==
+data-uri-to-buffer@8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-8.0.0.tgz#c642ffbc96d8fae76cccecbad43cbddd7818c785"
+ integrity sha512-6UHfyCux51b8PTGDgveqtz1tvphBku5DrMKKJbFAZAJOI2zsjDpDoYE1+QGj7FOMS4BdTFNJsJiR3zEB0xH0yQ==
db-errors@^0.2.3:
version "0.2.3"
@@ -781,13 +628,6 @@ debug@2.6.9:
dependencies:
ms "2.0.0"
-debug@4, debug@^4, debug@^4.3.3, debug@^4.3.4, debug@^4.4.0, debug@^4.4.3:
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
- integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
- dependencies:
- ms "^2.1.3"
-
debug@4.3.4:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -795,6 +635,13 @@ debug@4.3.4:
dependencies:
ms "2.1.2"
+debug@^4, debug@^4.3.4, debug@^4.4.0, debug@^4.4.3:
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
+ integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
+ dependencies:
+ ms "^2.1.3"
+
decamelize@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
@@ -812,20 +659,15 @@ deep-extend@^0.6.0:
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-degenerator@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5"
- integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==
+degenerator@7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-7.0.1.tgz#9b057747a2e5d058b0ef8fd753faccc109957467"
+ integrity sha512-ABErK0IefDSyHjlPH7WUEenIAX2rPPnrDcDM+TS3z3+zu9TfyKKi07BQM+8rmxpdE2y1v5fjjdoAS/x4D2U60w==
dependencies:
ast-types "^0.13.4"
escodegen "^2.1.0"
esprima "^4.0.1"
-delegates@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
- integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
-
denque@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1"
@@ -850,11 +692,6 @@ dunder-proto@^1.0.1:
es-errors "^1.3.0"
gopd "^1.2.0"
-eastasianwidth@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
- integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
-
ecdsa-sig-formatter@1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf"
@@ -877,23 +714,11 @@ emoji-regex@^8.0.0:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-emoji-regex@^9.2.2:
- version "9.2.2"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
- integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
-
encodeurl@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
-encoding@^0.1.12:
- version "0.1.13"
- resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
- integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
- dependencies:
- iconv-lite "^0.6.2"
-
end-of-stream@^1.1.0, end-of-stream@^1.4.1:
version "1.4.5"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c"
@@ -906,11 +731,6 @@ env-paths@^2.2.0:
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
-err-code@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
- integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
-
error-ex@^1.3.1:
version "1.3.4"
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414"
@@ -1008,6 +828,11 @@ expand-template@^2.0.3:
resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c"
integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==
+exponential-backoff@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.3.tgz#51cf92c1c0493c766053f9d3abee4434c244d2f6"
+ integrity sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==
+
express-fileupload@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/express-fileupload/-/express-fileupload-1.5.2.tgz#4da70ba6f2ffd4c736eab0776445865a9dbd9bfa"
@@ -1064,6 +889,11 @@ fast-uri@^3.0.1:
resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa"
integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==
+fdir@^6.5.0:
+ version "6.5.0"
+ resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350"
+ integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==
+
figures@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
@@ -1110,14 +940,6 @@ find-up@^4.1.0:
locate-path "^5.0.0"
path-exists "^4.0.0"
-foreground-child@^3.1.0:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f"
- integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==
- dependencies:
- cross-spawn "^7.0.6"
- signal-exit "^4.0.1"
-
forwarded@0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
@@ -1133,18 +955,6 @@ fs-constants@^1.0.0:
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
-fs-minipass@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
- integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
- dependencies:
- minipass "^3.0.0"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
fsevents@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
@@ -1155,20 +965,6 @@ function-bind@^1.1.2:
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
-gauge@^4.0.3:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
- integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==
- dependencies:
- aproba "^1.0.3 || ^2.0.0"
- color-support "^1.1.3"
- console-control-strings "^1.1.0"
- has-unicode "^2.0.1"
- signal-exit "^3.0.7"
- string-width "^4.2.3"
- strip-ansi "^6.0.1"
- wide-align "^1.1.5"
-
generate-function@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f"
@@ -1210,13 +1006,13 @@ get-proto@^1.0.1:
dunder-proto "^1.0.1"
es-object-atoms "^1.0.0"
-get-uri@^6.0.1:
- version "6.0.5"
- resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.5.tgz#714892aa4a871db671abc5395e5e9447bc306a16"
- integrity sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==
+get-uri@8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-8.0.0.tgz#3ac2e278c4bd8a717be70c8f8f8841e7d6aead93"
+ integrity sha512-CqtZlMKvfJeY0Zxv8wazDwXmSKmnMnsmNy8j8+wudi8EyG/pMUB1NqHc+Tv1QaNtpYsK9nOYjb7r7Ufu32RPSw==
dependencies:
- basic-ftp "^5.0.2"
- data-uri-to-buffer "^6.0.2"
+ basic-ftp "^5.2.0"
+ data-uri-to-buffer "8.0.0"
debug "^4.3.4"
getopts@2.3.0:
@@ -1236,36 +1032,12 @@ glob-parent@~5.1.2:
dependencies:
is-glob "^4.0.1"
-glob@^10.0.0:
- version "10.5.0"
- resolved "https://registry.yarnpkg.com/glob/-/glob-10.5.0.tgz#8ec0355919cd3338c28428a23d4f24ecc5fe738c"
- integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==
- dependencies:
- foreground-child "^3.1.0"
- jackspeak "^3.1.2"
- minimatch "^9.0.4"
- minipass "^7.1.2"
- package-json-from-dist "^1.0.0"
- path-scurry "^1.11.1"
-
-glob@^7.1.3, glob@^7.1.4:
- version "7.2.3"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
gopd@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
-graceful-fs@^4.1.2, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.6:
+graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.6:
version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -1290,11 +1062,6 @@ has-symbols@^1.1.0:
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
-has-unicode@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
- integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
-
hasown@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
@@ -1302,11 +1069,6 @@ hasown@^2.0.2:
dependencies:
function-bind "^1.1.2"
-http-cache-semantics@^4.1.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5"
- integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==
-
http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.1.tgz#36d2f65bc909c8790018dd36fb4d93da6caae06b"
@@ -1318,52 +1080,21 @@ http-errors@^2.0.0, http-errors@^2.0.1, http-errors@~2.0.1:
statuses "~2.0.2"
toidentifier "~1.0.1"
-http-proxy-agent@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a"
- integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==
+http-proxy-agent@9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-9.0.0.tgz#473fe9c2b8ffea87611f8c68dfb9872b835c91d1"
+ integrity sha512-FcF8VhXYLQcxWCnt/cCpT2apKsRDUGeVEeMqGu4HSTu29U8Yw0TLOjdYIlDsYk3IkUh+taX4IDWpPcCqKDhCjA==
dependencies:
- "@tootallnate/once" "1"
- agent-base "6"
- debug "4"
-
-http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1:
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e"
- integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==
- dependencies:
- agent-base "^7.1.0"
+ agent-base "9.0.0"
debug "^4.3.4"
-https-proxy-agent@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
- integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+https-proxy-agent@9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-9.0.0.tgz#89256adf9dc20926fe43ea1d3ca0feb9e23cc4bd"
+ integrity sha512-/MVmHp58WkOypgFhCLk4fzpPcFQvTJ/e6LBI7irpIO2HfxUbpmYoHF+KzipzJpxxzJu7aJNWQ0xojJ/dzV2G5g==
dependencies:
- agent-base "6"
- debug "4"
-
-https-proxy-agent@^7.0.6:
- version "7.0.6"
- resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9"
- integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==
- dependencies:
- agent-base "^7.1.2"
- debug "4"
-
-humanize-ms@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
- integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==
- dependencies:
- ms "^2.0.0"
-
-iconv-lite@^0.6.2:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
- integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
- dependencies:
- safer-buffer ">= 2.1.2 < 3.0.0"
+ agent-base "9.0.0"
+ debug "^4.3.4"
iconv-lite@^0.7.0, iconv-lite@^0.7.2, iconv-lite@~0.7.0:
version "0.7.2"
@@ -1382,39 +1113,16 @@ ignore-by-default@^1.0.1:
resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
- integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-
-indent-string@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
- integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
-
-infer-owner@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
- integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
inherits@2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==
+inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
ini@~1.3.0:
version "1.3.8"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c"
@@ -1471,11 +1179,6 @@ is-glob@^4.0.1, is-glob@~4.0.1:
dependencies:
is-extglob "^2.1.1"
-is-lambda@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
- integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
-
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@@ -1491,12 +1194,7 @@ is-property@^1.0.2:
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==
-is-stream@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
- integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-
-is-stream@^4.0.1:
+is-stream@^4.0.0, is-stream@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-4.0.1.tgz#375cf891e16d2e4baec250b85926cffc14720d9b"
integrity sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==
@@ -1506,19 +1204,10 @@ isarray@~1.0.0:
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-
-jackspeak@^3.1.2:
- version "3.4.3"
- resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
- integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
- dependencies:
- "@isaacs/cliui" "^8.0.2"
- optionalDependencies:
- "@pkgjs/parseargs" "^0.11.0"
+isexe@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-4.0.0.tgz#48f6576af8e87a18feb796b7ed5e2e5903b43dca"
+ integrity sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==
js-yaml@^4.1.0, js-yaml@^4.1.1:
version "4.1.1"
@@ -1570,10 +1259,10 @@ jws@^4.0.1:
jwa "^2.0.1"
safe-buffer "^5.0.1"
-knex@3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/knex/-/knex-3.1.0.tgz#b6ddd5b5ad26a6315234a5b09ec38dc4a370bd8c"
- integrity sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==
+knex@3.2.10:
+ version "3.2.10"
+ resolved "https://registry.yarnpkg.com/knex/-/knex-3.2.10.tgz#ca8f77a10851b1e18b26463a6dc995e563c3b165"
+ integrity sha512-oypTHfrc9i72iyxaUQBKHOxhcr0xM65MPf6FpN02nimsftXwzXprIkLjfXdubvhbu4PMWLp023q8o8CYvHSuZw==
dependencies:
colorette "2.0.19"
commander "^10.0.0"
@@ -1583,7 +1272,7 @@ knex@3.1.0:
get-package-type "^0.1.0"
getopts "2.3.0"
interpret "^2.2.0"
- lodash "^4.17.21"
+ lodash "^4.18.1"
pg-connection-string "2.6.2"
rechoir "^0.8.0"
resolve-from "^5.0.0"
@@ -1597,10 +1286,10 @@ lazystream@^1.0.0:
dependencies:
readable-stream "^2.0.5"
-liquidjs@10.24.0:
- version "10.24.0"
- resolved "https://registry.yarnpkg.com/liquidjs/-/liquidjs-10.24.0.tgz#1aa832189b48b4102049dfa7a8eea40281fa9389"
- integrity sha512-TAUNAdgwaAXjjcUFuYVJm9kOVH7zc0mTKxsG9t9Lu4qdWjB2BEblyVIYpjWcmJLMGgiYqnGNJjpNMHx0gp/46A==
+liquidjs@10.25.7:
+ version "10.25.7"
+ resolved "https://registry.yarnpkg.com/liquidjs/-/liquidjs-10.25.7.tgz#75c5765ae42e04da30fba15ae20daab57c4a7a8c"
+ integrity sha512-rPCjJLiD4eDhQjvv964AeXFC+HbeYBbZrd7Z82Q6hqv1lX7G+5w4SJcKLn9CAAAwHI4aS3dTdo083UB79K3pDA==
dependencies:
commander "^10.0.0"
@@ -1664,28 +1353,16 @@ lodash.once@^4.0.0:
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
-lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.23:
- version "4.17.23"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a"
- integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==
+lodash@^4.18.1:
+ version "4.18.1"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c"
+ integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==
long@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/long/-/long-5.3.2.tgz#1d84463095999262d7d7b7f8bfd4a8cc55167f83"
integrity sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==
-lru-cache@^10.2.0:
- version "10.4.3"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
- integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
-
-lru-cache@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
- integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
- dependencies:
- yallist "^4.0.0"
-
lru-cache@^7.14.1:
version "7.18.3"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
@@ -1696,28 +1373,6 @@ lru.min@^1.1.0, lru.min@^1.1.4:
resolved "https://registry.yarnpkg.com/lru.min/-/lru.min-1.1.4.tgz#6ea1737a8c1ba2300cc87ad46910a4bdffa0117b"
integrity sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==
-make-fetch-happen@^9.1.0:
- version "9.1.0"
- resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968"
- integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==
- dependencies:
- agentkeepalive "^4.1.3"
- cacache "^15.2.0"
- http-cache-semantics "^4.1.0"
- http-proxy-agent "^4.0.1"
- https-proxy-agent "^5.0.0"
- is-lambda "^1.0.1"
- lru-cache "^6.0.0"
- minipass "^3.1.3"
- minipass-collect "^1.0.2"
- minipass-fetch "^1.3.2"
- minipass-flush "^1.0.5"
- minipass-pipeline "^1.2.4"
- negotiator "^0.6.2"
- promise-retry "^2.0.1"
- socks-proxy-agent "^6.0.0"
- ssri "^8.0.0"
-
math-intrinsics@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
@@ -1757,106 +1412,35 @@ minimatch@^10.2.1:
dependencies:
brace-expansion "^5.0.2"
-minimatch@^3.1.1:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
+minimatch@^10.2.2:
+ version "10.2.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1"
+ integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==
dependencies:
- brace-expansion "^1.1.7"
-
-minimatch@^5.1.0:
- version "5.1.6"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
- integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
- dependencies:
- brace-expansion "^2.0.1"
-
-minimatch@^9.0.4:
- version "9.0.5"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
- integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
- dependencies:
- brace-expansion "^2.0.1"
+ brace-expansion "^5.0.5"
minimist@^1.2.0, minimist@^1.2.3:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
-minipass-collect@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
- integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
- dependencies:
- minipass "^3.0.0"
-
-minipass-fetch@^1.3.2:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6"
- integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==
- dependencies:
- minipass "^3.1.0"
- minipass-sized "^1.0.3"
- minizlib "^2.0.0"
- optionalDependencies:
- encoding "^0.1.12"
-
-minipass-flush@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
- integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
- dependencies:
- minipass "^3.0.0"
-
-minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
- integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
- dependencies:
- minipass "^3.0.0"
-
-minipass-sized@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70"
- integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==
- dependencies:
- minipass "^3.0.0"
-
-minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3:
- version "3.3.6"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
- integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
- dependencies:
- yallist "^4.0.0"
-
-minipass@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
- integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
-
-"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
+minipass@^7.0.4, minipass@^7.1.2:
version "7.1.3"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b"
integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==
-minizlib@^2.0.0, minizlib@^2.1.1:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
- integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+minizlib@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-3.1.0.tgz#6ad76c3a8f10227c9b51d1c9ac8e30b27f5a251c"
+ integrity sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==
dependencies:
- minipass "^3.0.0"
- yallist "^4.0.0"
+ minipass "^7.1.2"
mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
version "0.5.3"
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
-mkdirp@^1.0.3, mkdirp@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
- integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-
moment@^2.30.1:
version "2.30.1"
resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
@@ -1872,15 +1456,15 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@^2.0.0, ms@^2.1.1, ms@^2.1.3:
+ms@^2.1.1, ms@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-mysql2@^3.18.2:
- version "3.18.2"
- resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.18.2.tgz#11d30fbc03a456d076760bd60e6ebf17abc6323d"
- integrity sha512-UfEShBFAZZEAKjySnTUuE7BgqkYT4mx+RjoJ5aqtmwSSvNcJ/QxQPXz/y3jSxNiVRedPfgccmuBtiPCSiEEytw==
+mysql2@^3.22.3:
+ version "3.22.3"
+ resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.22.3.tgz#884a36a1171501ef752ba90057dbcde528f322e3"
+ integrity sha512-uWWxvZSRvRhtBdh2CdcuK83YcOfPdmEeEYB069bAmPnV93QApDGVPuvCQOLjlh7tYHEWdgQPrn6kosDxHBVLkA==
dependencies:
aws-ssl-profiles "^1.1.2"
denque "^2.1.0"
@@ -1903,16 +1487,16 @@ napi-build-utils@^2.0.0:
resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-2.0.0.tgz#13c22c0187fcfccce1461844136372a47ddc027e"
integrity sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==
-negotiator@^0.6.2, negotiator@~0.6.4:
- version "0.6.4"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7"
- integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
-
negotiator@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-1.0.0.tgz#b6c91bb47172d69f93cfd7c357bbb529019b5f6a"
integrity sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==
+negotiator@~0.6.4:
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.4.tgz#777948e2452651c570b712dd01c23e262713fff7"
+ integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
+
netmask@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7"
@@ -1925,10 +1509,10 @@ node-abi@^3.3.0:
dependencies:
semver "^7.3.5"
-node-addon-api@^7.0.0:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558"
- integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==
+node-addon-api@^8.0.0:
+ version "8.7.0"
+ resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-8.7.0.tgz#f64f8413456ecbe900221305a3f883c37666473f"
+ integrity sha512-9MdFxmkKaOYVTV+XVRG8ArDwwQ77XIgIPyKASB1k3JPq3M8fGQQQE3YpMOrKm6g//Ktx8ivZr8xo1Qmtqub+GA==
node-addon-api@^8.3.0:
version "8.5.0"
@@ -1940,21 +1524,21 @@ node-gyp-build@^4.8.4:
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8"
integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==
-node-gyp@8.x:
- version "8.4.1"
- resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937"
- integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==
+node-gyp@12.x:
+ version "12.3.0"
+ resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-12.3.0.tgz#a0e0d9364779451eaf4148b6f9a7366f98000b3f"
+ integrity sha512-QNcUWM+HgJplcPzBvFBZ9VXacyGZ4+VTOb80PwWR+TlVzoHbRKULNEzpRsnaoxG3Wzr7Qh7BYxGDU3CbKib2Yg==
dependencies:
env-paths "^2.2.0"
- glob "^7.1.4"
+ exponential-backoff "^3.1.1"
graceful-fs "^4.2.6"
- make-fetch-happen "^9.1.0"
- nopt "^5.0.0"
- npmlog "^6.0.0"
- rimraf "^3.0.2"
+ nopt "^9.0.0"
+ proc-log "^6.0.0"
semver "^7.3.5"
- tar "^6.1.2"
- which "^2.0.2"
+ tar "^7.5.4"
+ tinyglobby "^0.2.12"
+ undici "^6.25.0"
+ which "^6.0.0"
node-rsa@^1.1.1:
version "1.1.1"
@@ -1979,28 +1563,18 @@ nodemon@^3.1.14:
touch "^3.1.0"
undefsafe "^2.0.5"
-nopt@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88"
- integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==
+nopt@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-9.0.0.tgz#6bff0836b2964d24508b6b41b5a9a49c4f4a1f96"
+ integrity sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==
dependencies:
- abbrev "1"
+ abbrev "^4.0.0"
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-npmlog@^6.0.0:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830"
- integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==
- dependencies:
- are-we-there-yet "^3.0.0"
- console-control-strings "^1.1.0"
- gauge "^4.0.3"
- set-blocking "^2.0.0"
-
object-inspect@^1.13.3:
version "1.13.4"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213"
@@ -2027,24 +1601,24 @@ on-headers@~1.1.0:
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65"
integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
+once@^1.3.1, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
-otplib@^13.3.0:
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/otplib/-/otplib-13.3.0.tgz#2ead040ab29d1a829d1d7c510b059a3e4c76b2b0"
- integrity sha512-VYMKyyDG8yt2q+z58sz54/EIyTh7+tyMrjeemR44iVh5+dkKtIs57irTqxjH+IkAL1uMmG1JIFhG5CxTpqdU5g==
+otplib@^13.4.0:
+ version "13.4.0"
+ resolved "https://registry.yarnpkg.com/otplib/-/otplib-13.4.0.tgz#5743391a7fe1900cb1ac364af0bbb407a72af76b"
+ integrity sha512-RUcYcRMCgRWhUE/XabRppXpUwCwaWBNHe5iPXhdvP8wwDGpGpsIf/kxX/ec3zFsOaM1Oq8lEhUqDwk6W7DHkwg==
dependencies:
- "@otplib/core" "13.3.0"
- "@otplib/hotp" "13.3.0"
- "@otplib/plugin-base32-scure" "13.3.0"
- "@otplib/plugin-crypto-noble" "13.3.0"
- "@otplib/totp" "13.3.0"
- "@otplib/uri" "13.3.0"
+ "@otplib/core" "13.4.0"
+ "@otplib/hotp" "13.4.0"
+ "@otplib/plugin-base32-scure" "13.4.0"
+ "@otplib/plugin-crypto-noble" "13.4.0"
+ "@otplib/totp" "13.4.0"
+ "@otplib/uri" "13.4.0"
p-limit@^1.1.0:
version "1.3.0"
@@ -2074,13 +1648,6 @@ p-locate@^4.1.0:
dependencies:
p-limit "^2.2.0"
-p-map@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
- integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
- dependencies:
- aggregate-error "^3.0.0"
-
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
@@ -2091,33 +1658,28 @@ p-try@^2.0.0:
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-pac-proxy-agent@^7.1.0:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz#9cfaf33ff25da36f6147a20844230ec92c06e5df"
- integrity sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==
+pac-proxy-agent@9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-9.0.1.tgz#9cee1f8b41b00c53418f10824a8a41b3e07587dd"
+ integrity sha512-3ZOSpLboOlpW4yp8Cuv21KlTULRqyJ5Uuad3wXpSKFrxdNgcHEyoa22GRaZ2UlgCVuR6z+5BiavtYVvbajL/Yw==
dependencies:
- "@tootallnate/quickjs-emscripten" "^0.23.0"
- agent-base "^7.1.2"
+ agent-base "9.0.0"
debug "^4.3.4"
- get-uri "^6.0.1"
- http-proxy-agent "^7.0.0"
- https-proxy-agent "^7.0.6"
- pac-resolver "^7.0.1"
- socks-proxy-agent "^8.0.5"
+ get-uri "8.0.0"
+ http-proxy-agent "9.0.0"
+ https-proxy-agent "9.0.0"
+ pac-resolver "9.0.1"
+ quickjs-wasi "^2.2.0"
+ socks-proxy-agent "10.0.0"
-pac-resolver@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.1.tgz#54675558ea368b64d210fd9c92a640b5f3b8abb6"
- integrity sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==
+pac-resolver@9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-9.0.1.tgz#a90b1518e4e832b3fcb197ada974d6f6ceaa7f8a"
+ integrity sha512-lJbS008tmkj08VhoM8Hzuv/VE5tK9MS0OIQ/7+s0lIF+BYhiQWFYzkSpML7lXs9iBu2jfmzBTLzhe9n6BX+dYw==
dependencies:
- degenerator "^5.0.0"
+ degenerator "7.0.1"
netmask "^2.0.2"
-package-json-from-dist@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
- integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
-
parse-json@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
@@ -2141,29 +1703,11 @@ path-exists@^4.0.0:
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
-path-key@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
- integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-path-scurry@^1.11.1:
- version "1.11.1"
- resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
- integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
- dependencies:
- lru-cache "^10.2.0"
- minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
-
path-to-regexp@^8.0.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.3.0.tgz#aa818a6981f99321003a08987d3cec9c3474cd1f"
@@ -2187,25 +1731,25 @@ pg-connection-string@2.6.2:
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475"
integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==
-pg-connection-string@^2.11.0:
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.11.0.tgz#5dca53ff595df33ba9db812e181b19909866d10b"
- integrity sha512-kecgoJwhOpxYU21rZjULrmrBJ698U2RxXofKVzOn5UDj61BPj/qMb7diYUR1nLScCDbrztQFl1TaQZT0t1EtzQ==
+pg-connection-string@^2.12.0:
+ version "2.12.0"
+ resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.12.0.tgz#4084f917902bb2daae3dc1376fe24ac7b4eaccf2"
+ integrity sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==
pg-int8@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
-pg-pool@^3.12.0:
- version "3.12.0"
- resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.12.0.tgz#798c84ec7d42ba03fff056ebe575daa6e14feab8"
- integrity sha512-eIJ0DES8BLaziFHW7VgJEBPi5hg3Nyng5iKpYtj3wbcAUV9A1wLgWiY7ajf/f/oO1wfxt83phXPY8Emztg7ITg==
+pg-pool@^3.13.0:
+ version "3.13.0"
+ resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.13.0.tgz#416482e9700e8f80c685a6ae5681697a413c13a3"
+ integrity sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==
-pg-protocol@^1.12.0:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.12.0.tgz#e9827f3e1dae6cdcb78d009cba5bb699d88ae998"
- integrity sha512-uOANXNRACNdElMXJ0tPz6RBM0XQ61nONGAwlt8da5zs/iUOOCLBQOHSXnrC6fMsvtjxbOJrZZl5IScGv+7mpbg==
+pg-protocol@^1.13.0:
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.13.0.tgz#fdaf6d020bca590d58bb991b4b16fc448efe0511"
+ integrity sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==
pg-types@2.2.0:
version "2.2.0"
@@ -2218,14 +1762,14 @@ pg-types@2.2.0:
postgres-date "~1.0.4"
postgres-interval "^1.1.0"
-pg@^8.19.0:
- version "8.19.0"
- resolved "https://registry.yarnpkg.com/pg/-/pg-8.19.0.tgz#2cb45322471c1ed05786ee7ec09bd91abdfe3eeb"
- integrity sha512-QIcLGi508BAHkQ3pJNptsFz5WQMlpGbuBGBaIaXsWK8mel2kQ/rThYI+DbgjUvZrIr7MiuEuc9LcChJoEZK1xQ==
+pg@^8.20.0:
+ version "8.20.0"
+ resolved "https://registry.yarnpkg.com/pg/-/pg-8.20.0.tgz#1a274de944cb329fd6dd77a6d371a005ba6b136d"
+ integrity sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==
dependencies:
- pg-connection-string "^2.11.0"
- pg-pool "^3.12.0"
- pg-protocol "^1.12.0"
+ pg-connection-string "^2.12.0"
+ pg-pool "^3.13.0"
+ pg-protocol "^1.13.0"
pg-types "2.2.0"
pgpass "1.0.5"
optionalDependencies:
@@ -2243,6 +1787,11 @@ picomatch@^2.0.4, picomatch@^2.2.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+picomatch@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589"
+ integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==
+
pify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
@@ -2278,7 +1827,7 @@ postgres-interval@^1.1.0:
dependencies:
xtend "^4.0.0"
-prebuild-install@^7.1.1:
+prebuild-install@^7.1.1, prebuild-install@^7.1.3:
version "7.1.3"
resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.3.tgz#d630abad2b147443f20a212917beae68b8092eec"
integrity sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==
@@ -2296,6 +1845,11 @@ prebuild-install@^7.1.1:
tar-fs "^2.0.0"
tunnel-agent "^0.6.0"
+proc-log@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-6.1.0.tgz#18519482a37d5198e231133a70144a50f21f0215"
+ integrity sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==
+
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -2306,19 +1860,6 @@ process@^0.11.1, process@^0.11.10:
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
-promise-inflight@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
- integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
-
-promise-retry@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22"
- integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
- dependencies:
- err-code "^2.0.2"
- retry "^0.12.0"
-
proxy-addr@^2.0.7:
version "2.0.7"
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
@@ -2327,24 +1868,24 @@ proxy-addr@^2.0.7:
forwarded "0.2.0"
ipaddr.js "1.9.1"
-proxy-agent@^6.5.0:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.5.0.tgz#9e49acba8e4ee234aacb539f89ed9c23d02f232d"
- integrity sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==
+proxy-agent@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-8.0.1.tgz#4819c7b14637c6940424aeed840e9883a378a15d"
+ integrity sha512-kccqGBqHZXR8onQhY/ganJjoO8QIKKRiFBhPOzbTZK16attzSZ/0XSmp9H7jrRxPKHjhGyx1q32lMPrJ3uLFgA==
dependencies:
- agent-base "^7.1.2"
+ agent-base "9.0.0"
debug "^4.3.4"
- http-proxy-agent "^7.0.1"
- https-proxy-agent "^7.0.6"
+ http-proxy-agent "9.0.0"
+ https-proxy-agent "9.0.0"
lru-cache "^7.14.1"
- pac-proxy-agent "^7.1.0"
- proxy-from-env "^1.1.0"
- socks-proxy-agent "^8.0.5"
+ pac-proxy-agent "9.0.1"
+ proxy-from-env "^2.0.0"
+ socks-proxy-agent "10.0.0"
-proxy-from-env@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
- integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+proxy-from-env@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz#a7487568adad577cfaaa7e88c49cab3ab3081aba"
+ integrity sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==
pstree.remy@^1.1.8:
version "1.1.8"
@@ -2371,6 +1912,11 @@ querystring@0.2.0:
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==
+quickjs-wasi@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/quickjs-wasi/-/quickjs-wasi-2.2.0.tgz#85d8984aa1b048546e5634c764165034c6e22d48"
+ integrity sha512-zQxXmQMrEoD3S+jQdYsloq4qAuaxKFHZj6hHqOYGwB2iQZH+q9e/lf5zQPXCKOk0WJuAjzRFbO4KwHIp2D05Iw==
+
range-parser@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
@@ -2409,7 +1955,7 @@ readable-stream@^2.0.5:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
+readable-stream@^3.1.1, readable-stream@^3.4.0:
version "3.6.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@@ -2429,12 +1975,12 @@ readable-stream@^4.0.0:
process "^0.11.10"
string_decoder "^1.3.0"
-readdir-glob@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-1.1.3.tgz#c3d831f51f5e7bfa62fa2ffbe4b508c640f09584"
- integrity sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==
+readdir-glob@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/readdir-glob/-/readdir-glob-3.0.0.tgz#a3545e0cef84d88c30fe44118d1a7e20496e9245"
+ integrity sha512-AhNB2KgKeVJr16nK9LLZbJNWnYoT23ZrumNKFDebHBdkC8KHSqWo871JAUhoWC/RtjEVdqNMFpM6qrwRbaUqpw==
dependencies:
- minimatch "^5.1.0"
+ minimatch "^10.2.2"
readdirp@~3.6.0:
version "3.6.0"
@@ -2479,18 +2025,6 @@ resolve@^1.20.0:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
-retry@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
- integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
-
-rimraf@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
- integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
- dependencies:
- glob "^7.1.3"
-
router@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/router/-/router-2.2.0.tgz#019be620b711c87641167cc79b99090f00b146ef"
@@ -2559,18 +2093,6 @@ setprototypeof@~1.2.0:
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
-shebang-command@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
- integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
- dependencies:
- shebang-regex "^3.0.0"
-
-shebang-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
- integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-
side-channel-list@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad"
@@ -2611,16 +2133,6 @@ side-channel@^1.1.0:
side-channel-map "^1.0.1"
side-channel-weakmap "^1.0.2"
-signal-exit@^3.0.7:
- version "3.0.7"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
- integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-
-signal-exit@^4.0.1:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
- integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
-
signale@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/signale/-/signale-1.4.0.tgz#c4be58302fb0262ac00fc3d886a7c113759042f1"
@@ -2656,25 +2168,16 @@ smart-buffer@^4.2.0:
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
-socks-proxy-agent@^6.0.0:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce"
- integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==
+socks-proxy-agent@10.0.0:
+ version "10.0.0"
+ resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-10.0.0.tgz#e94a497f890d790a67274c19837c5bbe3f182220"
+ integrity sha512-pyp2YR3mNxAMu0mGLtzs4g7O3uT4/9sQOLAKcViAkaS9fJWkud7nmaf6ZREFqQEi24IPkBcjfHjXhPTUWjo3uA==
dependencies:
- agent-base "^6.0.2"
- debug "^4.3.3"
- socks "^2.6.2"
-
-socks-proxy-agent@^8.0.5:
- version "8.0.5"
- resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz#b9cdb4e7e998509d7659d689ce7697ac21645bee"
- integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==
- dependencies:
- agent-base "^7.1.2"
+ agent-base "9.0.0"
debug "^4.3.4"
socks "^2.8.3"
-socks@^2.6.2, socks@^2.8.3:
+socks@^2.8.3:
version "2.8.7"
resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.7.tgz#e2fb1d9a603add75050a2067db8c381a0b5669ea"
integrity sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==
@@ -2697,24 +2200,17 @@ sql-escaper@^1.3.3:
resolved "https://registry.yarnpkg.com/sql-escaper/-/sql-escaper-1.3.3.tgz#65faf89f048d26bb9a75566b82b5990ddf8a5b7f"
integrity sha512-BsTCV265VpTp8tm1wyIm1xqQCS+Q9NHx2Sr+WcnUrgLrQ6yiDIvHYJV5gHxsj1lMBy2zm5twLaZao8Jd+S8JJw==
-sqlite3@^5.1.7:
- version "5.1.7"
- resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.1.7.tgz#59ca1053c1ab38647396586edad019b1551041b7"
- integrity sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==
+sqlite3@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-6.0.1.tgz#c0956e7834931c406b283c87b66771c847a6abfc"
+ integrity sha512-X0czUUMG2tmSqJpEQa3tCuZSHKIx8PwM53vLZzKp/o6Rpy25fiVfjdbnZ988M8+O3ZWR1ih0K255VumCb3MAnQ==
dependencies:
bindings "^1.5.0"
- node-addon-api "^7.0.0"
- prebuild-install "^7.1.1"
- tar "^6.1.11"
+ node-addon-api "^8.0.0"
+ prebuild-install "^7.1.3"
+ tar "^7.5.10"
optionalDependencies:
- node-gyp "8.x"
-
-ssri@^8.0.0, ssri@^8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af"
- integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==
- dependencies:
- minipass "^3.1.1"
+ node-gyp "12.x"
statuses@^2.0.1, statuses@^2.0.2, statuses@~2.0.2:
version "2.0.2"
@@ -2735,7 +2231,7 @@ streamx@^2.15.0:
fast-fifo "^1.3.2"
text-decoder "^1.1.0"
-"string-width-cjs@npm:string-width@^4.2.0":
+string-width@^4.1.0, string-width@^4.2.0:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -2744,24 +2240,6 @@ streamx@^2.15.0:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
-"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-string-width@^5.0.1, string-width@^5.1.2:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
- integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
- dependencies:
- eastasianwidth "^0.2.0"
- emoji-regex "^9.2.2"
- strip-ansi "^7.0.1"
-
string_decoder@^1.1.1, string_decoder@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
@@ -2776,13 +2254,6 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
@@ -2790,13 +2261,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
dependencies:
ansi-regex "^5.0.1"
-strip-ansi@^7.0.1:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba"
- integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==
- dependencies:
- ansi-regex "^6.0.1"
-
strip-bom@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
@@ -2849,17 +2313,16 @@ tar-stream@^3.0.0:
fast-fifo "^1.2.0"
streamx "^2.15.0"
-tar@^6.0.2, tar@^6.1.11, tar@^6.1.2:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
- integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
+tar@^7.5.10, tar@^7.5.4:
+ version "7.5.15"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.15.tgz#afe6d1316cddf614a566e3813e42fe01aed46fee"
+ integrity sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==
dependencies:
- chownr "^2.0.0"
- fs-minipass "^2.0.0"
- minipass "^5.0.0"
- minizlib "^2.1.1"
- mkdirp "^1.0.3"
- yallist "^4.0.0"
+ "@isaacs/fs-minipass" "^4.0.0"
+ chownr "^3.0.0"
+ minipass "^7.1.2"
+ minizlib "^3.1.0"
+ yallist "^5.0.0"
tarn@^3.0.2:
version "3.0.2"
@@ -2892,6 +2355,14 @@ tildify@2.0.0:
resolved "https://registry.yarnpkg.com/tildify/-/tildify-2.0.0.tgz#f205f3674d677ce698b7067a99e949ce03b4754a"
integrity sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==
+tinyglobby@^0.2.12:
+ version "0.2.16"
+ resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6"
+ integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==
+ dependencies:
+ fdir "^6.5.0"
+ picomatch "^4.0.4"
+
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -2935,19 +2406,10 @@ undefsafe@^2.0.5:
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==
-unique-filename@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
- integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
- dependencies:
- unique-slug "^2.0.0"
-
-unique-slug@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
- integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
- dependencies:
- imurmurhash "^0.1.4"
+undici@^6.25.0:
+ version "6.25.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-6.25.0.tgz#8c4efb8c998dc187fc1cfb5dde1ef19a211849fb"
+ integrity sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==
unpipe@~1.0.0:
version "1.0.0"
@@ -2976,28 +2438,12 @@ which-module@^2.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409"
integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==
-which@^2.0.1, which@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
- integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+which@^6.0.0:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/which/-/which-6.0.1.tgz#021642443a198fb93b784a5606721cb18cfcbfce"
+ integrity sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==
dependencies:
- isexe "^2.0.0"
-
-wide-align@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
- integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
- dependencies:
- string-width "^1.0.2 || 2 || 3 || 4"
-
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
+ isexe "^4.0.0"
wrap-ansi@^6.2.0:
version "6.2.0"
@@ -3008,15 +2454,6 @@ wrap-ansi@^6.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
-wrap-ansi@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
- integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
- dependencies:
- ansi-styles "^6.1.0"
- string-width "^5.0.1"
- strip-ansi "^7.0.1"
-
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -3032,10 +2469,10 @@ y18n@^4.0.0:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
-yallist@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
- integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+yallist@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-5.0.0.tgz#00e2de443639ed0d78fd87de0d27469fbcffb533"
+ integrity sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==
yargs-parser@^18.1.2:
version "18.1.3"
@@ -3062,11 +2499,11 @@ yargs@^15.4.1:
y18n "^4.0.0"
yargs-parser "^18.1.2"
-zip-stream@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-6.0.1.tgz#e141b930ed60ccaf5d7fa9c8260e0d1748a2bbfb"
- integrity sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==
+zip-stream@^7.0.2:
+ version "7.0.5"
+ resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-7.0.5.tgz#57b25db7c1be3cb4934ab480338dea490eb5ab8c"
+ integrity sha512-dSvYKdvLsAHCDqPOhIwk/q5CvuWtTB3Dgpoe0uVEFjTzIOAmsQpprX25InCvrvJsirEbu1OHyy67n/kAj1Sw/w==
dependencies:
- archiver-utils "^5.0.0"
- compress-commons "^6.0.2"
+ compress-commons "^7.0.0"
+ normalize-path "^3.0.0"
readable-stream "^4.0.0"
diff --git a/frontend/biome.json b/frontend/biome.json
index ccc3cd32..13f21e36 100644
--- a/frontend/biome.json
+++ b/frontend/biome.json
@@ -1,5 +1,5 @@
{
- "$schema": "https://biomejs.dev/schemas/2.4.5/schema.json",
+ "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
diff --git a/frontend/package.json b/frontend/package.json
index 4223c67b..1d98b5d4 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -17,50 +17,50 @@
},
"dependencies": {
"@tabler/core": "^1.4.0",
- "@tabler/icons-react": "^3.38.0",
- "@tanstack/react-query": "^5.90.21",
+ "@tabler/icons-react": "^3.44.0",
+ "@tanstack/react-query": "^5.100.10",
"@tanstack/react-table": "^8.21.3",
"@uiw/react-textarea-code-editor": "^3.1.1",
"classnames": "^2.5.1",
- "country-flag-icons": "^1.6.15",
+ "country-flag-icons": "^1.6.17",
"date-fns": "^4.1.0",
"ez-modal-react": "^1.0.5",
"formik": "^2.4.9",
"generate-password-browser": "^1.1.0",
"humps": "^2.0.1",
"query-string": "^9.3.1",
- "react": "^19.2.4",
+ "react": "^19.2.6",
"react-bootstrap": "^2.10.10",
- "react-dom": "^19.2.4",
- "react-intl": "^8.1.3",
+ "react-dom": "^19.2.6",
+ "react-intl": "^10.1.6",
"react-markdown": "^10.1.0",
- "react-router-dom": "^7.13.1",
+ "react-router-dom": "^7.15.0",
"react-select": "^5.10.2",
- "react-toastify": "^11.0.5",
- "rooks": "^9.5.0"
+ "react-toastify": "^11.1.0",
+ "rooks": "^9.8.0"
},
"devDependencies": {
- "@biomejs/biome": "^2.4.5",
- "@formatjs/cli": "^6.13.0",
- "@tanstack/react-query-devtools": "^5.91.3",
+ "@biomejs/biome": "^2.4.15",
+ "@formatjs/cli": "^6.15.0",
+ "@tanstack/react-query-devtools": "^5.100.10",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/country-flag-icons": "^1.2.2",
"@types/humps": "^2.0.6",
+ "@types/node": "^25.7.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/react-table": "^7.7.20",
- "@vitejs/plugin-react": "^5.1.4",
- "happy-dom": "^20.8.3",
- "postcss": "^8.5.8",
+ "@vitejs/plugin-react": "^6.0.1",
+ "happy-dom": "^20.9.0",
+ "postcss": "^8.5.14",
"postcss-simple-vars": "^7.0.1",
- "sass": "^1.97.3",
+ "sass": "^1.99.0",
"tmp": "^0.2.5",
- "typescript": "5.9.3",
- "vite": "^7.3.1",
- "vite-plugin-checker": "^0.12.0",
- "vite-tsconfig-paths": "^6.1.1",
- "vitest": "^4.0.18"
+ "typescript": "6.0.3",
+ "vite": "^8.0.12",
+ "vite-plugin-checker": "^0.13.0",
+ "vitest": "^4.1.6"
}
}
diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json
index fb86d45b..8eba5b17 100644
--- a/frontend/tsconfig.json
+++ b/frontend/tsconfig.json
@@ -7,9 +7,11 @@
"DOM",
"DOM.Iterable"
],
+ "types": [
+ "node"
+ ],
"module": "ESNext",
"skipLibCheck": true,
- "baseUrl": ".",
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts
index 1e21d90f..1e00d067 100644
--- a/frontend/vite.config.ts
+++ b/frontend/vite.config.ts
@@ -1,7 +1,6 @@
import react from "@vitejs/plugin-react";
import { defineConfig } from "vite";
import checker from "vite-plugin-checker";
-import tsconfigPaths from "vite-tsconfig-paths";
import "vitest/config";
import { execFile } from "node:child_process";
@@ -45,8 +44,10 @@ export default defineConfig({
// e.g. use TypeScript check
typescript: true,
}),
- tsconfigPaths(),
],
+ resolve: {
+ tsconfigPaths: true,
+ },
server: {
host: true,
port: 5173,
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 401d0590..985ab9ae 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -16,32 +16,6 @@
js-tokens "^4.0.0"
picocolors "^1.1.1"
-"@babel/compat-data@^7.28.6":
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.0.tgz#00d03e8c0ac24dd9be942c5370990cbe1f17d88d"
- integrity sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==
-
-"@babel/core@^7.29.0":
- version "7.29.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322"
- integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==
- dependencies:
- "@babel/code-frame" "^7.29.0"
- "@babel/generator" "^7.29.0"
- "@babel/helper-compilation-targets" "^7.28.6"
- "@babel/helper-module-transforms" "^7.28.6"
- "@babel/helpers" "^7.28.6"
- "@babel/parser" "^7.29.0"
- "@babel/template" "^7.28.6"
- "@babel/traverse" "^7.29.0"
- "@babel/types" "^7.29.0"
- "@jridgewell/remapping" "^2.3.5"
- convert-source-map "^2.0.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.3"
- semver "^6.3.1"
-
"@babel/generator@^7.29.0":
version "7.29.1"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50"
@@ -53,23 +27,12 @@
"@jridgewell/trace-mapping" "^0.3.28"
jsesc "^3.0.2"
-"@babel/helper-compilation-targets@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25"
- integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==
- dependencies:
- "@babel/compat-data" "^7.28.6"
- "@babel/helper-validator-option" "^7.27.1"
- browserslist "^4.24.0"
- lru-cache "^5.1.1"
- semver "^6.3.1"
-
"@babel/helper-globals@^7.28.0":
version "7.28.0"
resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674"
integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==
-"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.28.6":
+"@babel/helper-module-imports@^7.16.7":
version "7.28.6"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c"
integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==
@@ -77,20 +40,6 @@
"@babel/traverse" "^7.28.6"
"@babel/types" "^7.28.6"
-"@babel/helper-module-transforms@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e"
- integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==
- dependencies:
- "@babel/helper-module-imports" "^7.28.6"
- "@babel/helper-validator-identifier" "^7.28.5"
- "@babel/traverse" "^7.28.6"
-
-"@babel/helper-plugin-utils@^7.27.1":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8"
- integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==
-
"@babel/helper-string-parser@^7.27.1":
version "7.27.1"
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687"
@@ -101,40 +50,13 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4"
integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==
-"@babel/helper-validator-option@^7.27.1":
- version "7.27.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f"
- integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==
-
-"@babel/helpers@^7.28.6":
- version "7.28.6"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7"
- integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==
- dependencies:
- "@babel/template" "^7.28.6"
- "@babel/types" "^7.28.6"
-
-"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0":
+"@babel/parser@^7.28.6", "@babel/parser@^7.29.0":
version "7.29.0"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6"
integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==
dependencies:
"@babel/types" "^7.29.0"
-"@babel/plugin-transform-react-jsx-self@^7.27.1":
- version "7.27.1"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz#af678d8506acf52c577cac73ff7fe6615c85fc92"
- integrity sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.27.1"
-
-"@babel/plugin-transform-react-jsx-source@^7.27.1":
- version "7.27.1"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz#dcfe2c24094bb757bf73960374e7c55e434f19f0"
- integrity sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.27.1"
-
"@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.6", "@babel/runtime@^7.24.7", "@babel/runtime@^7.26.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.7":
version "7.28.6"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.6.tgz#d267a43cb1836dc4d182cce93ae75ba954ef6d2b"
@@ -149,7 +71,7 @@
"@babel/parser" "^7.28.6"
"@babel/types" "^7.28.6"
-"@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0":
+"@babel/traverse@^7.28.6":
version "7.29.0"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a"
integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==
@@ -162,7 +84,7 @@
"@babel/types" "^7.29.0"
debug "^4.3.1"
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.28.2", "@babel/types@^7.28.6", "@babel/types@^7.29.0":
+"@babel/types@^7.28.6", "@babel/types@^7.29.0":
version "7.29.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7"
integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==
@@ -170,59 +92,81 @@
"@babel/helper-string-parser" "^7.27.1"
"@babel/helper-validator-identifier" "^7.28.5"
-"@biomejs/biome@^2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.4.5.tgz#90e75c1b6c60eb5bf8e8bfb193a1fbe9dc868f16"
- integrity sha512-OWNCyMS0Q011R6YifXNOg6qsOg64IVc7XX6SqGsrGszPbkVCoaO7Sr/lISFnXZ9hjQhDewwZ40789QmrG0GYgQ==
+"@biomejs/biome@^2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-2.4.15.tgz#cb84ad6eb4235e7230b3c105a825e9bc03399944"
+ integrity sha512-j5VH3a/h/HXTKBM50MDMxRCzkeLv9S2XJcW2WgnZT1+xyisi+0bISrXR82gCX+8S9lvK0skEvHJRN+3Ktr2hlw==
optionalDependencies:
- "@biomejs/cli-darwin-arm64" "2.4.5"
- "@biomejs/cli-darwin-x64" "2.4.5"
- "@biomejs/cli-linux-arm64" "2.4.5"
- "@biomejs/cli-linux-arm64-musl" "2.4.5"
- "@biomejs/cli-linux-x64" "2.4.5"
- "@biomejs/cli-linux-x64-musl" "2.4.5"
- "@biomejs/cli-win32-arm64" "2.4.5"
- "@biomejs/cli-win32-x64" "2.4.5"
+ "@biomejs/cli-darwin-arm64" "2.4.15"
+ "@biomejs/cli-darwin-x64" "2.4.15"
+ "@biomejs/cli-linux-arm64" "2.4.15"
+ "@biomejs/cli-linux-arm64-musl" "2.4.15"
+ "@biomejs/cli-linux-x64" "2.4.15"
+ "@biomejs/cli-linux-x64-musl" "2.4.15"
+ "@biomejs/cli-win32-arm64" "2.4.15"
+ "@biomejs/cli-win32-x64" "2.4.15"
-"@biomejs/cli-darwin-arm64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.5.tgz#a62472ab3529a3905b16e1f3fdbbc74f2e5f0023"
- integrity sha512-lGS4Nd5O3KQJ6TeWv10mElnx1phERhBxqGP/IKq0SvZl78kcWDFMaTtVK+w3v3lusRFxJY78n07PbKplirsU5g==
+"@biomejs/cli-darwin-arm64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-2.4.15.tgz#3469daa56ac3ff4f16588a120df706381a96f65c"
+ integrity sha512-rF3PPqLq1yoST79zaQbDjVJwsuIeci/O+9bgNmC5QpgOqz6aqYuzA4abyAGx+mgyiDXn4A049xAN8gijbuR1Qg==
-"@biomejs/cli-darwin-x64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.5.tgz#e8bb001fcf6a8c751b0971cccf53993e9ba2e6e9"
- integrity sha512-6MoH4tyISIBNkZ2Q5T1R7dLd5BsITb2yhhhrU9jHZxnNSNMWl+s2Mxu7NBF8Y3a7JJcqq9nsk8i637z4gqkJxQ==
+"@biomejs/cli-darwin-x64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-2.4.15.tgz#0697b81089409635da16682ac1e539165c262006"
+ integrity sha512-/5KHXYMfSJs1fNXiX30xFtI8JcCFV6zaVVLxOa0M2sfqBKHkpQhRTv94yxQWxeTY2lzo2OuTlNvPC+hDQt2wcQ==
-"@biomejs/cli-linux-arm64-musl@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.5.tgz#b7ef7902237f16113061659a4c54aff5ad4513d5"
- integrity sha512-iqLDgpzobG7gpBF0fwEVS/LT8kmN7+S0E2YKFDtqliJfzNLnAiV2Nnyb+ehCDCJgAZBASkYHR2o60VQWikpqIg==
+"@biomejs/cli-linux-arm64-musl@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-2.4.15.tgz#c6af054e3732c361e9ad8c44070f909666b5616f"
+ integrity sha512-ZPcxznxm0pogHBLZhYntyR3sR+MrZjqJIKEr7ZqVen0Rl+P/4upVmfYXjftizi9RoqZntg33fv/1fbdhbYXpEQ==
-"@biomejs/cli-linux-arm64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.5.tgz#f110af748965cb1b57624dbbbd7acba729da8780"
- integrity sha512-U1GAG6FTjhAO04MyH4xn23wRNBkT6H7NentHh+8UxD6ShXKBm5SY4RedKJzkUThANxb9rUKIPc7B8ew9Xo/cWg==
+"@biomejs/cli-linux-arm64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-2.4.15.tgz#527cef60339649a442d51a9cd129ae9dfe9da926"
+ integrity sha512-owaAMZD/T4LrD0ELNCk0Km3qrRHuM0X6EAyVE1FSqGY0rbLoiDLrO4Us2tllm6cAeB2Ioa9C2C08NZPdr8+0Ug==
-"@biomejs/cli-linux-x64-musl@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.5.tgz#c3493eba094216e735538c55354dbc8867b51909"
- integrity sha512-NlKa7GpbQmNhZf9kakQeddqZyT7itN7jjWdakELeXyTU3pg/83fTysRRDPJD0akTfKDl6vZYNT9Zqn4MYZVBOA==
+"@biomejs/cli-linux-x64-musl@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-2.4.15.tgz#b39292ad106c3d5a612bf3c61ba3119f66833013"
+ integrity sha512-CNq/9W38SYSH023lfcQ4KKU8K0YX8T//FZUhcgtMMRABDojx5XsMV7jlweAvGSl389wJQB29Qo6Zb/a+jdvt+w==
-"@biomejs/cli-linux-x64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.5.tgz#15805550db4e45ffbd6c42d140d0cb5c6dbe07af"
- integrity sha512-NdODlSugMzTlENPTa4z0xB82dTUlCpsrOxc43///aNkTLblIYH4XpYflBbf5ySlQuP8AA4AZd1qXhV07IdrHdQ==
+"@biomejs/cli-linux-x64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-2.4.15.tgz#7360b7f81ff03ec6d9350bedc76b89f783b0945d"
+ integrity sha512-0jj7THz12GbUOLmMibktK6DZjqz2zV64KFxyBtcFTKPiiOIY0a7vns1elpO1dERvxpsZ5ik0oFfz0oGwFde1+g==
-"@biomejs/cli-win32-arm64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.5.tgz#8dae57dc8ffc1e82e00a59e623b5023c09726a4d"
- integrity sha512-EBfrTqRIWOFSd7CQb/0ttjHMR88zm3hGravnDwUA9wHAaCAYsULKDebWcN5RmrEo1KBtl/gDVJMrFjNR0pdGUw==
+"@biomejs/cli-win32-arm64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-2.4.15.tgz#9542aac679174892a9379267e0c0048f8eee4d9f"
+ integrity sha512-ouhkYdlhp/1GghEJPdWwD/Vi3gQ1nFxuSpMolWsbq3Lsq3QUR4jl6UdhhscdCugKU5vOEuMiJhvKj66O0OCq+w==
-"@biomejs/cli-win32-x64@2.4.5":
- version "2.4.5"
- resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.5.tgz#0b4d3355e0d6856cff8ed722e05ec7b0652e43ab"
- integrity sha512-Pmhv9zT95YzECfjEHNl3mN9Vhusw9VA5KHY0ZvlGsxsjwS5cb7vpRnHzJIv0vG7jB0JI7xEaMH9ddfZm/RozBw==
+"@biomejs/cli-win32-x64@2.4.15":
+ version "2.4.15"
+ resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-2.4.15.tgz#80288e4eea8f916fc5c876e9a486baadb8de537d"
+ integrity sha512-zBrGq5mx5wwpnow4+2BxUvleDM+GNd4sLbPaMapsSLQLD0NGRCquqPBTgN+7XkUteHvj7M+BstuI8tmnV7+HgQ==
+
+"@emnapi/core@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.10.0.tgz#380ccc8f2412ea22d1d972df7f8ee23a3b9c7467"
+ integrity sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==
+ dependencies:
+ "@emnapi/wasi-threads" "1.2.1"
+ tslib "^2.4.0"
+
+"@emnapi/runtime@1.10.0":
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.10.0.tgz#4b260c0d3534204e98c6110b8db1a987d26ec87c"
+ integrity sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==
+ dependencies:
+ tslib "^2.4.0"
+
+"@emnapi/wasi-threads@1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz#28fed21a1ba1ce797c44a070abc94d42f3ae8548"
+ integrity sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==
+ dependencies:
+ tslib "^2.4.0"
"@emotion/babel-plugin@^11.13.5":
version "11.13.5"
@@ -312,136 +256,6 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6"
integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==
-"@esbuild/aix-ppc64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz#815b39267f9bffd3407ea6c376ac32946e24f8d2"
- integrity sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==
-
-"@esbuild/android-arm64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz#19b882408829ad8e12b10aff2840711b2da361e8"
- integrity sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==
-
-"@esbuild/android-arm@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.3.tgz#90be58de27915efa27b767fcbdb37a4470627d7b"
- integrity sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==
-
-"@esbuild/android-x64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.3.tgz#d7dcc976f16e01a9aaa2f9b938fbec7389f895ac"
- integrity sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==
-
-"@esbuild/darwin-arm64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz#9f6cac72b3a8532298a6a4493ed639a8988e8abd"
- integrity sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==
-
-"@esbuild/darwin-x64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz#ac61d645faa37fd650340f1866b0812e1fb14d6a"
- integrity sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==
-
-"@esbuild/freebsd-arm64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz#b8625689d73cf1830fe58c39051acdc12474ea1b"
- integrity sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==
-
-"@esbuild/freebsd-x64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz#07be7dd3c9d42fe0eccd2ab9f9ded780bc53bead"
- integrity sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==
-
-"@esbuild/linux-arm64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz#bf31918fe5c798586460d2b3d6c46ed2c01ca0b6"
- integrity sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==
-
-"@esbuild/linux-arm@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz#28493ee46abec1dc3f500223cd9f8d2df08f9d11"
- integrity sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==
-
-"@esbuild/linux-ia32@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz#750752a8b30b43647402561eea764d0a41d0ee29"
- integrity sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==
-
-"@esbuild/linux-loong64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz#a5a92813a04e71198c50f05adfaf18fc1e95b9ed"
- integrity sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==
-
-"@esbuild/linux-mips64el@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz#deb45d7fd2d2161eadf1fbc593637ed766d50bb1"
- integrity sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==
-
-"@esbuild/linux-ppc64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz#6f39ae0b8c4d3d2d61a65b26df79f6e12a1c3d78"
- integrity sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==
-
-"@esbuild/linux-riscv64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz#4c5c19c3916612ec8e3915187030b9df0b955c1d"
- integrity sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==
-
-"@esbuild/linux-s390x@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz#9ed17b3198fa08ad5ccaa9e74f6c0aff7ad0156d"
- integrity sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==
-
-"@esbuild/linux-x64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.3.tgz#12383dcbf71b7cf6513e58b4b08d95a710bf52a5"
- integrity sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==
-
-"@esbuild/netbsd-arm64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz#dd0cb2fa543205fcd931df44f4786bfcce6df7d7"
- integrity sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==
-
-"@esbuild/netbsd-x64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz#028ad1807a8e03e155153b2d025b506c3787354b"
- integrity sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==
-
-"@esbuild/openbsd-arm64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz#e3c16ff3490c9b59b969fffca87f350ffc0e2af5"
- integrity sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==
-
-"@esbuild/openbsd-x64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz#c5a4693fcb03d1cbecbf8b422422468dfc0d2a8b"
- integrity sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==
-
-"@esbuild/openharmony-arm64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz#082082444f12db564a0775a41e1991c0e125055e"
- integrity sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==
-
-"@esbuild/sunos-x64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz#5ab036c53f929e8405c4e96e865a424160a1b537"
- integrity sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==
-
-"@esbuild/win32-arm64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz#38de700ef4b960a0045370c171794526e589862e"
- integrity sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==
-
-"@esbuild/win32-ia32@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz#451b93dc03ec5d4f38619e6cd64d9f9eff06f55c"
- integrity sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==
-
-"@esbuild/win32-x64@0.27.3":
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz#0eaf705c941a218a43dba8e09f1df1d6cd2f1f17"
- integrity sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==
-
"@floating-ui/core@^1.7.4":
version "1.7.4"
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.4.tgz#4a006a6e01565c0f87ba222c317b056a2cffd2f4"
@@ -462,65 +276,51 @@
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.10.tgz#a2a1e3812d14525f725d011a73eceb41fef5bc1c"
integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==
-"@formatjs/cli@^6.13.0":
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.13.0.tgz#e3922c6e35790ffd4fcc56202452e8ecd61a5e06"
- integrity sha512-bl4+FNg7S6RPNa9cSAE8HqdXu84n7LpzDdkDAPqS0sk58XNbY/1Le6GdWqCKzELWX+FhI58gyZtZecmWsZ+Bhg==
+"@formatjs/cli-native-darwin-arm64@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli-native-darwin-arm64/-/cli-native-darwin-arm64-1.1.0.tgz#c47df2ec7c1d27643900af77c474bd224b4587dc"
+ integrity sha512-ygEpFpmRjbAKanWaeto/eUItyuK18667mdDzpDg3CTzc15WYzjZKnwJNFUuPFvFA4hiod1tnhXT1eiXmc1wWNg==
-"@formatjs/ecma402-abstract@3.1.1":
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/@formatjs/ecma402-abstract/-/ecma402-abstract-3.1.1.tgz#329fa5eed8024ee389e9c82be8c798315631b11d"
- integrity sha512-jhZbTwda+2tcNrs4kKvxrPLPjx8QsBCLCUgrrJ/S+G9YrGHWLhAyFMMBHJBnBoOwuLHd7L14FgYudviKaxkO2Q==
+"@formatjs/cli-native-linux-x64@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli-native-linux-x64/-/cli-native-linux-x64-1.1.0.tgz#1a3f01ea47f971a0dd0d7f49b98df237375862fa"
+ integrity sha512-AxORf5LR14HvXU4ov9gnhLrNIS2DYKqKMkRkprUhuh+ljba1riF05msK8KzslEPYQoeYKc5A0OZp57poh4xz/g==
+
+"@formatjs/cli@^6.15.0":
+ version "6.15.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.15.0.tgz#060fc613f3121f7a90b46ca41e9f23ac9e501155"
+ integrity sha512-U8kd1jf7JEEZRhEranEiCv+QWdD+Spz+GUQRuaLyACCDp1q1wWIxdNAR3UETwD3Q37CAajHeMYSVfVBzfGj79g==
+ optionalDependencies:
+ "@formatjs/cli-native-darwin-arm64" "1.1.0"
+ "@formatjs/cli-native-linux-x64" "1.1.0"
+
+"@formatjs/fast-memoize@3.1.5":
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-3.1.5.tgz#bdfe0b884cdecc25100534086f36a0b30bd15b3b"
+ integrity sha512-KLi3fan6WnCHmigd9pmEEN8Hid0v4wiFBW576M/d07KMWYecf1CvyMI3n34vCmHT4AoVqG2n702kiHbXjzZX2A==
+
+"@formatjs/icu-messageformat-parser@3.5.8":
+ version "3.5.8"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-3.5.8.tgz#73719113084e045ac9ce42c0bcec19016e3a8214"
+ integrity sha512-uZLvzLFN7iV2l8cbDdROwgKGtdELeLI4bpnsuz1DnyscHDxn8TdDE0anHzcfjtWK66XYCllGLV3Mi3CYcEPg/g==
dependencies:
- "@formatjs/fast-memoize" "3.1.0"
- "@formatjs/intl-localematcher" "0.8.1"
- decimal.js "^10.6.0"
- tslib "^2.8.1"
+ "@formatjs/icu-skeleton-parser" "2.1.8"
-"@formatjs/fast-memoize@3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-3.1.0.tgz#f8643d44803df8f579506d40804f4faeba6f5da2"
- integrity sha512-b5mvSWCI+XVKiz5WhnBCY3RJ4ZwfjAidU0yVlKa3d3MSgKmH1hC3tBGEAtYyN5mqL7N0G5x0BOUYyO8CEupWgg==
+"@formatjs/icu-skeleton-parser@2.1.8":
+ version "2.1.8"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-2.1.8.tgz#a84262d173d5141d411fc41d24437b68800561ef"
+ integrity sha512-iX5i0O15gPf69l1WqmLFYwn7wq53lauvytvWFnHamIfX/5Ta56gpFj6fdeHRcKTV58IhrKv8QOvWfTYZYm7f+g==
+
+"@formatjs/intl@4.1.10":
+ version "4.1.10"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-4.1.10.tgz#960a75306264dd017f189c81919fd62bfc587368"
+ integrity sha512-Zv9FqRVdEFsHLsXGkcthyuXv4hlTLvbvTr4Fi16w+VCd7MSz2RtI18mXd4B44N7nuvF5be2+JGauU3QoJ2wELw==
dependencies:
- tslib "^2.8.1"
+ "@formatjs/fast-memoize" "3.1.5"
+ "@formatjs/icu-messageformat-parser" "3.5.8"
+ intl-messageformat "11.2.5"
-"@formatjs/icu-messageformat-parser@3.5.1":
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-3.5.1.tgz#a08faadbbb333d9e4fa7276c92a2b66a37788aa1"
- integrity sha512-sSDmSvmmoVQ92XqWb499KrIhv/vLisJU8ITFrx7T7NZHUmMY7EL9xgRowAosaljhqnj/5iufG24QrdzB6X3ItA==
- dependencies:
- "@formatjs/ecma402-abstract" "3.1.1"
- "@formatjs/icu-skeleton-parser" "2.1.1"
- tslib "^2.8.1"
-
-"@formatjs/icu-skeleton-parser@2.1.1":
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-2.1.1.tgz#a05b45733bd0f277c50f31b32e4a73375569d3c8"
- integrity sha512-PSFABlcNefjI6yyk8f7nyX1DC7NHmq6WaCHZLySEXBrXuLOB2f935YsnzuPjlz+ibhb9yWTdPeVX1OVcj24w2Q==
- dependencies:
- "@formatjs/ecma402-abstract" "3.1.1"
- tslib "^2.8.1"
-
-"@formatjs/intl-localematcher@0.8.1":
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/@formatjs/intl-localematcher/-/intl-localematcher-0.8.1.tgz#554fe5f8c746ba52d430674de9a242fae64f67ff"
- integrity sha512-xwEuwQFdtSq1UKtQnyTZWC+eHdv7Uygoa+H2k/9uzBVQjDyp9r20LNDNKedWXll7FssT3GRHvqsdJGYSUWqYFA==
- dependencies:
- "@formatjs/fast-memoize" "3.1.0"
- tslib "^2.8.1"
-
-"@formatjs/intl@4.1.2":
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-4.1.2.tgz#4a0d487e6290067462f93d034ef36a8aaf6f671b"
- integrity sha512-V60fNY/X/7zqmRffr7qPwscGmVGYDmlKF069mSQ2a/7fE22q602NtIfOQY8vzRA63Gr/O/U6vjRVBHMabrnA9A==
- dependencies:
- "@formatjs/ecma402-abstract" "3.1.1"
- "@formatjs/fast-memoize" "3.1.0"
- "@formatjs/icu-messageformat-parser" "3.5.1"
- intl-messageformat "11.1.2"
- tslib "^2.8.1"
-
-"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5":
+"@jridgewell/gen-mapping@^0.3.12":
version "0.3.13"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f"
integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==
@@ -528,14 +328,6 @@
"@jridgewell/sourcemap-codec" "^1.5.0"
"@jridgewell/trace-mapping" "^0.3.24"
-"@jridgewell/remapping@^2.3.5":
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1"
- integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==
- dependencies:
- "@jridgewell/gen-mapping" "^0.3.5"
- "@jridgewell/trace-mapping" "^0.3.24"
-
"@jridgewell/resolve-uri@^3.1.0":
version "3.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
@@ -554,6 +346,25 @@
"@jridgewell/resolve-uri" "^3.1.0"
"@jridgewell/sourcemap-codec" "^1.4.14"
+"@js-temporal/polyfill@^0.5.1":
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/@js-temporal/polyfill/-/polyfill-0.5.1.tgz#c9726fdb7fbdbc6419292ba94294b10a08852c32"
+ integrity sha512-hloP58zRVCRSpgDxmqCWJNlizAlUgJFqG2ypq79DCvyv9tHjRYMDOcPFjzfl/A1/YxDvRCZz8wvZvmapQnKwFQ==
+ dependencies:
+ jsbi "^4.3.0"
+
+"@napi-rs/wasm-runtime@^1.1.4":
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz#a46bbfedc29751b7170c5d23bc1d8ee8c7e3c1e1"
+ integrity sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==
+ dependencies:
+ "@tybys/wasm-util" "^0.10.1"
+
+"@oxc-project/types@=0.129.0":
+ version "0.129.0"
+ resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.129.0.tgz#8e6362388ce6092feafd14f3a73ae6407b1285d9"
+ integrity sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==
+
"@parcel/watcher-android-arm64@2.5.6":
version "2.5.6"
resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz#5f32e0dba356f4ac9a11068d2a5c134ca3ba6564"
@@ -684,137 +495,96 @@
uncontrollable "^8.0.4"
warning "^4.0.3"
-"@rolldown/pluginutils@1.0.0-rc.3":
- version "1.0.0-rc.3"
- resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.3.tgz#8a88cc92a0f741befc7bc109cb1a4c6b9408e1c5"
- integrity sha512-eybk3TjzzzV97Dlj5c+XrBFW57eTNhzod66y9HrBlzJ6NsCrWCp/2kaPS3K9wJmurBC0Tdw4yPjXKZqlznim3Q==
+"@rolldown/binding-android-arm64@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0.tgz#aefa7afdcabc1269b1933d50cad31013cb697143"
+ integrity sha512-TWMZnRLMe63C2Lhyicviu7ZHaU4kxa6PS3rofvc9GmcvptzNN11BcfQ4Sl7MwTOsisQoa2keB/EBdNCAnUo8vA==
-"@rollup/rollup-android-arm-eabi@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz#a6742c74c7d9d6d604ef8a48f99326b4ecda3d82"
- integrity sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==
+"@rolldown/binding-darwin-arm64@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0.tgz#83e708d97f9f8f3791e79ef8c24d5fcc5e8f29df"
+ integrity sha512-6XcD+8k0gPVItNagEw78/qqcBDwKcwDYS8V2hRmVsfUSIrd8cWe/CBvRDI5toqFyPfj+FJr6t8U6Xj2P2prEew==
-"@rollup/rollup-android-arm64@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz#97247be098de4df0c11971089fd2edf80a5da8cf"
- integrity sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==
+"@rolldown/binding-darwin-x64@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0.tgz#4649bb4db634850f6de2b2f1ec37fc39a18adcf8"
+ integrity sha512-iN/tWVXRQDWvmZlKdceP1Dwug9GDpEymhb9p4xnEe6zvCg5lFmzVljl+1qR1NVx3yfGpr2Na+CuLmv5IU8uzfQ==
-"@rollup/rollup-darwin-arm64@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz#674852cf14cf11b8056e0b1a2f4e872b523576cf"
- integrity sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==
+"@rolldown/binding-freebsd-x64@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0.tgz#2b0e50fdc926fa9680dca9d6acc4c3729b7df899"
+ integrity sha512-jjQMDvvwSOuhOwMszD/klSOjyWMM3zI64hWTj9KT5x4MxRbZAf+7vLQ6qouRhtsLVFHr3f0ILaJAfgENPiQdAQ==
-"@rollup/rollup-darwin-x64@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz#36dfd7ed0aaf4d9d89d9ef983af72632455b0246"
- integrity sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==
+"@rolldown/binding-linux-arm-gnueabihf@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0.tgz#8fd160371f4c160a2fa52de8f9ede51fbd43fc5b"
+ integrity sha512-d//Dtg2x6/m3mbV64yUGNnDGNZaDGRpDLLNGerHQUVObuNaIQaaDp25yUiqGXtHEXX+NP2d0wAlmKgpYgIAJ2A==
-"@rollup/rollup-freebsd-arm64@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz#2f87c2074b4220260fdb52a9996246edfc633c22"
- integrity sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==
+"@rolldown/binding-linux-arm64-gnu@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0.tgz#9915488c96cb0fc49a70bd27c030def3cbbc8cbb"
+ integrity sha512-n7Ofp0mx+aB2cC+Sdy5YtMnXtY9lchnHbY+3Yt0uq9JsWQExf4f5Whu0tK0R8Jdc9S6RchTHjIFY7uc92puOVQ==
-"@rollup/rollup-freebsd-x64@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz#9b5a26522a38a95dc06616d1939d4d9a76937803"
- integrity sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==
+"@rolldown/binding-linux-arm64-musl@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0.tgz#74bb160f2747404eed2f917bea01b0548c783848"
+ integrity sha512-EIVjy2cgd7uuMMo94FVkBp7F6DhcZAUwNURkSG3RwUmvAXR6s0ISxM81U+IydcZByPG0pZIHsf1b6kTxoFDgJA==
-"@rollup/rollup-linux-arm-gnueabihf@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz#86aa4859385a8734235b5e40a48e52d770758c3a"
- integrity sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==
+"@rolldown/binding-linux-ppc64-gnu@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0.tgz#fdc876160b6738ff34a7d719c4ea42edb38a70bc"
+ integrity sha512-JEwwOPcwTLAcpDQlqSmjEmfs63xJnSiUNIGvLcDLUHCWK4XowpS/7c7tUsUH6uT/ct6bMUTdXKfI8967FYj6mg==
-"@rollup/rollup-linux-arm-musleabihf@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz#cbe70e56e6ece8dac83eb773b624fc9e5a460976"
- integrity sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==
+"@rolldown/binding-linux-s390x-gnu@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0.tgz#39668ce16e8c2ac16308fdb7116ebd5b44acab65"
+ integrity sha512-0wjCFhLrihtAubnT9iA0N++0pSV0z5Hg7tNGdNJ4RFaINceHadoF+kiFGyY1qSSNVIAZtLotG8Ju1bgDPkjnFA==
-"@rollup/rollup-linux-arm64-gnu@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz#d14992a2e653bc3263d284bc6579b7a2890e1c45"
- integrity sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==
+"@rolldown/binding-linux-x64-gnu@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0.tgz#02a7e4a0fa3af90bf4e937ecd1f4c0dc07ab2397"
+ integrity sha512-Dfn7iak9BcMMePxcoJfpSbWqnEyrp/dRF63/8qW/eHBdOZov6x5aShLLEYGYdIeSJ6vMLK/XCVB+lGIxm41bQA==
-"@rollup/rollup-linux-arm64-musl@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz#2fdd1ddc434ea90aeaa0851d2044789b4d07f6da"
- integrity sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==
+"@rolldown/binding-linux-x64-musl@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0.tgz#610a08a3055d21f287c550e16a5541501883f2b1"
+ integrity sha512-5/utzzDmD/pD/bmuaUcbTf/sZYy0aztwIVlfpoW1fTjCZ0BaPOMVWGZL1zvgxyi7ZIVYWlxKONHmSbHuiOh8Jw==
-"@rollup/rollup-linux-loong64-gnu@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz#8a181e6f89f969f21666a743cd411416c80099e7"
- integrity sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==
+"@rolldown/binding-openharmony-arm64@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0.tgz#62e5da4d623b446a57c9f472b598fedaf5289a3d"
+ integrity sha512-ouJs8VcUomfLfpbUECqFMRqdV4x6aeAK3MA4m6vTrJJjKyWTV5KnxZx7Jd9G+GlDaQQxubcba00x16OyJ1meig==
-"@rollup/rollup-linux-loong64-musl@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz#904125af2babc395f8061daa27b5af1f4e3f2f78"
- integrity sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==
+"@rolldown/binding-wasm32-wasi@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0.tgz#57191a2986e7f43a920fc618da92f29b0b8123c9"
+ integrity sha512-E+oHKGiDA+lsKMmFtffDDw91EryDT7uJocrIuCHqhm6bCTM6xFK+3gaCkYOHfPwQr0cCNarSM2xaELoQDz9jJg==
+ dependencies:
+ "@emnapi/core" "1.10.0"
+ "@emnapi/runtime" "1.10.0"
+ "@napi-rs/wasm-runtime" "^1.1.4"
-"@rollup/rollup-linux-ppc64-gnu@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz#a57970ac6864c9a3447411a658224bdcf948be22"
- integrity sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==
+"@rolldown/binding-win32-arm64-msvc@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0.tgz#77faf1e28521411bd0be6f4e55f3c4c5f17cd619"
+ integrity sha512-yYK02n8Rngo+gbm1y6G0+7jk1sJ/2Wt7K0me0Y7k/ErBpyf+LJ2gFpqWVTcRV1rUepBlQRmpgWkTQCiiwrK0Ow==
-"@rollup/rollup-linux-ppc64-musl@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz#bb84de5b26870567a4267666e08891e80bb56a63"
- integrity sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==
+"@rolldown/binding-win32-x64-msvc@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0.tgz#980a8f9983b0bd3d35ee867ade85cb020eca27ba"
+ integrity sha512-14bpChMahXRRXiTwahSl+zzHPW6qQTXtkMuJBFlbo+pqSAews2d4BdCSHfrJ/MBsCZtpmTafsY+1QhBzitcmdg==
-"@rollup/rollup-linux-riscv64-gnu@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz#72d00d2c7fb375ce3564e759db33f17a35bffab9"
- integrity sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==
+"@rolldown/pluginutils@1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0.tgz#d660b953fd500d552fc17213f279e29037f08c2d"
+ integrity sha512-aKs/3GSWyV0mrhNmt/96/Z3yczC3yvrzYATCiCXQebBsGyYzjNdUphRVLeJQ67ySKVXRfMxt2lm12pmXvbPFQQ==
-"@rollup/rollup-linux-riscv64-musl@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz#4c166ef58e718f9245bd31873384ba15a5c1a883"
- integrity sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==
+"@rolldown/pluginutils@1.0.0-rc.7":
+ version "1.0.0-rc.7"
+ resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz#0414869467f0e471a6515d4f506c85fde867e022"
+ integrity sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==
-"@rollup/rollup-linux-s390x-gnu@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz#bb5025cde9a61db478c2ca7215808ad3bce73a09"
- integrity sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==
-
-"@rollup/rollup-linux-x64-gnu@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz#9b66b1f9cd95c6624c788f021c756269ffed1552"
- integrity sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==
-
-"@rollup/rollup-linux-x64-musl@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz#b007ca255dc7166017d57d7d2451963f0bd23fd9"
- integrity sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==
-
-"@rollup/rollup-openbsd-x64@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz#e8b357b2d1aa2c8d76a98f5f0d889eabe93f4ef9"
- integrity sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==
-
-"@rollup/rollup-openharmony-arm64@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz#96c2e3f4aacd3d921981329831ff8dde492204dc"
- integrity sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==
-
-"@rollup/rollup-win32-arm64-msvc@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz#2d865149d706d938df8b4b8f117e69a77646d581"
- integrity sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==
-
-"@rollup/rollup-win32-ia32-msvc@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz#abe1593be0fa92325e9971c8da429c5e05b92c36"
- integrity sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==
-
-"@rollup/rollup-win32-x64-gnu@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz#c4af3e9518c9a5cd4b1c163dc81d0ad4d82e7eab"
- integrity sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==
-
-"@rollup/rollup-win32-x64-msvc@4.59.0":
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c"
- integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==
-
-"@standard-schema/spec@^1.0.0":
+"@standard-schema/spec@^1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8"
integrity sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==
@@ -834,41 +604,41 @@
"@popperjs/core" "^2.11.8"
bootstrap "5.3.7"
-"@tabler/icons-react@^3.38.0":
- version "3.38.0"
- resolved "https://registry.yarnpkg.com/@tabler/icons-react/-/icons-react-3.38.0.tgz#c568dabae83fd3bf68f09e7db55c72c6df0b77b4"
- integrity sha512-kR5wv+m4+GgmnSszg3rQd6SrTFAQ/XnQC/yTwIfuRJSfqB12KoIC7fPbIijFgOHTFlBN5DARnN0IVrR7KYG6/A==
+"@tabler/icons-react@^3.44.0":
+ version "3.44.0"
+ resolved "https://registry.yarnpkg.com/@tabler/icons-react/-/icons-react-3.44.0.tgz#26e84ee0ef756bfae5dcbd8265312ba3cd5a91d9"
+ integrity sha512-8+rvzBbVm/1Z3sG3x7GUNAaxIKxwgz8xaMhRs23nrCnMTKRFAhEC+82zAIFeAA0seXdrAGX5HFCkaLpGK2rVHg==
dependencies:
- "@tabler/icons" "3.38.0"
+ "@tabler/icons" "3.44.0"
-"@tabler/icons@3.38.0":
- version "3.38.0"
- resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-3.38.0.tgz#cb7bf6802a6d64b65cddda2c81fc21300d13dfe1"
- integrity sha512-FdETQSpQ3lN7BEjEUzjKhsfTDCamrvMDops4HEMphTm3DmkIFpThoODn8XXZ8Q9MhjshIvphIYVHHB7zpq167w==
+"@tabler/icons@3.44.0":
+ version "3.44.0"
+ resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-3.44.0.tgz#286b203aac98591e27360de03974762568bbb272"
+ integrity sha512-Wn0AOZG9sg0L+bjfMqq4eNhC6pQjIrk94LvvWYNYkY8KH8wC3YILRzQlrnVJc4FUeMxH/AK97QsYCX35H3LndA==
-"@tanstack/query-core@5.90.20":
- version "5.90.20"
- resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.90.20.tgz#e12128e39210715d4ce4fb299c33498ac297771e"
- integrity sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg==
+"@tanstack/query-core@5.100.10":
+ version "5.100.10"
+ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.100.10.tgz#aeb34d301fd4ff9762e67dfa018adc33b7a18be4"
+ integrity sha512-8UR0yJR+GiQ40m3lPhUr0xbfAupe6GSQiksSBSa9SM2NjezFyxXCIA69/lz8cSoNKZLrw1/PktIyQBJcVeMi3w==
-"@tanstack/query-devtools@5.93.0":
- version "5.93.0"
- resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.93.0.tgz#517f61d4e2cfb9af671e34ad5e7e871052bca814"
- integrity sha512-+kpsx1NQnOFTZsw6HAFCW3HkKg0+2cepGtAWXjiiSOJJ1CtQpt72EE2nyZb+AjAbLRPoeRmPJ8MtQd8r8gsPdg==
+"@tanstack/query-devtools@5.100.10":
+ version "5.100.10"
+ resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.100.10.tgz#1972789fdc7c4cb9ec2062d51f25bc4dc655a27b"
+ integrity sha512-3DmJf25hDPus5IpVvp6ujXv6bKV2zPzI9vpbAmpJigsL/H6DPvPjmf7/Q9yVKEke//8fgeQ45abjgnLuyYxAiw==
-"@tanstack/react-query-devtools@^5.91.3":
- version "5.91.3"
- resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.91.3.tgz#0f65340fa3f7e7d5575de928ad70cfa6b5f74ff1"
- integrity sha512-nlahjMtd/J1h7IzOOfqeyDh5LNfG0eULwlltPEonYy0QL+nqrBB+nyzJfULV+moL7sZyxc2sHdNJki+vLA9BSA==
+"@tanstack/react-query-devtools@^5.100.10":
+ version "5.100.10"
+ resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.100.10.tgz#cca3479cc2c8b434637c31f8119fe6ff93e5832c"
+ integrity sha512-zes0+o9ef5rAZXJ9f/SeaLs2nufJaeVkZkl/Or9NGrWVF41kL9Od9ED9nCwtQlgiF2VGtrzhEw5AU/igAO+aAg==
dependencies:
- "@tanstack/query-devtools" "5.93.0"
+ "@tanstack/query-devtools" "5.100.10"
-"@tanstack/react-query@^5.90.21":
- version "5.90.21"
- resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.90.21.tgz#e0eb40831a76510be438109435b8807ef63ab1b9"
- integrity sha512-0Lu6y5t+tvlTJMTO7oh5NSpJfpg/5D41LlThfepTixPYkJ0sE2Jj0m0f6yYqujBwIXlId87e234+MxG3D3g7kg==
+"@tanstack/react-query@^5.100.10":
+ version "5.100.10"
+ resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.100.10.tgz#3bf1844efd76f5f68f9f39da2917fc4c6023e726"
+ integrity sha512-FLaZf2RCrA/Zgp4aiu5tG3TyasTRO7aZ99skxQpr3Hg/zXOhu6yq5FZCYQ/tRaJtM9ylnoK8tFK7PolXQadv6Q==
dependencies:
- "@tanstack/query-core" "5.90.20"
+ "@tanstack/query-core" "5.100.10"
"@tanstack/react-table@^8.21.3":
version "8.21.3"
@@ -915,44 +685,18 @@
dependencies:
"@babel/runtime" "^7.12.5"
+"@tybys/wasm-util@^0.10.1":
+ version "0.10.2"
+ resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.2.tgz#12b3a1b33db1f9cad4ddff1f604ab7dd00bf464e"
+ integrity sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==
+ dependencies:
+ tslib "^2.4.0"
+
"@types/aria-query@^5.0.1":
version "5.0.4"
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708"
integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==
-"@types/babel__core@^7.20.5":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
- integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
- dependencies:
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
- "@types/babel__generator" "*"
- "@types/babel__template" "*"
- "@types/babel__traverse" "*"
-
-"@types/babel__generator@*":
- version "7.27.0"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.27.0.tgz#b5819294c51179957afaec341442f9341e4108a9"
- integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==
- dependencies:
- "@babel/types" "^7.0.0"
-
-"@types/babel__template@*":
- version "7.4.4"
- resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
- integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
- dependencies:
- "@babel/parser" "^7.1.0"
- "@babel/types" "^7.0.0"
-
-"@types/babel__traverse@*":
- version "7.28.0"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.28.0.tgz#07d713d6cce0d265c9849db0cbe62d3f61f36f74"
- integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==
- dependencies:
- "@babel/types" "^7.28.2"
-
"@types/chai@^5.2.2":
version "5.2.3"
resolved "https://registry.yarnpkg.com/@types/chai/-/chai-5.2.3.tgz#8e9cd9e1c3581fa6b341a5aed5588eb285be0b4a"
@@ -985,7 +729,7 @@
dependencies:
"@types/estree" "*"
-"@types/estree@*", "@types/estree@1.0.8", "@types/estree@^1.0.0":
+"@types/estree@*", "@types/estree@^1.0.0":
version "1.0.8"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e"
integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==
@@ -1035,6 +779,13 @@
dependencies:
undici-types "~7.18.0"
+"@types/node@^25.7.0":
+ version "25.7.0"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-25.7.0.tgz#7498f82e90dbdce7c34b75aaaa256c498a0ebe6c"
+ integrity sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==
+ dependencies:
+ undici-types "~7.21.0"
+
"@types/parse-json@^4.0.0":
version "4.0.2"
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239"
@@ -1115,75 +866,72 @@
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8"
integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
-"@vitejs/plugin-react@^5.1.4":
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-5.1.4.tgz#5b477e060bf612a7394c4febacc5de33a219b0e4"
- integrity sha512-VIcFLdRi/VYRU8OL/puL7QXMYafHmqOnwTZY50U1JPlCNj30PxCMx65c494b1K9be9hX83KVt0+gTEwTWLqToA==
+"@vitejs/plugin-react@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz#d9113b71a0a592714913eafd9e5e63bcafd0ff15"
+ integrity sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==
dependencies:
- "@babel/core" "^7.29.0"
- "@babel/plugin-transform-react-jsx-self" "^7.27.1"
- "@babel/plugin-transform-react-jsx-source" "^7.27.1"
- "@rolldown/pluginutils" "1.0.0-rc.3"
- "@types/babel__core" "^7.20.5"
- react-refresh "^0.18.0"
+ "@rolldown/pluginutils" "1.0.0-rc.7"
-"@vitest/expect@4.0.18":
- version "4.0.18"
- resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.0.18.tgz#361510d99fbf20eb814222e4afcb8539d79dc94d"
- integrity sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==
+"@vitest/expect@4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.1.6.tgz#b50c9390aae6957ab4d9e20722cebb17d5bf169a"
+ integrity sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==
dependencies:
- "@standard-schema/spec" "^1.0.0"
+ "@standard-schema/spec" "^1.1.0"
"@types/chai" "^5.2.2"
- "@vitest/spy" "4.0.18"
- "@vitest/utils" "4.0.18"
- chai "^6.2.1"
- tinyrainbow "^3.0.3"
+ "@vitest/spy" "4.1.6"
+ "@vitest/utils" "4.1.6"
+ chai "^6.2.2"
+ tinyrainbow "^3.1.0"
-"@vitest/mocker@4.0.18":
- version "4.0.18"
- resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.0.18.tgz#b9735da114ef65ea95652c5bdf13159c6fab4865"
- integrity sha512-HhVd0MDnzzsgevnOWCBj5Otnzobjy5wLBe4EdeeFGv8luMsGcYqDuFRMcttKWZA5vVO8RFjexVovXvAM4JoJDQ==
+"@vitest/mocker@4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.1.6.tgz#6b624045745236b02aca879a02aef68b72d9d4cd"
+ integrity sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==
dependencies:
- "@vitest/spy" "4.0.18"
+ "@vitest/spy" "4.1.6"
estree-walker "^3.0.3"
magic-string "^0.30.21"
-"@vitest/pretty-format@4.0.18":
- version "4.0.18"
- resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.0.18.tgz#fbccd4d910774072ec15463553edb8ca5ce53218"
- integrity sha512-P24GK3GulZWC5tz87ux0m8OADrQIUVDPIjjj65vBXYG17ZeU3qD7r+MNZ1RNv4l8CGU2vtTRqixrOi9fYk/yKw==
+"@vitest/pretty-format@4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.1.6.tgz#24a1c03a6b68a8775f8ddfec51d3636315edc3f5"
+ integrity sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==
dependencies:
- tinyrainbow "^3.0.3"
+ tinyrainbow "^3.1.0"
-"@vitest/runner@4.0.18":
- version "4.0.18"
- resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.0.18.tgz#c2c0a3ed226ec85e9312f9cc8c43c5b3a893a8b1"
- integrity sha512-rpk9y12PGa22Jg6g5M3UVVnTS7+zycIGk9ZNGN+m6tZHKQb7jrP7/77WfZy13Y/EUDd52NDsLRQhYKtv7XfPQw==
+"@vitest/runner@4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.1.6.tgz#b6d189e68bd9927c4f111ad089ff96e4757591b1"
+ integrity sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==
dependencies:
- "@vitest/utils" "4.0.18"
+ "@vitest/utils" "4.1.6"
pathe "^2.0.3"
-"@vitest/snapshot@4.0.18":
- version "4.0.18"
- resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.0.18.tgz#bcb40fd6d742679c2ac927ba295b66af1c6c34c5"
- integrity sha512-PCiV0rcl7jKQjbgYqjtakly6T1uwv/5BQ9SwBLekVg/EaYeQFPiXcgrC2Y7vDMA8dM1SUEAEV82kgSQIlXNMvA==
+"@vitest/snapshot@4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.1.6.tgz#14fdfc8baf6b4b3e4e35763431dbea3aaa8aa0eb"
+ integrity sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==
dependencies:
- "@vitest/pretty-format" "4.0.18"
+ "@vitest/pretty-format" "4.1.6"
+ "@vitest/utils" "4.1.6"
magic-string "^0.30.21"
pathe "^2.0.3"
-"@vitest/spy@4.0.18":
- version "4.0.18"
- resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.0.18.tgz#ba0f20503fb6d08baf3309d690b3efabdfa88762"
- integrity sha512-cbQt3PTSD7P2OARdVW3qWER5EGq7PHlvE+QfzSC0lbwO+xnt7+XH06ZzFjFRgzUX//JmpxrCu92VdwvEPlWSNw==
+"@vitest/spy@4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.1.6.tgz#0a316893630f47fa545e33026cfc91575070d165"
+ integrity sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==
-"@vitest/utils@4.0.18":
- version "4.0.18"
- resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.0.18.tgz#9636b16d86a4152ec68a8d6859cff702896433d4"
- integrity sha512-msMRKLMVLWygpK3u2Hybgi4MNjcYJvwTb0Ru09+fOyCXIgT5raYP041DRRdiJiI3k/2U6SEbAETB3YtBrUkCFA==
+"@vitest/utils@4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.1.6.tgz#3f4acf1f60e135ec1ce896f10baa4cd6466d0d38"
+ integrity sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==
dependencies:
- "@vitest/pretty-format" "4.0.18"
- tinyrainbow "^3.0.3"
+ "@vitest/pretty-format" "4.1.6"
+ convert-source-map "^2.0.0"
+ tinyrainbow "^3.1.0"
ansi-regex@^5.0.1:
version "5.0.1"
@@ -1231,27 +979,11 @@ base64-js@^1.3.1:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-baseline-browser-mapping@^2.9.0:
- version "2.10.0"
- resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz#5b09935025bf8a80e29130251e337c6a7fc8cbb9"
- integrity sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==
-
bootstrap@5.3.7:
version "5.3.7"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.7.tgz#8640065036124d961d885d80b5945745e1154d90"
integrity sha512-7KgiD8UHjfcPBHEpDNg+zGz8L3LqR3GVwqZiBRFX04a1BCArZOz1r2kjly2HQ0WokqTO0v1nF+QAt8dsW4lKlw==
-browserslist@^4.24.0:
- version "4.28.1"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95"
- integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==
- dependencies:
- baseline-browser-mapping "^2.9.0"
- caniuse-lite "^1.0.30001759"
- electron-to-chromium "^1.5.263"
- node-releases "^2.0.27"
- update-browserslist-db "^1.2.0"
-
buffer@^6.0.3:
version "6.0.3"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
@@ -1265,17 +997,12 @@ callsites@^3.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-caniuse-lite@^1.0.30001759:
- version "1.0.30001770"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001770.tgz#4dc47d3b263a50fbb243448034921e0a88591a84"
- integrity sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==
-
ccount@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5"
integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==
-chai@^6.2.1:
+chai@^6.2.2:
version "6.2.2"
resolved "https://registry.yarnpkg.com/chai/-/chai-6.2.2.tgz#ae41b52c9aca87734505362717f3255facda360e"
integrity sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==
@@ -1348,10 +1075,10 @@ cosmiconfig@^7.0.0:
path-type "^4.0.0"
yaml "^1.10.0"
-country-flag-icons@^1.6.15:
- version "1.6.15"
- resolved "https://registry.yarnpkg.com/country-flag-icons/-/country-flag-icons-1.6.15.tgz#f89014f84534d4f35109280d88930e6c371684a9"
- integrity sha512-92HoA8l6DluEidku8tKBftjuFRj4Rv3zDW1lXxCuNnqAxhUSkvso9gM/Afj4F5BnK+wneHIe3ydI+s+4NA29/Q==
+country-flag-icons@^1.6.17:
+ version "1.6.17"
+ resolved "https://registry.yarnpkg.com/country-flag-icons/-/country-flag-icons-1.6.17.tgz#875cf35eb2a0d7fcb0f07166fed9fc65863e03f8"
+ integrity sha512-Nmik0289ZVZSI3c7mJR/amg6DyY7Z59b0sTFSKayeX72mHfPzCPJygwJs2pYgQULzuAyWeCUgwAJ+Dq8OR+JFw==
css.escape@^1.5.1:
version "1.5.1"
@@ -1368,18 +1095,13 @@ date-fns@^4.1.0:
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.1.0.tgz#64b3d83fff5aa80438f5b1a633c2e83b8a1c2d14"
integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==
-debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1:
+debug@^4.0.0, debug@^4.3.1:
version "4.4.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
dependencies:
ms "^2.1.3"
-decimal.js@^10.6.0:
- version "10.6.0"
- resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a"
- integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==
-
decode-named-character-reference@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz#3e40603760874c2e5867691b599d73a7da25b53f"
@@ -1432,11 +1154,6 @@ dom-helpers@^5.0.1, dom-helpers@^5.2.0, dom-helpers@^5.2.1:
"@babel/runtime" "^7.8.7"
csstype "^3.0.2"
-electron-to-chromium@^1.5.263:
- version "1.5.286"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz#142be1ab5e1cd5044954db0e5898f60a4960384e"
- integrity sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==
-
entities@^6.0.0:
version "6.0.1"
resolved "https://registry.yarnpkg.com/entities/-/entities-6.0.1.tgz#c28c34a43379ca7f61d074130b2f5f7020a30694"
@@ -1454,47 +1171,10 @@ error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-module-lexer@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.7.0.tgz#9159601561880a85f2734560a9099b2c31e5372a"
- integrity sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==
-
-esbuild@^0.27.0:
- version "0.27.3"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.3.tgz#5859ca8e70a3af956b26895ce4954d7e73bd27a8"
- integrity sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==
- optionalDependencies:
- "@esbuild/aix-ppc64" "0.27.3"
- "@esbuild/android-arm" "0.27.3"
- "@esbuild/android-arm64" "0.27.3"
- "@esbuild/android-x64" "0.27.3"
- "@esbuild/darwin-arm64" "0.27.3"
- "@esbuild/darwin-x64" "0.27.3"
- "@esbuild/freebsd-arm64" "0.27.3"
- "@esbuild/freebsd-x64" "0.27.3"
- "@esbuild/linux-arm" "0.27.3"
- "@esbuild/linux-arm64" "0.27.3"
- "@esbuild/linux-ia32" "0.27.3"
- "@esbuild/linux-loong64" "0.27.3"
- "@esbuild/linux-mips64el" "0.27.3"
- "@esbuild/linux-ppc64" "0.27.3"
- "@esbuild/linux-riscv64" "0.27.3"
- "@esbuild/linux-s390x" "0.27.3"
- "@esbuild/linux-x64" "0.27.3"
- "@esbuild/netbsd-arm64" "0.27.3"
- "@esbuild/netbsd-x64" "0.27.3"
- "@esbuild/openbsd-arm64" "0.27.3"
- "@esbuild/openbsd-x64" "0.27.3"
- "@esbuild/openharmony-arm64" "0.27.3"
- "@esbuild/sunos-x64" "0.27.3"
- "@esbuild/win32-arm64" "0.27.3"
- "@esbuild/win32-ia32" "0.27.3"
- "@esbuild/win32-x64" "0.27.3"
-
-escalade@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
- integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
+es-module-lexer@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-2.1.0.tgz#1dfcbb5ea3bbfb63f28e1fc3676c3676d1c9624c"
+ integrity sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==
escape-string-regexp@^4.0.0:
version "4.0.0"
@@ -1513,7 +1193,7 @@ estree-walker@^3.0.3:
dependencies:
"@types/estree" "^1.0.0"
-expect-type@^1.2.2:
+expect-type@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/expect-type/-/expect-type-1.3.0.tgz#0d58ed361877a31bbc4dd6cf71bbfef7faf6bd68"
integrity sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==
@@ -1562,7 +1242,7 @@ formik@^2.4.9:
tiny-warning "^1.0.2"
tslib "^2.0.0"
-fsevents@~2.3.2, fsevents@~2.3.3:
+fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
@@ -1580,20 +1260,15 @@ generate-password-browser@^1.1.0:
buffer "^6.0.3"
randombytes "^2.0.5"
-gensync@^1.0.0-beta.2:
- version "1.0.0-beta.2"
- resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
- integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+graceful-fs@^4.2.4:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
-globrex@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/globrex/-/globrex-0.1.2.tgz#dd5d9ec826232730cd6793a5e33a9302985e6098"
- integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
-
-happy-dom@^20.8.3:
- version "20.8.3"
- resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.8.3.tgz#aa59a13c0e43c48819190d913ab5e36800e87431"
- integrity sha512-lMHQRRwIPyJ70HV0kkFT7jH/gXzSI7yDkQFe07E2flwmNDFoWUTRMKpW2sglsnpeA7b6S2TJPp98EbQxai8eaQ==
+happy-dom@^20.9.0:
+ version "20.9.0"
+ resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.9.0.tgz#22fa4f2b8a34d2fbd0fb43eb48227e4bf8e206e8"
+ integrity sha512-GZZ9mKe8r646NUAf/zemnGbjYh4Bt8/MqASJY+pSm5ZDtc3YQox+4gsLI7yi1hba6o+eCsGxpHn5+iEVn31/FQ==
dependencies:
"@types/node" ">=20.0.0"
"@types/whatwg-mimetype" "^3.0.2"
@@ -1723,7 +1398,7 @@ hastscript@^9.0.0:
property-information "^7.0.0"
space-separated-tokens "^2.0.0"
-hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1, hoist-non-react-statics@^3.3.2:
+hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.1:
version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
@@ -1750,10 +1425,10 @@ ieee754@^1.2.1:
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-immutable@^5.0.2:
- version "5.1.4"
- resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.4.tgz#e3f8c1fe7b567d56cf26698f31918c241dae8c1f"
- integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==
+immutable@^5.1.5:
+ version "5.1.5"
+ resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.5.tgz#93ee4db5c2a9ab42a4a783069f3c5d8847d40165"
+ integrity sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==
import-fresh@^3.2.1:
version "3.3.1"
@@ -1773,15 +1448,13 @@ inline-style-parser@0.2.7:
resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.7.tgz#b1fc68bfc0313b8685745e4464e37f9376b9c909"
integrity sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==
-intl-messageformat@11.1.2:
- version "11.1.2"
- resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-11.1.2.tgz#c72879165d15633f38b092479822c5d831c21ac5"
- integrity sha512-ucSrQmZGAxfiBHfBRXW/k7UC8MaGFlEj4Ry1tKiDcmgwQm1y3EDl40u+4VNHYomxJQMJi9NEI3riDRlth96jKg==
+intl-messageformat@11.2.5:
+ version "11.2.5"
+ resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-11.2.5.tgz#08934613ab77b14730cf51c9454b0792853982bd"
+ integrity sha512-zaROHiUsnlSFXVypU54AsQuAm3DLmmSH8KfDhiUuG1XZ9NTQ4o3xlxIJYVNmeWAklyp3CWg0lhexNUnee8PsYQ==
dependencies:
- "@formatjs/ecma402-abstract" "3.1.1"
- "@formatjs/fast-memoize" "3.1.0"
- "@formatjs/icu-messageformat-parser" "3.5.1"
- tslib "^2.8.1"
+ "@formatjs/fast-memoize" "3.1.5"
+ "@formatjs/icu-messageformat-parser" "3.5.8"
invariant@^2.2.4:
version "2.2.4"
@@ -1847,6 +1520,11 @@ is-plain-obj@^4.0.0:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+jsbi@^4.3.0:
+ version "4.3.2"
+ resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-4.3.2.tgz#8a4d05d4e09907d73042135b6aa55a6d161ee955"
+ integrity sha512-9fqMSQbhJykSeii05nxKl4m6Eqn2P6rOlYiS+C5Dr/HPIU/7yZxu5qzbs40tgaFORiw2Amd0mirjxatXYMkIew==
+
jsesc@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d"
@@ -1857,10 +1535,79 @@ json-parse-even-better-errors@^2.3.0:
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
-json5@^2.2.3:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
- integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+lightningcss-android-arm64@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz#f033885116dfefd9c6f54787523e3514b61e1968"
+ integrity sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==
+
+lightningcss-darwin-arm64@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz#50b71871b01c8199584b649e292547faea7af9b5"
+ integrity sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==
+
+lightningcss-darwin-x64@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz#35f3e97332d130b9ca181e11b568ded6aebc6d5e"
+ integrity sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==
+
+lightningcss-freebsd-x64@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz#9777a76472b64ed6ff94342ad64c7bafd794a575"
+ integrity sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==
+
+lightningcss-linux-arm-gnueabihf@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz#13ae652e1ab73b9135d7b7da172f666c410ad53d"
+ integrity sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==
+
+lightningcss-linux-arm64-gnu@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz#417858795a94592f680123a1b1f9da8a0e1ef335"
+ integrity sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==
+
+lightningcss-linux-arm64-musl@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz#6be36692e810b718040802fd809623cffe732133"
+ integrity sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==
+
+lightningcss-linux-x64-gnu@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz#0b7803af4eb21cfd38dd39fe2abbb53c7dd091f6"
+ integrity sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==
+
+lightningcss-linux-x64-musl@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz#88dc8ba865ddddb1ac5ef04b0f161804418c163b"
+ integrity sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==
+
+lightningcss-win32-arm64-msvc@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz#4f30ba3fa5e925f5b79f945e8cc0d176c3b1ab38"
+ integrity sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==
+
+lightningcss-win32-x64-msvc@1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz#141aa5605645064928902bb4af045fa7d9f4220a"
+ integrity sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==
+
+lightningcss@^1.32.0:
+ version "1.32.0"
+ resolved "https://registry.yarnpkg.com/lightningcss/-/lightningcss-1.32.0.tgz#b85aae96486dcb1bf49a7c8571221273f4f1e4a9"
+ integrity sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==
+ dependencies:
+ detect-libc "^2.0.3"
+ optionalDependencies:
+ lightningcss-android-arm64 "1.32.0"
+ lightningcss-darwin-arm64 "1.32.0"
+ lightningcss-darwin-x64 "1.32.0"
+ lightningcss-freebsd-x64 "1.32.0"
+ lightningcss-linux-arm-gnueabihf "1.32.0"
+ lightningcss-linux-arm64-gnu "1.32.0"
+ lightningcss-linux-arm64-musl "1.32.0"
+ lightningcss-linux-x64-gnu "1.32.0"
+ lightningcss-linux-x64-musl "1.32.0"
+ lightningcss-win32-arm64-msvc "1.32.0"
+ lightningcss-win32-x64-msvc "1.32.0"
lines-and-columns@^1.1.6:
version "1.2.4"
@@ -1894,13 +1641,6 @@ loose-envify@^1.0.0, loose-envify@^1.4.0:
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
-lru-cache@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
- integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
- dependencies:
- yallist "^3.0.2"
-
lz-string@^1.5.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941"
@@ -2237,11 +1977,6 @@ node-addon-api@^7.0.0:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558"
integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==
-node-releases@^2.0.27:
- version "2.0.27"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e"
- integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==
-
npm-run-path@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-6.0.0.tgz#25cfdc4eae04976f3349c0b1afc089052c362537"
@@ -2337,24 +2072,20 @@ picomatch@^4.0.3:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042"
integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
+picomatch@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589"
+ integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==
+
postcss-simple-vars@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/postcss-simple-vars/-/postcss-simple-vars-7.0.1.tgz#836b3097a54dcd13dbd3c36a5dbdd512fad2954c"
integrity sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==
-postcss@^8.5.6:
- version "8.5.6"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c"
- integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
- dependencies:
- nanoid "^3.3.11"
- picocolors "^1.1.1"
- source-map-js "^1.2.1"
-
-postcss@^8.5.8:
- version "8.5.8"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.8.tgz#6230ecc8fb02e7a0f6982e53990937857e13f399"
- integrity sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==
+postcss@^8.5.14:
+ version "8.5.14"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.14.tgz#a66c2d7808fadf69ebb5b84a03f8bafd76c4919c"
+ integrity sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==
dependencies:
nanoid "^3.3.11"
picocolors "^1.1.1"
@@ -2386,6 +2117,15 @@ prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.8.1:
object-assign "^4.1.1"
react-is "^16.13.1"
+proper-lockfile@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/proper-lockfile/-/proper-lockfile-4.1.2.tgz#c8b9de2af6b2f1601067f98e01ac66baa223141f"
+ integrity sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==
+ dependencies:
+ graceful-fs "^4.2.4"
+ retry "^0.12.0"
+ signal-exit "^3.0.2"
+
property-information@^6.0.0:
version "6.5.0"
resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec"
@@ -2438,10 +2178,10 @@ react-bootstrap@^2.10.10:
uncontrollable "^7.2.1"
warning "^4.0.3"
-react-dom@^19.2.4:
- version "19.2.4"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.4.tgz#6fac6bd96f7db477d966c7ec17c1a2b1ad8e6591"
- integrity sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==
+react-dom@^19.2.6:
+ version "19.2.6"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.6.tgz#44a81b0bcca22da814c00847d09d01c8615529b7"
+ integrity sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==
dependencies:
scheduler "^0.27.0"
@@ -2450,18 +2190,14 @@ react-fast-compare@^2.0.1:
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
-react-intl@^8.1.3:
- version "8.1.3"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-8.1.3.tgz#216e0a916c40a535c590995c3103fe9e2525d2e4"
- integrity sha512-eL1/d+uQdnapirynOGAriW0K9uAoyarjRGL3V9LaTRuohNSvPgCfJX06EZl5M52h/Hu7Gz7A1sD7dNHcos1lNg==
+react-intl@^10.1.6:
+ version "10.1.6"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-10.1.6.tgz#febefb819581be56731b9d428d496c48e1d7c367"
+ integrity sha512-cXXRQ+M/uot4OYIerz2q752wfYUKnRYlm++eny9d2u1LBmRo54KZviPb+modE0WcYg8ZB4mfokIOCaFZkZlD0w==
dependencies:
- "@formatjs/ecma402-abstract" "3.1.1"
- "@formatjs/icu-messageformat-parser" "3.5.1"
- "@formatjs/intl" "4.1.2"
- "@types/hoist-non-react-statics" "^3.3.1"
- hoist-non-react-statics "^3.3.2"
- intl-messageformat "11.1.2"
- tslib "^2.8.1"
+ "@formatjs/icu-messageformat-parser" "3.5.8"
+ "@formatjs/intl" "4.1.10"
+ intl-messageformat "11.2.5"
react-is@^16.13.1, react-is@^16.3.2, react-is@^16.7.0:
version "16.13.1"
@@ -2495,22 +2231,17 @@ react-markdown@^10.1.0:
unist-util-visit "^5.0.0"
vfile "^6.0.0"
-react-refresh@^0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.18.0.tgz#2dce97f4fe932a4d8142fa1630e475c1729c8062"
- integrity sha512-QgT5//D3jfjJb6Gsjxv0Slpj23ip+HtOpnNgnb2S5zU3CB26G/IDPGoy4RJB42wzFE46DRsstbW6tKHoKbhAxw==
-
-react-router-dom@^7.13.1:
- version "7.13.1"
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.13.1.tgz#74c045acc333ca94612b889cd1b1e1ee9534dead"
- integrity sha512-UJnV3Rxc5TgUPJt2KJpo1Jpy0OKQr0AjgbZzBFjaPJcFOb2Y8jA5H3LT8HUJAiRLlWrEXWHbF1Z4SCZaQjWDHw==
+react-router-dom@^7.15.0:
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.15.0.tgz#a4b95c4402d896c2ad437014aff9076b94673063"
+ integrity sha512-VcrVg64Fo8nwBvDscajG8gRTLIuTC6N50nb22l2HOOV4PTOHgoGp8mUjy9wLiHYoYTSYI36tUnXZgasSRFZorQ==
dependencies:
- react-router "7.13.1"
+ react-router "7.15.0"
-react-router@7.13.1:
- version "7.13.1"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.13.1.tgz#5e2b3ebafd6c78d9775e135474bf5060645077f7"
- integrity sha512-td+xP4X2/6BJvZoX6xw++A2DdEi++YypA69bJUV5oVvqf6/9/9nNlD70YO1e9d3MyamJEBQFEzk6mbfDYbqrSA==
+react-router@7.15.0:
+ version "7.15.0"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.15.0.tgz#cb438ff254ab5a1e356ef5a23d7821d8f6fbe652"
+ integrity sha512-HW9vYwuM8f4yx66Izy8xfrzCM+SBJluoZcCbww9A1TySax11S5Vgw6fi3ZjMONw9J4gQwngL7PzkyIpJJpJ7RQ==
dependencies:
cookie "^1.0.1"
set-cookie-parser "^2.6.0"
@@ -2530,10 +2261,10 @@ react-select@^5.10.2:
react-transition-group "^4.3.0"
use-isomorphic-layout-effect "^1.2.0"
-react-toastify@^11.0.5:
- version "11.0.5"
- resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-11.0.5.tgz#ce4c42d10eeb433988ab2264d3e445c4e9d13313"
- integrity sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA==
+react-toastify@^11.1.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/react-toastify/-/react-toastify-11.1.0.tgz#3d3c73a44d5cac868ee9a52e0f90dd706532c4a4"
+ integrity sha512-e9h23x3phN0wbFeB6yovmWp7lobzV4CaCH0LO8nVP6H7Y+3GbcLpIzMm9dJhcp1RXbpyfvjgpfXqO80QAmn7sg==
dependencies:
clsx "^2.1.1"
@@ -2547,10 +2278,10 @@ react-transition-group@^4.3.0, react-transition-group@^4.4.5:
loose-envify "^1.4.0"
prop-types "^15.6.2"
-react@^19.2.4:
- version "19.2.4"
- resolved "https://registry.yarnpkg.com/react/-/react-19.2.4.tgz#438e57baa19b77cb23aab516cf635cd0579ee09a"
- integrity sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==
+react@^19.2.6:
+ version "19.2.6"
+ resolved "https://registry.yarnpkg.com/react/-/react-19.2.6.tgz#3dadb8e12b2a7934c1d5317973e5dce1301f9a4d"
+ integrity sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==
readdirp@^4.0.1:
version "4.1.2"
@@ -2650,62 +2381,59 @@ resolve@^1.19.0:
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
-rollup@^4.43.0:
- version "4.59.0"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.59.0.tgz#cf74edac17c1486f562d728a4d923a694abdf06f"
- integrity sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==
- dependencies:
- "@types/estree" "1.0.8"
- optionalDependencies:
- "@rollup/rollup-android-arm-eabi" "4.59.0"
- "@rollup/rollup-android-arm64" "4.59.0"
- "@rollup/rollup-darwin-arm64" "4.59.0"
- "@rollup/rollup-darwin-x64" "4.59.0"
- "@rollup/rollup-freebsd-arm64" "4.59.0"
- "@rollup/rollup-freebsd-x64" "4.59.0"
- "@rollup/rollup-linux-arm-gnueabihf" "4.59.0"
- "@rollup/rollup-linux-arm-musleabihf" "4.59.0"
- "@rollup/rollup-linux-arm64-gnu" "4.59.0"
- "@rollup/rollup-linux-arm64-musl" "4.59.0"
- "@rollup/rollup-linux-loong64-gnu" "4.59.0"
- "@rollup/rollup-linux-loong64-musl" "4.59.0"
- "@rollup/rollup-linux-ppc64-gnu" "4.59.0"
- "@rollup/rollup-linux-ppc64-musl" "4.59.0"
- "@rollup/rollup-linux-riscv64-gnu" "4.59.0"
- "@rollup/rollup-linux-riscv64-musl" "4.59.0"
- "@rollup/rollup-linux-s390x-gnu" "4.59.0"
- "@rollup/rollup-linux-x64-gnu" "4.59.0"
- "@rollup/rollup-linux-x64-musl" "4.59.0"
- "@rollup/rollup-openbsd-x64" "4.59.0"
- "@rollup/rollup-openharmony-arm64" "4.59.0"
- "@rollup/rollup-win32-arm64-msvc" "4.59.0"
- "@rollup/rollup-win32-ia32-msvc" "4.59.0"
- "@rollup/rollup-win32-x64-gnu" "4.59.0"
- "@rollup/rollup-win32-x64-msvc" "4.59.0"
- fsevents "~2.3.2"
+retry@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
+ integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
-rooks@^9.5.0:
- version "9.5.0"
- resolved "https://registry.yarnpkg.com/rooks/-/rooks-9.5.0.tgz#bbe15fdf64fff44b9a1750cc913de3401572f012"
- integrity sha512-AtmaX8yjQkJAW7EXW+UU481bpGwuk455hjD/aEUuy7N7VjvXlNmO8BErQ+jEUQp1DRA/PTWonv+Dq1nEkJdgkw==
+rolldown@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0.tgz#9baf1407c4117570f19f75f697c4a0216065d12e"
+ integrity sha512-yD986aXDESFGS95spT1LAv0jssywP4npMEjmMHyN2/5+eE8qQJUype2AaKkRiLgBgyD0LFlubwAht7VmY8rGoA==
+ dependencies:
+ "@oxc-project/types" "=0.129.0"
+ "@rolldown/pluginutils" "1.0.0"
+ optionalDependencies:
+ "@rolldown/binding-android-arm64" "1.0.0"
+ "@rolldown/binding-darwin-arm64" "1.0.0"
+ "@rolldown/binding-darwin-x64" "1.0.0"
+ "@rolldown/binding-freebsd-x64" "1.0.0"
+ "@rolldown/binding-linux-arm-gnueabihf" "1.0.0"
+ "@rolldown/binding-linux-arm64-gnu" "1.0.0"
+ "@rolldown/binding-linux-arm64-musl" "1.0.0"
+ "@rolldown/binding-linux-ppc64-gnu" "1.0.0"
+ "@rolldown/binding-linux-s390x-gnu" "1.0.0"
+ "@rolldown/binding-linux-x64-gnu" "1.0.0"
+ "@rolldown/binding-linux-x64-musl" "1.0.0"
+ "@rolldown/binding-openharmony-arm64" "1.0.0"
+ "@rolldown/binding-wasm32-wasi" "1.0.0"
+ "@rolldown/binding-win32-arm64-msvc" "1.0.0"
+ "@rolldown/binding-win32-x64-msvc" "1.0.0"
+
+rooks@^9.8.0:
+ version "9.8.0"
+ resolved "https://registry.yarnpkg.com/rooks/-/rooks-9.8.0.tgz#bf4790f1d379cb9d2f60570202e39d297ed88f8a"
+ integrity sha512-S6FqnmERx5zgl8ZUEcnyTe1jgjwE5xeFCgOV4bzgQHKp26P7YA7uPnzzOgacojtoX6E7pQTcewSGqN83wVyz+g==
dependencies:
fast-deep-equal "^3.1.3"
lodash.debounce "^4.0.8"
raf "^3.4.1"
- use-sync-external-store "^1.4.0"
+ use-sync-external-store "^1.6.0"
+ optionalDependencies:
+ "@js-temporal/polyfill" "^0.5.1"
safe-buffer@^5.1.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-sass@^1.97.3:
- version "1.97.3"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.97.3.tgz#9cb59339514fa7e2aec592b9700953ac6e331ab2"
- integrity sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==
+sass@^1.99.0:
+ version "1.99.0"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.99.0.tgz#ff9d1594da4886249dfaafabbeea2dea2dc74b26"
+ integrity sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==
dependencies:
chokidar "^4.0.0"
- immutable "^5.0.2"
+ immutable "^5.1.5"
source-map-js ">=0.6.2 <2.0.0"
optionalDependencies:
"@parcel/watcher" "^2.4.1"
@@ -2715,11 +2443,6 @@ scheduler@^0.27.0:
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.27.0.tgz#0c4ef82d67d1e5c1e359e8fc76d3a87f045fe5bd"
integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==
-semver@^6.3.1:
- version "6.3.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
- integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-
set-cookie-parser@^2.6.0:
version "2.7.2"
resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz#ccd08673a9ae5d2e44ea2a2de25089e67c7edf68"
@@ -2730,6 +2453,11 @@ siginfo@^2.0.0:
resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30"
integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==
+signal-exit@^3.0.2:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
@@ -2755,10 +2483,10 @@ stackback@0.0.2:
resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b"
integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==
-std-env@^3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.10.0.tgz#d810b27e3a073047b2b5e40034881f5ea6f9c83b"
- integrity sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==
+std-env@^4.0.0-rc.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/std-env/-/std-env-4.1.0.tgz#45899abc590d86d682e87f0acd1033a75084cd3f"
+ integrity sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==
stringify-entities@^4.0.0:
version "4.0.4"
@@ -2827,10 +2555,18 @@ tinyglobby@^0.2.15:
fdir "^6.5.0"
picomatch "^4.0.3"
-tinyrainbow@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-3.0.3.tgz#984a5b1c1b25854a9b6bccbe77964d0593d1ea42"
- integrity sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==
+tinyglobby@^0.2.16:
+ version "0.2.16"
+ resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6"
+ integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==
+ dependencies:
+ fdir "^6.5.0"
+ picomatch "^4.0.4"
+
+tinyrainbow@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-3.1.0.tgz#1d8a623893f95cf0a2ddb9e5d11150e191409421"
+ integrity sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==
tmp@^0.2.5:
version "0.2.5"
@@ -2847,20 +2583,15 @@ trough@^2.0.0:
resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f"
integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==
-tsconfck@^3.0.3:
- version "3.1.6"
- resolved "https://registry.yarnpkg.com/tsconfck/-/tsconfck-3.1.6.tgz#da1f0b10d82237ac23422374b3fce1edb23c3ead"
- integrity sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==
-
-tslib@^2.0.0, tslib@^2.8.0, tslib@^2.8.1:
+tslib@^2.0.0, tslib@^2.4.0, tslib@^2.8.0:
version "2.8.1"
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
-typescript@5.9.3:
- version "5.9.3"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f"
- integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
+typescript@6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-6.0.3.tgz#90251dc007916e972786cb94d74d15b185577d21"
+ integrity sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==
uncontrollable@^7.2.1:
version "7.2.1"
@@ -2882,6 +2613,11 @@ undici-types@~7.18.0:
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9"
integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==
+undici-types@~7.21.0:
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.21.0.tgz#433f7dd1b5daa9ab4dacb721a5e11a8de51eadda"
+ integrity sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==
+
unicorn-magic@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.3.0.tgz#4efd45c85a69e0dd576d25532fbfa22aa5c8a104"
@@ -2947,20 +2683,12 @@ unist-util-visit@^5.0.0:
unist-util-is "^6.0.0"
unist-util-visit-parents "^6.0.0"
-update-browserslist-db@^1.2.0:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d"
- integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==
- dependencies:
- escalade "^3.2.0"
- picocolors "^1.1.1"
-
use-isomorphic-layout-effect@^1.2.0:
version "1.2.1"
resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.1.tgz#2f11a525628f56424521c748feabc2ffcc962fce"
integrity sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==
-use-sync-external-store@^1.4.0:
+use-sync-external-store@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz#b174bfa65cb2b526732d9f2ac0a408027876f32d"
integrity sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==
@@ -2989,67 +2717,58 @@ vfile@^6.0.0:
"@types/unist" "^3.0.0"
vfile-message "^4.0.0"
-vite-plugin-checker@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.12.0.tgz#1e9688a5a10f5de1fd833bc1351618eed54db3bc"
- integrity sha512-CmdZdDOGss7kdQwv73UyVgLPv0FVYe5czAgnmRX2oKljgEvSrODGuClaV3PDR2+3ou7N/OKGauDDBjy2MB07Rg==
+vite-plugin-checker@^0.13.0:
+ version "0.13.0"
+ resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.13.0.tgz#5593c19281a201546c81ee66c79e0c097ba5140a"
+ integrity sha512-14EkOZmfinVZNxRmg2uCNDwtqGc/33lU/UEJansHgu27+ad+r6mMBf1Xtnq57jGZWiO/xzwtiEKPYsganw7ZFQ==
dependencies:
"@babel/code-frame" "^7.27.1"
chokidar "^4.0.3"
npm-run-path "^6.0.0"
picocolors "^1.1.1"
- picomatch "^4.0.3"
+ picomatch "^4.0.4"
+ proper-lockfile "^4.1.2"
tiny-invariant "^1.3.3"
tinyglobby "^0.2.15"
vscode-uri "^3.1.0"
-vite-tsconfig-paths@^6.1.1:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/vite-tsconfig-paths/-/vite-tsconfig-paths-6.1.1.tgz#d5c28cba79c89ebf76489ef1040024b21df6da3a"
- integrity sha512-2cihq7zliibCCZ8P9cKJrQBkfgdvcFkOOc3Y02o3GWUDLgqjWsZudaoiuOwO/gzTzy17cS5F7ZPo4bsnS4DGkg==
+"vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.0.12:
+ version "8.0.12"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.12.tgz#105cce7bcb60733f9159842ec2a5a10aadf2da86"
+ integrity sha512-w2dDofOWv2QB09ZITZBsvKTVAlYvPR4IAmrY/v0ir9KvLs0xybR7i48wxhM1/oyBWO34wPns+bPGw5ZrZqDpZg==
dependencies:
- debug "^4.1.1"
- globrex "^0.1.2"
- tsconfck "^3.0.3"
-
-"vite@^6.0.0 || ^7.0.0", vite@^7.3.1:
- version "7.3.1"
- resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.1.tgz#7f6cfe8fb9074138605e822a75d9d30b814d6507"
- integrity sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==
- dependencies:
- esbuild "^0.27.0"
- fdir "^6.5.0"
- picomatch "^4.0.3"
- postcss "^8.5.6"
- rollup "^4.43.0"
- tinyglobby "^0.2.15"
+ lightningcss "^1.32.0"
+ picomatch "^4.0.4"
+ postcss "^8.5.14"
+ rolldown "1.0.0"
+ tinyglobby "^0.2.16"
optionalDependencies:
fsevents "~2.3.3"
-vitest@^4.0.18:
- version "4.0.18"
- resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.0.18.tgz#56f966353eca0b50f4df7540cd4350ca6d454a05"
- integrity sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==
+vitest@^4.1.6:
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.6.tgz#754875c9a09c5a3e8ca7d07d440659d92c19787f"
+ integrity sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==
dependencies:
- "@vitest/expect" "4.0.18"
- "@vitest/mocker" "4.0.18"
- "@vitest/pretty-format" "4.0.18"
- "@vitest/runner" "4.0.18"
- "@vitest/snapshot" "4.0.18"
- "@vitest/spy" "4.0.18"
- "@vitest/utils" "4.0.18"
- es-module-lexer "^1.7.0"
- expect-type "^1.2.2"
+ "@vitest/expect" "4.1.6"
+ "@vitest/mocker" "4.1.6"
+ "@vitest/pretty-format" "4.1.6"
+ "@vitest/runner" "4.1.6"
+ "@vitest/snapshot" "4.1.6"
+ "@vitest/spy" "4.1.6"
+ "@vitest/utils" "4.1.6"
+ es-module-lexer "^2.0.0"
+ expect-type "^1.3.0"
magic-string "^0.30.21"
obug "^2.1.1"
pathe "^2.0.3"
picomatch "^4.0.3"
- std-env "^3.10.0"
+ std-env "^4.0.0-rc.1"
tinybench "^2.9.0"
tinyexec "^1.0.2"
tinyglobby "^0.2.15"
- tinyrainbow "^3.0.3"
- vite "^6.0.0 || ^7.0.0"
+ tinyrainbow "^3.1.0"
+ vite "^6.0.0 || ^7.0.0 || ^8.0.0"
why-is-node-running "^2.3.0"
vscode-uri@^3.1.0:
@@ -3087,11 +2806,6 @@ ws@^8.18.3:
resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b"
integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==
-yallist@^3.0.2:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
- integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-
yaml@^1.10.0:
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
diff --git a/test/package.json b/test/package.json
index bb454ba0..555bb6c2 100644
--- a/test/package.json
+++ b/test/package.json
@@ -5,18 +5,18 @@
"main": "index.js",
"dependencies": {
"@jc21/cypress-swagger-validation": "^0.3.2",
- "@quobix/vacuum": "^0.24.0",
- "axios": "^1.13.6",
+ "@quobix/vacuum": "^0.26.4",
+ "axios": "^1.16.0",
"chalk": "^5.6.2",
- "cypress": "^15.11.0",
+ "cypress": "^15.15.0",
"cypress-multi-reporters": "^2.0.5",
"cypress-wait-until": "^3.0.2",
- "eslint": "^10.0.2",
+ "eslint": "^10.3.0",
"eslint-plugin-align-assignments": "^1.1.2",
- "eslint-plugin-chai-friendly": "^1.1.0",
- "eslint-plugin-cypress": "^6.1.0",
+ "eslint-plugin-chai-friendly": "^1.2.0",
+ "eslint-plugin-cypress": "^6.4.1",
"form-data": "^4.0.5",
- "lodash": "^4.17.23",
+ "lodash": "^4.18.1",
"mocha": "^11.7.5",
"mocha-junit-reporter": "^2.2.1"
},
diff --git a/test/yarn.lock b/test/yarn.lock
index e1be367b..2dd7a9bb 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -43,10 +43,10 @@
ajv-draft-04 "^1.0.0"
call-me-maybe "^1.0.2"
-"@cypress/request@^3.0.10":
- version "3.0.10"
- resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.10.tgz#e09c695e8460a82acafe6cfaf089cf2ca06dc054"
- integrity sha512-hauBrOdvu08vOsagkZ/Aju5XuiZx6ldsLfByg1htFeldhex+PeMrYauANzFsMJeAA0+dyPLbDoX2OYuvVoLDkQ==
+"@cypress/request@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@cypress/request/-/request-4.0.0.tgz#2bc3a10a7d50f338dc644dc5fd14a60107c6f3e2"
+ integrity sha512-wGTQfwDMMMiz/muFw4YbCLwTh0uZsXKK+6zWBzftADpitSi6iM62C8GzEhNcng2srUiGPksOriQkA8zakW2R0g==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
@@ -65,7 +65,6 @@
safe-buffer "^5.1.2"
tough-cookie "^5.0.0"
tunnel-agent "^0.6.0"
- uuid "^8.3.2"
"@cypress/xvfb@^1.2.4":
version "1.2.4"
@@ -87,40 +86,40 @@
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b"
integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==
-"@eslint/config-array@^0.23.2":
- version "0.23.2"
- resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.23.2.tgz#db85beeff7facc685a5775caacb1c845669b9470"
- integrity sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==
+"@eslint/config-array@^0.23.5":
+ version "0.23.5"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.23.5.tgz#56e86d243049195d8acc0c06a1b3dfdc3fa3de95"
+ integrity sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==
dependencies:
- "@eslint/object-schema" "^3.0.2"
+ "@eslint/object-schema" "^3.0.5"
debug "^4.3.1"
- minimatch "^10.2.1"
+ minimatch "^10.2.4"
-"@eslint/config-helpers@^0.5.2":
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.5.2.tgz#314c7b03d02a371ad8c0a7f6821d5a8a8437ba9d"
- integrity sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==
+"@eslint/config-helpers@^0.5.5":
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.5.5.tgz#ae16134e4792ac5fbdc533548a24ac1ea9f7f3ae"
+ integrity sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==
dependencies:
- "@eslint/core" "^1.1.0"
+ "@eslint/core" "^1.2.1"
-"@eslint/core@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@eslint/core/-/core-1.1.0.tgz#51f5cd970e216fbdae6721ac84491f57f965836d"
- integrity sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==
+"@eslint/core@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@eslint/core/-/core-1.2.1.tgz#c1da7cd1b82fa8787f98b5629fb811848a1b63ce"
+ integrity sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==
dependencies:
"@types/json-schema" "^7.0.15"
-"@eslint/object-schema@^3.0.2":
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-3.0.2.tgz#c59c6a94aa4b428ed7f1615b6a4495c0a21f7a22"
- integrity sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==
+"@eslint/object-schema@^3.0.5":
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-3.0.5.tgz#88e9bf4d11d2b19c082e78ebe7ce88724a5eb091"
+ integrity sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==
-"@eslint/plugin-kit@^0.6.0":
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.6.0.tgz#e0cb12ec66719cb2211ad36499fb516f2a63899d"
- integrity sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==
+"@eslint/plugin-kit@^0.7.1":
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz#c4125fd015eceeb09b793109fdbcd4dd0a02d346"
+ integrity sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==
dependencies:
- "@eslint/core" "^1.1.0"
+ "@eslint/core" "^1.2.1"
levn "^0.4.1"
"@humanfs/core@^0.19.1":
@@ -191,14 +190,14 @@
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
-"@quobix/vacuum@^0.24.0":
- version "0.24.0"
- resolved "https://registry.yarnpkg.com/@quobix/vacuum/-/vacuum-0.24.0.tgz#7461d0f745e1a97827fc20b04f8c1701a5f1a0e0"
- integrity sha512-Ee7c2XF6FY3bf3BzOCh/Ku2abxMN2iqYADHf933EkgAQ4u3x3eXXvlAa8UQo/lt7ZhWk0HHXQ55hnMhpbJsuPg==
+"@quobix/vacuum@^0.26.4":
+ version "0.26.4"
+ resolved "https://registry.yarnpkg.com/@quobix/vacuum/-/vacuum-0.26.4.tgz#b3b2af1cf14edffeb9e5fcdb02db8871d92c1b7c"
+ integrity sha512-jSfJJtN20ypOHHvN6tWPF1j0RkgjebVfHDuF+eiLV/Nt/QwQ1wJpEb4bVVJWh25cK4FiuoW7yNLSDwegQLqETA==
dependencies:
https-proxy-agent "^7.0.6"
node-fetch "^3.3.2"
- tar "^7.5.2"
+ tar "^7.5.13"
"@types/esrecurse@^4.3.1":
version "4.3.1"
@@ -259,14 +258,6 @@ agent-base@^7.1.2:
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8"
integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==
-aggregate-error@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
- integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
- dependencies:
- clean-stack "^2.0.0"
- indent-string "^4.0.0"
-
ajv-draft-04@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz#3b64761b268ba0b9e668f0b41ba53fce0ad77fc8"
@@ -299,24 +290,19 @@ ajv@^8.0.0, ajv@^8.17.1:
json-schema-traverse "^1.0.0"
require-from-string "^2.0.2"
-ansi-colors@^4.1.1:
- version "4.1.3"
- resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b"
- integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==
-
-ansi-escapes@^4.3.0:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
- integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
+ansi-escapes@^7.0.0:
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-7.3.0.tgz#5395bb74b2150a4a1d6e3c2565f4aeca78d28627"
+ integrity sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==
dependencies:
- type-fest "^0.21.3"
+ environment "^1.0.0"
ansi-regex@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-ansi-regex@^6.0.1:
+ansi-regex@^6.0.1, ansi-regex@^6.2.2:
version "6.2.2"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1"
integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==
@@ -328,7 +314,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
-ansi-styles@^6.1.0:
+ansi-styles@^6.1.0, ansi-styles@^6.2.1, ansi-styles@^6.2.3:
version "6.2.3"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041"
integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==
@@ -355,11 +341,6 @@ assert-plus@1.0.0, assert-plus@^1.0.0:
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
-astral-regex@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
- integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
-
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
@@ -380,7 +361,16 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef"
integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==
-axios@^1.13.6, axios@^1.7.7:
+axios@^1.16.0:
+ version "1.16.0"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.16.0.tgz#f8e5dd931cef2a5f8c32216d5784eda2f8750eb7"
+ integrity sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==
+ dependencies:
+ follow-redirects "^1.16.0"
+ form-data "^4.0.5"
+ proxy-from-env "^2.1.0"
+
+axios@^1.7.7:
version "1.13.6"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.6.tgz#c3f92da917dc209a15dd29936d20d5089b6b6c98"
integrity sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==
@@ -428,10 +418,10 @@ brace-expansion@^2.0.1:
dependencies:
balanced-match "^1.0.0"
-brace-expansion@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.2.tgz#b6c16d0791087af6c2bc463f52a8142046c06b6f"
- integrity sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==
+brace-expansion@^5.0.5:
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.6.tgz#ec68fe0a641a29d8711579caf641d05bae1f2285"
+ integrity sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==
dependencies:
balanced-match "^4.0.2"
@@ -453,7 +443,7 @@ buffer@^5.7.1:
base64-js "^1.3.1"
ieee754 "^1.1.13"
-cachedir@^2.3.0:
+cachedir@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d"
integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==
@@ -524,17 +514,12 @@ ci-info@^4.1.0:
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.4.0.tgz#7d54eff9f54b45b62401c26032696eb59c8bd18c"
integrity sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==
-clean-stack@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
- integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
-
-cli-cursor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
- integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
+cli-cursor@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-5.0.0.tgz#24a4831ecf5a6b01ddeb32fb71a4b2088b0dce38"
+ integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==
dependencies:
- restore-cursor "^3.1.0"
+ restore-cursor "^5.0.0"
cli-table3@0.6.1:
version "0.6.1"
@@ -545,13 +530,13 @@ cli-table3@0.6.1:
optionalDependencies:
colors "1.4.0"
-cli-truncate@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7"
- integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==
+cli-truncate@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-5.2.0.tgz#c8e72aaca8339c773d128c36e0a17c6315b694eb"
+ integrity sha512-xRwvIOMGrfOAnM1JYtqQImuaNtDEv9v6oIYAs4LIHwTiKee8uwvIi363igssOC0O5U04i4AlENs79LQLu9tEMw==
dependencies:
- slice-ansi "^3.0.0"
- string-width "^4.2.0"
+ slice-ansi "^8.0.0"
+ string-width "^8.2.0"
cliui@^8.0.1:
version "8.0.1"
@@ -574,7 +559,7 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-colorette@^2.0.16:
+colorette@^2.0.20:
version "2.0.20"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==
@@ -634,12 +619,12 @@ cypress-wait-until@^3.0.2:
resolved "https://registry.yarnpkg.com/cypress-wait-until/-/cypress-wait-until-3.0.2.tgz#c90dddfa4c46a2c422f5b91d486531c560bae46e"
integrity sha512-iemies796dD5CgjG5kV0MnpEmKSH+s7O83ZoJLVzuVbZmm4lheMsZqAVT73hlMx4QlkwhxbyUzhOBUOZwoOe0w==
-cypress@^15.11.0:
- version "15.11.0"
- resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.11.0.tgz#7402d0a2bb4573b6c6655191ad170cff1985ff3f"
- integrity sha512-NXDE6/fqZuzh1Zr53nyhCCa4lcANNTYWQNP9fJO+tzD3qVTDaTUni5xXMuigYjMujQ7CRiT9RkJJONmPQSsDFw==
+cypress@^15.15.0:
+ version "15.15.0"
+ resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.15.0.tgz#5f9d9e8304636f7add7cb296130c0262960648bc"
+ integrity sha512-N8qBv3AUYn6xfIG73O5O58kTClUBSZ7a3C08IQFkSGTUdEauJ3BqwTFb/f9KPZgadftoZjllC0XSwD7xNNolbA==
dependencies:
- "@cypress/request" "^3.0.10"
+ "@cypress/request" "^4.0.0"
"@cypress/xvfb" "^1.2.4"
"@types/sinonjs__fake-timers" "8.1.1"
"@types/sizzle" "^2.3.2"
@@ -648,25 +633,22 @@ cypress@^15.11.0:
blob-util "^2.0.2"
bluebird "^3.7.2"
buffer "^5.7.1"
- cachedir "^2.3.0"
+ cachedir "^2.4.0"
chalk "^4.1.0"
ci-info "^4.1.0"
- cli-cursor "^3.1.0"
cli-table3 "0.6.1"
commander "^6.2.1"
common-tags "^1.8.0"
dayjs "^1.10.4"
debug "^4.3.4"
- enquirer "^2.3.6"
eventemitter2 "6.4.7"
execa "4.1.0"
executable "^4.1.1"
extract-zip "2.0.1"
- figures "^3.2.0"
fs-extra "^9.1.0"
hasha "5.2.2"
is-installed-globally "~0.4.0"
- listr2 "^3.8.3"
+ listr2 "^9.0.5"
lodash "^4.17.23"
log-symbols "^4.0.0"
minimist "^1.2.8"
@@ -756,6 +738,11 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
+emoji-regex@^10.3.0:
+ version "10.6.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.6.0.tgz#bf3d6e8f7f8fd22a65d9703475bc0147357a6b0d"
+ integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==
+
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
@@ -773,13 +760,10 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
-enquirer@^2.3.6:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56"
- integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==
- dependencies:
- ansi-colors "^4.1.1"
- strip-ansi "^6.0.1"
+environment@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1"
+ integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==
es-define-property@^1.0.1:
version "1.0.1"
@@ -813,11 +797,6 @@ escalade@^3.1.1:
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
-escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
-
escape-string-regexp@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
@@ -839,22 +818,22 @@ eslint-plugin-align-assignments@^1.1.2:
resolved "https://registry.yarnpkg.com/eslint-plugin-align-assignments/-/eslint-plugin-align-assignments-1.1.2.tgz#83e1a8a826d4adf29e82b52d0bb39c88b301b576"
integrity sha512-I1ZJgk9EjHfGVU9M2Ex8UkVkkjLL5Y9BS6VNnQHq79eHj2H4/Cgxf36lQSUTLgm2ntB03A2NtF+zg9fyi5vChg==
-eslint-plugin-chai-friendly@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-1.1.0.tgz#e21cbd301ff0d4c1c563d3bbc865e9ac0296fb7c"
- integrity sha512-+T1rClpDdXkgBAhC16vRQMI5umiWojVqkj9oUTdpma50+uByCZM/oBfxitZiOkjMRlm725mwFfz/RVgyDRvCKA==
+eslint-plugin-chai-friendly@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-chai-friendly/-/eslint-plugin-chai-friendly-1.2.0.tgz#2a54b481bcbc26ab5a581b2b7e7c304465837c15"
+ integrity sha512-um2pBb4ZXNCoTRPRAWiUaXeIaw1dRaPOEZ+G/qcZqfyTdkCXXwOBctnfnbIRbZiQf4AXl3ImV1grt423SlK+mg==
-eslint-plugin-cypress@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-6.1.0.tgz#5619ceb67d09d74cb5225408bb36c962afb94880"
- integrity sha512-B8sxtNpINDxFkmsu1qKYjg70VsP8SGneEXgLcZMk1bUZcW08S+JyaiMdof1x6dmt02FgOD7YkT4wOaOD5HotJw==
+eslint-plugin-cypress@^6.4.1:
+ version "6.4.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-6.4.1.tgz#2aa64e5a2dcc56b8b916fdf8398a81b31a61c462"
+ integrity sha512-8mnfR3q0Lr41Fu9SYZGeZ5nbSBgtS44+bbtSs7k0KvfoQ2pPmK43IvaTP6FGTfwBTN6S7w027CpqjrLAd65AYA==
dependencies:
- globals "^17.3.0"
+ globals "^17.6.0"
-eslint-scope@^9.1.1:
- version "9.1.1"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-9.1.1.tgz#f6a209486e38bd28356b5feb07d445cc99c89967"
- integrity sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==
+eslint-scope@^9.1.2:
+ version "9.1.2"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-9.1.2.tgz#b9de6ace2fab1cff24d2e58d85b74c8fcea39802"
+ integrity sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==
dependencies:
"@types/esrecurse" "^4.3.1"
"@types/estree" "^1.0.8"
@@ -871,17 +850,17 @@ eslint-visitor-keys@^5.0.1:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be"
integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==
-eslint@^10.0.2:
- version "10.0.2"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.0.2.tgz#1009263467591810320f2e1ad52b8a750d1acbab"
- integrity sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==
+eslint@^10.3.0:
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.3.0.tgz#ed5b810eb8e0191bf24bddcf9cdb45b974e0a16d"
+ integrity sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==
dependencies:
"@eslint-community/eslint-utils" "^4.8.0"
"@eslint-community/regexpp" "^4.12.2"
- "@eslint/config-array" "^0.23.2"
- "@eslint/config-helpers" "^0.5.2"
- "@eslint/core" "^1.1.0"
- "@eslint/plugin-kit" "^0.6.0"
+ "@eslint/config-array" "^0.23.5"
+ "@eslint/config-helpers" "^0.5.5"
+ "@eslint/core" "^1.2.1"
+ "@eslint/plugin-kit" "^0.7.1"
"@humanfs/node" "^0.16.6"
"@humanwhocodes/module-importer" "^1.0.1"
"@humanwhocodes/retry" "^0.4.2"
@@ -890,9 +869,9 @@ eslint@^10.0.2:
cross-spawn "^7.0.6"
debug "^4.3.2"
escape-string-regexp "^4.0.0"
- eslint-scope "^9.1.1"
+ eslint-scope "^9.1.2"
eslint-visitor-keys "^5.0.1"
- espree "^11.1.1"
+ espree "^11.2.0"
esquery "^1.7.0"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
@@ -903,14 +882,14 @@ eslint@^10.0.2:
imurmurhash "^0.1.4"
is-glob "^4.0.0"
json-stable-stringify-without-jsonify "^1.0.1"
- minimatch "^10.2.1"
+ minimatch "^10.2.4"
natural-compare "^1.4.0"
optionator "^0.9.3"
-espree@^11.1.1:
- version "11.1.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-11.1.1.tgz#866f6bc9ccccd6f28876b7a6463abb281b9cb847"
- integrity sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==
+espree@^11.2.0:
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-11.2.0.tgz#01d5e47dc332aaba3059008362454a8cc34ccaa5"
+ integrity sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==
dependencies:
acorn "^8.16.0"
acorn-jsx "^5.3.2"
@@ -955,6 +934,11 @@ eventemitter2@6.4.7:
resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d"
integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==
+eventemitter3@^5.0.1:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.4.tgz#a86d66170433712dde814707ac52b5271ceb1feb"
+ integrity sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==
+
execa@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a"
@@ -1038,13 +1022,6 @@ fetch-blob@^3.1.2, fetch-blob@^3.1.4:
node-domexception "^1.0.0"
web-streams-polyfill "^3.0.3"
-figures@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
- integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
- dependencies:
- escape-string-regexp "^1.0.5"
-
file-entry-cache@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
@@ -1083,6 +1060,11 @@ follow-redirects@^1.15.11:
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340"
integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==
+follow-redirects@^1.16.0:
+ version "1.16.0"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc"
+ integrity sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==
+
foreground-child@^3.1.0:
version "3.3.1"
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f"
@@ -1134,6 +1116,11 @@ get-caller-file@^2.0.5:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+get-east-asian-width@^1.0.0, get-east-asian-width@^1.3.1, get-east-asian-width@^1.5.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.6.0.tgz#216900f91df11a8b2c198c3e1d93d6c035a776b9"
+ integrity sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==
+
get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
@@ -1198,10 +1185,10 @@ global-dirs@^3.0.0:
dependencies:
ini "2.0.0"
-globals@^17.3.0:
- version "17.3.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-17.3.0.tgz#8b96544c2fa91afada02747cc9731c002a96f3b9"
- integrity sha512-yMqGUQVVCkD4tqjOJf3TnrvaaHDMYp4VlUSObbkIiuCPe/ofdMBFIAcBbCSRFWOnos6qRiTVStDwqPLUclaxIw==
+globals@^17.6.0:
+ version "17.6.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-17.6.0.tgz#0f0be018d5cca8690e6375ead1f65c4bb96191fc"
+ integrity sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==
gopd@^1.2.0:
version "1.2.0"
@@ -1287,11 +1274,6 @@ imurmurhash@^0.1.4:
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-indent-string@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
- integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
-
ini@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
@@ -1312,6 +1294,13 @@ is-fullwidth-code-point@^3.0.0:
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+is-fullwidth-code-point@^5.0.0, is-fullwidth-code-point@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz#046b2a6d4f6b156b2233d3207d4b5a9783999b98"
+ integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==
+ dependencies:
+ get-east-asian-width "^1.3.1"
+
is-glob@^4.0.0, is-glob@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
@@ -1456,19 +1445,17 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
-listr2@^3.8.3:
- version "3.14.0"
- resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e"
- integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==
+listr2@^9.0.5:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-9.0.5.tgz#92df7c4416a6da630eb9ef46da469b70de97b316"
+ integrity sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==
dependencies:
- cli-truncate "^2.1.0"
- colorette "^2.0.16"
- log-update "^4.0.0"
- p-map "^4.0.0"
- rfdc "^1.3.0"
- rxjs "^7.5.1"
- through "^2.3.8"
- wrap-ansi "^7.0.0"
+ cli-truncate "^5.0.0"
+ colorette "^2.0.20"
+ eventemitter3 "^5.0.1"
+ log-update "^6.1.0"
+ rfdc "^1.4.1"
+ wrap-ansi "^9.0.0"
locate-path@^6.0.0:
version "6.0.0"
@@ -1487,6 +1474,11 @@ lodash@^4.17.21, lodash@^4.17.23:
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a"
integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==
+lodash@^4.18.1:
+ version "4.18.1"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c"
+ integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==
+
log-symbols@^4.0.0, log-symbols@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503"
@@ -1495,15 +1487,16 @@ log-symbols@^4.0.0, log-symbols@^4.1.0:
chalk "^4.1.0"
is-unicode-supported "^0.1.0"
-log-update@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1"
- integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==
+log-update@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.1.0.tgz#1a04ff38166f94647ae1af562f4bd6a15b1b7cd4"
+ integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==
dependencies:
- ansi-escapes "^4.3.0"
- cli-cursor "^3.1.0"
- slice-ansi "^4.0.0"
- wrap-ansi "^6.2.0"
+ ansi-escapes "^7.0.0"
+ cli-cursor "^5.0.0"
+ slice-ansi "^7.1.0"
+ strip-ansi "^7.1.0"
+ wrap-ansi "^9.0.0"
lru-cache@^10.2.0:
version "10.4.3"
@@ -1546,12 +1539,17 @@ mimic-fn@^2.1.0:
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-minimatch@^10.2.1:
- version "10.2.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.2.tgz#361603ee323cfb83496fea2ae17cc44ea4e1f99f"
- integrity sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==
+mimic-function@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076"
+ integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==
+
+minimatch@^10.2.4:
+ version "10.2.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1"
+ integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==
dependencies:
- brace-expansion "^5.0.2"
+ brace-expansion "^5.0.5"
minimatch@^9.0.4, minimatch@^9.0.5:
version "9.0.5"
@@ -1670,6 +1668,13 @@ onetime@^5.1.0:
dependencies:
mimic-fn "^2.1.0"
+onetime@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-7.0.0.tgz#9f16c92d8c9ef5120e3acd9dd9957cceecc1ab60"
+ integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==
+ dependencies:
+ mimic-function "^5.0.0"
+
openapi-types@^12.1.3:
version "12.1.3"
resolved "https://registry.yarnpkg.com/openapi-types/-/openapi-types-12.1.3.tgz#471995eb26c4b97b7bd356aacf7b91b73e777dd3"
@@ -1706,13 +1711,6 @@ p-locate@^5.0.0:
dependencies:
p-limit "^3.0.2"
-p-map@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
- integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
- dependencies:
- aggregate-error "^3.0.0"
-
package-json-from-dist@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505"
@@ -1781,6 +1779,11 @@ proxy-from-env@^1.1.0:
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+proxy-from-env@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz#a7487568adad577cfaaa7e88c49cab3ab3081aba"
+ integrity sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==
+
pump@^3.0.0:
version "3.0.3"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d"
@@ -1830,26 +1833,19 @@ require-from-string@^2.0.2:
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
-restore-cursor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
- integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
+restore-cursor@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-5.1.0.tgz#0766d95699efacb14150993f55baf0953ea1ebe7"
+ integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==
dependencies:
- onetime "^5.1.0"
- signal-exit "^3.0.2"
+ onetime "^7.0.0"
+ signal-exit "^4.1.0"
-rfdc@^1.3.0:
+rfdc@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca"
integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==
-rxjs@^7.5.1:
- version "7.8.2"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b"
- integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==
- dependencies:
- tslib "^2.1.0"
-
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@@ -1929,28 +1925,26 @@ signal-exit@^3.0.2:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-signal-exit@^4.0.1:
+signal-exit@^4.0.1, signal-exit@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
-slice-ansi@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787"
- integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==
+slice-ansi@^7.1.0:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.2.tgz#adf7be70aa6d72162d907cd0e6d5c11f507b5403"
+ integrity sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==
dependencies:
- ansi-styles "^4.0.0"
- astral-regex "^2.0.0"
- is-fullwidth-code-point "^3.0.0"
+ ansi-styles "^6.2.1"
+ is-fullwidth-code-point "^5.0.0"
-slice-ansi@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
- integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+slice-ansi@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-8.0.0.tgz#22d0b66d18bc5c57f488bfcf36cbde3bef731537"
+ integrity sha512-stxByr12oeeOyY2BlviTNQlYV5xOj47GirPr4yA1hE9JCtxfQN0+tVbkxwCtYDQWhEKWFHsEK48ORg5jrouCAg==
dependencies:
- ansi-styles "^4.0.0"
- astral-regex "^2.0.0"
- is-fullwidth-code-point "^3.0.0"
+ ansi-styles "^6.2.3"
+ is-fullwidth-code-point "^5.1.0"
source-map@~0.6.1:
version "0.6.1"
@@ -2006,6 +2000,23 @@ string-width@^5.0.1, string-width@^5.1.2:
emoji-regex "^9.2.2"
strip-ansi "^7.0.1"
+string-width@^7.0.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.2.0.tgz#b5bb8e2165ce275d4d43476dd2700ad9091db6dc"
+ integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==
+ dependencies:
+ emoji-regex "^10.3.0"
+ get-east-asian-width "^1.0.0"
+ strip-ansi "^7.1.0"
+
+string-width@^8.2.0:
+ version "8.2.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-8.2.1.tgz#165089cfa527cc88fbc23dd73313f5e334af1ea1"
+ integrity sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==
+ dependencies:
+ get-east-asian-width "^1.5.0"
+ strip-ansi "^7.1.2"
+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
@@ -2027,6 +2038,13 @@ strip-ansi@^7.0.1:
dependencies:
ansi-regex "^6.0.1"
+strip-ansi@^7.1.0, strip-ansi@^7.1.2:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.2.0.tgz#d22a269522836a627af8d04b5c3fd2c7fa3e32e3"
+ integrity sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==
+ dependencies:
+ ansi-regex "^6.2.2"
+
strip-final-newline@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
@@ -2056,10 +2074,10 @@ systeminformation@^5.31.1:
resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.31.1.tgz#5f88aa1db7470af87b6288baf1738603cafd1c4a"
integrity sha512-6pRwxoGeV/roJYpsfcP6tN9mep6pPeCtXbUOCdVa0nme05Brwcwdge/fVNhIZn2wuUitAKZm4IYa7QjnRIa9zA==
-tar@^7.5.2:
- version "7.5.9"
- resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.9.tgz#817ac12a54bc4362c51340875b8985d7dc9724b8"
- integrity sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==
+tar@^7.5.13:
+ version "7.5.15"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-7.5.15.tgz#afe6d1316cddf614a566e3813e42fe01aed46fee"
+ integrity sha512-dzGK0boVlC4W5QFuQN1EFSl3bIDYsk7Tj40U6eIBnK2k/8ml7TZ5agbI5j5+qnoVcAA+rNtBml8SEiLxZpNqRQ==
dependencies:
"@isaacs/fs-minipass" "^4.0.0"
chownr "^3.0.0"
@@ -2072,11 +2090,6 @@ throttleit@^1.0.0:
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.1.tgz#304ec51631c3b770c65c6c6f76938b384000f4d5"
integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==
-through@^2.3.8:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
-
tldts-core@^6.1.86:
version "6.1.86"
resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8"
@@ -2111,11 +2124,6 @@ tslib@1.14.1:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.1.0:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f"
- integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==
-
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
@@ -2135,11 +2143,6 @@ type-check@^0.4.0, type-check@~0.4.0:
dependencies:
prelude-ls "^1.2.1"
-type-fest@^0.21.3:
- version "0.21.3"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
- integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-
type-fest@^0.8.0:
version "0.8.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
@@ -2172,11 +2175,6 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
-uuid@^8.3.2:
- version "8.3.2"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
- integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
@@ -2217,15 +2215,6 @@ workerpool@^9.2.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
-wrap-ansi@^6.2.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
- integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
@@ -2244,6 +2233,15 @@ wrap-ansi@^8.1.0:
string-width "^5.0.1"
strip-ansi "^7.0.1"
+wrap-ansi@^9.0.0:
+ version "9.0.2"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.2.tgz#956832dea9494306e6d209eb871643bb873d7c98"
+ integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==
+ dependencies:
+ ansi-styles "^6.2.1"
+ string-width "^7.0.0"
+ strip-ansi "^7.1.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
From c17475968f8a8c659b504a1a1b0f7df7be9f8341 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Wed, 13 May 2026 13:35:19 +1000
Subject: [PATCH 32/89] Fix frontend linting
---
frontend/src/components/Table/Formatter/DomainsFormatter.tsx | 1 +
1 file changed, 1 insertion(+)
diff --git a/frontend/src/components/Table/Formatter/DomainsFormatter.tsx b/frontend/src/components/Table/Formatter/DomainsFormatter.tsx
index 35e8393e..3ccc4d80 100644
--- a/frontend/src/components/Table/Formatter/DomainsFormatter.tsx
+++ b/frontend/src/components/Table/Formatter/DomainsFormatter.tsx
@@ -26,6 +26,7 @@ const DomainLink = ({ domain, color }: { domain?: string; color?: string }) => {
key={domain}
href={`http://${domain}`}
target="_blank"
+ rel="noopener"
onClick={onClick}
className={cn("badge", color ? `bg-${color}-lt` : null, "domain-name", "me-2")}
>
From 7d58c579fa163e047467ccc7430ba0c8a2f9b0da Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Wed, 13 May 2026 13:40:06 +1000
Subject: [PATCH 33/89] Fix backend linting
---
backend/internal/access-list.js | 4 ++--
backend/internal/certificate.js | 8 ++++----
backend/internal/dead-host.js | 8 ++++----
backend/internal/proxy-host.js | 8 ++++----
backend/internal/redirection-host.js | 8 ++++----
backend/internal/stream.js | 8 ++++----
backend/internal/user.js | 2 +-
.../migrations/20260131163528_trust_forwarded_proto.js | 4 ++--
8 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/backend/internal/access-list.js b/backend/internal/access-list.js
index 60a7105d..d82e6034 100644
--- a/backend/internal/access-list.js
+++ b/backend/internal/access-list.js
@@ -241,7 +241,7 @@ const internalAccessList = {
let row = await query.then(utils.omitRow(omissions()));
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(thisData.id);
}
if (!skipMasking && typeof row.items !== "undefined" && row.items) {
@@ -268,7 +268,7 @@ const internalAccessList = {
expand: ["proxy_hosts", "items", "clients"],
});
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index 499e1463..59c13bf6 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -66,7 +66,7 @@ const internalCertificate = {
.andWhere("provider", "letsencrypt")
.andWhere("expires_on", "<", expirationThreshold)
.then((certificates) => {
- if (!certificates || !certificates.length) {
+ if (!certificates?.length) {
return null;
}
@@ -143,7 +143,7 @@ const internalCertificate = {
await internalCertificate.disableInUseHosts(inUseResult);
const user = await userModel.query().where("is_deleted", 0).andWhere("id", data.owner_user_id).first();
- if (!user || !user.email) {
+ if (!user?.email) {
throw new error.ValidationError(
"A valid email address must be set on your user account to use Let's Encrypt",
);
@@ -305,7 +305,7 @@ const internalCertificate = {
}
const row = await query.then(utils.omitRow(omissions()));
- if (!row || !row.id) {
+ if (!row?.id) {
throw new error.ItemNotFoundError(data.id);
}
// Custom omissions
@@ -397,7 +397,7 @@ const internalCertificate = {
await access.can("certificates:delete", data.id);
const row = await internalCertificate.get(access, { id: data.id });
- if (!row || !row.id) {
+ if (!row?.id) {
throw new error.ItemNotFoundError(data.id);
}
diff --git a/backend/internal/dead-host.js b/backend/internal/dead-host.js
index 34c94fda..ee27e53c 100644
--- a/backend/internal/dead-host.js
+++ b/backend/internal/dead-host.js
@@ -206,7 +206,7 @@ const internalDeadHost = {
}
const row = await query.then(utils.omitRow(omissions()));
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
// Custom omissions
@@ -226,7 +226,7 @@ const internalDeadHost = {
delete: async (access, data) => {
await access.can("dead_hosts:delete", data.id)
const row = await internalDeadHost.get(access, { id: data.id });
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
@@ -264,7 +264,7 @@ const internalDeadHost = {
id: data.id,
expand: ["certificate", "owner"],
});
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
if (row.enabled) {
@@ -303,7 +303,7 @@ const internalDeadHost = {
disable: async (access, data) => {
await access.can("dead_hosts:update", data.id)
const row = await internalDeadHost.get(access, { id: data.id });
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
if (!row.enabled) {
diff --git a/backend/internal/proxy-host.js b/backend/internal/proxy-host.js
index 34475c99..2c159d48 100644
--- a/backend/internal/proxy-host.js
+++ b/backend/internal/proxy-host.js
@@ -253,7 +253,7 @@ const internalProxyHost = {
return query.then(utils.omitRow(omissions()));
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(thisData.id);
}
const thisRow = internalHost.cleanRowCertificateMeta(row);
@@ -279,7 +279,7 @@ const internalProxyHost = {
return internalProxyHost.get(access, { id: data.id });
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
@@ -327,7 +327,7 @@ const internalProxyHost = {
});
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
if (row.enabled) {
@@ -375,7 +375,7 @@ const internalProxyHost = {
return internalProxyHost.get(access, { id: data.id });
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
if (!row.enabled) {
diff --git a/backend/internal/redirection-host.js b/backend/internal/redirection-host.js
index 5237859c..542439fd 100644
--- a/backend/internal/redirection-host.js
+++ b/backend/internal/redirection-host.js
@@ -251,7 +251,7 @@ const internalRedirectionHost = {
})
.then((row) => {
let thisRow = row;
- if (!thisRow || !thisRow.id) {
+ if (!thisRow?.id) {
throw new errs.ItemNotFoundError(thisData.id);
}
thisRow = internalHost.cleanRowCertificateMeta(thisRow);
@@ -277,7 +277,7 @@ const internalRedirectionHost = {
return internalRedirectionHost.get(access, { id: data.id });
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
@@ -325,7 +325,7 @@ const internalRedirectionHost = {
});
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
if (row.enabled) {
@@ -373,7 +373,7 @@ const internalRedirectionHost = {
return internalRedirectionHost.get(access, { id: data.id });
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
if (!row.enabled) {
diff --git a/backend/internal/stream.js b/backend/internal/stream.js
index 909c92f8..a68e09e0 100644
--- a/backend/internal/stream.js
+++ b/backend/internal/stream.js
@@ -200,7 +200,7 @@ const internalStream = {
})
.then((row) => {
let thisRow = row;
- if (!thisRow || !thisRow.id) {
+ if (!thisRow?.id) {
throw new errs.ItemNotFoundError(thisData.id);
}
thisRow = internalHost.cleanRowCertificateMeta(thisRow);
@@ -226,7 +226,7 @@ const internalStream = {
return internalStream.get(access, { id: data.id });
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
@@ -274,7 +274,7 @@ const internalStream = {
});
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
if (row.enabled) {
@@ -322,7 +322,7 @@ const internalStream = {
return internalStream.get(access, { id: data.id });
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(data.id);
}
if (!row.enabled) {
diff --git a/backend/internal/user.js b/backend/internal/user.js
index d13931d5..176e3490 100644
--- a/backend/internal/user.js
+++ b/backend/internal/user.js
@@ -171,7 +171,7 @@ const internalUser = {
return query.then(utils.omitRow(omissions()));
})
.then((row) => {
- if (!row || !row.id) {
+ if (!row?.id) {
throw new errs.ItemNotFoundError(thisData.id);
}
// Custom omissions
diff --git a/backend/migrations/20260131163528_trust_forwarded_proto.js b/backend/migrations/20260131163528_trust_forwarded_proto.js
index 546cbca6..c32c6fb6 100644
--- a/backend/migrations/20260131163528_trust_forwarded_proto.js
+++ b/backend/migrations/20260131163528_trust_forwarded_proto.js
@@ -10,7 +10,7 @@ const migrateName = "trust_forwarded_proto";
* @param {Object} knex
* @returns {Promise}
*/
-const up = function (knex) {
+const up = (knex) => {
logger.info(`[${migrateName}] Migrating Up...`);
return knex.schema
@@ -28,7 +28,7 @@ const up = function (knex) {
* @param {Object} knex
* @returns {Promise}
*/
-const down = function (knex) {
+const down = (knex) => {
logger.info(`[${migrateName}] Migrating Down...`);
return knex.schema
From 04b43d072c3ecfb7335e2760f9a565a3838a12a5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:47:12 +0000
Subject: [PATCH 34/89] Bump fast-uri from 3.1.0 to 3.1.2 in /test
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2)
---
updated-dependencies:
- dependency-name: fast-uri
dependency-version: 3.1.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
test/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/yarn.lock b/test/yarn.lock
index 2dd7a9bb..65fa15d6 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -1003,9 +1003,9 @@ fast-levenshtein@^2.0.6:
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
fast-uri@^3.0.1:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa"
- integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.2.tgz#8af3d4fc9d3e71b11572cc2673b514a7d1a8c8ec"
+ integrity sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==
fd-slicer@~1.1.0:
version "1.1.0"
From 41c32ebf0a176aac5005f4f29b44005c5696d214 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:47:12 +0000
Subject: [PATCH 35/89] Bump fast-uri from 3.1.0 to 3.1.2 in /backend
Bumps [fast-uri](https://github.com/fastify/fast-uri) from 3.1.0 to 3.1.2.
- [Release notes](https://github.com/fastify/fast-uri/releases)
- [Commits](https://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.2)
---
updated-dependencies:
- dependency-name: fast-uri
dependency-version: 3.1.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
backend/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/backend/yarn.lock b/backend/yarn.lock
index c1f18e64..3ddbd17d 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -885,9 +885,9 @@ fast-fifo@^1.2.0, fast-fifo@^1.3.2:
integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==
fast-uri@^3.0.1:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa"
- integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.2.tgz#8af3d4fc9d3e71b11572cc2673b514a7d1a8c8ec"
+ integrity sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==
fdir@^6.5.0:
version "6.5.0"
From dc84b4b94bc5cedb6149f7b75875ed54b6d190cf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:47:17 +0000
Subject: [PATCH 36/89] Bump ip-address from 10.1.0 to 10.2.0 in /backend
Bumps [ip-address](https://github.com/beaugunderson/ip-address) from 10.1.0 to 10.2.0.
- [Commits](https://github.com/beaugunderson/ip-address/commits)
---
updated-dependencies:
- dependency-name: ip-address
dependency-version: 10.2.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
backend/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/backend/yarn.lock b/backend/yarn.lock
index c1f18e64..ac7003b1 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -1134,9 +1134,9 @@ interpret@^2.2.0:
integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==
ip-address@^10.0.1:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.1.0.tgz#d8dcffb34d0e02eb241427444a6e23f5b0595aa4"
- integrity sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==
+ version "10.2.0"
+ resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.2.0.tgz#805fc178b20c518bd4c8548b24fe30892d7f3206"
+ integrity sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==
ipaddr.js@1.9.1:
version "1.9.1"
From 738afde96e5c36c19dbab6401597947235bfd3c1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:47:36 +0000
Subject: [PATCH 37/89] Bump lodash from 4.17.23 to 4.18.1 in /frontend
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)
---
updated-dependencies:
- dependency-name: lodash
dependency-version: 4.18.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
frontend/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 985ab9ae..c37ce003 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -1625,9 +1625,9 @@ lodash.debounce@^4.0.8:
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
lodash@^4.17.21:
- version "4.17.23"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a"
- integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==
+ version "4.18.1"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c"
+ integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==
longest-streak@^3.0.0:
version "3.1.0"
From 6537fb248eb81cc05d953ac047093a44651ae505 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:48:35 +0000
Subject: [PATCH 38/89] Bump lodash-es from 4.17.23 to 4.18.1 in /frontend
Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)
---
updated-dependencies:
- dependency-name: lodash-es
dependency-version: 4.18.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
frontend/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 985ab9ae..8290e929 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -1615,9 +1615,9 @@ lines-and-columns@^1.1.6:
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
lodash-es@^4.17.21:
- version "4.17.23"
- resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.23.tgz#58c4360fd1b5d33afc6c0bbd3d1149349b1138e0"
- integrity sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==
+ version "4.18.1"
+ resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.18.1.tgz#b962eeb80d9d983a900bf342961fb7418ca10b1d"
+ integrity sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==
lodash.debounce@^4.0.8:
version "4.0.8"
From 8b24059e3baee53d4118348fb3ce3a52062eff6c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:49:03 +0000
Subject: [PATCH 39/89] Bump path-to-regexp from 8.3.0 to 8.4.2 in /backend
Bumps [path-to-regexp](https://github.com/pillarjs/path-to-regexp) from 8.3.0 to 8.4.2.
- [Release notes](https://github.com/pillarjs/path-to-regexp/releases)
- [Changelog](https://github.com/pillarjs/path-to-regexp/blob/master/History.md)
- [Commits](https://github.com/pillarjs/path-to-regexp/compare/v8.3.0...v8.4.2)
---
updated-dependencies:
- dependency-name: path-to-regexp
dependency-version: 8.4.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
backend/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/backend/yarn.lock b/backend/yarn.lock
index c1f18e64..33bc2cfd 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -1709,9 +1709,9 @@ path-parse@^1.0.7:
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
path-to-regexp@^8.0.0:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.3.0.tgz#aa818a6981f99321003a08987d3cec9c3474cd1f"
- integrity sha512-7jdwVIRtsP8MYpdXSwOS0YdD0Du+qOoF/AEPIt88PcCFrZCzx41oxku1jD88hZBwbNUIEfpqvuhjFaMAqMTWnA==
+ version "8.4.2"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.4.2.tgz#795c420c4f7ca45c5b887366f622ee0c9852cccd"
+ integrity sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==
path@^0.12.7:
version "0.12.7"
From dad08083c64fc15a3d4938d77a3b8416fa42991b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:49:09 +0000
Subject: [PATCH 40/89] Bump picomatch from 4.0.3 to 4.0.4 in /frontend
Bumps [picomatch](https://github.com/micromatch/picomatch) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4)
---
updated-dependencies:
- dependency-name: picomatch
dependency-version: 4.0.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
frontend/yarn.lock | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 985ab9ae..5045cb83 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -2067,12 +2067,7 @@ picocolors@1.1.1, picocolors@^1.1.1:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
-picomatch@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042"
- integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==
-
-picomatch@^4.0.4:
+picomatch@^4.0.3, picomatch@^4.0.4:
version "4.0.4"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589"
integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==
From 6ed6210a7b070c825ecfdf5e6abc0f9cf68cfd23 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:49:18 +0000
Subject: [PATCH 41/89] Bump picomatch from 2.3.1 to 2.3.2 in /backend
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2.
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)
---
updated-dependencies:
- dependency-name: picomatch
dependency-version: 2.3.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
backend/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/backend/yarn.lock b/backend/yarn.lock
index c1f18e64..dbdc6875 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -1783,9 +1783,9 @@ pgpass@1.0.5:
split2 "^4.1.0"
picomatch@^2.0.4, picomatch@^2.2.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601"
+ integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==
picomatch@^4.0.4:
version "4.0.4"
From f06c53330afe12c3be887ff6a3ad7c97608138de Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:49:25 +0000
Subject: [PATCH 42/89] Bump yaml from 1.10.2 to 1.10.3 in /frontend
Bumps [yaml](https://github.com/eemeli/yaml) from 1.10.2 to 1.10.3.
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](https://github.com/eemeli/yaml/compare/v1.10.2...v1.10.3)
---
updated-dependencies:
- dependency-name: yaml
dependency-version: 1.10.3
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
frontend/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 985ab9ae..31caf9fd 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -2807,9 +2807,9 @@ ws@^8.18.3:
integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==
yaml@^1.10.0:
- version "1.10.2"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
- integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+ version "1.10.3"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.3.tgz#76e407ed95c42684fb8e14641e5de62fe65bbcb3"
+ integrity sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==
zwitch@^2.0.0, zwitch@^2.0.4:
version "2.0.4"
From 2fe460557a32ef174878a55043b934d50d1deac7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 03:49:31 +0000
Subject: [PATCH 43/89] Bump flatted from 3.3.3 to 3.4.2 in /test
Bumps [flatted](https://github.com/WebReflection/flatted) from 3.3.3 to 3.4.2.
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.2)
---
updated-dependencies:
- dependency-name: flatted
dependency-version: 3.4.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
test/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/yarn.lock b/test/yarn.lock
index 2dd7a9bb..a2679a9c 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -1051,9 +1051,9 @@ flat@^5.0.2:
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
flatted@^3.2.9:
- version "3.3.3"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358"
- integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==
+ version "3.4.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.4.2.tgz#f5c23c107f0f37de8dbdf24f13722b3b98d52726"
+ integrity sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==
follow-redirects@^1.15.11:
version "1.15.11"
From e49af3cc872f39fc37d2240fc10b5681888d4eb8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 04:12:48 +0000
Subject: [PATCH 44/89] Bump postcss from 8.4.47 to 8.5.14 in /docs
Bumps [postcss](https://github.com/postcss/postcss) from 8.4.47 to 8.5.14.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.47...8.5.14)
---
updated-dependencies:
- dependency-name: postcss
dependency-version: 8.5.14
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
docs/yarn.lock | 27 ++++-----------------------
1 file changed, 4 insertions(+), 23 deletions(-)
diff --git a/docs/yarn.lock b/docs/yarn.lock
index 78a286ab..c7569482 100644
--- a/docs/yarn.lock
+++ b/docs/yarn.lock
@@ -957,11 +957,6 @@ nanoid@^3.3.11:
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b"
integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
-nanoid@^3.3.7:
- version "3.3.8"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
- integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
-
oniguruma-to-es@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz#480e4bac4d3bc9439ac0d2124f0725e7a0d76d17"
@@ -976,29 +971,15 @@ perfect-debounce@^1.0.0:
resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a"
integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
-picocolors@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59"
- integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==
-
picocolors@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
-postcss@^8.4.43:
- version "8.4.47"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.47.tgz#5bf6c9a010f3e724c503bf03ef7947dcb0fea365"
- integrity sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==
- dependencies:
- nanoid "^3.3.7"
- picocolors "^1.1.0"
- source-map-js "^1.2.1"
-
-postcss@^8.5.6:
- version "8.5.6"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c"
- integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
+postcss@^8.4.43, postcss@^8.5.6:
+ version "8.5.14"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.14.tgz#a66c2d7808fadf69ebb5b84a03f8bafd76c4919c"
+ integrity sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==
dependencies:
nanoid "^3.3.11"
picocolors "^1.1.1"
From 7bb34a72735ba10de63914bd88ee472e43188fcf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 07:31:29 +0000
Subject: [PATCH 45/89] Bump axios from 1.13.6 to 1.16.0 in /test
Bumps [axios](https://github.com/axios/axios) from 1.13.6 to 1.16.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.6...v1.16.0)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.16.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
test/yarn.lock | 21 +--------------------
1 file changed, 1 insertion(+), 20 deletions(-)
diff --git a/test/yarn.lock b/test/yarn.lock
index a2679a9c..47d33d19 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -361,7 +361,7 @@ aws4@^1.8.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef"
integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==
-axios@^1.16.0:
+axios@^1.16.0, axios@^1.7.7:
version "1.16.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.16.0.tgz#f8e5dd931cef2a5f8c32216d5784eda2f8750eb7"
integrity sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==
@@ -370,15 +370,6 @@ axios@^1.16.0:
form-data "^4.0.5"
proxy-from-env "^2.1.0"
-axios@^1.7.7:
- version "1.13.6"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.6.tgz#c3f92da917dc209a15dd29936d20d5089b6b6c98"
- integrity sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==
- dependencies:
- follow-redirects "^1.15.11"
- form-data "^4.0.5"
- proxy-from-env "^1.1.0"
-
balanced-match@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -1055,11 +1046,6 @@ flatted@^3.2.9:
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.4.2.tgz#f5c23c107f0f37de8dbdf24f13722b3b98d52726"
integrity sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==
-follow-redirects@^1.15.11:
- version "1.15.11"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340"
- integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==
-
follow-redirects@^1.16.0:
version "1.16.0"
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.16.0.tgz#28474a159d3b9d11ef62050a14ed60e4df6d61bc"
@@ -1774,11 +1760,6 @@ proxy-from-env@1.0.0:
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee"
integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==
-proxy-from-env@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
- integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
-
proxy-from-env@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz#a7487568adad577cfaaa7e88c49cab3ab3081aba"
From 5dbfd63477e1cba85cbb7359a6576611b40bda2f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 16:04:32 +0000
Subject: [PATCH 46/89] Bump systeminformation from 5.31.1 to 5.31.6 in /test
Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 5.31.1 to 5.31.6.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v5.31.1...v5.31.6)
---
updated-dependencies:
- dependency-name: systeminformation
dependency-version: 5.31.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
test/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/yarn.lock b/test/yarn.lock
index 9a11ffe1..57e4b473 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -2051,9 +2051,9 @@ supports-color@^8.1.1:
has-flag "^4.0.0"
systeminformation@^5.31.1:
- version "5.31.1"
- resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.31.1.tgz#5f88aa1db7470af87b6288baf1738603cafd1c4a"
- integrity sha512-6pRwxoGeV/roJYpsfcP6tN9mep6pPeCtXbUOCdVa0nme05Brwcwdge/fVNhIZn2wuUitAKZm4IYa7QjnRIa9zA==
+ version "5.31.6"
+ resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.31.6.tgz#2da4979a7262974fd068a3a306ded30aed6127c0"
+ integrity sha512-Uv2b2uGGM6ns+26czgW2cYRabYdnswM0ddSOOlryHOaelzsmDSet1iM/NT7VOYxW8x/BW+HkY+b1Ve2pLTSGSA==
tar@^7.5.13:
version "7.5.15"
From 982c16a86d7132a4531b7c7a96daf9f9b6abe99e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 13 May 2026 20:13:44 +0000
Subject: [PATCH 47/89] Bump minimatch from 10.2.2 to 10.2.5 in /backend
Bumps [minimatch](https://github.com/isaacs/minimatch) from 10.2.2 to 10.2.5.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v10.2.2...v10.2.5)
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 10.2.5
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
backend/yarn.lock | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
diff --git a/backend/yarn.lock b/backend/yarn.lock
index b4097ffb..c1de2bee 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -375,13 +375,6 @@ body-parser@^2.2.1, body-parser@^2.2.2:
raw-body "^3.0.1"
type-is "^2.0.1"
-brace-expansion@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.2.tgz#b6c16d0791087af6c2bc463f52a8142046c06b6f"
- integrity sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==
- dependencies:
- balanced-match "^4.0.2"
-
brace-expansion@^5.0.5:
version "5.0.6"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.6.tgz#ec68fe0a641a29d8711579caf641d05bae1f2285"
@@ -1405,14 +1398,7 @@ mimic-response@^3.1.0:
resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9"
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
-minimatch@^10.2.1:
- version "10.2.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.2.tgz#361603ee323cfb83496fea2ae17cc44ea4e1f99f"
- integrity sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==
- dependencies:
- brace-expansion "^5.0.2"
-
-minimatch@^10.2.2:
+minimatch@^10.2.1, minimatch@^10.2.2:
version "10.2.5"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1"
integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==
From edb56c285fe032ebeb3294a6c946930ac24fd1d7 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Thu, 14 May 2026 08:33:00 +1000
Subject: [PATCH 48/89] Add pull request template, too many PR's don't have
descriptions
---
.github/PULL_REQUEST_TEMPLATE.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
create mode 100644 .github/PULL_REQUEST_TEMPLATE.md
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 00000000..c503bf16
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,17 @@
+
+
+## Why
+
+
+
+## Type of Change
+
+
+
+- [ ] Bug fix (non-breaking change that fixes an issue)
+- [ ] New feature (non-breaking change that adds functionality)
+- [ ] Breaking change (fix or feature that would cause existing functionality to change)
+- [ ] Documentation update
+- [ ] Code refactoring
+- [ ] Performance improvement
+- [ ] Test addition or update
From 5fafeff7c0d5fa90b081b246e119d086414ac4db Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Thu, 14 May 2026 08:35:04 +1000
Subject: [PATCH 49/89] Update pull request template to include api
---
.github/PULL_REQUEST_TEMPLATE.md | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index c503bf16..9d3fd488 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -4,14 +4,19 @@
+
+
## Type of Change
-
+
- [ ] Bug fix (non-breaking change that fixes an issue)
- [ ] New feature (non-breaking change that adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation update
- [ ] Code refactoring
+- [ ] API changes
- [ ] Performance improvement
- [ ] Test addition or update
+
From 673082ab5b2cb2418980bc0c5a67e5aa38d33a73 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Thu, 14 May 2026 10:03:03 +1000
Subject: [PATCH 50/89] Update pull request template to include AI
---
.github/PULL_REQUEST_TEMPLATE.md | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 9d3fd488..e4634864 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -20,3 +20,10 @@ you change will break API for existing users -->
- [ ] Performance improvement
- [ ] Test addition or update
+## AI Usage
+
+
+
+- [ ] AI was used to write this
+- [ ] AI was used to review this
+
From 31500c225d6b940e5ada72b7549b73d14df926b0 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Thu, 14 May 2026 10:32:20 +1000
Subject: [PATCH 51/89] Update pull request template to include duplicate
warning
---
.github/PULL_REQUEST_TEMPLATE.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index e4634864..f3fddbc0 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,5 +1,7 @@
+
+
## Why
From 0242187db0ca1dc9ecfe647208d8b991e8cc68dc Mon Sep 17 00:00:00 2001
From: jc21
Date: Thu, 14 May 2026 14:16:00 +1000
Subject: [PATCH 52/89] Add message for available update in French locale
---
frontend/src/locale/src/fr.json | 3 +++
1 file changed, 3 insertions(+)
diff --git a/frontend/src/locale/src/fr.json b/frontend/src/locale/src/fr.json
index f3756127..5a2d86a5 100644
--- a/frontend/src/locale/src/fr.json
+++ b/frontend/src/locale/src/fr.json
@@ -605,6 +605,9 @@
"test": {
"defaultMessage": "Test"
},
+ "update-available": {
+ "defaultMessage": "Mise à jour disponible : {latestVersion}"
+ },
"user": {
"defaultMessage": "Utilisateur"
},
From 52c32b473d32ac4951ce5c2d2b3ee0de38966f2c Mon Sep 17 00:00:00 2001
From: Matthew Kilpatrick
<16194494+Matthew-Kilpatrick@users.noreply.github.com>
Date: Fri, 15 May 2026 18:55:46 +0000
Subject: [PATCH 53/89] fix: omit "Access rules" directives if no rules
configured
When an access list was associated with a template which had users (items) but no rules (clients), a `deny all` directive was inserted to the config. This resulted in all requests, including those with valid credentials, being rejected due to the lack of any `allow` directive.
This commit wraps the access rule configuration inside of an if block, so the `deny all;` directive is only present when at least one rule is configured.
---
backend/templates/_access.conf | 2 ++
1 file changed, 2 insertions(+)
diff --git a/backend/templates/_access.conf b/backend/templates/_access.conf
index 4f388545..81983f3a 100644
--- a/backend/templates/_access.conf
+++ b/backend/templates/_access.conf
@@ -10,11 +10,13 @@
{% endif %}
+ {% if access_list.clients.length > 0 %}
# Access Rules: {{ access_list.clients | size }} total
{% for client in access_list.clients %}
{{client | nginxAccessRule}}
{% endfor %}
deny all;
+ {% endif %}
# Access checks must...
{% if access_list.satisfy_any == 1 or access_list.satisfy_any == true %}
From 6008a666dd884b66779031c28d446d9dc4962d3d Mon Sep 17 00:00:00 2001
From: DOLBAEB
Date: Sat, 16 May 2026 14:18:48 +0200
Subject: [PATCH 54/89] Adds host info to proxy host delete confirmation modal
---
.../pages/Nginx/ProxyHosts/TableWrapper.tsx | 21 +++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/frontend/src/pages/Nginx/ProxyHosts/TableWrapper.tsx b/frontend/src/pages/Nginx/ProxyHosts/TableWrapper.tsx
index 68af43e1..5d6602e2 100644
--- a/frontend/src/pages/Nginx/ProxyHosts/TableWrapper.tsx
+++ b/frontend/src/pages/Nginx/ProxyHosts/TableWrapper.tsx
@@ -99,14 +99,27 @@ export default function TableWrapper() {
isFiltered={!!search}
isFetching={isFetching}
onEdit={(id: number) => showProxyHostModal(id)}
- onDelete={(id: number) =>
+ onDelete={(id: number) => {
+ const host = data?.find((h) => h.id === id);
showDeleteConfirmModal({
title: ,
onConfirm: () => handleDelete(id),
invalidations: [["proxy-hosts"], ["proxy-host", id]],
- children: ,
- })
- }
+ children: (
+ <>
+
+ {host?.domainNames?.length ? (
+ {host.domainNames.join(", ")}
+ ) : null}
+ {host?.forwardHost ? (
+
+ ({host.forwardScheme}://{host.forwardHost}:{host.forwardPort})
+
+ ) : null}
+ >
+ ),
+ });
+ }}
onDisableToggle={handleDisableToggle}
onNew={() => showProxyHostModal("new")}
/>
From 387f8d942445b0fa812975081904dc18333b32fb Mon Sep 17 00:00:00 2001
From: Daan Selen
Date: Sun, 17 May 2026 20:23:22 +0200
Subject: [PATCH 55/89] cherry-pick requested changes
---
backend/certbot/dns-plugins.json | 4 ++--
docker/Dockerfile | 3 ++-
frontend/src/components/SiteFooter.tsx | 2 +-
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/backend/certbot/dns-plugins.json b/backend/certbot/dns-plugins.json
index 4cf2c878..6cc7ef01 100644
--- a/backend/certbot/dns-plugins.json
+++ b/backend/certbot/dns-plugins.json
@@ -232,12 +232,12 @@
"version": "~=0.1.0"
},
"eurodns": {
- "credentials": "dns_eurodns_applicationId = myuser\ndns_eurodns_apiKey = mysecretpassword\ndns_eurodns_endpoint = https://rest-api.eurodns.com/user-api-gateway/proxy",
+ "credentials": "dns_eurodns_applicationId = myuser\ndns_eurodns_apiKey = mysecretpassword\ndns_eurodns_endpoint = https://rest-api.eurodns.com/dns-zones/",
"dependencies": "",
"full_plugin_name": "dns-eurodns",
"name": "EuroDNS",
"package_name": "certbot-dns-eurodns",
- "version": "~=0.0.4"
+ "version": "~=1.8.2"
},
"firstdomains": {
"credentials": "dns_firstdomains_username = myremoteuser\ndns_firstdomains_password = verysecureremoteuserpassword",
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 88ce95ed..f0f9a27d 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -3,8 +3,9 @@
# This file assumes that the frontend has been built using ./scripts/frontend-build
+ARG BASE_IMAGE=nginxproxymanager/nginx-full:certbot-node
FROM nginxproxymanager/testca AS testca
-FROM nginxproxymanager/nginx-full:certbot-node
+FROM $BASE_IMAGE
ARG TARGETPLATFORM
ARG BUILD_VERSION
diff --git a/frontend/src/components/SiteFooter.tsx b/frontend/src/components/SiteFooter.tsx
index 57bb2194..df903a60 100644
--- a/frontend/src/components/SiteFooter.tsx
+++ b/frontend/src/components/SiteFooter.tsx
@@ -34,7 +34,7 @@ export function SiteFooter() {
-
- © 2025{" "}
+ © 2026{" "}
jc21.com
From ef0ec0b188c31699fd86aae0975b170a0d0dc5bc Mon Sep 17 00:00:00 2001
From: Reinaldo Ferro
Date: Sun, 17 May 2026 22:16:48 +0200
Subject: [PATCH 56/89] Add Hostinger DNS plugin configuration
---
backend/certbot/dns-plugins.json | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/backend/certbot/dns-plugins.json b/backend/certbot/dns-plugins.json
index 0588f985..7f474512 100644
--- a/backend/certbot/dns-plugins.json
+++ b/backend/certbot/dns-plugins.json
@@ -335,6 +335,14 @@
"package_name": "certbot-dns-hetzner-cloud",
"version": "~=1.0.4"
},
+ "hostinger": {
+ "credentials": "dns_hostinger_api_token = 0123456789abcdef0123456789abcdef",
+ "dependencies": "",
+ "full_plugin_name": "dns-hostinger",
+ "name": "Hostinger.com",
+ "package_name": "certbot-dns-hostinger",
+ "version": "~=0.1.5"
+ },
"hostingnl": {
"credentials": "dns_hostingnl_api_key = 0123456789abcdef0123456789abcdef",
"dependencies": "",
From 1e22574000d8893e66066ac689d8d8d8c444547d Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Mon, 18 May 2026 15:04:27 +1000
Subject: [PATCH 57/89] Fix nulls showing in certificate rows
---
backend/models/certificate.js | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/backend/models/certificate.js b/backend/models/certificate.js
index ad6e0a65..857c067e 100644
--- a/backend/models/certificate.js
+++ b/backend/models/certificate.js
@@ -15,6 +15,16 @@ Model.knex(db());
const boolFields = ["is_deleted"];
+const cleanDomainNames = (domainNames) => {
+ // Sort domain_names
+ if (typeof domainNames !== "undefined") {
+ const newDomainNames = domainNames.filter((name) => name !== null);
+ newDomainNames.sort();
+ return newDomainNames;
+ }
+ return [];
+};
+
class Certificate extends Model {
$beforeInsert() {
this.created_on = now();
@@ -26,25 +36,17 @@ class Certificate extends Model {
}
// Default for domain_names
- if (typeof this.domain_names === "undefined") {
- this.domain_names = [];
- }
+ this.domain_names = cleanDomainNames(this.domain_names);
// Default for meta
if (typeof this.meta === "undefined") {
this.meta = {};
}
-
- this.domain_names.sort();
}
$beforeUpdate() {
this.modified_on = now();
-
- // Sort domain_names
- if (typeof this.domain_names !== "undefined") {
- this.domain_names.sort();
- }
+ this.domain_names = cleanDomainNames(this.domain_names);
}
$parseDatabaseJson(json) {
From 84886383a7c0f2b45b197b5fb78df321f445d4ff Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Mon, 18 May 2026 15:21:55 +1000
Subject: [PATCH 58/89] Fix certificates getting null domain names whgen no cn
exists
---
backend/internal/certificate.js | 2 +-
backend/models/certificate.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index 59c13bf6..e37100e6 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -614,7 +614,7 @@ const internalCertificate = {
const certificate = await internalCertificate.update(access, {
id: data.id,
expires_on: moment(validations.certificate.dates.to, "X").format("YYYY-MM-DD HH:mm:ss"),
- domain_names: [validations.certificate.cn],
+ domain_names: validations.certificate.cn ? [validations.certificate.cn] : [],
meta: _.clone(row.meta), // Prevent the update method from changing this value that we'll use later
});
diff --git a/backend/models/certificate.js b/backend/models/certificate.js
index 857c067e..9a349f30 100644
--- a/backend/models/certificate.js
+++ b/backend/models/certificate.js
@@ -18,7 +18,7 @@ const boolFields = ["is_deleted"];
const cleanDomainNames = (domainNames) => {
// Sort domain_names
if (typeof domainNames !== "undefined") {
- const newDomainNames = domainNames.filter((name) => name !== null);
+ const newDomainNames = domainNames.filter((name) => name != null);
newDomainNames.sort();
return newDomainNames;
}
From 7330d0441c68ce60f51bab31d188d5801dc2a1df Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Mon, 18 May 2026 15:34:29 +1000
Subject: [PATCH 59/89] Loose validation on certificate domain names
---
backend/schema/common.json | 6 ++----
backend/schema/components/certificate-object.json | 10 +---------
2 files changed, 3 insertions(+), 13 deletions(-)
diff --git a/backend/schema/common.json b/backend/schema/common.json
index 00b06e00..e56c9f70 100644
--- a/backend/schema/common.json
+++ b/backend/schema/common.json
@@ -77,14 +77,12 @@
"example": 3
},
"domain_names": {
- "description": "Domain Names separated by a comma",
+ "description": "Domain Names array",
"type": "array",
- "minItems": 1,
- "maxItems": 100,
"uniqueItems": true,
"items": {
"type": "string",
- "pattern": "^[^&| @!#%^();:/\\\\}{=+?<>,~`'\"]+$"
+ "minLength": 1
},
"example": ["example.com", "www.example.com"]
},
diff --git a/backend/schema/components/certificate-object.json b/backend/schema/components/certificate-object.json
index 80cd92be..4ef666b4 100644
--- a/backend/schema/components/certificate-object.json
+++ b/backend/schema/components/certificate-object.json
@@ -25,15 +25,7 @@
"example": "My Custom Cert"
},
"domain_names": {
- "description": "Domain Names separated by a comma",
- "type": "array",
- "maxItems": 100,
- "uniqueItems": true,
- "items": {
- "type": "string",
- "pattern": "^[^&| @!#%^();:/\\\\}{=+?<>,~`'\"]+$"
- },
- "example": ["example.com", "www.example.com"]
+ "$ref": "../common.json#/properties/domain_names"
},
"expires_on": {
"description": "Date and time of expiration",
From 2bf9e9b21355b23cd5d89bfdb487e7bc02e457e0 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Mon, 18 May 2026 15:52:52 +1000
Subject: [PATCH 60/89] Support different cert info output in new version of
debian
---
backend/internal/certificate.js | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index e37100e6..a93bf857 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -686,10 +686,18 @@ const internalCertificate = {
// Examples:
// subject=CN = *.jc21.com
// subject=CN = something.example.com
+ // CN=something.example.com
const regex = /(?:subject=)?[^=]+=\s+(\S+)/gim;
const match = regex.exec(result);
if (match && typeof match[1] !== "undefined") {
certData.cn = match[1];
+ } else {
+ // CN is likely formatted differently
+ const regex11 = /CN=(\S+)/gim;
+ const match11 = regex11.exec(result);
+ if (match11 && typeof match11[1] !== "undefined") {
+ certData.cn = match11[1];
+ }
}
const result2 = await utils.execFile("openssl", ["x509", "-in", certificateFile, "-issuer", "-noout"]);
From 8b256c33e9131d7d6d4c1f8cec32560217306599 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Mon, 18 May 2026 15:55:54 +1000
Subject: [PATCH 61/89] Sorted fr locale
---
frontend/src/locale/src/fr.json | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/frontend/src/locale/src/fr.json b/frontend/src/locale/src/fr.json
index cdceb79d..0911eedc 100644
--- a/frontend/src/locale/src/fr.json
+++ b/frontend/src/locale/src/fr.json
@@ -231,7 +231,7 @@
"defaultMessage": "Type de clé"
},
"certificates.key-type-description": {
- "defaultMessage": "RSA est largement compatible, ECDSA est plus rapide et plus sécurisé mais peut ne pas être pris en charge par les anciens systèmes"
+ "defaultMessage": "RSA est largement répandu, ECDSA est plus rapide et plus sécurisé, mais peut ne pas être supporté par les systèmes plus anciens"
},
"certificates.key-type-ecdsa": {
"defaultMessage": "ECDSA 256"
@@ -245,18 +245,6 @@
"certificates.request.title": {
"defaultMessage": "Demander un nouveau certificat"
},
- "certificates.key-type": {
- "defaultMessage": "Type de clé"
- },
- "certificates.key-type-description": {
- "defaultMessage": "RSA est largement répandu, ECDSA est plus rapide et plus sécurisé, mais peut ne pas être supporté par les systèmes plus anciens"
- },
- "certificates.key-type-ecdsa": {
- "defaultMessage": "ECDSA 256"
- },
- "certificates.key-type-rsa": {
- "defaultMessage": "RSA 2048"
- },
"column.access": {
"defaultMessage": "Accès"
},
From 586dfd36a93150a65ace3b8596c11ecad3196ece Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Mon, 18 May 2026 16:12:02 +1000
Subject: [PATCH 62/89] Fix openssl3 formatting of subject cn
---
backend/internal/certificate.js | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index a93bf857..82a47b92 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -683,21 +683,15 @@ const internalCertificate = {
try {
const result = await utils.execFile("openssl", ["x509", "-in", certificateFile, "-subject", "-noout"]);
+ console.log("openssl result: ", result);
// Examples:
// subject=CN = *.jc21.com
// subject=CN = something.example.com
- // CN=something.example.com
- const regex = /(?:subject=)?[^=]+=\s+(\S+)/gim;
+ // subject=CN=*.jc21.com
+ const regex = /(?:subject=)?[^=]+=\s*(\S+)/gim;
const match = regex.exec(result);
if (match && typeof match[1] !== "undefined") {
- certData.cn = match[1];
- } else {
- // CN is likely formatted differently
- const regex11 = /CN=(\S+)/gim;
- const match11 = regex11.exec(result);
- if (match11 && typeof match11[1] !== "undefined") {
- certData.cn = match11[1];
- }
+ certData.cn = match[1].trim();
}
const result2 = await utils.execFile("openssl", ["x509", "-in", certificateFile, "-issuer", "-noout"]);
From ee1f7ba551c245db25b35dc354f18f948e9629ca Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Mon, 18 May 2026 16:55:41 +1000
Subject: [PATCH 63/89] Fall back to error code 500 when not set in error
object
---
backend/app.js | 2 +-
backend/internal/certificate.js | 317 +++++++++++++++++++++++---------
2 files changed, 233 insertions(+), 86 deletions(-)
diff --git a/backend/app.js b/backend/app.js
index 3039bbb8..b1f04766 100644
--- a/backend/app.js
+++ b/backend/app.js
@@ -62,7 +62,7 @@ app.use("/", mainRoutes);
app.use((err, req, res, _) => {
const payload = {
error: {
- code: err.status,
+ code: err.status || 500,
message: err.public ? err.message : "Internal Error",
},
};
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index 82a47b92..0c2e546e 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -1,9 +1,9 @@
import fs from "node:fs";
import https from "node:https";
-import path from "path";
import { ZipArchive } from "archiver";
import _ from "lodash";
import moment from "moment";
+import path from "path";
import { ProxyAgent } from "proxy-agent";
import tempWrite from "temp-write";
import dnsPlugins from "../certbot/dns-plugins.json" with { type: "json" };
@@ -29,7 +29,11 @@ const omissions = () => {
};
const internalCertificate = {
- allowedSslFiles: ["certificate", "certificate_key", "intermediate_certificate"],
+ allowedSslFiles: [
+ "certificate",
+ "certificate_key",
+ "intermediate_certificate",
+ ],
intervalTimeout: 1000 * 60 * 60, // 1 hour
interval: null,
intervalProcessing: false,
@@ -56,7 +60,10 @@ const internalCertificate = {
);
const expirationThreshold = moment()
- .add(internalCertificate.renewBeforeExpirationBy[0], internalCertificate.renewBeforeExpirationBy[1])
+ .add(
+ internalCertificate.renewBeforeExpirationBy[0],
+ internalCertificate.renewBeforeExpirationBy[1],
+ )
.format("YYYY-MM-DD HH:mm:ss");
// Fetch all the letsencrypt certs from the db that will expire within the configured threshold
@@ -137,12 +144,18 @@ const internalCertificate = {
// 6. Re-instate previously disabled hosts
// 1. Find out any hosts that are using any of the hostnames in this cert
- const inUseResult = await internalHost.getHostsWithDomains(certificate.domain_names);
+ const inUseResult = await internalHost.getHostsWithDomains(
+ certificate.domain_names,
+ );
// 2. Disable them in nginx temporarily
await internalCertificate.disableInUseHosts(inUseResult);
- const user = await userModel.query().where("is_deleted", 0).andWhere("id", data.owner_user_id).first();
+ const user = await userModel
+ .query()
+ .where("is_deleted", 0)
+ .andWhere("id", data.owner_user_id)
+ .first();
if (!user?.email) {
throw new error.ValidationError(
"A valid email address must be set on your user account to use Let's Encrypt",
@@ -154,7 +167,10 @@ const internalCertificate = {
try {
await internalNginx.reload();
// 4. Request cert
- await internalCertificate.requestLetsEncryptSslWithDnsChallenge(certificate, user.email);
+ await internalCertificate.requestLetsEncryptSslWithDnsChallenge(
+ certificate,
+ user.email,
+ );
await internalNginx.reload();
// 6. Re-instate previously disabled hosts
await internalCertificate.enableInUseHosts(inUseResult);
@@ -171,7 +187,10 @@ const internalCertificate = {
await internalNginx.reload();
setTimeout(() => {}, 5000);
// 4. Request cert
- await internalCertificate.requestLetsEncryptSsl(certificate, user.email);
+ await internalCertificate.requestLetsEncryptSsl(
+ certificate,
+ user.email,
+ );
// 5. Remove LE config
await internalNginx.deleteLetsEncryptRequestConfig(certificate);
await internalNginx.reload();
@@ -195,7 +214,9 @@ const internalCertificate = {
const savedRow = await certificateModel
.query()
.patchAndFetchById(certificate.id, {
- expires_on: moment(certInfo.dates.to, "X").format("YYYY-MM-DD HH:mm:ss"),
+ expires_on: moment(certInfo.dates.to, "X").format(
+ "YYYY-MM-DD HH:mm:ss",
+ ),
})
.then(utils.omitRow(omissions()));
@@ -204,7 +225,11 @@ const internalCertificate = {
letsencrypt_certificate: certInfo,
});
- await internalCertificate.addCreatedAuditLog(access, certificate.id, savedRow);
+ await internalCertificate.addCreatedAuditLog(
+ access,
+ certificate.id,
+ savedRow,
+ );
return savedRow;
} catch (err) {
@@ -222,7 +247,11 @@ const internalCertificate = {
data.meta = _.assign({}, data.meta || {}, certificate.meta);
// Add to audit log
- await internalCertificate.addCreatedAuditLog(access, certificate.id, utils.omitRow(omissions())(data));
+ await internalCertificate.addCreatedAuditLog(
+ access,
+ certificate.id,
+ utils.omitRow(omissions())(data),
+ );
return utils.omitRow(omissions())(certificate);
},
@@ -321,7 +350,9 @@ const internalCertificate = {
row.proxy_hosts = utils.omitRows(["is_deleted"])(row.proxy_hosts);
}
if (typeof row.redirection_hosts !== "undefined") {
- row.redirection_hosts = utils.omitRows(["is_deleted"])(row.redirection_hosts);
+ row.redirection_hosts = utils.omitRows(["is_deleted"])(
+ row.redirection_hosts,
+ );
}
if (typeof row.dead_hosts !== "undefined") {
row.dead_hosts = utils.omitRows(["is_deleted"])(row.dead_hosts);
@@ -344,7 +375,9 @@ const internalCertificate = {
if (certificate.provider === "letsencrypt") {
const zipDirectory = internalCertificate.getLiveCertPath(data.id);
if (!fs.existsSync(zipDirectory)) {
- throw new error.ItemNotFoundError(`Certificate ${certificate.nice_name} does not exists`);
+ throw new error.ItemNotFoundError(
+ `Certificate ${certificate.nice_name} does not exists`,
+ );
}
const certFiles = fs
@@ -361,7 +394,9 @@ const internalCertificate = {
fileName: opName,
};
}
- throw new error.ValidationError("Only Let'sEncrypt certificates can be downloaded");
+ throw new error.ValidationError(
+ "Only Let'sEncrypt certificates can be downloaded",
+ );
},
/**
@@ -470,7 +505,10 @@ const internalCertificate = {
* @returns {Promise}
*/
getCount: async (userId, visibility) => {
- const query = certificateModel.query().count("id as count").where("is_deleted", 0);
+ const query = certificateModel
+ .query()
+ .count("id as count")
+ .where("is_deleted", 0);
if (visibility !== "all") {
query.andWhere("owner_user_id", userId);
@@ -518,13 +556,17 @@ const internalCertificate = {
});
}).then(() => {
return new Promise((resolve, reject) => {
- fs.writeFile(`${dir}/privkey.pem`, certificate.meta.certificate_key, (err) => {
- if (err) {
- reject(err);
- } else {
- resolve();
- }
- });
+ fs.writeFile(
+ `${dir}/privkey.pem`,
+ certificate.meta.certificate_key,
+ (err) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve();
+ }
+ },
+ );
});
});
},
@@ -597,7 +639,9 @@ const internalCertificate = {
upload: async (access, data) => {
const row = await internalCertificate.get(access, { id: data.id });
if (row.provider !== "other") {
- throw new error.ValidationError("Cannot upload certificates for this type of provider");
+ throw new error.ValidationError(
+ "Cannot upload certificates for this type of provider",
+ );
}
const validations = await internalCertificate.validate(data);
@@ -613,8 +657,12 @@ const internalCertificate = {
const certificate = await internalCertificate.update(access, {
id: data.id,
- expires_on: moment(validations.certificate.dates.to, "X").format("YYYY-MM-DD HH:mm:ss"),
- domain_names: validations.certificate.cn ? [validations.certificate.cn] : [],
+ expires_on: moment(validations.certificate.dates.to, "X").format(
+ "YYYY-MM-DD HH:mm:ss",
+ ),
+ domain_names: validations.certificate.cn
+ ? [validations.certificate.cn]
+ : [],
meta: _.clone(row.meta), // Prevent the update method from changing this value that we'll use later
});
@@ -638,7 +686,9 @@ const internalCertificate = {
}, 10000);
try {
- const result = await utils.exec(`openssl pkey -in ${filepath} -check -noout 2>&1 `);
+ const result = await utils.exec(
+ `openssl pkey -in ${filepath} -check -noout 2>&1 `,
+ );
clearTimeout(failTimeout);
if (!result.toLowerCase().includes("key is valid")) {
throw new error.ValidationError(`Result Validation Error: ${result}`);
@@ -648,7 +698,10 @@ const internalCertificate = {
} catch (err) {
clearTimeout(failTimeout);
fs.unlinkSync(filepath);
- throw new error.ValidationError(`Certificate Key is not valid (${err.message})`, err);
+ throw new error.ValidationError(
+ `Certificate Key is not valid (${err.message})`,
+ err,
+ );
}
},
@@ -662,7 +715,10 @@ const internalCertificate = {
getCertificateInfo: async (certificate, throwExpired) => {
const filepath = await tempWrite(certificate);
try {
- const certData = await internalCertificate.getCertificateInfoFromFile(filepath, throwExpired);
+ const certData = await internalCertificate.getCertificateInfoFromFile(
+ filepath,
+ throwExpired,
+ );
fs.unlinkSync(filepath);
return certData;
} catch (err) {
@@ -682,7 +738,13 @@ const internalCertificate = {
const certData = {};
try {
- const result = await utils.execFile("openssl", ["x509", "-in", certificateFile, "-subject", "-noout"]);
+ const result = await utils.execFile("openssl", [
+ "x509",
+ "-in",
+ certificateFile,
+ "-subject",
+ "-noout",
+ ]);
console.log("openssl result: ", result);
// Examples:
// subject=CN = *.jc21.com
@@ -694,7 +756,13 @@ const internalCertificate = {
certData.cn = match[1].trim();
}
- const result2 = await utils.execFile("openssl", ["x509", "-in", certificateFile, "-issuer", "-noout"]);
+ const result2 = await utils.execFile("openssl", [
+ "x509",
+ "-in",
+ certificateFile,
+ "-issuer",
+ "-noout",
+ ]);
// Examples:
// issuer=C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
// issuer=C = US, O = Let's Encrypt, CN = E5
@@ -705,7 +773,13 @@ const internalCertificate = {
certData.issuer = match2[1];
}
- const result3 = await utils.execFile("openssl", ["x509", "-in", certificateFile, "-dates", "-noout"]);
+ const result3 = await utils.execFile("openssl", [
+ "x509",
+ "-in",
+ certificateFile,
+ "-dates",
+ "-noout",
+ ]);
// notBefore=Jul 14 04:04:29 2018 GMT
// notAfter=Oct 12 04:04:29 2018 GMT
let validFrom = null;
@@ -717,7 +791,10 @@ const internalCertificate = {
const match = regex.exec(str.trim());
if (match && typeof match[2] !== "undefined") {
- const date = Number.parseInt(moment(match[2], "MMM DD HH:mm:ss YYYY z").format("X"), 10);
+ const date = Number.parseInt(
+ moment(match[2], "MMM DD HH:mm:ss YYYY z").format("X"),
+ 10,
+ );
if (match[1].toLowerCase() === "notbefore") {
validFrom = date;
@@ -729,10 +806,15 @@ const internalCertificate = {
});
if (!validFrom || !validTo) {
- throw new error.ValidationError(`Could not determine dates from certificate: ${result}`);
+ throw new error.ValidationError(
+ `Could not determine dates from certificate: ${result}`,
+ );
}
- if (throw_expired && validTo < Number.parseInt(moment().format("X"), 10)) {
+ if (
+ throw_expired &&
+ validTo < Number.parseInt(moment().format("X"), 10)
+ ) {
throw new error.ValidationError("Certificate has expired");
}
@@ -743,7 +825,10 @@ const internalCertificate = {
return certData;
} catch (err) {
- throw new error.ValidationError(`Certificate is not valid (${err.message})`, err);
+ throw new error.ValidationError(
+ `Certificate is not valid (${err.message})`,
+ err,
+ );
}
},
@@ -781,6 +866,7 @@ const internalCertificate = {
const args = [
"certonly",
+ "-n", // non-interactive
"--config",
letsencryptConfig,
"--work-dir",
@@ -829,13 +915,18 @@ const internalCertificate = {
const credentialsLocation = `/etc/letsencrypt/credentials/credentials-${certificate.id}`;
fs.mkdirSync("/etc/letsencrypt/credentials", { recursive: true });
- fs.writeFileSync(credentialsLocation, certificate.meta.dns_provider_credentials, { mode: 0o600 });
+ fs.writeFileSync(
+ credentialsLocation,
+ certificate.meta.dns_provider_credentials,
+ { mode: 0o600 },
+ );
// Whether the plugin has a ---credentials argument
const hasConfigArg = certificate.meta.dns_provider !== "route53";
const args = [
"certonly",
+ "-n", // non-interactive
"--config",
letsencryptConfig,
"--work-dir",
@@ -856,7 +947,10 @@ const internalCertificate = {
];
if (hasConfigArg) {
- args.push(`--${dnsPlugin.full_plugin_name}-credentials`, credentialsLocation);
+ args.push(
+ `--${dnsPlugin.full_plugin_name}-credentials`,
+ credentialsLocation,
+ );
}
if (certificate.meta.propagation_seconds !== undefined) {
args.push(
@@ -870,7 +964,10 @@ const internalCertificate = {
args.push("--key-type", certificate.meta.key_type);
}
- const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
+ const adds = internalCertificate.getAdditionalCertbotArgs(
+ certificate.id,
+ certificate.meta.dns_provider,
+ );
args.push(...adds.args);
logger.info(`Command: ${certbotCommand} ${args ? args.join(" ") : ""}`);
@@ -906,9 +1003,13 @@ const internalCertificate = {
`${internalCertificate.getLiveCertPath(certificate.id)}/fullchain.pem`,
);
- const updatedCertificate = await certificateModel.query().patchAndFetchById(certificate.id, {
- expires_on: moment(certInfo.dates.to, "X").format("YYYY-MM-DD HH:mm:ss"),
- });
+ const updatedCertificate = await certificateModel
+ .query()
+ .patchAndFetchById(certificate.id, {
+ expires_on: moment(certInfo.dates.to, "X").format(
+ "YYYY-MM-DD HH:mm:ss",
+ ),
+ });
// Add to audit log
await internalAuditLog.add(access, {
@@ -921,7 +1022,9 @@ const internalCertificate = {
return updatedCertificate;
}
- throw new error.ValidationError("Only Let'sEncrypt certificates can be renewed");
+ throw new error.ValidationError(
+ "Only Let'sEncrypt certificates can be renewed",
+ );
},
/**
@@ -955,7 +1058,10 @@ const internalCertificate = {
args.push("--key-type", certificate.meta.key_type);
}
- const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
+ const adds = internalCertificate.getAdditionalCertbotArgs(
+ certificate.id,
+ certificate.meta.dns_provider,
+ );
args.push(...adds.args);
logger.info(`Command: ${certbotCommand} ${args ? args.join(" ") : ""}`);
@@ -1001,7 +1107,10 @@ const internalCertificate = {
args.push("--key-type", certificate.meta.key_type);
}
- const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
+ const adds = internalCertificate.getAdditionalCertbotArgs(
+ certificate.id,
+ certificate.meta.dns_provider,
+ );
args.push(...adds.args);
logger.info(`Command: ${certbotCommand} ${args ? args.join(" ") : ""}`);
@@ -1041,7 +1150,9 @@ const internalCertificate = {
try {
const result = await utils.execFile(certbotCommand, args, adds.opts);
- await utils.exec(`rm -f '/etc/letsencrypt/credentials/credentials-${certificate.id}' || true`);
+ await utils.exec(
+ `rm -f '/etc/letsencrypt/credentials/credentials-${certificate.id}' || true`,
+ );
logger.info(result);
return result;
} catch (err) {
@@ -1058,7 +1169,10 @@ const internalCertificate = {
*/
hasLetsEncryptSslCerts: (certificate) => {
const letsencryptPath = internalCertificate.getLiveCertPath(certificate.id);
- return fs.existsSync(`${letsencryptPath}/fullchain.pem`) && fs.existsSync(`${letsencryptPath}/privkey.pem`);
+ return (
+ fs.existsSync(`${letsencryptPath}/fullchain.pem`) &&
+ fs.existsSync(`${letsencryptPath}/privkey.pem`)
+ );
},
/**
@@ -1072,15 +1186,24 @@ const internalCertificate = {
disableInUseHosts: async (inUseResult) => {
if (inUseResult?.total_count) {
if (inUseResult?.proxy_hosts.length) {
- await internalNginx.bulkDeleteConfigs("proxy_host", inUseResult.proxy_hosts);
+ await internalNginx.bulkDeleteConfigs(
+ "proxy_host",
+ inUseResult.proxy_hosts,
+ );
}
if (inUseResult?.redirection_hosts.length) {
- await internalNginx.bulkDeleteConfigs("redirection_host", inUseResult.redirection_hosts);
+ await internalNginx.bulkDeleteConfigs(
+ "redirection_host",
+ inUseResult.redirection_hosts,
+ );
}
if (inUseResult?.dead_hosts.length) {
- await internalNginx.bulkDeleteConfigs("dead_host", inUseResult.dead_hosts);
+ await internalNginx.bulkDeleteConfigs(
+ "dead_host",
+ inUseResult.dead_hosts,
+ );
}
}
},
@@ -1096,15 +1219,24 @@ const internalCertificate = {
enableInUseHosts: async (inUseResult) => {
if (inUseResult.total_count) {
if (inUseResult.proxy_hosts.length) {
- await internalNginx.bulkGenerateConfigs("proxy_host", inUseResult.proxy_hosts);
+ await internalNginx.bulkGenerateConfigs(
+ "proxy_host",
+ inUseResult.proxy_hosts,
+ );
}
if (inUseResult.redirection_hosts.length) {
- await internalNginx.bulkGenerateConfigs("redirection_host", inUseResult.redirection_hosts);
+ await internalNginx.bulkGenerateConfigs(
+ "redirection_host",
+ inUseResult.redirection_hosts,
+ );
}
if (inUseResult.dead_hosts.length) {
- await internalNginx.bulkGenerateConfigs("dead_host", inUseResult.dead_hosts);
+ await internalNginx.bulkGenerateConfigs(
+ "dead_host",
+ inUseResult.dead_hosts,
+ );
}
}
},
@@ -1119,7 +1251,8 @@ const internalCertificate = {
await access.can("certificates:list");
// Create a test challenge file
- const testChallengeDir = "/data/letsencrypt-acme-challenge/.well-known/acme-challenge";
+ const testChallengeDir =
+ "/data/letsencrypt-acme-challenge/.well-known/acme-challenge";
const testChallengeFile = `${testChallengeDir}/test-challenge`;
fs.mkdirSync(testChallengeDir, { recursive: true });
fs.writeFileSync(testChallengeFile, "Success", { encoding: "utf8" });
@@ -1151,38 +1284,42 @@ const internalCertificate = {
};
const result = await new Promise((resolve) => {
- const req = https.request("https://www.site24x7.com/tools/restapi-tester", options, (res) => {
- let responseBody = "";
+ const req = https.request(
+ "https://www.site24x7.com/tools/restapi-tester",
+ options,
+ (res) => {
+ let responseBody = "";
- res.on("data", (chunk) => {
- responseBody = responseBody + chunk;
- });
+ res.on("data", (chunk) => {
+ responseBody = responseBody + chunk;
+ });
- res.on("end", () => {
- try {
- const parsedBody = JSON.parse(`${responseBody}`);
- if (res.statusCode !== 200) {
- logger.warn(
- `Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned: ${parsedBody.message}`,
- );
+ res.on("end", () => {
+ try {
+ const parsedBody = JSON.parse(`${responseBody}`);
+ if (res.statusCode !== 200) {
+ logger.warn(
+ `Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned: ${parsedBody.message}`,
+ );
+ resolve(undefined);
+ } else {
+ resolve(parsedBody);
+ }
+ } catch (err) {
+ if (res.statusCode !== 200) {
+ logger.warn(
+ `Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned`,
+ );
+ } else {
+ logger.warn(
+ `Failed to test HTTP challenge for domain ${domain} because response failed to be parsed: ${err.message}`,
+ );
+ }
resolve(undefined);
- } else {
- resolve(parsedBody);
}
- } catch (err) {
- if (res.statusCode !== 200) {
- logger.warn(
- `Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned`,
- );
- } else {
- logger.warn(
- `Failed to test HTTP challenge for domain ${domain} because response failed to be parsed: ${err.message}`,
- );
- }
- resolve(undefined);
- }
- });
- });
+ });
+ },
+ );
// Make sure to write the request body.
req.write(formBody);
@@ -1203,7 +1340,10 @@ const internalCertificate = {
);
return `other:${result.error.msg}`;
}
- if (`${result.responsecode}` === "200" && result.htmlresponse === "Success") {
+ if (
+ `${result.responsecode}` === "200" &&
+ result.htmlresponse === "Success"
+ ) {
// Server exists and has responded with the correct data
return "ok";
}
@@ -1217,19 +1357,26 @@ const internalCertificate = {
}
if (`${result.responsecode}` === "404") {
// Server exists but responded with a 404
- logger.info(`HTTP challenge test failed for domain ${domain} because code 404 was returned`);
+ logger.info(
+ `HTTP challenge test failed for domain ${domain} because code 404 was returned`,
+ );
return "404";
}
if (
`${result.responsecode}` === "0" ||
- (typeof result.reason === "string" && result.reason.toLowerCase() === "host unavailable")
+ (typeof result.reason === "string" &&
+ result.reason.toLowerCase() === "host unavailable")
) {
// Server does not exist at domain
- logger.info(`HTTP challenge test failed for domain ${domain} the host was not found`);
+ logger.info(
+ `HTTP challenge test failed for domain ${domain} the host was not found`,
+ );
return "no-host";
}
// Other errors
- logger.info(`HTTP challenge test failed for domain ${domain} because code ${result.responsecode} was returned`);
+ logger.info(
+ `HTTP challenge test failed for domain ${domain} because code ${result.responsecode} was returned`,
+ );
return `other:${result.responsecode}`;
},
From f53bf88f4dfec6732893dc97a544fc6b4967a044 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Tue, 19 May 2026 08:04:49 +1000
Subject: [PATCH 64/89] Update cypress docker version, generate custom certs
each time
---
backend/internal/certificate.js | 317 +++++-------------
test/cypress/Dockerfile | 2 +-
test/cypress/e2e/api/Certificates.cy.js | 1 +
test/cypress/e2e/api/Ldap.cy.js | 2 +-
test/cypress/e2e/api/OAuth.cy.js | 2 +-
.../cypress/fixtures/test.example.com-key.pem | 28 --
test/cypress/fixtures/test.example.com.pem | 26 --
test/cypress/support/commands.mjs | 25 +-
test/package.json | 1 +
test/yarn.lock | 18 +
10 files changed, 133 insertions(+), 289 deletions(-)
delete mode 100644 test/cypress/fixtures/test.example.com-key.pem
delete mode 100644 test/cypress/fixtures/test.example.com.pem
diff --git a/backend/internal/certificate.js b/backend/internal/certificate.js
index 0c2e546e..6498422c 100644
--- a/backend/internal/certificate.js
+++ b/backend/internal/certificate.js
@@ -1,9 +1,9 @@
import fs from "node:fs";
import https from "node:https";
+import path from "path";
import { ZipArchive } from "archiver";
import _ from "lodash";
import moment from "moment";
-import path from "path";
import { ProxyAgent } from "proxy-agent";
import tempWrite from "temp-write";
import dnsPlugins from "../certbot/dns-plugins.json" with { type: "json" };
@@ -29,11 +29,7 @@ const omissions = () => {
};
const internalCertificate = {
- allowedSslFiles: [
- "certificate",
- "certificate_key",
- "intermediate_certificate",
- ],
+ allowedSslFiles: ["certificate", "certificate_key", "intermediate_certificate"],
intervalTimeout: 1000 * 60 * 60, // 1 hour
interval: null,
intervalProcessing: false,
@@ -60,10 +56,7 @@ const internalCertificate = {
);
const expirationThreshold = moment()
- .add(
- internalCertificate.renewBeforeExpirationBy[0],
- internalCertificate.renewBeforeExpirationBy[1],
- )
+ .add(internalCertificate.renewBeforeExpirationBy[0], internalCertificate.renewBeforeExpirationBy[1])
.format("YYYY-MM-DD HH:mm:ss");
// Fetch all the letsencrypt certs from the db that will expire within the configured threshold
@@ -144,18 +137,12 @@ const internalCertificate = {
// 6. Re-instate previously disabled hosts
// 1. Find out any hosts that are using any of the hostnames in this cert
- const inUseResult = await internalHost.getHostsWithDomains(
- certificate.domain_names,
- );
+ const inUseResult = await internalHost.getHostsWithDomains(certificate.domain_names);
// 2. Disable them in nginx temporarily
await internalCertificate.disableInUseHosts(inUseResult);
- const user = await userModel
- .query()
- .where("is_deleted", 0)
- .andWhere("id", data.owner_user_id)
- .first();
+ const user = await userModel.query().where("is_deleted", 0).andWhere("id", data.owner_user_id).first();
if (!user?.email) {
throw new error.ValidationError(
"A valid email address must be set on your user account to use Let's Encrypt",
@@ -167,10 +154,7 @@ const internalCertificate = {
try {
await internalNginx.reload();
// 4. Request cert
- await internalCertificate.requestLetsEncryptSslWithDnsChallenge(
- certificate,
- user.email,
- );
+ await internalCertificate.requestLetsEncryptSslWithDnsChallenge(certificate, user.email);
await internalNginx.reload();
// 6. Re-instate previously disabled hosts
await internalCertificate.enableInUseHosts(inUseResult);
@@ -187,10 +171,7 @@ const internalCertificate = {
await internalNginx.reload();
setTimeout(() => {}, 5000);
// 4. Request cert
- await internalCertificate.requestLetsEncryptSsl(
- certificate,
- user.email,
- );
+ await internalCertificate.requestLetsEncryptSsl(certificate, user.email);
// 5. Remove LE config
await internalNginx.deleteLetsEncryptRequestConfig(certificate);
await internalNginx.reload();
@@ -214,9 +195,7 @@ const internalCertificate = {
const savedRow = await certificateModel
.query()
.patchAndFetchById(certificate.id, {
- expires_on: moment(certInfo.dates.to, "X").format(
- "YYYY-MM-DD HH:mm:ss",
- ),
+ expires_on: moment(certInfo.dates.to, "X").format("YYYY-MM-DD HH:mm:ss"),
})
.then(utils.omitRow(omissions()));
@@ -225,11 +204,7 @@ const internalCertificate = {
letsencrypt_certificate: certInfo,
});
- await internalCertificate.addCreatedAuditLog(
- access,
- certificate.id,
- savedRow,
- );
+ await internalCertificate.addCreatedAuditLog(access, certificate.id, savedRow);
return savedRow;
} catch (err) {
@@ -247,11 +222,7 @@ const internalCertificate = {
data.meta = _.assign({}, data.meta || {}, certificate.meta);
// Add to audit log
- await internalCertificate.addCreatedAuditLog(
- access,
- certificate.id,
- utils.omitRow(omissions())(data),
- );
+ await internalCertificate.addCreatedAuditLog(access, certificate.id, utils.omitRow(omissions())(data));
return utils.omitRow(omissions())(certificate);
},
@@ -350,9 +321,7 @@ const internalCertificate = {
row.proxy_hosts = utils.omitRows(["is_deleted"])(row.proxy_hosts);
}
if (typeof row.redirection_hosts !== "undefined") {
- row.redirection_hosts = utils.omitRows(["is_deleted"])(
- row.redirection_hosts,
- );
+ row.redirection_hosts = utils.omitRows(["is_deleted"])(row.redirection_hosts);
}
if (typeof row.dead_hosts !== "undefined") {
row.dead_hosts = utils.omitRows(["is_deleted"])(row.dead_hosts);
@@ -375,9 +344,7 @@ const internalCertificate = {
if (certificate.provider === "letsencrypt") {
const zipDirectory = internalCertificate.getLiveCertPath(data.id);
if (!fs.existsSync(zipDirectory)) {
- throw new error.ItemNotFoundError(
- `Certificate ${certificate.nice_name} does not exists`,
- );
+ throw new error.ItemNotFoundError(`Certificate ${certificate.nice_name} does not exists`);
}
const certFiles = fs
@@ -394,9 +361,7 @@ const internalCertificate = {
fileName: opName,
};
}
- throw new error.ValidationError(
- "Only Let'sEncrypt certificates can be downloaded",
- );
+ throw new error.ValidationError("Only Let'sEncrypt certificates can be downloaded");
},
/**
@@ -505,10 +470,7 @@ const internalCertificate = {
* @returns {Promise}
*/
getCount: async (userId, visibility) => {
- const query = certificateModel
- .query()
- .count("id as count")
- .where("is_deleted", 0);
+ const query = certificateModel.query().count("id as count").where("is_deleted", 0);
if (visibility !== "all") {
query.andWhere("owner_user_id", userId);
@@ -556,17 +518,13 @@ const internalCertificate = {
});
}).then(() => {
return new Promise((resolve, reject) => {
- fs.writeFile(
- `${dir}/privkey.pem`,
- certificate.meta.certificate_key,
- (err) => {
- if (err) {
- reject(err);
- } else {
- resolve();
- }
- },
- );
+ fs.writeFile(`${dir}/privkey.pem`, certificate.meta.certificate_key, (err) => {
+ if (err) {
+ reject(err);
+ } else {
+ resolve();
+ }
+ });
});
});
},
@@ -639,9 +597,7 @@ const internalCertificate = {
upload: async (access, data) => {
const row = await internalCertificate.get(access, { id: data.id });
if (row.provider !== "other") {
- throw new error.ValidationError(
- "Cannot upload certificates for this type of provider",
- );
+ throw new error.ValidationError("Cannot upload certificates for this type of provider");
}
const validations = await internalCertificate.validate(data);
@@ -657,12 +613,8 @@ const internalCertificate = {
const certificate = await internalCertificate.update(access, {
id: data.id,
- expires_on: moment(validations.certificate.dates.to, "X").format(
- "YYYY-MM-DD HH:mm:ss",
- ),
- domain_names: validations.certificate.cn
- ? [validations.certificate.cn]
- : [],
+ expires_on: moment(validations.certificate.dates.to, "X").format("YYYY-MM-DD HH:mm:ss"),
+ domain_names: validations.certificate.cn ? [validations.certificate.cn] : [],
meta: _.clone(row.meta), // Prevent the update method from changing this value that we'll use later
});
@@ -686,9 +638,7 @@ const internalCertificate = {
}, 10000);
try {
- const result = await utils.exec(
- `openssl pkey -in ${filepath} -check -noout 2>&1 `,
- );
+ const result = await utils.exec(`openssl pkey -in ${filepath} -check -noout 2>&1 `);
clearTimeout(failTimeout);
if (!result.toLowerCase().includes("key is valid")) {
throw new error.ValidationError(`Result Validation Error: ${result}`);
@@ -698,10 +648,7 @@ const internalCertificate = {
} catch (err) {
clearTimeout(failTimeout);
fs.unlinkSync(filepath);
- throw new error.ValidationError(
- `Certificate Key is not valid (${err.message})`,
- err,
- );
+ throw new error.ValidationError(`Certificate Key is not valid (${err.message})`, err);
}
},
@@ -715,10 +662,7 @@ const internalCertificate = {
getCertificateInfo: async (certificate, throwExpired) => {
const filepath = await tempWrite(certificate);
try {
- const certData = await internalCertificate.getCertificateInfoFromFile(
- filepath,
- throwExpired,
- );
+ const certData = await internalCertificate.getCertificateInfoFromFile(filepath, throwExpired);
fs.unlinkSync(filepath);
return certData;
} catch (err) {
@@ -738,14 +682,8 @@ const internalCertificate = {
const certData = {};
try {
- const result = await utils.execFile("openssl", [
- "x509",
- "-in",
- certificateFile,
- "-subject",
- "-noout",
- ]);
- console.log("openssl result: ", result);
+ const result = await utils.execFile("openssl", ["x509", "-in", certificateFile, "-subject", "-noout"]);
+
// Examples:
// subject=CN = *.jc21.com
// subject=CN = something.example.com
@@ -756,13 +694,7 @@ const internalCertificate = {
certData.cn = match[1].trim();
}
- const result2 = await utils.execFile("openssl", [
- "x509",
- "-in",
- certificateFile,
- "-issuer",
- "-noout",
- ]);
+ const result2 = await utils.execFile("openssl", ["x509", "-in", certificateFile, "-issuer", "-noout"]);
// Examples:
// issuer=C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
// issuer=C = US, O = Let's Encrypt, CN = E5
@@ -773,13 +705,7 @@ const internalCertificate = {
certData.issuer = match2[1];
}
- const result3 = await utils.execFile("openssl", [
- "x509",
- "-in",
- certificateFile,
- "-dates",
- "-noout",
- ]);
+ const result3 = await utils.execFile("openssl", ["x509", "-in", certificateFile, "-dates", "-noout"]);
// notBefore=Jul 14 04:04:29 2018 GMT
// notAfter=Oct 12 04:04:29 2018 GMT
let validFrom = null;
@@ -791,10 +717,7 @@ const internalCertificate = {
const match = regex.exec(str.trim());
if (match && typeof match[2] !== "undefined") {
- const date = Number.parseInt(
- moment(match[2], "MMM DD HH:mm:ss YYYY z").format("X"),
- 10,
- );
+ const date = Number.parseInt(moment(match[2], "MMM DD HH:mm:ss YYYY z").format("X"), 10);
if (match[1].toLowerCase() === "notbefore") {
validFrom = date;
@@ -806,15 +729,10 @@ const internalCertificate = {
});
if (!validFrom || !validTo) {
- throw new error.ValidationError(
- `Could not determine dates from certificate: ${result}`,
- );
+ throw new error.ValidationError(`Could not determine dates from certificate: ${result}`);
}
- if (
- throw_expired &&
- validTo < Number.parseInt(moment().format("X"), 10)
- ) {
+ if (throw_expired && validTo < Number.parseInt(moment().format("X"), 10)) {
throw new error.ValidationError("Certificate has expired");
}
@@ -825,10 +743,7 @@ const internalCertificate = {
return certData;
} catch (err) {
- throw new error.ValidationError(
- `Certificate is not valid (${err.message})`,
- err,
- );
+ throw new error.ValidationError(`Certificate is not valid (${err.message})`, err);
}
},
@@ -915,11 +830,7 @@ const internalCertificate = {
const credentialsLocation = `/etc/letsencrypt/credentials/credentials-${certificate.id}`;
fs.mkdirSync("/etc/letsencrypt/credentials", { recursive: true });
- fs.writeFileSync(
- credentialsLocation,
- certificate.meta.dns_provider_credentials,
- { mode: 0o600 },
- );
+ fs.writeFileSync(credentialsLocation, certificate.meta.dns_provider_credentials, { mode: 0o600 });
// Whether the plugin has a ---credentials argument
const hasConfigArg = certificate.meta.dns_provider !== "route53";
@@ -947,10 +858,7 @@ const internalCertificate = {
];
if (hasConfigArg) {
- args.push(
- `--${dnsPlugin.full_plugin_name}-credentials`,
- credentialsLocation,
- );
+ args.push(`--${dnsPlugin.full_plugin_name}-credentials`, credentialsLocation);
}
if (certificate.meta.propagation_seconds !== undefined) {
args.push(
@@ -964,10 +872,7 @@ const internalCertificate = {
args.push("--key-type", certificate.meta.key_type);
}
- const adds = internalCertificate.getAdditionalCertbotArgs(
- certificate.id,
- certificate.meta.dns_provider,
- );
+ const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
args.push(...adds.args);
logger.info(`Command: ${certbotCommand} ${args ? args.join(" ") : ""}`);
@@ -1003,13 +908,9 @@ const internalCertificate = {
`${internalCertificate.getLiveCertPath(certificate.id)}/fullchain.pem`,
);
- const updatedCertificate = await certificateModel
- .query()
- .patchAndFetchById(certificate.id, {
- expires_on: moment(certInfo.dates.to, "X").format(
- "YYYY-MM-DD HH:mm:ss",
- ),
- });
+ const updatedCertificate = await certificateModel.query().patchAndFetchById(certificate.id, {
+ expires_on: moment(certInfo.dates.to, "X").format("YYYY-MM-DD HH:mm:ss"),
+ });
// Add to audit log
await internalAuditLog.add(access, {
@@ -1022,9 +923,7 @@ const internalCertificate = {
return updatedCertificate;
}
- throw new error.ValidationError(
- "Only Let'sEncrypt certificates can be renewed",
- );
+ throw new error.ValidationError("Only Let'sEncrypt certificates can be renewed");
},
/**
@@ -1058,10 +957,7 @@ const internalCertificate = {
args.push("--key-type", certificate.meta.key_type);
}
- const adds = internalCertificate.getAdditionalCertbotArgs(
- certificate.id,
- certificate.meta.dns_provider,
- );
+ const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
args.push(...adds.args);
logger.info(`Command: ${certbotCommand} ${args ? args.join(" ") : ""}`);
@@ -1107,10 +1003,7 @@ const internalCertificate = {
args.push("--key-type", certificate.meta.key_type);
}
- const adds = internalCertificate.getAdditionalCertbotArgs(
- certificate.id,
- certificate.meta.dns_provider,
- );
+ const adds = internalCertificate.getAdditionalCertbotArgs(certificate.id, certificate.meta.dns_provider);
args.push(...adds.args);
logger.info(`Command: ${certbotCommand} ${args ? args.join(" ") : ""}`);
@@ -1150,9 +1043,7 @@ const internalCertificate = {
try {
const result = await utils.execFile(certbotCommand, args, adds.opts);
- await utils.exec(
- `rm -f '/etc/letsencrypt/credentials/credentials-${certificate.id}' || true`,
- );
+ await utils.exec(`rm -f '/etc/letsencrypt/credentials/credentials-${certificate.id}' || true`);
logger.info(result);
return result;
} catch (err) {
@@ -1169,10 +1060,7 @@ const internalCertificate = {
*/
hasLetsEncryptSslCerts: (certificate) => {
const letsencryptPath = internalCertificate.getLiveCertPath(certificate.id);
- return (
- fs.existsSync(`${letsencryptPath}/fullchain.pem`) &&
- fs.existsSync(`${letsencryptPath}/privkey.pem`)
- );
+ return fs.existsSync(`${letsencryptPath}/fullchain.pem`) && fs.existsSync(`${letsencryptPath}/privkey.pem`);
},
/**
@@ -1186,24 +1074,15 @@ const internalCertificate = {
disableInUseHosts: async (inUseResult) => {
if (inUseResult?.total_count) {
if (inUseResult?.proxy_hosts.length) {
- await internalNginx.bulkDeleteConfigs(
- "proxy_host",
- inUseResult.proxy_hosts,
- );
+ await internalNginx.bulkDeleteConfigs("proxy_host", inUseResult.proxy_hosts);
}
if (inUseResult?.redirection_hosts.length) {
- await internalNginx.bulkDeleteConfigs(
- "redirection_host",
- inUseResult.redirection_hosts,
- );
+ await internalNginx.bulkDeleteConfigs("redirection_host", inUseResult.redirection_hosts);
}
if (inUseResult?.dead_hosts.length) {
- await internalNginx.bulkDeleteConfigs(
- "dead_host",
- inUseResult.dead_hosts,
- );
+ await internalNginx.bulkDeleteConfigs("dead_host", inUseResult.dead_hosts);
}
}
},
@@ -1219,24 +1098,15 @@ const internalCertificate = {
enableInUseHosts: async (inUseResult) => {
if (inUseResult.total_count) {
if (inUseResult.proxy_hosts.length) {
- await internalNginx.bulkGenerateConfigs(
- "proxy_host",
- inUseResult.proxy_hosts,
- );
+ await internalNginx.bulkGenerateConfigs("proxy_host", inUseResult.proxy_hosts);
}
if (inUseResult.redirection_hosts.length) {
- await internalNginx.bulkGenerateConfigs(
- "redirection_host",
- inUseResult.redirection_hosts,
- );
+ await internalNginx.bulkGenerateConfigs("redirection_host", inUseResult.redirection_hosts);
}
if (inUseResult.dead_hosts.length) {
- await internalNginx.bulkGenerateConfigs(
- "dead_host",
- inUseResult.dead_hosts,
- );
+ await internalNginx.bulkGenerateConfigs("dead_host", inUseResult.dead_hosts);
}
}
},
@@ -1251,8 +1121,7 @@ const internalCertificate = {
await access.can("certificates:list");
// Create a test challenge file
- const testChallengeDir =
- "/data/letsencrypt-acme-challenge/.well-known/acme-challenge";
+ const testChallengeDir = "/data/letsencrypt-acme-challenge/.well-known/acme-challenge";
const testChallengeFile = `${testChallengeDir}/test-challenge`;
fs.mkdirSync(testChallengeDir, { recursive: true });
fs.writeFileSync(testChallengeFile, "Success", { encoding: "utf8" });
@@ -1284,42 +1153,38 @@ const internalCertificate = {
};
const result = await new Promise((resolve) => {
- const req = https.request(
- "https://www.site24x7.com/tools/restapi-tester",
- options,
- (res) => {
- let responseBody = "";
+ const req = https.request("https://www.site24x7.com/tools/restapi-tester", options, (res) => {
+ let responseBody = "";
- res.on("data", (chunk) => {
- responseBody = responseBody + chunk;
- });
+ res.on("data", (chunk) => {
+ responseBody = responseBody + chunk;
+ });
- res.on("end", () => {
- try {
- const parsedBody = JSON.parse(`${responseBody}`);
- if (res.statusCode !== 200) {
- logger.warn(
- `Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned: ${parsedBody.message}`,
- );
- resolve(undefined);
- } else {
- resolve(parsedBody);
- }
- } catch (err) {
- if (res.statusCode !== 200) {
- logger.warn(
- `Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned`,
- );
- } else {
- logger.warn(
- `Failed to test HTTP challenge for domain ${domain} because response failed to be parsed: ${err.message}`,
- );
- }
+ res.on("end", () => {
+ try {
+ const parsedBody = JSON.parse(`${responseBody}`);
+ if (res.statusCode !== 200) {
+ logger.warn(
+ `Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned: ${parsedBody.message}`,
+ );
resolve(undefined);
+ } else {
+ resolve(parsedBody);
}
- });
- },
- );
+ } catch (err) {
+ if (res.statusCode !== 200) {
+ logger.warn(
+ `Failed to test HTTP challenge for domain ${domain} because HTTP status code ${res.statusCode} was returned`,
+ );
+ } else {
+ logger.warn(
+ `Failed to test HTTP challenge for domain ${domain} because response failed to be parsed: ${err.message}`,
+ );
+ }
+ resolve(undefined);
+ }
+ });
+ });
// Make sure to write the request body.
req.write(formBody);
@@ -1340,10 +1205,7 @@ const internalCertificate = {
);
return `other:${result.error.msg}`;
}
- if (
- `${result.responsecode}` === "200" &&
- result.htmlresponse === "Success"
- ) {
+ if (`${result.responsecode}` === "200" && result.htmlresponse === "Success") {
// Server exists and has responded with the correct data
return "ok";
}
@@ -1357,26 +1219,19 @@ const internalCertificate = {
}
if (`${result.responsecode}` === "404") {
// Server exists but responded with a 404
- logger.info(
- `HTTP challenge test failed for domain ${domain} because code 404 was returned`,
- );
+ logger.info(`HTTP challenge test failed for domain ${domain} because code 404 was returned`);
return "404";
}
if (
`${result.responsecode}` === "0" ||
- (typeof result.reason === "string" &&
- result.reason.toLowerCase() === "host unavailable")
+ (typeof result.reason === "string" && result.reason.toLowerCase() === "host unavailable")
) {
// Server does not exist at domain
- logger.info(
- `HTTP challenge test failed for domain ${domain} the host was not found`,
- );
+ logger.info(`HTTP challenge test failed for domain ${domain} the host was not found`);
return "no-host";
}
// Other errors
- logger.info(
- `HTTP challenge test failed for domain ${domain} because code ${result.responsecode} was returned`,
- );
+ logger.info(`HTTP challenge test failed for domain ${domain} because code ${result.responsecode} was returned`);
return `other:${result.responsecode}`;
},
diff --git a/test/cypress/Dockerfile b/test/cypress/Dockerfile
index bd821085..cf071baf 100644
--- a/test/cypress/Dockerfile
+++ b/test/cypress/Dockerfile
@@ -1,4 +1,4 @@
-FROM cypress/included:15.11.0
+FROM cypress/included:15.15.0
# Disable Cypress CLI colors
ENV FORCE_COLOR=0
diff --git a/test/cypress/e2e/api/Certificates.cy.js b/test/cypress/e2e/api/Certificates.cy.js
index 00da38b2..ce4200fb 100644
--- a/test/cypress/e2e/api/Certificates.cy.js
+++ b/test/cypress/e2e/api/Certificates.cy.js
@@ -5,6 +5,7 @@ describe('Certificates endpoints', () => {
let certID;
before(() => {
+ cy.createCustomCerts();
cy.resetUsers();
cy.getToken().then((tok) => {
token = tok;
diff --git a/test/cypress/e2e/api/Ldap.cy.js b/test/cypress/e2e/api/Ldap.cy.js
index 64e17730..e1a99976 100644
--- a/test/cypress/e2e/api/Ldap.cy.js
+++ b/test/cypress/e2e/api/Ldap.cy.js
@@ -2,7 +2,7 @@
describe('LDAP with Authentik', () => {
let _token;
- if (Cypress.env('skipStackCheck') === 'true' || Cypress.env('stack') === 'postgres') {
+ if (cy.env('skipStackCheck') === 'true' || cy.env('stack') === 'postgres') {
before(() => {
cy.resetUsers();
diff --git a/test/cypress/e2e/api/OAuth.cy.js b/test/cypress/e2e/api/OAuth.cy.js
index c5c819f9..55e78f52 100644
--- a/test/cypress/e2e/api/OAuth.cy.js
+++ b/test/cypress/e2e/api/OAuth.cy.js
@@ -2,7 +2,7 @@
describe('OAuth with Authentik', () => {
let _token;
- if (Cypress.env('skipStackCheck') === 'true' || Cypress.env('stack') === 'postgres') {
+ if (cy.env('skipStackCheck') === 'true' || cy.env('stack') === 'postgres') {
before(() => {
cy.getToken().then((tok) => {
diff --git a/test/cypress/fixtures/test.example.com-key.pem b/test/cypress/fixtures/test.example.com-key.pem
deleted file mode 100644
index 307cdc30..00000000
--- a/test/cypress/fixtures/test.example.com-key.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC1n9j9C5Bes1nd
-qACDckERauxXVNKCnUlUM1buGBx1xc+j2e2Ar23wUJJuWBY18VfT8yqfqVDktO2w
-rbmvZvLuPmXePOKbIKS+XXh+2NG9L5bDG9rwGFCRXnbQj+GWCdMfzx14+CR1IHge
-Yz6Cv/Si2/LJPCh/CoBfM4hUQJON3lxAWrWBpdbZnKYMrxuPBRfW9OuzTbCVXToQ
-oxRAHiOR9081Xn1WeoKr7kVBIa5UphlvWXa12w1YmUwJu7YndnJGIavLWeNCVc7Z
-Eo+nS8Wr/4QWicatIWZXpVaEOPhRoeplQDxNWg5b/Q26rYoVd7PrCmRs7sVcH79X
-zGONeH1PAgMBAAECggEAANb3Wtwl07pCjRrMvc7WbC0xYIn82yu8/g2qtjkYUJcU
-ia5lQbYN7RGCS85Oc/tkq48xQEG5JQWNH8b918jDEMTrFab0aUEyYcru1q9L8PL6
-YHaNgZSrMrDcHcS8h0QOXNRJT5jeGkiHJaTR0irvB526tqF3knbK9yW22KTfycUe
-a0Z9voKn5xRk1DCbHi/nk2EpT7xnjeQeLFaTIRXbS68omkr4YGhwWm5OizoyEGZu
-W0Zum5BkQyMr6kor3wdxOTG97ske2rcyvvHi+ErnwL0xBv0qY0Dhe8DpuXpDezqw
-o72yY8h31Fu84i7sAj24YuE5Df8DozItFXQpkgbQ6QKBgQDPrufhvIFm2S/MzBdW
-H8JxY7CJlJPyxOvc1NIl9RczQGAQR90kx52cgIcuIGEG6/wJ/xnGfMmW40F0DnQ+
-N+oLgB9SFxeLkRb7s9Z/8N3uIN8JJFYcerEOiRQeN2BXEEWJ7bUThNtsVrAcKoUh
-ELsDmnHW/3V+GKwhd0vpk842+wKBgQDf4PGLG9PTE5tlAoyHFodJRd2RhTJQkwsU
-MDNjLJ+KecLv+Nl+QiJhoflG1ccqtSFlBSCG067CDQ5LV0xm3mLJ7pfJoMgjcq31
-qjEmX4Ls91GuVOPtbwst3yFKjsHaSoKB5fBvWRcKFpBUezM7Qcw2JP3+dQT+bQIq
-cMTkRWDSvQKBgQDOdCQFDjxg/lR7NQOZ1PaZe61aBz5P3pxNqa7ClvMaOsuEQ7w9
-vMYcdtRq8TsjA2JImbSI0TIg8gb2FQxPcYwTJKl+FICOeIwtaSg5hTtJZpnxX5LO
-utTaC0DZjNkTk5RdOdWA8tihyUdGqKoxJY2TVmwGe2rUEDjFB++J4inkEwKBgB6V
-g0nmtkxanFrzOzFlMXwgEEHF+Xaqb9QFNa/xs6XeNnREAapO7JV75Cr6H2hFMFe1
-mJjyqCgYUoCWX3iaHtLJRnEkBtNY4kzyQB6m46LtsnnnXO/dwKA2oDyoPfFNRoDq
-YatEd3JIXNU9s2T/+x7WdOBjKhh72dTkbPFmTPDdAoGAU6rlPBevqOFdObYxdPq8
-EQWu44xqky3Mf5sBpOwtu6rqCYuziLiN7K4sjN5GD5mb1cEU+oS92ZiNcUQ7MFXk
-8yTYZ7U0VcXyAcpYreWwE8thmb0BohJBr+Mp3wLTx32x0HKdO6vpUa0d35LUTUmM
-RrKmPK/msHKK/sVHiL+NFqo=
------END PRIVATE KEY-----
diff --git a/test/cypress/fixtures/test.example.com.pem b/test/cypress/fixtures/test.example.com.pem
deleted file mode 100644
index 16340cdf..00000000
--- a/test/cypress/fixtures/test.example.com.pem
+++ /dev/null
@@ -1,26 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEYDCCAsigAwIBAgIRAPoSC0hvitb26ODMlsH6YbowDQYJKoZIhvcNAQELBQAw
-gZExHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTEzMDEGA1UECwwqamN1
-cm5vd0BKYW1pZXMtTGFwdG9wLmxvY2FsIChKYW1pZSBDdXJub3cpMTowOAYDVQQD
-DDFta2NlcnQgamN1cm5vd0BKYW1pZXMtTGFwdG9wLmxvY2FsIChKYW1pZSBDdXJu
-b3cpMB4XDTI0MTAwOTA3MjIxN1oXDTI3MDEwOTA3MjIxN1owXjEnMCUGA1UEChMe
-bWtjZXJ0IGRldmVsb3BtZW50IGNlcnRpZmljYXRlMTMwMQYDVQQLDCpqY3Vybm93
-QEphbWllcy1MYXB0b3AubG9jYWwgKEphbWllIEN1cm5vdykwggEiMA0GCSqGSIb3
-DQEBAQUAA4IBDwAwggEKAoIBAQC1n9j9C5Bes1ndqACDckERauxXVNKCnUlUM1bu
-GBx1xc+j2e2Ar23wUJJuWBY18VfT8yqfqVDktO2wrbmvZvLuPmXePOKbIKS+XXh+
-2NG9L5bDG9rwGFCRXnbQj+GWCdMfzx14+CR1IHgeYz6Cv/Si2/LJPCh/CoBfM4hU
-QJON3lxAWrWBpdbZnKYMrxuPBRfW9OuzTbCVXToQoxRAHiOR9081Xn1WeoKr7kVB
-Ia5UphlvWXa12w1YmUwJu7YndnJGIavLWeNCVc7ZEo+nS8Wr/4QWicatIWZXpVaE
-OPhRoeplQDxNWg5b/Q26rYoVd7PrCmRs7sVcH79XzGONeH1PAgMBAAGjZTBjMA4G
-A1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAfBgNVHSMEGDAWgBSB
-/vfmBUd4W7CvyEMl7YpMVQs8vTAbBgNVHREEFDASghB0ZXN0LmV4YW1wbGUuY29t
-MA0GCSqGSIb3DQEBCwUAA4IBgQASwON/jPAHzcARSenY0ZGY1m5OVTYoQ/JWH0oy
-l8SyFCQFEXt7UHDD/eTtLT0vMyc190nP57P8lTnZGf7hSinZz1B1d6V4cmzxpk0s
-VXZT+irL6bJVJoMBHRpllKAhGULIo33baTrWFKA0oBuWx4AevSWKcLW5j87kEawn
-ATCuMQ1I3ifR1mSlB7X8fb+vF+571q0NGuB3a42j6rdtXJ6SmH4+9B4qO0sfHDNt
-IImpLCH/tycDpcYrGSCn1QrekFG1bSEh+Bb9i8rqMDSDsYrTFPZTuOQ3EtjGni9u
-m+rEP3OyJg+md8c+0LVP7/UU4QWWnw3/Wolo5kSCxE8vNTFqi4GhVbdLnUtcIdTV
-XxuR6cKyW87Snj1a0nG76ZLclt/akxDhtzqeV60BO0p8pmiev8frp+E94wFNYCmp
-1cr3CnMEGRaficLSDFC6EBENzlZW2BQT6OMIV+g0NBgSyQe39s2zcdEl5+SzDVuw
-hp8bJUp/QN7pnOVCDbjTQ+HVMXw=
------END CERTIFICATE-----
diff --git a/test/cypress/support/commands.mjs b/test/cypress/support/commands.mjs
index 7d9224d0..3f12d0ef 100644
--- a/test/cypress/support/commands.mjs
+++ b/test/cypress/support/commands.mjs
@@ -10,6 +10,7 @@
//
import 'cypress-wait-until';
+import { createCA, createCert } from 'mkcert';
Cypress.Commands.add('randomString', (length) => {
let result = '';
@@ -49,7 +50,7 @@ Cypress.Commands.add("validateSwaggerFile", (url, savePath) => {
*/
Cypress.Commands.add('validateSwaggerSchema', (method, code, path, data) => {
cy.task('validateSwaggerSchema', {
- file: Cypress.env('swaggerBase'),
+ file: cy.env('swaggerBase'),
endpoint: path,
method: method,
statusCode: code,
@@ -151,3 +152,25 @@ Cypress.Commands.add('waitForCertificateStatus', (token, certID, expected, timeo
interval: 5000
});
});
+
+// Creates CA files for testing, if they already exist they will be deleted
+// and recreated with the same content. This is to ensure that the files exist
+// for testing and are in a known state.
+Cypress.Commands.add('createCustomCerts', async () => {
+ const ca = await createCA({
+ organization: "NPM CA",
+ countryCode: "AU",
+ state: "QLD",
+ locality: "Brisbane",
+ validity: 365
+ });
+
+ const cert = await createCert({
+ ca: { key: ca.key, cert: ca.cert },
+ domains: ["test.example.com"],
+ validity: 365
+ });
+
+ cy.writeFile(`${config.fixturesFolder}/test.example.com.pem`, cert.cert);
+ cy.writeFile(`${config.fixturesFolder}/test.example.com-key.pem`, cert.key);
+});
diff --git a/test/package.json b/test/package.json
index 555bb6c2..b243cc41 100644
--- a/test/package.json
+++ b/test/package.json
@@ -17,6 +17,7 @@
"eslint-plugin-cypress": "^6.4.1",
"form-data": "^4.0.5",
"lodash": "^4.18.1",
+ "mkcert": "^3.2.0",
"mocha": "^11.7.5",
"mocha-junit-reporter": "^2.2.1"
},
diff --git a/test/yarn.lock b/test/yarn.lock
index 57e4b473..0d3f0714 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -567,6 +567,11 @@ combined-stream@^1.0.8, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
+commander@^11.0.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906"
+ integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==
+
commander@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
@@ -1561,6 +1566,14 @@ minizlib@^3.1.0:
dependencies:
minipass "^7.1.2"
+mkcert@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/mkcert/-/mkcert-3.2.0.tgz#6c4d58bbb31dbf76efd24f197d454702b14020f4"
+ integrity sha512-026Eivq9RoOjOuLJGzbhGwXUAjBxRX11Z7Jbm4/7lqT/Av+XNy9SPrJte6+UpEt7i+W3e/HZYxQqlQcqXZWSzg==
+ dependencies:
+ commander "^11.0.0"
+ node-forge "^1.3.1"
+
mkdirp@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50"
@@ -1628,6 +1641,11 @@ node-fetch@^3.3.2:
fetch-blob "^3.1.4"
formdata-polyfill "^4.0.10"
+node-forge@^1.3.1:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.4.0.tgz#1c7b7d8bdc2d078739f58287d589d903a11b2fc2"
+ integrity sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==
+
npm-run-path@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
From 11955e5dff517a76379ee18c05449226e519cb1d Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Tue, 19 May 2026 08:51:52 +1000
Subject: [PATCH 65/89] Cypress improvements, move mkcert back to command line
---
test/cypress/config/ci.mjs | 1 +
test/cypress/config/dev.mjs | 1 +
test/cypress/e2e/api/Ldap.cy.js | 65 -------------------
test/cypress/e2e/api/OAuth.cy.js | 97 ----------------------------
test/cypress/e2e/api/Streams.cy.js | 10 +--
test/cypress/plugins/index.mjs | 5 ++
test/cypress/support/commands.mjs | 45 ++++++-------
test/cypress/support/task.mjs | 100 +++++++++++++++++++++++++++++
test/package.json | 1 -
test/yarn.lock | 18 ------
10 files changed, 133 insertions(+), 210 deletions(-)
delete mode 100644 test/cypress/e2e/api/Ldap.cy.js
delete mode 100644 test/cypress/e2e/api/OAuth.cy.js
create mode 100644 test/cypress/support/task.mjs
diff --git a/test/cypress/config/ci.mjs b/test/cypress/config/ci.mjs
index 2597c194..ea203a89 100644
--- a/test/cypress/config/ci.mjs
+++ b/test/cypress/config/ci.mjs
@@ -2,6 +2,7 @@ import { defineConfig } from 'cypress';
import pluginSetup from '../plugins/index.mjs';
export default defineConfig({
+ allowCypressEnv: false,
requestTimeout: 30000,
defaultCommandTimeout: 20000,
reporter: "cypress-multi-reporters",
diff --git a/test/cypress/config/dev.mjs b/test/cypress/config/dev.mjs
index f32d973c..636c3095 100644
--- a/test/cypress/config/dev.mjs
+++ b/test/cypress/config/dev.mjs
@@ -2,6 +2,7 @@ import { defineConfig } from 'cypress';
import pluginSetup from '../plugins/index.mjs';
export default defineConfig({
+ allowCypressEnv: false,
requestTimeout: 30000,
defaultCommandTimeout: 20000,
reporter: "cypress-multi-reporters",
diff --git a/test/cypress/e2e/api/Ldap.cy.js b/test/cypress/e2e/api/Ldap.cy.js
deleted file mode 100644
index e1a99976..00000000
--- a/test/cypress/e2e/api/Ldap.cy.js
+++ /dev/null
@@ -1,65 +0,0 @@
-///
-
-describe('LDAP with Authentik', () => {
- let _token;
- if (cy.env('skipStackCheck') === 'true' || cy.env('stack') === 'postgres') {
-
- before(() => {
- cy.resetUsers();
- cy.getToken().then((tok) => {
- _token = tok;
-
- // cy.task('backendApiPut', {
- // token: token,
- // path: '/api/settings/ldap-auth',
- // data: {
- // value: {
- // host: 'authentik-ldap:3389',
- // base_dn: 'ou=users,DC=ldap,DC=goauthentik,DC=io',
- // user_dn: 'cn={{USERNAME}},ou=users,DC=ldap,DC=goauthentik,DC=io',
- // email_property: 'mail',
- // name_property: 'sn',
- // self_filter: '(&(cn={{USERNAME}})(ak-active=TRUE))',
- // auto_create_user: true
- // }
- // }
- // }).then((data) => {
- // cy.validateSwaggerSchema('put', 200, '/settings/{name}', data);
- // expect(data.result).to.have.property('id');
- // expect(data.result.id).to.be.greaterThan(0);
- // });
-
- // cy.task('backendApiPut', {
- // token: token,
- // path: '/api/settings/auth-methods',
- // data: {
- // value: [
- // 'local',
- // 'ldap'
- // ]
- // }
- // }).then((data) => {
- // cy.validateSwaggerSchema('put', 200, '/settings/{name}', data);
- // expect(data.result).to.have.property('id');
- // expect(data.result.id).to.be.greaterThan(0);
- // });
- });
- });
-
- it.skip('Should log in with LDAP', () => {
- // cy.task('backendApiPost', {
- // token: token,
- // path: '/api/auth',
- // data: {
- // // Authentik LDAP creds:
- // type: 'ldap',
- // identity: 'cypress',
- // secret: 'fqXBfUYqHvYqiwBHWW7f'
- // }
- // }).then((data) => {
- // cy.validateSwaggerSchema('post', 200, '/auth', data);
- // expect(data.result).to.have.property('token');
- // });
- });
- }
-});
diff --git a/test/cypress/e2e/api/OAuth.cy.js b/test/cypress/e2e/api/OAuth.cy.js
deleted file mode 100644
index 55e78f52..00000000
--- a/test/cypress/e2e/api/OAuth.cy.js
+++ /dev/null
@@ -1,97 +0,0 @@
-///
-
-describe('OAuth with Authentik', () => {
- let _token;
- if (cy.env('skipStackCheck') === 'true' || cy.env('stack') === 'postgres') {
-
- before(() => {
- cy.getToken().then((tok) => {
- _token = tok;
-
- // cy.task('backendApiPut', {
- // token: token,
- // path: '/api/settings/oauth-auth',
- // data: {
- // value: {
- // client_id: '7iO2AvuUp9JxiSVkCcjiIbQn4mHmUMBj7yU8EjqU',
- // client_secret: 'VUMZzaGTrmXJ8PLksyqzyZ6lrtz04VvejFhPMBP9hGZNCMrn2LLBanySs4ta7XGrDr05xexPyZT1XThaf4ubg00WqvHRVvlu4Naa1aMootNmSRx3VAk6RSslUJmGyHzq',
- // authorization_url: 'http://authentik:9000/application/o/authorize/',
- // resource_url: 'http://authentik:9000/application/o/userinfo/',
- // token_url: 'http://authentik:9000/application/o/token/',
- // logout_url: 'http://authentik:9000/application/o/npm/end-session/',
- // identifier: 'preferred_username',
- // scopes: [],
- // auto_create_user: true
- // }
- // }
- // }).then((data) => {
- // cy.validateSwaggerSchema('put', 200, '/settings/{name}', data);
- // expect(data.result).to.have.property('id');
- // expect(data.result.id).to.be.greaterThan(0);
- // });
-
- // cy.task('backendApiPut', {
- // token: token,
- // path: '/api/settings/auth-methods',
- // data: {
- // value: [
- // 'local',
- // 'oauth'
- // ]
- // }
- // }).then((data) => {
- // cy.validateSwaggerSchema('put', 200, '/settings/{name}', data);
- // expect(data.result).to.have.property('id');
- // expect(data.result.id).to.be.greaterThan(0);
- // });
- });
- });
-
- it.skip('Should log in with OAuth', () => {
- // cy.task('backendApiGet', {
- // path: '/oauth/login?redirect_base=' + encodeURI(Cypress.config('baseUrl')),
- // }).then((data) => {
- // expect(data).to.have.property('result');
-
- // cy.origin('http://authentik:9000', {args: data.result}, (url) => {
- // cy.visit(url);
- // cy.get('ak-flow-executor')
- // .shadow()
- // .find('ak-stage-identification')
- // .shadow()
- // .find('input[name="uidField"]', { visible: true })
- // .type('cypress');
-
- // cy.get('ak-flow-executor')
- // .shadow()
- // .find('ak-stage-identification')
- // .shadow()
- // .find('button[type="submit"]', { visible: true })
- // .click();
-
- // cy.get('ak-flow-executor')
- // .shadow()
- // .find('ak-stage-password')
- // .shadow()
- // .find('input[name="password"]', { visible: true })
- // .type('fqXBfUYqHvYqiwBHWW7f');
-
- // cy.get('ak-flow-executor')
- // .shadow()
- // .find('ak-stage-password')
- // .shadow()
- // .find('button[type="submit"]', { visible: true })
- // .click();
- // })
-
- // // we should be logged in
- // cy.get('#root p.chakra-text')
- // .first()
- // .should('have.text', 'Nginx Proxy Manager');
-
- // // logout:
- // cy.clearLocalStorage();
- // });
- });
- }
-});
diff --git a/test/cypress/e2e/api/Streams.cy.js b/test/cypress/e2e/api/Streams.cy.js
index 10809f89..b2c97b44 100644
--- a/test/cypress/e2e/api/Streams.cy.js
+++ b/test/cypress/e2e/api/Streams.cy.js
@@ -23,11 +23,13 @@ describe('Streams', () => {
});
// Create a custom cert pair
- cy.exec('mkcert -cert-file=/test/cypress/fixtures/website1.pem -key-file=/test/cypress/fixtures/website1.key.pem website1.example.com').then((result) => {
- expect(result.exitCode).to.eq(0);
- // Install CA
- cy.exec('mkcert -install').then((result) => {
+ cy.task('getFixturesFolder').then((fixturesFolder) => {
+ cy.exec(`mkcert -cert-file=${fixturesFolder}/website1.pem -key-file=${fixturesFolder}/website1.key.pem website1.example.com`).then((result) => {
expect(result.exitCode).to.eq(0);
+ // Install CA
+ cy.exec('mkcert -install').then((result) => {
+ expect(result.exitCode).to.eq(0);
+ });
});
});
diff --git a/test/cypress/plugins/index.mjs b/test/cypress/plugins/index.mjs
index 1058d633..dc09527d 100644
--- a/test/cypress/plugins/index.mjs
+++ b/test/cypress/plugins/index.mjs
@@ -22,6 +22,11 @@ export default (on, config) => {
return null;
},
});
+ on('task', {
+ getFixturesFolder() {
+ return config.fixturesFolder
+ },
+ });
return config;
};
diff --git a/test/cypress/support/commands.mjs b/test/cypress/support/commands.mjs
index 3f12d0ef..12db1994 100644
--- a/test/cypress/support/commands.mjs
+++ b/test/cypress/support/commands.mjs
@@ -10,7 +10,6 @@
//
import 'cypress-wait-until';
-import { createCA, createCert } from 'mkcert';
Cypress.Commands.add('randomString', (length) => {
let result = '';
@@ -49,14 +48,16 @@ Cypress.Commands.add("validateSwaggerFile", (url, savePath) => {
* @param {*} data The API response data to check against the swagger schema
*/
Cypress.Commands.add('validateSwaggerSchema', (method, code, path, data) => {
- cy.task('validateSwaggerSchema', {
- file: cy.env('swaggerBase'),
- endpoint: path,
- method: method,
- statusCode: code,
- responseSchema: data,
- verbose: true
- }).should('equal', null);
+ cy.env(['swaggerBase']).then(({ swaggerBase }) => {
+ cy.task('validateSwaggerSchema', {
+ file: swaggerBase,
+ endpoint: path,
+ method: method,
+ statusCode: code,
+ responseSchema: data,
+ verbose: true
+ }).should('equal', null);
+ });
});
Cypress.Commands.add('createInitialUser', (defaultUser) => {
@@ -156,21 +157,15 @@ Cypress.Commands.add('waitForCertificateStatus', (token, certID, expected, timeo
// Creates CA files for testing, if they already exist they will be deleted
// and recreated with the same content. This is to ensure that the files exist
// for testing and are in a known state.
-Cypress.Commands.add('createCustomCerts', async () => {
- const ca = await createCA({
- organization: "NPM CA",
- countryCode: "AU",
- state: "QLD",
- locality: "Brisbane",
- validity: 365
+Cypress.Commands.add('createCustomCerts', () => {
+ cy.task('getFixturesFolder').then((fixturesFolder) => {
+ cy.exec(`mkcert -cert-file=${fixturesFolder}/test.example.com.pem -key-file=${fixturesFolder}/test.example.com-key.pem test.example.com`)
+ .then((result) => {
+ expect(result.exitCode).to.eq(0);
+ // Install CA
+ cy.exec('mkcert -install').then((result) => {
+ expect(result.exitCode).to.eq(0);
+ });
+ });
});
-
- const cert = await createCert({
- ca: { key: ca.key, cert: ca.cert },
- domains: ["test.example.com"],
- validity: 365
- });
-
- cy.writeFile(`${config.fixturesFolder}/test.example.com.pem`, cert.cert);
- cy.writeFile(`${config.fixturesFolder}/test.example.com-key.pem`, cert.key);
});
diff --git a/test/cypress/support/task.mjs b/test/cypress/support/task.mjs
new file mode 100644
index 00000000..edc5015c
--- /dev/null
+++ b/test/cypress/support/task.mjs
@@ -0,0 +1,100 @@
+import fs from "node:fs";
+import FormData from "form-data";
+import Client from "./client.mjs";
+import logger from "./logger.mjs";
+
+export default (config) => {
+ logger("Client Ready using", config.baseUrl);
+
+ return {
+ /**
+ * @param {object} options
+ * @param {string} options.path API path
+ * @param {string} [options.token] JWT
+ * @param {bool} [options.returnOnError] If true, will return instead of throwing errors
+ * @returns {string}
+ */
+ backendApiGet: (options) => {
+ const api = new Client(config);
+ api.setToken(options.token);
+ return api.request("get", options.path, options.returnOnError || false);
+ },
+
+ /**
+ * @param {object} options
+ * @param {string} options.token JWT
+ * @param {string} options.path API path
+ * @param {object} options.data
+ * @param {bool} [options.returnOnError] If true, will return instead of throwing errors
+ * @returns {string}
+ */
+ backendApiPost: (options) => {
+ const api = new Client(config);
+ api.setToken(options.token);
+ return api.request(
+ "post",
+ options.path,
+ options.returnOnError || false,
+ options.data,
+ );
+ },
+
+ /**
+ * @param {object} options
+ * @param {string} options.token JWT
+ * @param {string} options.path API path
+ * @param {object} options.files
+ * @param {bool} [options.returnOnError] If true, will return instead of throwing errors
+ * @returns {string}
+ */
+ backendApiPostFiles: (options) => {
+ const api = new Client(config);
+ api.setToken(options.token);
+
+ const form = new FormData();
+ for (const [key, value] of Object.entries(options.files)) {
+ form.append(
+ key,
+ fs.createReadStream(`${config.fixturesFolder}/${value}`),
+ );
+ }
+ return api.postForm(options.path, form, options.returnOnError || false);
+ },
+
+ /**
+ * @param {object} options
+ * @param {string} options.token JWT
+ * @param {string} options.path API path
+ * @param {object} options.data
+ * @param {bool} [options.returnOnError] If true, will return instead of throwing errors
+ * @returns {string}
+ */
+ backendApiPut: (options) => {
+ const api = new Client(config);
+ api.setToken(options.token);
+ return api.request(
+ "put",
+ options.path,
+ options.returnOnError || false,
+ options.data,
+ );
+ },
+
+ /**
+ * @param {object} options
+ * @param {string} options.token JWT
+ * @param {string} options.path API path
+ * @param {bool} [options.returnOnError] If true, will return instead of throwing errors
+ * @returns {string}
+ */
+ backendApiDelete: (options) => {
+ const api = new Client(config);
+ api.setToken(options.token);
+ return api.request(
+ "delete",
+ options.path,
+ options.returnOnError || false,
+ );
+ },
+ };
+};
diff --git a/test/package.json b/test/package.json
index b243cc41..555bb6c2 100644
--- a/test/package.json
+++ b/test/package.json
@@ -17,7 +17,6 @@
"eslint-plugin-cypress": "^6.4.1",
"form-data": "^4.0.5",
"lodash": "^4.18.1",
- "mkcert": "^3.2.0",
"mocha": "^11.7.5",
"mocha-junit-reporter": "^2.2.1"
},
diff --git a/test/yarn.lock b/test/yarn.lock
index 0d3f0714..57e4b473 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -567,11 +567,6 @@ combined-stream@^1.0.8, combined-stream@~1.0.6:
dependencies:
delayed-stream "~1.0.0"
-commander@^11.0.0:
- version "11.1.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906"
- integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==
-
commander@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
@@ -1566,14 +1561,6 @@ minizlib@^3.1.0:
dependencies:
minipass "^7.1.2"
-mkcert@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/mkcert/-/mkcert-3.2.0.tgz#6c4d58bbb31dbf76efd24f197d454702b14020f4"
- integrity sha512-026Eivq9RoOjOuLJGzbhGwXUAjBxRX11Z7Jbm4/7lqT/Av+XNy9SPrJte6+UpEt7i+W3e/HZYxQqlQcqXZWSzg==
- dependencies:
- commander "^11.0.0"
- node-forge "^1.3.1"
-
mkdirp@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50"
@@ -1641,11 +1628,6 @@ node-fetch@^3.3.2:
fetch-blob "^3.1.4"
formdata-polyfill "^4.0.10"
-node-forge@^1.3.1:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.4.0.tgz#1c7b7d8bdc2d078739f58287d589d903a11b2fc2"
- integrity sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==
-
npm-run-path@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
From dff978a63c5b8998cd7dadbf01e84e55aa4e7164 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Wed, 20 May 2026 07:52:46 +1000
Subject: [PATCH 66/89] Tests: install mkcert before generating
---
test/cypress/support/commands.mjs | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/test/cypress/support/commands.mjs b/test/cypress/support/commands.mjs
index 12db1994..5d753abc 100644
--- a/test/cypress/support/commands.mjs
+++ b/test/cypress/support/commands.mjs
@@ -159,13 +159,12 @@ Cypress.Commands.add('waitForCertificateStatus', (token, certID, expected, timeo
// for testing and are in a known state.
Cypress.Commands.add('createCustomCerts', () => {
cy.task('getFixturesFolder').then((fixturesFolder) => {
- cy.exec(`mkcert -cert-file=${fixturesFolder}/test.example.com.pem -key-file=${fixturesFolder}/test.example.com-key.pem test.example.com`)
- .then((result) => {
- expect(result.exitCode).to.eq(0);
- // Install CA
- cy.exec('mkcert -install').then((result) => {
+ cy.exec('mkcert -install').then((result) => {
+ expect(result.exitCode).to.eq(0);
+ cy.exec(`mkcert -cert-file=${fixturesFolder}/test.example.com.pem -key-file=${fixturesFolder}/test.example.com-key.pem test.example.com`)
+ .then((result) => {
expect(result.exitCode).to.eq(0);
});
- });
+ });
});
});
From c354238c3524fdd0d99985dad52798f0289c9542 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Wed, 20 May 2026 08:05:24 +1000
Subject: [PATCH 67/89] Testing mkcert in test suite
---
test/cypress/support/commands.mjs | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/test/cypress/support/commands.mjs b/test/cypress/support/commands.mjs
index 5d753abc..0001ded8 100644
--- a/test/cypress/support/commands.mjs
+++ b/test/cypress/support/commands.mjs
@@ -159,12 +159,8 @@ Cypress.Commands.add('waitForCertificateStatus', (token, certID, expected, timeo
// for testing and are in a known state.
Cypress.Commands.add('createCustomCerts', () => {
cy.task('getFixturesFolder').then((fixturesFolder) => {
- cy.exec('mkcert -install').then((result) => {
- expect(result.exitCode).to.eq(0);
- cy.exec(`mkcert -cert-file=${fixturesFolder}/test.example.com.pem -key-file=${fixturesFolder}/test.example.com-key.pem test.example.com`)
- .then((result) => {
- expect(result.exitCode).to.eq(0);
- });
+ cy.exec('mkcert -install', {failOnNonZeroExit: false}).then(() => {
+ cy.exec(`mkcert -cert-file=${fixturesFolder}/test.example.com.pem -key-file=${fixturesFolder}/test.example.com-key.pem test.example.com`, {failOnNonZeroExit: false});
});
});
});
From 03c70e3902a9618db59a6f635b44cddd3f799aa3 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Wed, 20 May 2026 08:16:10 +1000
Subject: [PATCH 68/89] Fixes for upgraded debian trixie
- Adds request logging in debug mode for some endpoints
- Moves certbot version determination to the startup scripts and removes
bash script encapsulation when installing plugins
- Revert loose domain validation, which was there for a specific reason
addressing CVE's
- Fix Cypress suite for cert generation
- Adds Cypress test that iterates over the entire certbot plugins list
and installs each one, ensuring at the very least that the install
works
- Fixed some plugins based on this
- (!) Still some work to do on this, hostinger is still broken at least
- Improved cypress tests for custom certs; they will generate on each
run instead of being baked in. The baked ones were due to expire soon
---
.gitignore | 2 +
backend/certbot/dns-plugins.json | 6 +-
backend/lib/certbot.js | 29 +++++----
backend/lib/express/log-request.js | 7 +++
backend/lib/utils.js | 3 -
backend/package.json | 2 +-
backend/routes/ci.js | 59 +++++++++++++++++++
backend/routes/main.js | 10 ++++
backend/schema/common.json | 6 +-
.../schema/components/certificate-object.json | 10 +++-
docker/docker-compose.ci.sqlite.yml | 7 ++-
.../rootfs/etc/s6-overlay/s6-rc.d/backend/run | 4 +-
docker/rootfs/usr/bin/common.sh | 4 ++
test/cypress/e2e/api/CertbotPlugins.cy.js | 28 +++++++++
test/cypress/e2e/api/Certificates.cy.js | 18 ++++--
test/cypress/e2e/api/Streams.cy.js | 24 ++++----
test/cypress/fixtures/.gitignore | 1 +
test/cypress/fixtures/.gitkeep | 0
test/cypress/support/commands.mjs | 26 ++++++--
19 files changed, 197 insertions(+), 49 deletions(-)
create mode 100644 backend/lib/express/log-request.js
create mode 100644 backend/routes/ci.js
create mode 100644 test/cypress/e2e/api/CertbotPlugins.cy.js
create mode 100644 test/cypress/fixtures/.gitignore
create mode 100644 test/cypress/fixtures/.gitkeep
diff --git a/.gitignore b/.gitignore
index 5bf37c0d..a83a2110 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,5 @@ test/node_modules
*/node_modules
docker/dev/dnsrouter-config.json.tmp
docker/dev/resolv.conf
+.claude
+
diff --git a/backend/certbot/dns-plugins.json b/backend/certbot/dns-plugins.json
index 974c7265..a84cca6b 100644
--- a/backend/certbot/dns-plugins.json
+++ b/backend/certbot/dns-plugins.json
@@ -341,8 +341,8 @@
"full_plugin_name": "dns-hostinger",
"name": "Hostinger.com",
"package_name": "certbot-dns-hostinger",
- "version": "~=0.1.5"
- },
+ "version": "~=0.1.3"
+ },
"hostingnl": {
"credentials": "dns_hostingnl_api_key = 0123456789abcdef0123456789abcdef",
"dependencies": "",
@@ -553,7 +553,7 @@
},
"powerdns": {
"credentials": "dns_powerdns_api_url = https://api.mypowerdns.example.org\ndns_powerdns_api_key = AbCbASsd!@34",
- "dependencies": "PyYAML==5.3.1",
+ "dependencies": "PyYAML>=6.0.1",
"full_plugin_name": "dns-powerdns",
"name": "PowerDNS",
"package_name": "certbot-dns-powerdns",
diff --git a/backend/lib/certbot.js b/backend/lib/certbot.js
index 3a2dd072..3cafe50f 100644
--- a/backend/lib/certbot.js
+++ b/backend/lib/certbot.js
@@ -4,8 +4,6 @@ import { certbot as logger } from "../logger.js";
import errs from "./error.js";
import utils from "./utils.js";
-const CERTBOT_VERSION_REPLACEMENT = "$(certbot --version | grep -Eo '[0-9](\\.[0-9]+)+')";
-
/**
* Installs a cerbot plugin given the key for the object from
* ../certbot/dns-plugins.json
@@ -15,24 +13,31 @@ const CERTBOT_VERSION_REPLACEMENT = "$(certbot --version | grep -Eo '[0-9](\\.[0
*/
const installPlugin = async (pluginKey) => {
if (typeof dnsPlugins[pluginKey] === "undefined") {
- // throw Error(`Certbot plugin ${pluginKey} not found`);
throw new errs.ItemNotFoundError(pluginKey);
}
const plugin = dnsPlugins[pluginKey];
logger.start(`Installing ${pluginKey}...`);
- plugin.version = plugin.version.replace(/{{certbot-version}}/g, CERTBOT_VERSION_REPLACEMENT);
- plugin.dependencies = plugin.dependencies.replace(/{{certbot-version}}/g, CERTBOT_VERSION_REPLACEMENT);
+ plugin.version = plugin.version.replace(/{{certbot-version}}/g, process.env.CERTBOT_VERSION);
+ plugin.dependencies = plugin.dependencies.replace(/{{certbot-version}}/g, process.env.CERTBOT_VERSION);
- // SETUPTOOLS_USE_DISTUTILS is required for certbot plugins to install correctly
- // in new versions of Python
- let env = Object.assign({}, process.env, { SETUPTOOLS_USE_DISTUTILS: "stdlib" });
+ // SETUPTOOLS_USE_DISTUTILS=local uses setuptools' own bundled distutils.
+ // "stdlib" breaks Python 3.13+ where distutils was removed from the standard library.
+ let env = Object.assign({}, process.env, { SETUPTOOLS_USE_DISTUTILS: "local" });
if (typeof plugin.env === "object") {
env = Object.assign(env, plugin.env);
}
- const cmd = `. /opt/certbot/bin/activate && pip install --no-cache-dir ${plugin.dependencies} ${plugin.package_name}${plugin.version} && deactivate`;
+ const quotedDeps = plugin.dependencies.trim()
+ ? plugin.dependencies
+ .trim()
+ .split(/\s+/)
+ .filter(Boolean)
+ .map((d) => `'${d}'`)
+ .join(" ")
+ : "";
+ const cmd = `. /opt/certbot/bin/activate && pip install --no-cache-dir ${quotedDeps} '${plugin.package_name}${plugin.version}' && deactivate`;
return utils
.exec(cmd, { env })
.then((result) => {
@@ -73,9 +78,7 @@ const installPlugins = async (pluginKeys) => {
})
.end(() => {
if (hasErrors) {
- reject(
- new errs.CommandError("Some plugins failed to install. Please check the logs above", 1),
- );
+ reject(new errs.CommandError("Some plugins failed to install. Please check the logs above", 1));
} else {
resolve();
}
@@ -83,4 +86,4 @@ const installPlugins = async (pluginKeys) => {
});
};
-export { installPlugins, installPlugin };
+export { installPlugin, installPlugins };
diff --git a/backend/lib/express/log-request.js b/backend/lib/express/log-request.js
new file mode 100644
index 00000000..a70ecc71
--- /dev/null
+++ b/backend/lib/express/log-request.js
@@ -0,0 +1,7 @@
+import chalk from "chalk";
+import { debug, express as logger } from "../../logger.js";
+
+export default (req, _res, next) => {
+ debug(logger, `[${chalk.yellow(req.method.toUpperCase())}] ${chalk.green(req.path)}`);
+ next();
+};
diff --git a/backend/lib/utils.js b/backend/lib/utils.js
index af7ad3c9..a19142af 100644
--- a/backend/lib/utils.js
+++ b/backend/lib/utils.js
@@ -3,14 +3,12 @@ import { dirname } from "node:path";
import { fileURLToPath } from "node:url";
import { Liquid } from "liquidjs";
import _ from "lodash";
-import { debug, global as logger } from "../logger.js";
import errs from "./error.js";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const exec = async (cmd, options = {}) => {
- debug(logger, "CMD:", cmd);
const { stdout, stderr } = await new Promise((resolve, reject) => {
const child = nodeExec(cmd, options, (isError, stdout, stderr) => {
if (isError) {
@@ -34,7 +32,6 @@ const exec = async (cmd, options = {}) => {
* @returns {Promise}
*/
const execFile = (cmd, args, options) => {
- debug(logger, `CMD: ${cmd} ${args ? args.join(" ") : ""}`);
const opts = options || {};
return new Promise((resolve, reject) => {
diff --git a/backend/package.json b/backend/package.json
index 34c39217..4cafa403 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -20,6 +20,7 @@
"bcrypt": "^6.0.0",
"better-sqlite3": "^12.10.0",
"body-parser": "^2.2.2",
+ "chalk": "5.6.2",
"compression": "^1.8.1",
"express": "^5.2.1",
"express-fileupload": "^1.5.2",
@@ -43,7 +44,6 @@
"devDependencies": {
"@apidevtools/swagger-parser": "^12.1.0",
"@biomejs/biome": "^2.4.15",
- "chalk": "5.6.2",
"nodemon": "^3.1.14"
},
"signale": {
diff --git a/backend/routes/ci.js b/backend/routes/ci.js
new file mode 100644
index 00000000..a6f8be03
--- /dev/null
+++ b/backend/routes/ci.js
@@ -0,0 +1,59 @@
+import express from "express";
+import dnsPlugins from "../certbot/dns-plugins.json" with { type: "json" };
+import { installPlugin } from "../lib/certbot.js";
+import { debug, express as logger } from "../logger.js";
+
+const router = express.Router({
+ caseSensitive: true,
+ strict: true,
+ mergeParams: true,
+});
+
+/**
+ * ONLY AVAILABLE IN CI ENVIRONMENT!
+ */
+
+/**
+ * /api/ci/certbot-plugins
+ */
+router
+ .route("/certbot-plugins")
+ .options((_, res) => {
+ res.sendStatus(204);
+ })
+
+ // Return all certbot plugins
+ .get(async (_req, res, _next) => {
+ res.status(200).send(dnsPlugins);
+ });
+
+/**
+ * /api/ci/certbot-plugins/{plugin}
+ */
+router
+ .route("/certbot-plugins/:plugin")
+ .options((_, res) => {
+ res.sendStatus(204);
+ })
+
+ // Install a certbot plugin
+ .post(async (req, res, next) => {
+ try {
+ const pluginName = req.params.plugin;
+ // check if plugin exists
+ if (!dnsPlugins[pluginName]) {
+ return res.status(404).send({
+ error: "Plugin not found",
+ });
+ }
+
+ await installPlugin(pluginName);
+ res.status(200).send(true);
+ } catch (err) {
+ debug(logger, `${req.method.toUpperCase()} ${req.path}: ${err}`);
+ next(err);
+ }
+ return;
+ });
+
+export default router;
diff --git a/backend/routes/main.js b/backend/routes/main.js
index 94682cfb..a308ea61 100644
--- a/backend/routes/main.js
+++ b/backend/routes/main.js
@@ -1,8 +1,11 @@
import express from "express";
+import { isCI } from "../lib/config.js";
import errs from "../lib/error.js";
+import logRequest from "../lib/express/log-request.js";
import pjson from "../package.json" with { type: "json" };
import { isSetup } from "../setup.js";
import auditLogRoutes from "./audit-log.js";
+import ciRoutes from "./ci.js";
import accessListsRoutes from "./nginx/access_lists.js";
import certificatesHostsRoutes from "./nginx/certificates.js";
import deadHostsRoutes from "./nginx/dead_hosts.js";
@@ -22,6 +25,8 @@ const router = express.Router({
mergeParams: true,
});
+router.use(logRequest);
+
/**
* Health Check
* GET /api
@@ -55,6 +60,11 @@ router.use("/nginx/streams", streamsRoutes);
router.use("/nginx/access-lists", accessListsRoutes);
router.use("/nginx/certificates", certificatesHostsRoutes);
+// Only include CI routes if we're in a CI environment
+if (isCI()) {
+ router.use("/ci", ciRoutes);
+}
+
/**
* API 404 for all other routes
*
diff --git a/backend/schema/common.json b/backend/schema/common.json
index e56c9f70..00b06e00 100644
--- a/backend/schema/common.json
+++ b/backend/schema/common.json
@@ -77,12 +77,14 @@
"example": 3
},
"domain_names": {
- "description": "Domain Names array",
+ "description": "Domain Names separated by a comma",
"type": "array",
+ "minItems": 1,
+ "maxItems": 100,
"uniqueItems": true,
"items": {
"type": "string",
- "minLength": 1
+ "pattern": "^[^&| @!#%^();:/\\\\}{=+?<>,~`'\"]+$"
},
"example": ["example.com", "www.example.com"]
},
diff --git a/backend/schema/components/certificate-object.json b/backend/schema/components/certificate-object.json
index 4ef666b4..80cd92be 100644
--- a/backend/schema/components/certificate-object.json
+++ b/backend/schema/components/certificate-object.json
@@ -25,7 +25,15 @@
"example": "My Custom Cert"
},
"domain_names": {
- "$ref": "../common.json#/properties/domain_names"
+ "description": "Domain Names separated by a comma",
+ "type": "array",
+ "maxItems": 100,
+ "uniqueItems": true,
+ "items": {
+ "type": "string",
+ "pattern": "^[^&| @!#%^();:/\\\\}{=+?<>,~`'\"]+$"
+ },
+ "example": ["example.com", "www.example.com"]
},
"expires_on": {
"description": "Date and time of expiration",
diff --git a/docker/docker-compose.ci.sqlite.yml b/docker/docker-compose.ci.sqlite.yml
index 1c5be48e..a8e057a8 100644
--- a/docker/docker-compose.ci.sqlite.yml
+++ b/docker/docker-compose.ci.sqlite.yml
@@ -1,9 +1,12 @@
# WARNING: This is a CI docker-compose file used for building and testing of the entire app, it should not be used for production.
services:
+ cypress:
+ environment:
+ CYPRESS_stack: "sqlite"
fullstack:
environment:
- DB_SQLITE_FILE: '/data/mydb.sqlite'
+ DB_SQLITE_FILE: "/data/mydb.sqlite"
PUID: 1000
PGID: 1000
- DISABLE_IPV6: 'true'
+ DISABLE_IPV6: "true"
diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/backend/run b/docker/rootfs/etc/s6-overlay/s6-rc.d/backend/run
index 37a95f7d..b140257b 100755
--- a/docker/rootfs/etc/s6-overlay/s6-rc.d/backend/run
+++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/backend/run
@@ -11,11 +11,11 @@ log_info 'Starting backend ...'
if [ "${DEVELOPMENT:-}" = 'true' ]; then
s6-setuidgid "$PUID:$PGID" yarn install
- exec s6-setuidgid "$PUID:$PGID" bash -c "export HOME=$NPMHOME;node --max_old_space_size=250 --abort_on_uncaught_exception node_modules/nodemon/bin/nodemon.js"
+ exec s6-setuidgid "$PUID:$PGID" bash -c "export HOME=$NPMHOME;export CERTBOT_VERSION=$CERTBOT_VERSION;node --max_old_space_size=250 --abort_on_uncaught_exception node_modules/nodemon/bin/nodemon.js"
else
while :
do
- s6-setuidgid "$PUID:$PGID" bash -c "export HOME=$NPMHOME;node --abort_on_uncaught_exception --max_old_space_size=250 index.js"
+ s6-setuidgid "$PUID:$PGID" bash -c "export HOME=$NPMHOME;export CERTBOT_VERSION=$CERTBOT_VERSION;node --abort_on_uncaught_exception --max_old_space_size=250 index.js"
sleep 1
done
fi
diff --git a/docker/rootfs/usr/bin/common.sh b/docker/rootfs/usr/bin/common.sh
index 46529870..92bf19d9 100644
--- a/docker/rootfs/usr/bin/common.sh
+++ b/docker/rootfs/usr/bin/common.sh
@@ -21,6 +21,10 @@ NPMGROUP=npm
NPMHOME=/tmp/npmuserhome
export NPMUSER NPMGROUP NPMHOME
+# Query the certbot version just once and use it elsewhere
+CERTBOT_VERSION="$(certbot --version | grep -Eo '[0-9](\.[0-9]+)+')"
+export CERTBOT_VERSION
+
if [[ "$PUID" -ne '0' ]] && [ "$PGID" = '0' ]; then
# set group id to same as user id,
# the user probably forgot to specify the group id and
diff --git a/test/cypress/e2e/api/CertbotPlugins.cy.js b/test/cypress/e2e/api/CertbotPlugins.cy.js
new file mode 100644
index 00000000..acf769c0
--- /dev/null
+++ b/test/cypress/e2e/api/CertbotPlugins.cy.js
@@ -0,0 +1,28 @@
+///
+
+// Only tested once in the sqlite stack
+
+describe('CertbotPlugins', () => {
+ it('Should install all certbot plugins', () => {
+ cy.env(['stack']).then(({ stack }) => {
+ cy.log(`CertbotPlugins.cy.js - Running tests for stack: ${stack}`);
+ if (stack === 'sqlite') {
+ cy.task('backendApiGet', {
+ path: '/api/ci/certbot-plugins',
+ }).then((data) => {
+ expect(data).to.be.an('object');
+
+ // Install each plugin
+ for (const plugin of Object.keys(data)) {
+ cy.log(`Installing plugin: ${plugin}`);
+ cy.task('backendApiPost', {
+ path: `/api/ci/certbot-plugins/${plugin}`,
+ }).then((result) => {
+ expect(result).to.be.true;
+ });
+ }
+ });
+ }
+ });
+ });
+});
diff --git a/test/cypress/e2e/api/Certificates.cy.js b/test/cypress/e2e/api/Certificates.cy.js
index ce4200fb..25d1b8c4 100644
--- a/test/cypress/e2e/api/Certificates.cy.js
+++ b/test/cypress/e2e/api/Certificates.cy.js
@@ -4,8 +4,16 @@ describe('Certificates endpoints', () => {
let token;
let certID;
+ const certFile = 'test.example.com.pem';
+ const keyFile = 'test.example.com-key.pem';
+
before(() => {
- cy.createCustomCerts();
+ cy.createCustomCerts({
+ domain: 'test.example.com',
+ certFile,
+ keyFile,
+ })
+
cy.resetUsers();
cy.getToken().then((tok) => {
token = tok;
@@ -17,8 +25,8 @@ describe('Certificates endpoints', () => {
token: token,
path: '/api/nginx/certificates/validate',
files: {
- certificate: 'test.example.com.pem',
- certificate_key: 'test.example.com-key.pem',
+ certificate: certFile,
+ certificate_key: keyFile,
},
}).then((data) => {
cy.validateSwaggerSchema('post', 200, '/nginx/certificates/validate', data);
@@ -46,8 +54,8 @@ describe('Certificates endpoints', () => {
token: token,
path: `/api/nginx/certificates/${certID}/upload`,
files: {
- certificate: 'test.example.com.pem',
- certificate_key: 'test.example.com-key.pem',
+ certificate: certFile,
+ certificate_key: keyFile,
},
}).then((data) => {
cy.validateSwaggerSchema('post', 200, '/nginx/certificates/{certID}/upload', data);
diff --git a/test/cypress/e2e/api/Streams.cy.js b/test/cypress/e2e/api/Streams.cy.js
index b2c97b44..95c6dba1 100644
--- a/test/cypress/e2e/api/Streams.cy.js
+++ b/test/cypress/e2e/api/Streams.cy.js
@@ -3,7 +3,16 @@
describe('Streams', () => {
let token;
+ const certFile = 'website1.pem';
+ const keyFile = 'website1.key.pem';
+
before(() => {
+ cy.createCustomCerts({
+ domain: 'website1.example.com',
+ certFile,
+ keyFile,
+ })
+
cy.resetUsers();
cy.getToken().then((tok) => {
token = tok;
@@ -22,17 +31,6 @@ describe('Streams', () => {
});
});
- // Create a custom cert pair
- cy.task('getFixturesFolder').then((fixturesFolder) => {
- cy.exec(`mkcert -cert-file=${fixturesFolder}/website1.pem -key-file=${fixturesFolder}/website1.key.pem website1.example.com`).then((result) => {
- expect(result.exitCode).to.eq(0);
- // Install CA
- cy.exec('mkcert -install').then((result) => {
- expect(result.exitCode).to.eq(0);
- });
- });
- });
-
cy.exec('rm -f /test/results/testssl.json');
});
@@ -136,8 +134,8 @@ describe('Streams', () => {
token: token,
path: `/api/nginx/certificates/${certID}/upload`,
files: {
- certificate: 'website1.pem',
- certificate_key: 'website1.key.pem',
+ certificate: certFile,
+ certificate_key: keyFile,
},
}).then((data) => {
cy.validateSwaggerSchema('post', 200, '/nginx/certificates/{certID}/upload', data);
diff --git a/test/cypress/fixtures/.gitignore b/test/cypress/fixtures/.gitignore
new file mode 100644
index 00000000..cfaad761
--- /dev/null
+++ b/test/cypress/fixtures/.gitignore
@@ -0,0 +1 @@
+*.pem
diff --git a/test/cypress/fixtures/.gitkeep b/test/cypress/fixtures/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/test/cypress/support/commands.mjs b/test/cypress/support/commands.mjs
index 0001ded8..03c5bf22 100644
--- a/test/cypress/support/commands.mjs
+++ b/test/cypress/support/commands.mjs
@@ -157,10 +157,28 @@ Cypress.Commands.add('waitForCertificateStatus', (token, certID, expected, timeo
// Creates CA files for testing, if they already exist they will be deleted
// and recreated with the same content. This is to ensure that the files exist
// for testing and are in a known state.
-Cypress.Commands.add('createCustomCerts', () => {
- cy.task('getFixturesFolder').then((fixturesFolder) => {
- cy.exec('mkcert -install', {failOnNonZeroExit: false}).then(() => {
- cy.exec(`mkcert -cert-file=${fixturesFolder}/test.example.com.pem -key-file=${fixturesFolder}/test.example.com-key.pem test.example.com`, {failOnNonZeroExit: false});
+Cypress.Commands.add('createCustomCerts', ({domain, certFile, keyFile}) => {
+ domain = domain || 'website1.example.com';
+ certFile = certFile || 'website1.pem';
+ keyFile = keyFile || 'website1.key.pem';
+
+ return cy.task('getFixturesFolder').then((fixturesFolder) => {
+ const fullCertFile = `${fixturesFolder}/${certFile}`;
+ const fullKeyFile = `${fixturesFolder}/${keyFile}`;
+ const cmd = `mkcert -cert-file="${fullCertFile}" -key-file="${fullKeyFile}" "${domain}"`;
+ cy.log(`Creating custom certs with command: ${cmd}`);
+ return cy.exec(cmd).then((result) => {
+ cy.log(`mkcert output:\n${JSON.stringify(result)}`);
+ expect(result.exitCode).to.eq(0);
+ return cy.exec('mkcert -install').then((result2) => {
+ cy.log(`mkcert install output:\n${JSON.stringify(result2)}`);
+ expect(result2.exitCode).to.eq(0);
+ }).then(() => {
+ return cy.wrap({
+ certFile: fullCertFile,
+ keyFile: fullKeyFile,
+ });
+ });
});
});
});
From 7e9cc32f970f269f17f37ade01a9b81d47ef3813 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Mon, 25 May 2026 12:40:10 +1000
Subject: [PATCH 69/89] Fix cypress suite
- split out cypress tests for plugins to be isolated
- use updated testca image from proper location
---
backend/certbot/dns-plugins.json | 2 +-
backend/lib/certbot.js | 1 +
docker/Dockerfile | 10 +-
docker/dev/Dockerfile | 10 +-
docker/docker-compose.ci.isolated.yml | 13 ++
docker/docker-compose.ci.yml | 4 +-
docker/docker-compose.dev.yml | 2 +-
scripts/ci/fulltest-cypress | 6 +-
test/cypress/e2e/api/CertbotPlugins.cy.js | 2 +-
test/cypress/plugins/index.mjs | 7 +-
test/cypress/support/e2e.js | 8 +-
test/package.json | 1 +
test/yarn.lock | 235 +++++++++++++++++++++-
13 files changed, 279 insertions(+), 22 deletions(-)
create mode 100644 docker/docker-compose.ci.isolated.yml
diff --git a/backend/certbot/dns-plugins.json b/backend/certbot/dns-plugins.json
index a84cca6b..672940b5 100644
--- a/backend/certbot/dns-plugins.json
+++ b/backend/certbot/dns-plugins.json
@@ -553,7 +553,7 @@
},
"powerdns": {
"credentials": "dns_powerdns_api_url = https://api.mypowerdns.example.org\ndns_powerdns_api_key = AbCbASsd!@34",
- "dependencies": "PyYAML>=6.0.1",
+ "dependencies": "acme=={{certbot-version}}",
"full_plugin_name": "dns-powerdns",
"name": "PowerDNS",
"package_name": "certbot-dns-powerdns",
diff --git a/backend/lib/certbot.js b/backend/lib/certbot.js
index 3cafe50f..2b9e181b 100644
--- a/backend/lib/certbot.js
+++ b/backend/lib/certbot.js
@@ -37,6 +37,7 @@ const installPlugin = async (pluginKey) => {
.map((d) => `'${d}'`)
.join(" ")
: "";
+
const cmd = `. /opt/certbot/bin/activate && pip install --no-cache-dir ${quotedDeps} '${plugin.package_name}${plugin.version}' && deactivate`;
return utils
.exec(cmd, { env })
diff --git a/docker/Dockerfile b/docker/Dockerfile
index 88ce95ed..4ba2d89c 100644
--- a/docker/Dockerfile
+++ b/docker/Dockerfile
@@ -38,15 +38,17 @@ EXPOSE 80 81 443
COPY backend /app
COPY frontend/dist /app/frontend
+COPY docker/rootfs /
+
+# Copy test CA cert for use in container and add to trusted certs from a self-signed CA
+COPY --from=testca /home/step/certs/root_ca.crt /etc/ssl/certs/NginxProxyManager.crt
+WORKDIR /etc/ssl/certs
+RUN ln -s NginxProxyManager.crt 1d0e3f10.0 && update-ca-certificates
WORKDIR /app
RUN yarn install \
&& yarn cache clean
-# add late to limit cache-busting by modifications
-COPY docker/rootfs /
-COPY --from=testca /home/step/certs/root_ca.crt /etc/ssl/certs/NginxProxyManager.crt
-
# Remove frontend service not required for prod, dev nginx config as well
RUN rm -rf /etc/s6-overlay/s6-rc.d/user/contents.d/frontend /etc/nginx/conf.d/dev.conf \
&& chmod 644 /etc/logrotate.d/nginx-proxy-manager
diff --git a/docker/dev/Dockerfile b/docker/dev/Dockerfile
index f0f5ec60..8593fd5e 100644
--- a/docker/dev/Dockerfile
+++ b/docker/dev/Dockerfile
@@ -20,10 +20,10 @@ RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \
# Task
WORKDIR /usr
-RUN curl -sL https://taskfile.dev/install.sh | sh
-WORKDIR /root
+RUN curl -sL 'https://taskfile.dev/install.sh' | sh
COPY rootfs /
+
COPY scripts/install-s6 /tmp/install-s6
RUN rm -f /etc/nginx/conf.d/production.conf \
&& chmod 644 /etc/logrotate.d/nginx-proxy-manager \
@@ -31,8 +31,12 @@ RUN rm -f /etc/nginx/conf.d/production.conf \
&& rm -f /tmp/install-s6 \
&& chmod 644 -R /root/.cache
-# Certs for testing purposes
+# Copy test CA cert for use in container and add to trusted certs from a self-signed CA
COPY --from=testca /home/step/certs/root_ca.crt /etc/ssl/certs/NginxProxyManager.crt
+WORKDIR /etc/ssl/certs
+RUN ln -s NginxProxyManager.crt 1d0e3f10.0 && update-ca-certificates
+
+WORKDIR /root
EXPOSE 80 81 443
ENTRYPOINT [ "/init" ]
diff --git a/docker/docker-compose.ci.isolated.yml b/docker/docker-compose.ci.isolated.yml
new file mode 100644
index 00000000..b2d88f71
--- /dev/null
+++ b/docker/docker-compose.ci.isolated.yml
@@ -0,0 +1,13 @@
+# WARNING: This is a CI docker-compose file used for building and testing of the entire app, it should not be used for production.
+services:
+ cypress:
+ environment:
+ CYPRESS_stack: "sqlite"
+ command: cypress run --browser chrome --config-file=cypress/config/ci.mjs --expose grepTags="@isolated"
+
+ fullstack:
+ environment:
+ DB_SQLITE_FILE: "/data/mydb.sqlite"
+ PUID: 1000
+ PGID: 1000
+ DISABLE_IPV6: "true"
diff --git a/docker/docker-compose.ci.yml b/docker/docker-compose.ci.yml
index 1bf6dade..6130f82e 100644
--- a/docker/docker-compose.ci.yml
+++ b/docker/docker-compose.ci.yml
@@ -39,7 +39,7 @@ services:
- website3.example.com
stepca:
- image: jc21/testca
+ image: nginxproxymanager/testca
volumes:
- "./dev/resolv.conf:/etc/resolv.conf:ro"
- "/etc/localtime:/etc/localtime:ro"
@@ -109,7 +109,7 @@ services:
- "cypress_logs:/test/results"
- "./dev/resolv.conf:/etc/resolv.conf:ro"
- "/etc/localtime:/etc/localtime:ro"
- command: cypress run --browser chrome --config-file=cypress/config/ci.mjs
+ command: cypress run --browser chrome --config-file=cypress/config/ci.mjs --expose grepTags="-@isolated"
networks:
- fulltest
diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml
index 4d519f8a..d6b07ec0 100644
--- a/docker/docker-compose.dev.yml
+++ b/docker/docker-compose.dev.yml
@@ -94,7 +94,7 @@ services:
- pgdb.internal
stepca:
- image: jc21/testca
+ image: nginxproxymanager/testca
container_name: npm2dev.stepca
volumes:
- "./dev/resolv.conf:/etc/resolv.conf:ro"
diff --git a/scripts/ci/fulltest-cypress b/scripts/ci/fulltest-cypress
index 54fa0528..8fb89696 100755
--- a/scripts/ci/fulltest-cypress
+++ b/scripts/ci/fulltest-cypress
@@ -52,7 +52,7 @@ jq --arg a "$PDNS_IP" '.servers[0].upstreams[1].upstream = $a' "$LOCAL_DNSROUTER
docker compose up -d dnsrouter
DNSROUTER_IP=$(get_container_ip "dnsrouter")
-echo -e "${BLUE}❯ ${YELLOW}DNS Router IP is ${DNSROUTER_IP}"
+echo -e "${BLUE}❯ ${YELLOW}DNS Router IP is ${DNSROUTER_IP}${RESET}"
if [ "${DNSROUTER_IP:-}" = "" ]; then
echo -e "${RED}❯ ERROR: DNS Router IP is not set${RESET}"
@@ -76,7 +76,8 @@ bash "$DIR/../wait-healthy" "$(docker compose ps --all -q fullstack)" 120
# Run tests
rm -rf "$DIR/../../test/results"
-docker compose up --build cypress
+docker compose build cypress
+docker compose up cypress
# Get results
docker cp -L "$(docker compose ps --all -q cypress):/test/results" "$DIR/../../test/"
@@ -88,4 +89,3 @@ if [ "$2" = "cleanup" ]; then
fi
echo -e "${BLUE}❯ ${GREEN}Fullstack cypress testing complete${RESET}"
-
diff --git a/test/cypress/e2e/api/CertbotPlugins.cy.js b/test/cypress/e2e/api/CertbotPlugins.cy.js
index acf769c0..554f97b6 100644
--- a/test/cypress/e2e/api/CertbotPlugins.cy.js
+++ b/test/cypress/e2e/api/CertbotPlugins.cy.js
@@ -2,7 +2,7 @@
// Only tested once in the sqlite stack
-describe('CertbotPlugins', () => {
+describe('CertbotPlugins', { tags: '@isolated' }, () => {
it('Should install all certbot plugins', () => {
cy.env(['stack']).then(({ stack }) => {
cy.log(`CertbotPlugins.cy.js - Running tests for stack: ${stack}`);
diff --git a/test/cypress/plugins/index.mjs b/test/cypress/plugins/index.mjs
index dc09527d..6a2ff9ff 100644
--- a/test/cypress/plugins/index.mjs
+++ b/test/cypress/plugins/index.mjs
@@ -1,3 +1,4 @@
+import { plugin as cypressGrepPlugin } from "@cypress/grep/plugin";
import { SwaggerValidation } from "@jc21/cypress-swagger-validation";
import chalk from "chalk";
import backendTask from "./backendApi/task.mjs";
@@ -11,6 +12,8 @@ export default (on, config) => {
);
}
+ cypressGrepPlugin(config);
+
// Plugin Events
on("task", SwaggerValidation(config));
on("task", backendTask(config));
@@ -22,9 +25,9 @@ export default (on, config) => {
return null;
},
});
- on('task', {
+ on("task", {
getFixturesFolder() {
- return config.fixturesFolder
+ return config.fixturesFolder;
},
});
diff --git a/test/cypress/support/e2e.js b/test/cypress/support/e2e.js
index 2d8a13a7..f8ef2a69 100644
--- a/test/cypress/support/e2e.js
+++ b/test/cypress/support/e2e.js
@@ -1,6 +1,10 @@
-import './commands.mjs';
+import "./commands.mjs";
-Cypress.on('uncaught:exception', (/*err, runnable*/) => {
+import { register as registerCypressGrep } from "@cypress/grep";
+
+registerCypressGrep();
+
+Cypress.on("uncaught:exception", (/*err, runnable*/) => {
// returning false here prevents Cypress from
// failing the test
return false;
diff --git a/test/package.json b/test/package.json
index 555bb6c2..c1a79d9b 100644
--- a/test/package.json
+++ b/test/package.json
@@ -4,6 +4,7 @@
"description": "",
"main": "index.js",
"dependencies": {
+ "@cypress/grep": "^6.0.0",
"@jc21/cypress-swagger-validation": "^0.3.2",
"@quobix/vacuum": "^0.26.4",
"axios": "^1.16.0",
diff --git a/test/yarn.lock b/test/yarn.lock
index 57e4b473..515ef259 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -43,6 +43,52 @@
ajv-draft-04 "^1.0.0"
call-me-maybe "^1.0.2"
+"@babel/helper-plugin-utils@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz#c0a0766f1a13617d8a17407d7ab8f9d486225ea4"
+ integrity sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==
+
+"@babel/helper-string-parser@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz#7f0871d99824d23137d60f86fcf6130fd5a1b51f"
+ integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==
+
+"@babel/helper-validator-identifier@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz#bd87084ced0c796ec46bda492de6e83d29e89fc2"
+ integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==
+
+"@babel/parser@^7.27.2":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.7.tgz#837b87387cbf5ec5530cb634b3c622f68edb9334"
+ integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==
+ dependencies:
+ "@babel/types" "^7.29.7"
+
+"@babel/plugin-syntax-jsx@^7.27.1":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz#622c16f9ad63782fe6e83dadc7e40330744b7f1e"
+ integrity sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.29.7"
+
+"@babel/types@^7.29.7":
+ version "7.29.7"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.7.tgz#8005e31d82712ee7adaef6e23c63b71a62770a92"
+ integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==
+ dependencies:
+ "@babel/helper-string-parser" "^7.29.7"
+ "@babel/helper-validator-identifier" "^7.29.7"
+
+"@cypress/grep@^6.0.0":
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/@cypress/grep/-/grep-6.0.0.tgz#fcc5f42d0086464e2752c4d84ac563c3cd21eb77"
+ integrity sha512-n3PCeqt8OwmLFz310igbRUm3qDE5WJgM9LW+2ejdULfMu2Sudqg3UX8koC8/JU/+ZcJ5UbaQAap1Nbi0QvzXwA==
+ dependencies:
+ debug "^4.3.4"
+ find-test-names "^1.28.18"
+ globby "^11.0.4"
+
"@cypress/request@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@cypress/request/-/request-4.0.0.tgz#2bc3a10a7d50f338dc644dc5fd14a60107c6f3e2"
@@ -185,6 +231,27 @@
resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796"
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
+"@nodelib/fs.scandir@2.1.5":
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+ integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+ dependencies:
+ "@nodelib/fs.stat" "2.0.5"
+ run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3":
+ version "1.2.8"
+ resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+ dependencies:
+ "@nodelib/fs.scandir" "2.1.5"
+ fastq "^1.6.0"
+
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
@@ -248,7 +315,14 @@ acorn-jsx@^5.3.2:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-acorn@^8.16.0:
+acorn-walk@^8.2.0:
+ version "8.3.5"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496"
+ integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==
+ dependencies:
+ acorn "^8.11.0"
+
+acorn@^8.11.0, acorn@^8.16.0:
version "8.16.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a"
integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==
@@ -329,6 +403,11 @@ argparse@^2.0.1:
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+array-union@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+ integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
+
asn1@~0.2.3:
version "0.2.6"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
@@ -416,6 +495,13 @@ brace-expansion@^5.0.5:
dependencies:
balanced-match "^4.0.2"
+braces@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+ integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
+ dependencies:
+ fill-range "^7.1.1"
+
browser-stdout@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
@@ -673,7 +759,7 @@ dayjs@^1.10.4:
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938"
integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==
-debug@4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0:
+debug@4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0:
version "4.4.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
@@ -707,6 +793,13 @@ diff@^7.0.0:
resolved "https://registry.yarnpkg.com/diff/-/diff-7.0.0.tgz#3fb34d387cd76d803f6eebea67b921dab0182a9a"
integrity sha512-PJWHUb1RFevKCwaFA9RlG5tCd+FO5iRh9A8HEtkmBH2Li03iJriB6m6JIN4rGz3K3JLawI7/veA1xzRKP6ISBw==
+dir-glob@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
+ dependencies:
+ path-type "^4.0.0"
+
dunder-proto@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
@@ -983,6 +1076,17 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+fast-glob@^3.2.9:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818"
+ integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.8"
+
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
@@ -998,6 +1102,13 @@ fast-uri@^3.0.1:
resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.2.tgz#8af3d4fc9d3e71b11572cc2673b514a7d1a8c8ec"
integrity sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==
+fastq@^1.6.0:
+ version "1.20.1"
+ resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675"
+ integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==
+ dependencies:
+ reusify "^1.0.4"
+
fd-slicer@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
@@ -1005,6 +1116,11 @@ fd-slicer@~1.1.0:
dependencies:
pend "~1.2.0"
+fdir@^6.5.0:
+ version "6.5.0"
+ resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350"
+ integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==
+
fetch-blob@^3.1.2, fetch-blob@^3.1.4:
version "3.2.0"
resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9"
@@ -1020,6 +1136,25 @@ file-entry-cache@^8.0.0:
dependencies:
flat-cache "^4.0.0"
+fill-range@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+ integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+find-test-names@^1.28.18:
+ version "1.29.19"
+ resolved "https://registry.yarnpkg.com/find-test-names/-/find-test-names-1.29.19.tgz#365a18aefbc55f88ba5c96b01145c9b616b0d0d2"
+ integrity sha512-fSO2GXgOU6dH+FdffmRXYN/kLdnd8zkBGIZrKsmAdfLSFUUDLpDFF7+F/h+wjmjDWQmMgD8hPfJZR+igiEUQHQ==
+ dependencies:
+ "@babel/parser" "^7.27.2"
+ "@babel/plugin-syntax-jsx" "^7.27.1"
+ acorn-walk "^8.2.0"
+ debug "^4.3.3"
+ simple-bin-help "^1.8.0"
+ tinyglobby "^0.2.13"
+
find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
@@ -1145,6 +1280,13 @@ getpass@^0.1.1:
dependencies:
assert-plus "^1.0.0"
+glob-parent@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
+ dependencies:
+ is-glob "^4.0.1"
+
glob-parent@^6.0.2:
version "6.0.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
@@ -1176,6 +1318,18 @@ globals@^17.6.0:
resolved "https://registry.yarnpkg.com/globals/-/globals-17.6.0.tgz#0f0be018d5cca8690e6375ead1f65c4bb96191fc"
integrity sha512-sepffkT8stwnIYbsMBpoCHJuJM5l98FUF2AnE07hfvE0m/qp3R586hw4jF4uadbhvg1ooIdzuu7CsfD2jzCaNA==
+globby@^11.0.4:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
+ integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
+ dependencies:
+ array-union "^2.1.0"
+ dir-glob "^3.0.1"
+ fast-glob "^3.2.9"
+ ignore "^5.2.0"
+ merge2 "^1.4.1"
+ slash "^3.0.0"
+
gopd@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
@@ -1287,7 +1441,7 @@ is-fullwidth-code-point@^5.0.0, is-fullwidth-code-point@^5.1.0:
dependencies:
get-east-asian-width "^1.3.1"
-is-glob@^4.0.0, is-glob@^4.0.3:
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
@@ -1302,6 +1456,11 @@ is-installed-globally@~0.4.0:
global-dirs "^3.0.0"
is-path-inside "^3.0.2"
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
is-path-inside@^3.0.2, is-path-inside@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
@@ -1508,6 +1667,19 @@ merge-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
+merge2@^1.3.0, merge2@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
+
+micromatch@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
+ integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
+ dependencies:
+ braces "^3.0.3"
+ picomatch "^2.3.1"
+
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
@@ -1720,6 +1892,11 @@ path-scurry@^1.11.1:
lru-cache "^10.2.0"
minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -1735,6 +1912,16 @@ picocolors@^1.1.0, picocolors@^1.1.1:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
+picomatch@^2.3.1:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601"
+ integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==
+
+picomatch@^4.0.4:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589"
+ integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==
+
pify@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -1785,6 +1972,11 @@ qs@~6.14.1:
dependencies:
side-channel "^1.1.0"
+queue-microtask@^1.2.2:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
randombytes@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
@@ -1822,11 +2014,23 @@ restore-cursor@^5.0.0:
onetime "^7.0.0"
signal-exit "^4.1.0"
+reusify@^1.0.4:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f"
+ integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==
+
rfdc@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca"
integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==
+run-parallel@^1.1.9:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+ dependencies:
+ queue-microtask "^1.2.2"
+
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@@ -1911,6 +2115,16 @@ signal-exit@^4.0.1, signal-exit@^4.1.0:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+simple-bin-help@^1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/simple-bin-help/-/simple-bin-help-1.8.0.tgz#21bb82c6bccd9fa8678f9c0fadf2956b54e2160a"
+ integrity sha512-0LxHn+P1lF5r2WwVB/za3hLRIsYoLaNq1CXqjbrs3ZvLuvlWnRKrUjEWzV7umZL7hpQ7xULiQMV+0iXdRa5iFg==
+
+slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
+
slice-ansi@^7.1.0:
version "7.1.2"
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.2.tgz#adf7be70aa6d72162d907cd0e6d5c11f507b5403"
@@ -2071,6 +2285,14 @@ throttleit@^1.0.0:
resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.1.tgz#304ec51631c3b770c65c6c6f76938b384000f4d5"
integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==
+tinyglobby@^0.2.13:
+ version "0.2.16"
+ resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6"
+ integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==
+ dependencies:
+ fdir "^6.5.0"
+ picomatch "^4.0.4"
+
tldts-core@^6.1.86:
version "6.1.86"
resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8"
@@ -2088,6 +2310,13 @@ tmp@~0.2.4:
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8"
integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
tough-cookie@^5.0.0:
version "5.1.2"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7"
From 553a69a9efed60ed009b2b0a0df1ab18fe22d2f1 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Wed, 27 May 2026 07:54:23 +1000
Subject: [PATCH 70/89] Adds Certbot document to docs site
---
docs/.vitepress/config.mts | 111 ++++++++++++++++++++++++++-----------
docs/src/certbot/index.md | 38 +++++++++++++
2 files changed, 116 insertions(+), 33 deletions(-)
create mode 100644 docs/src/certbot/index.md
diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts
index 52586bfc..b6f6f3f6 100644
--- a/docs/.vitepress/config.mts
+++ b/docs/.vitepress/config.mts
@@ -1,4 +1,4 @@
-import { defineConfig, type DefaultTheme } from 'vitepress';
+import { defineConfig } from "vitepress";
// https://vitepress.dev/reference/site-config
export default defineConfig({
@@ -6,56 +6,101 @@ export default defineConfig({
description: "Expose your services easily and securely",
head: [
["link", { rel: "icon", href: "/icon.png" }],
- ["meta", { name: "description", content: "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt" }],
+ [
+ "meta",
+ {
+ name: "description",
+ content:
+ "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt",
+ },
+ ],
["meta", { property: "og:title", content: "Nginx Proxy Manager" }],
- ["meta", { property: "og:description", content: "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt"}],
+ [
+ "meta",
+ {
+ property: "og:description",
+ content:
+ "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt",
+ },
+ ],
["meta", { property: "og:type", content: "website" }],
["meta", { property: "og:url", content: "https://nginxproxymanager.com/" }],
- ["meta", { property: "og:image", content: "https://nginxproxymanager.com/icon.png" }],
- ["meta", { name: "twitter:card", content: "summary"}],
- ["meta", { name: "twitter:title", content: "Nginx Proxy Manager"}],
- ["meta", { name: "twitter:description", content: "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt"}],
- ["meta", { name: "twitter:image", content: "https://nginxproxymanager.com/icon.png"}],
- ["meta", { name: "twitter:alt", content: "Nginx Proxy Manager"}],
+ [
+ "meta",
+ {
+ property: "og:image",
+ content: "https://nginxproxymanager.com/icon.png",
+ },
+ ],
+ ["meta", { name: "twitter:card", content: "summary" }],
+ ["meta", { name: "twitter:title", content: "Nginx Proxy Manager" }],
+ [
+ "meta",
+ {
+ name: "twitter:description",
+ content:
+ "Docker container and built in Web Application for managing Nginx proxy hosts with a simple, powerful interface, providing free SSL support via Let's Encrypt",
+ },
+ ],
+ [
+ "meta",
+ {
+ name: "twitter:image",
+ content: "https://nginxproxymanager.com/icon.png",
+ },
+ ],
+ ["meta", { name: "twitter:alt", content: "Nginx Proxy Manager" }],
// GA
- ['script', { async: 'true', src: 'https://www.googletagmanager.com/gtag/js?id=G-TXT8F5WY5B'}],
- ['script', {}, "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-TXT8F5WY5B');"],
+ [
+ "script",
+ {
+ async: "true",
+ src: "https://www.googletagmanager.com/gtag/js?id=G-TXT8F5WY5B",
+ },
+ ],
+ [
+ "script",
+ {},
+ "window.dataLayer = window.dataLayer || [];\nfunction gtag(){dataLayer.push(arguments);}\ngtag('js', new Date());\ngtag('config', 'G-TXT8F5WY5B');",
+ ],
],
sitemap: {
- hostname: 'https://nginxproxymanager.com'
+ hostname: "https://nginxproxymanager.com",
},
metaChunk: true,
- srcDir: './src',
- outDir: './dist',
+ srcDir: "./src",
+ outDir: "./dist",
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
- logo: { src: '/logo.svg', width: 24, height: 24 },
- nav: [
- { text: 'Setup', link: '/setup/' },
- ],
+ logo: { src: "/logo.svg", width: 24, height: 24 },
+ nav: [{ text: "Setup", link: "/setup/" }],
sidebar: [
{
items: [
// { text: 'Home', link: '/' },
- { text: 'Guide', link: '/guide/' },
- { text: 'Screenshots', link: '/screenshots/' },
- { text: 'Setup Instructions', link: '/setup/' },
- { text: 'Advanced Configuration', link: '/advanced-config/' },
- { text: 'Upgrading', link: '/upgrading/' },
- { text: 'Frequently Asked Questions', link: '/faq/' },
- { text: 'Third Party', link: '/third-party/' },
- ]
- }
+ { text: "Guide", link: "/guide/" },
+ { text: "Screenshots", link: "/screenshots/" },
+ { text: "Setup Instructions", link: "/setup/" },
+ { text: "Advanced Configuration", link: "/advanced-config/" },
+ { text: "Upgrading", link: "/upgrading/" },
+ { text: "Frequently Asked Questions", link: "/faq/" },
+ { text: "Certbot", link: "/certbot/" },
+ { text: "Third Party", link: "/third-party/" },
+ ],
+ },
],
socialLinks: [
- { icon: 'github', link: 'https://github.com/NginxProxyManager/nginx-proxy-manager' }
+ {
+ icon: "github",
+ link: "https://github.com/NginxProxyManager/nginx-proxy-manager",
+ },
],
search: {
- provider: 'local'
+ provider: "local",
},
footer: {
- message: 'Released under the MIT License.',
- copyright: 'Copyright © 2016-present jc21.com'
- }
- }
+ message: "Released under the MIT License.",
+ copyright: "Copyright © 2016-present jc21.com",
+ },
+ },
});
diff --git a/docs/src/certbot/index.md b/docs/src/certbot/index.md
new file mode 100644
index 00000000..f8845367
--- /dev/null
+++ b/docs/src/certbot/index.md
@@ -0,0 +1,38 @@
+---
+outline: deep
+---
+
+## Certbot DNS plugins in Nginx Proxy Manager
+
+Nginx Proxy Manager uses Certbot to issue and renew Let’s Encrypt certificates.
+
+When you request a certificate using a DNS challenge, Nginx Proxy Manager installs
+the corresponding Certbot DNS plugin for the provider you selected. The available
+providers and package versions are defined in
+[certbot-dns-plugins.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/backend/certbot/dns-plugins.json).
+
+## Important limitations
+
+DNS plugins are maintained independently from Certbot and from Nginx Proxy Manager. As a result:
+- Some plugins may lag behind current Certbot or dependency versions.
+- A plugin may install package versions that conflict with other Certbot components.
+- Support quality varies between providers, and not every plugin is regularly tested in Nginx Proxy Manager.
+
+::: warning
+Using more than one DNS provider in the same Nginx Proxy Manager instance may introduce Python
+dependency conflicts between Certbot plugins.
+:::
+
+## If a DNS plugin does not work
+
+1. Check the Nginx Proxy Manager container logs for Certbot or Python package installation errors.
+2. Identify the plugin package and version defined for your provider in
+[certbot-dns-plugins.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/backend/certbot/dns-plugins.json).
+3. Check [PyPI](https://pypi.org/) or the plugin project for a newer compatible release.
+4. If needed, update the plugin definition, including any required dependency pins.
+5. Submitting a pull request and CI will build a testable docker image for you.
+
+## File reference
+
+Use this file when reviewing or updating provider definitions:
+- [certbot-dns-plugins.json](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/backend/certbot/dns-plugins.json)
From c94cbb235bf4e20aff3bf47abd4f3745b9f42a22 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 26 May 2026 22:28:25 +0000
Subject: [PATCH 71/89] Bump the prod-patch-updates group across 1 directory
with 3 updates
Bumps the prod-patch-updates group with 3 updates in the /test directory: [@quobix/vacuum](https://github.com/daveshanley/vacuum), [axios](https://github.com/axios/axios) and [mocha](https://github.com/mochajs/mocha).
Updates `@quobix/vacuum` from 0.26.4 to 0.26.8
- [Release notes](https://github.com/daveshanley/vacuum/releases)
- [Commits](https://github.com/daveshanley/vacuum/compare/v0.26.4...v0.26.8)
Updates `axios` from 1.16.0 to 1.16.1
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.16.0...v1.16.1)
Updates `mocha` from 11.7.5 to 11.7.6
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/v11.7.6/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v11.7.5...v11.7.6)
---
updated-dependencies:
- dependency-name: "@quobix/vacuum"
dependency-version: 0.26.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
- dependency-name: axios
dependency-version: 1.16.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
- dependency-name: mocha
dependency-version: 11.7.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
...
Signed-off-by: dependabot[bot]
---
test/yarn.lock | 34 +++++++++++++++++++++++++---------
1 file changed, 25 insertions(+), 9 deletions(-)
diff --git a/test/yarn.lock b/test/yarn.lock
index 515ef259..f2c5b3e1 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -258,9 +258,9 @@
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
"@quobix/vacuum@^0.26.4":
- version "0.26.4"
- resolved "https://registry.yarnpkg.com/@quobix/vacuum/-/vacuum-0.26.4.tgz#b3b2af1cf14edffeb9e5fcdb02db8871d92c1b7c"
- integrity sha512-jSfJJtN20ypOHHvN6tWPF1j0RkgjebVfHDuF+eiLV/Nt/QwQ1wJpEb4bVVJWh25cK4FiuoW7yNLSDwegQLqETA==
+ version "0.26.8"
+ resolved "https://registry.yarnpkg.com/@quobix/vacuum/-/vacuum-0.26.8.tgz#1a912c10655ab59c5af7179ff0cbe76609fb44de"
+ integrity sha512-iTF9MScMs+oqoE9QXQZxo6AfyZMg5YOtAL97oLuZ6/1TBRiq/+tRK2STtaVFxs5Vd05xHeO9hRdssUurzmkIpQ==
dependencies:
https-proxy-agent "^7.0.6"
node-fetch "^3.3.2"
@@ -327,6 +327,13 @@ acorn@^8.11.0, acorn@^8.16.0:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a"
integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==
+agent-base@6:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ dependencies:
+ debug "4"
+
agent-base@^7.1.2:
version "7.1.4"
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8"
@@ -441,12 +448,13 @@ aws4@^1.8.0:
integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==
axios@^1.16.0, axios@^1.7.7:
- version "1.16.0"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.16.0.tgz#f8e5dd931cef2a5f8c32216d5784eda2f8750eb7"
- integrity sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.16.1.tgz#517e29291d19d6e8cf919ff264f4fe157261ba12"
+ integrity sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==
dependencies:
follow-redirects "^1.16.0"
form-data "^4.0.5"
+ https-proxy-agent "^5.0.1"
proxy-from-env "^2.1.0"
balanced-match@^1.0.0:
@@ -1386,6 +1394,14 @@ http-signature@~1.4.0:
jsprim "^2.0.2"
sshpk "^1.18.0"
+https-proxy-agent@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
+ integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+
https-proxy-agent@^7.0.6:
version "7.0.6"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9"
@@ -1750,9 +1766,9 @@ mocha-junit-reporter@^2.2.1:
xml "^1.0.1"
mocha@^11.7.5:
- version "11.7.5"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.5.tgz#58f5bbfa5e0211ce7e5ee6128107cefc2515a627"
- integrity sha512-mTT6RgopEYABzXWFx+GcJ+ZQ32kp4fMf0xvpZIIfSq9Z8lC/++MtcCnQ9t5FP2veYEP95FIYSvW+U9fV4xrlig==
+ version "11.7.6"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-11.7.6.tgz#ebbe22989d04cbb9424a36307320476624c41a33"
+ integrity sha512-nS9xOGbw2I3cjCpxwZAEJ9xK9lmJ08vEkQvLtz4du9ZrF9UrjRpeJGiIgl2Z+Qs++pmB4ecDe48Fwsh+j+j7xA==
dependencies:
browser-stdout "^1.3.1"
chokidar "^4.0.1"
From 33bf6d412d3228b334a16cd32895d0abdedbaa06 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 26 May 2026 22:29:03 +0000
Subject: [PATCH 72/89] Bump the dev-minor-updates group across 1 directory
with 4 updates
Bumps the dev-minor-updates group with 4 updates in the /frontend directory: [@formatjs/cli](https://github.com/formatjs/formatjs), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [sass](https://github.com/sass/dart-sass) and [vite-plugin-checker](https://github.com/fi3ework/vite-plugin-checker).
Updates `@formatjs/cli` from 6.15.0 to 6.16.3
- [Release notes](https://github.com/formatjs/formatjs/releases)
- [Commits](https://github.com/formatjs/formatjs/compare/@formatjs/cli@6.15.0...@formatjs/cli@6.16.3)
Updates `@types/node` from 25.7.0 to 25.9.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)
Updates `sass` from 1.99.0 to 1.100.0
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.99.0...1.100.0)
Updates `vite-plugin-checker` from 0.13.0 to 0.14.1
- [Release notes](https://github.com/fi3ework/vite-plugin-checker/releases)
- [Commits](https://github.com/fi3ework/vite-plugin-checker/compare/vite-plugin-checker@0.13.0...vite-plugin-checker@0.14.1)
---
updated-dependencies:
- dependency-name: "@formatjs/cli"
dependency-version: 6.16.3
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-minor-updates
- dependency-name: "@types/node"
dependency-version: 25.9.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-minor-updates
- dependency-name: sass
dependency-version: 1.100.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-minor-updates
- dependency-name: vite-plugin-checker
dependency-version: 0.14.1
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: dev-minor-updates
...
Signed-off-by: dependabot[bot]
---
frontend/package.json | 8 ++--
frontend/yarn.lock | 99 ++++++++++++++++++++-----------------------
2 files changed, 50 insertions(+), 57 deletions(-)
diff --git a/frontend/package.json b/frontend/package.json
index 1d98b5d4..e06d21bb 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -41,14 +41,14 @@
},
"devDependencies": {
"@biomejs/biome": "^2.4.15",
- "@formatjs/cli": "^6.15.0",
+ "@formatjs/cli": "^6.16.3",
"@tanstack/react-query-devtools": "^5.100.10",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/country-flag-icons": "^1.2.2",
"@types/humps": "^2.0.6",
- "@types/node": "^25.7.0",
+ "@types/node": "^25.9.1",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/react-table": "^7.7.20",
@@ -56,11 +56,11 @@
"happy-dom": "^20.9.0",
"postcss": "^8.5.14",
"postcss-simple-vars": "^7.0.1",
- "sass": "^1.99.0",
+ "sass": "^1.100.0",
"tmp": "^0.2.5",
"typescript": "6.0.3",
"vite": "^8.0.12",
- "vite-plugin-checker": "^0.13.0",
+ "vite-plugin-checker": "^0.14.1",
"vitest": "^4.1.6"
}
}
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 7895399f..9bc6efd3 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -7,7 +7,7 @@
resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.4.tgz#2856c55443d3d461693f32d2b96fb6ea92e1ffa9"
integrity sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.27.1", "@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0":
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0":
version "7.29.0"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c"
integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==
@@ -281,18 +281,30 @@
resolved "https://registry.yarnpkg.com/@formatjs/cli-native-darwin-arm64/-/cli-native-darwin-arm64-1.1.0.tgz#c47df2ec7c1d27643900af77c474bd224b4587dc"
integrity sha512-ygEpFpmRjbAKanWaeto/eUItyuK18667mdDzpDg3CTzc15WYzjZKnwJNFUuPFvFA4hiod1tnhXT1eiXmc1wWNg==
+"@formatjs/cli-native-linux-arm64@1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli-native-linux-arm64/-/cli-native-linux-arm64-1.2.0.tgz#3ddcafb006351417e82785b809a1ab1fbbb2c577"
+ integrity sha512-G6YuIVD8D6hZjnsD/aYZQ2qMHSve7IadEiXgKiDfFQBbyrkjDAlt6LDSqq4qnuv3WJ7/jAOn/An6n/bGyt0rLg==
+
"@formatjs/cli-native-linux-x64@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@formatjs/cli-native-linux-x64/-/cli-native-linux-x64-1.1.0.tgz#1a3f01ea47f971a0dd0d7f49b98df237375862fa"
integrity sha512-AxORf5LR14HvXU4ov9gnhLrNIS2DYKqKMkRkprUhuh+ljba1riF05msK8KzslEPYQoeYKc5A0OZp57poh4xz/g==
-"@formatjs/cli@^6.15.0":
- version "6.15.0"
- resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.15.0.tgz#060fc613f3121f7a90b46ca41e9f23ac9e501155"
- integrity sha512-U8kd1jf7JEEZRhEranEiCv+QWdD+Spz+GUQRuaLyACCDp1q1wWIxdNAR3UETwD3Q37CAajHeMYSVfVBzfGj79g==
+"@formatjs/cli-native-win32-x64@1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli-native-win32-x64/-/cli-native-win32-x64-1.1.1.tgz#a911b22c8f5ccfe4aff5a00276ee4274f4b81079"
+ integrity sha512-2vYgm7dzAb7wA9KjOOJGxZiSShwBNK4dEmgiJ1lRpEIz6RKMZ6wBY4UVn03VdAv8djJ7r6RK4Xyd2ouGcbh9Bg==
+
+"@formatjs/cli@^6.16.3":
+ version "6.16.3"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.16.3.tgz#728a17c1deaf1fec0ace554b2c72695f18253231"
+ integrity sha512-AN6uZR1xnl3V215HHJiKiA+DvNMrO/XfQ7hOyq3gXfHJwKSgLLQFtSFxw9A1O0SaGC2E2Kwo4mqwS1ZCLGe/qw==
optionalDependencies:
"@formatjs/cli-native-darwin-arm64" "1.1.0"
+ "@formatjs/cli-native-linux-arm64" "1.2.0"
"@formatjs/cli-native-linux-x64" "1.1.0"
+ "@formatjs/cli-native-win32-x64" "1.1.1"
"@formatjs/fast-memoize@3.1.5":
version "3.1.5"
@@ -772,19 +784,12 @@
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78"
integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==
-"@types/node@*", "@types/node@>=20.0.0":
- version "25.3.0"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-25.3.0.tgz#749b1bd4058e51b72e22bd41e9eab6ebd0180470"
- integrity sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==
+"@types/node@*", "@types/node@>=20.0.0", "@types/node@^25.9.1":
+ version "25.9.1"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-25.9.1.tgz#3bda556db500ae4319c08e7fc9ab94f19013ba0b"
+ integrity sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg==
dependencies:
- undici-types "~7.18.0"
-
-"@types/node@^25.7.0":
- version "25.7.0"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-25.7.0.tgz#7498f82e90dbdce7c34b75aaaa256c498a0ebe6c"
- integrity sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==
- dependencies:
- undici-types "~7.21.0"
+ undici-types ">=7.24.0 <7.24.7"
"@types/parse-json@^4.0.0":
version "4.0.2"
@@ -1027,12 +1032,12 @@ character-reference-invalid@^2.0.0:
resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9"
integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==
-chokidar@^4.0.0, chokidar@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30"
- integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==
+chokidar@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-5.0.0.tgz#949c126a9238a80792be9a0265934f098af369a5"
+ integrity sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw==
dependencies:
- readdirp "^4.0.1"
+ readdirp "^5.0.0"
classnames@^2.3.2, classnames@^2.5.1:
version "2.5.1"
@@ -2278,10 +2283,10 @@ react@^19.2.6:
resolved "https://registry.yarnpkg.com/react/-/react-19.2.6.tgz#3dadb8e12b2a7934c1d5317973e5dce1301f9a4d"
integrity sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==
-readdirp@^4.0.1:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d"
- integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==
+readdirp@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-5.0.0.tgz#fbf1f71a727891d685bb1786f9ba74084f6e2f91"
+ integrity sha512-9u/XQ1pvrQtYyMpZe7DXKv2p5CNvyVwzUB6uhLAnQwHMSgKMBR62lc7AHljaeteeHXn11XTAaLLUVZYVZyuRBQ==
redent@^3.0.0:
version "3.0.0"
@@ -2422,12 +2427,12 @@ safe-buffer@^5.1.0:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-sass@^1.99.0:
- version "1.99.0"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.99.0.tgz#ff9d1594da4886249dfaafabbeea2dea2dc74b26"
- integrity sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==
+sass@^1.100.0:
+ version "1.100.0"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.100.0.tgz#b4cab1bed286fe22ac6c879c514f71cd36aa06c8"
+ integrity sha512-B5j0rYMlinhhOo9tjQebMVVn0TfyXAF+wB3b2ggZUuJ/is/Y+7+JGjirAMxHZ9Z3hIP98NPfamlAkBHa1lAaXQ==
dependencies:
- chokidar "^4.0.0"
+ chokidar "^5.0.0"
immutable "^5.1.5"
source-map-js ">=0.6.2 <2.0.0"
optionalDependencies:
@@ -2603,15 +2608,10 @@ uncontrollable@^8.0.4:
resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-8.0.4.tgz#a0a8307f638795162fafd0550f4a1efa0f8c5eb6"
integrity sha512-ulRWYWHvscPFc0QQXvyJjY6LIXU56f0h8pQFvhxiKk5V1fcI8gp9Ht9leVAhrVjzqMw0BgjspBINx9r6oyJUvQ==
-undici-types@~7.18.0:
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9"
- integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==
-
-undici-types@~7.21.0:
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.21.0.tgz#433f7dd1b5daa9ab4dacb721a5e11a8de51eadda"
- integrity sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==
+"undici-types@>=7.24.0 <7.24.7":
+ version "7.24.6"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.24.6.tgz#61275b485d7fd4e9d269c7cf04ec2873c9cc0f91"
+ integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==
unicorn-magic@^0.3.0:
version "0.3.0"
@@ -2712,20 +2712,18 @@ vfile@^6.0.0:
"@types/unist" "^3.0.0"
vfile-message "^4.0.0"
-vite-plugin-checker@^0.13.0:
- version "0.13.0"
- resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.13.0.tgz#5593c19281a201546c81ee66c79e0c097ba5140a"
- integrity sha512-14EkOZmfinVZNxRmg2uCNDwtqGc/33lU/UEJansHgu27+ad+r6mMBf1Xtnq57jGZWiO/xzwtiEKPYsganw7ZFQ==
+vite-plugin-checker@^0.14.1:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/vite-plugin-checker/-/vite-plugin-checker-0.14.1.tgz#0fe694c6d90905c9da7658772fadab4823d7b881"
+ integrity sha512-Mv8oQc9XYBYf+XkP/riqqQCt8lBP6Iad75PZPho1lHRrpxQI0BwX2gwE10enn4f6Hgc+PvR1F7N38KARcaJtzw==
dependencies:
- "@babel/code-frame" "^7.27.1"
- chokidar "^4.0.3"
+ "@babel/code-frame" "^7.29.0"
+ chokidar "^5.0.0"
npm-run-path "^6.0.0"
picocolors "^1.1.1"
picomatch "^4.0.4"
proper-lockfile "^4.1.2"
tiny-invariant "^1.3.3"
- tinyglobby "^0.2.15"
- vscode-uri "^3.1.0"
"vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.0.12:
version "8.0.12"
@@ -2766,11 +2764,6 @@ vitest@^4.1.6:
vite "^6.0.0 || ^7.0.0 || ^8.0.0"
why-is-node-running "^2.3.0"
-vscode-uri@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.1.0.tgz#dd09ec5a66a38b5c3fffc774015713496d14e09c"
- integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==
-
warning@^4.0.0, warning@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
From a47d401d867b4c9e26b7a39d0c89c0be71a0e3b2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 26 May 2026 22:53:22 +0000
Subject: [PATCH 73/89] Bump qs from 6.15.0 to 6.15.2 in /backend
Bumps [qs](https://github.com/ljharb/qs) from 6.15.0 to 6.15.2.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.15.0...v6.15.2)
---
updated-dependencies:
- dependency-name: qs
dependency-version: 6.15.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
backend/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/backend/yarn.lock b/backend/yarn.lock
index c1de2bee..7d694dff 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -1887,9 +1887,9 @@ pump@^3.0.0:
once "^1.3.1"
qs@^6.14.0, qs@^6.14.1:
- version "6.15.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.0.tgz#db8fd5d1b1d2d6b5b33adaf87429805f1909e7b3"
- integrity sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==
+ version "6.15.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.15.2.tgz#fd55426d710403ddccc45e0f9eab16db7727ece9"
+ integrity sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==
dependencies:
side-channel "^1.1.0"
From 79a0deedf74b1338f235179a5e843e0cda8089d1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 26 May 2026 22:54:37 +0000
Subject: [PATCH 74/89] Bump date-fns
Bumps the prod-minor-updates group with 1 update in the /frontend directory: [date-fns](https://github.com/date-fns/date-fns).
Updates `date-fns` from 4.1.0 to 4.3.0
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Commits](https://github.com/date-fns/date-fns/compare/v4.1.0...v4.3.0)
---
updated-dependencies:
- dependency-name: date-fns
dependency-version: 4.2.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
...
Signed-off-by: dependabot[bot]
---
frontend/package.json | 2 +-
frontend/yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/frontend/package.json b/frontend/package.json
index 1d98b5d4..1c0a3a27 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -23,7 +23,7 @@
"@uiw/react-textarea-code-editor": "^3.1.1",
"classnames": "^2.5.1",
"country-flag-icons": "^1.6.17",
- "date-fns": "^4.1.0",
+ "date-fns": "^4.3.0",
"ez-modal-react": "^1.0.5",
"formik": "^2.4.9",
"generate-password-browser": "^1.1.0",
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 7895399f..fed04c49 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -1090,10 +1090,10 @@ csstype@^3.0.2, csstype@^3.2.2:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a"
integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==
-date-fns@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.1.0.tgz#64b3d83fff5aa80438f5b1a633c2e83b8a1c2d14"
- integrity sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==
+date-fns@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.3.0.tgz#95663b78f2be5ce664eb6606d94582acc39c77ba"
+ integrity sha512-OYcL+3N/jyWbYdFGqoMAhytDgxP9pbYPUUiRCOgn4Fewaadk9l/Wam4Avciiyp2BgkpfQyBV9B+ehnVJych+eQ==
debug@^4.0.0, debug@^4.3.1:
version "4.4.3"
From 6bb9a901033ac1bcaa6ad63df14ab0c0b8bf8528 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 26 May 2026 22:54:39 +0000
Subject: [PATCH 75/89] Bump the prod-minor-updates group across 1 directory
with 2 updates
Bumps the prod-minor-updates group with 2 updates in the /backend directory: [liquidjs](https://github.com/harttle/liquidjs) and [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg).
Updates `liquidjs` from 10.25.7 to 10.27.0
- [Release notes](https://github.com/harttle/liquidjs/releases)
- [Changelog](https://github.com/harttle/liquidjs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/harttle/liquidjs/compare/v10.25.7...v10.27.0)
Updates `pg` from 8.20.0 to 8.21.0
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/commits/pg@8.21.0/packages/pg)
---
updated-dependencies:
- dependency-name: liquidjs
dependency-version: 10.27.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: pg
dependency-version: 8.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
...
Signed-off-by: dependabot[bot]
---
backend/package.json | 4 ++--
backend/yarn.lock | 56 ++++++++++++++++++++++----------------------
2 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/backend/package.json b/backend/package.json
index 4cafa403..80ae74b4 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -27,7 +27,7 @@
"gravatar": "^1.8.2",
"jsonwebtoken": "^9.0.3",
"knex": "3.2.10",
- "liquidjs": "10.25.7",
+ "liquidjs": "10.27.0",
"lodash": "^4.18.1",
"moment": "^2.30.1",
"mysql2": "^3.22.3",
@@ -35,7 +35,7 @@
"objection": "3.1.5",
"otplib": "^13.4.0",
"path": "^0.12.7",
- "pg": "^8.20.0",
+ "pg": "^8.21.0",
"proxy-agent": "^8.0.1",
"signale": "1.4.0",
"sqlite3": "^6.0.1",
diff --git a/backend/yarn.lock b/backend/yarn.lock
index c1de2bee..5e25d924 100644
--- a/backend/yarn.lock
+++ b/backend/yarn.lock
@@ -1279,10 +1279,10 @@ lazystream@^1.0.0:
dependencies:
readable-stream "^2.0.5"
-liquidjs@10.25.7:
- version "10.25.7"
- resolved "https://registry.yarnpkg.com/liquidjs/-/liquidjs-10.25.7.tgz#75c5765ae42e04da30fba15ae20daab57c4a7a8c"
- integrity sha512-rPCjJLiD4eDhQjvv964AeXFC+HbeYBbZrd7Z82Q6hqv1lX7G+5w4SJcKLn9CAAAwHI4aS3dTdo083UB79K3pDA==
+liquidjs@10.27.0:
+ version "10.27.0"
+ resolved "https://registry.yarnpkg.com/liquidjs/-/liquidjs-10.27.0.tgz#e31dc4c539e1a26aee46c847b4e60a6ede32564a"
+ integrity sha512-tw/OA59K7aIBlMKIrKlumr37fiZUheShVHXY8cVctWisgY1p9mc5hreOvlreoS0wTiwlWk14Ya7305c2a/Cg5w==
dependencies:
commander "^10.0.0"
@@ -1707,35 +1707,35 @@ path@^0.12.7:
process "^0.11.1"
util "^0.10.3"
-pg-cloudflare@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz#386035d4bfcf1a7045b026f8b21acf5353f14d65"
- integrity sha512-6lswVVSztmHiRtD6I8hw4qP/nDm1EJbKMRhf3HCYaqud7frGysPv7FYJ5noZQdhQtN2xJnimfMtvQq21pdbzyQ==
+pg-cloudflare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.4.0.tgz#4b4c20e6d8ae531d400730f4804571a8d62f1497"
+ integrity sha512-Vo7z/6rrQYxpNRylp4Tlob2elzbh+N/MOQbxFVWCxS7oEx6jF53GTJFxK2WWpKuBRkmiin4Mt+xofFDjx09R0A==
pg-connection-string@2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475"
integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==
-pg-connection-string@^2.12.0:
- version "2.12.0"
- resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.12.0.tgz#4084f917902bb2daae3dc1376fe24ac7b4eaccf2"
- integrity sha512-U7qg+bpswf3Cs5xLzRqbXbQl85ng0mfSV/J0nnA31MCLgvEaAo7CIhmeyrmJpOr7o+zm0rXK+hNnT5l9RHkCkQ==
+pg-connection-string@^2.13.0:
+ version "2.13.0"
+ resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.13.0.tgz#8678113465a5af3cc977dcb51eadc847b27aa2de"
+ integrity sha512-EMnU9E2fSULdsbErBbMaXJvFeD9B4+nPcM3f+4lsiCR0BHLPrLVjv3DbyM2hgQQviKJaTWIRRTjKjWlHg3p2ig==
pg-int8@1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
-pg-pool@^3.13.0:
- version "3.13.0"
- resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.13.0.tgz#416482e9700e8f80c685a6ae5681697a413c13a3"
- integrity sha512-gB+R+Xud1gLFuRD/QgOIgGOBE2KCQPaPwkzBBGC9oG69pHTkhQeIuejVIk3/cnDyX39av2AxomQiyPT13WKHQA==
+pg-pool@^3.14.0:
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.14.0.tgz#f35ae4eb846780cad71af24099b3edfa9781ad90"
+ integrity sha512-gKtPkFdQPU3DksooVLi9LsjZxrsBUZIpa+7aVx+LV5pNh0KzP4Zleud2po+ConrxbuXGBJ6Hfer6hdgpIBpBaw==
-pg-protocol@^1.13.0:
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.13.0.tgz#fdaf6d020bca590d58bb991b4b16fc448efe0511"
- integrity sha512-zzdvXfS6v89r6v7OcFCHfHlyG/wvry1ALxZo4LqgUoy7W9xhBDMaqOuMiF3qEV45VqsN6rdlcehHrfDtlCPc8w==
+pg-protocol@^1.14.0:
+ version "1.14.0"
+ resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.14.0.tgz#c1f045b74274b007078c687147141f785f59b8de"
+ integrity sha512-n5taZ1kO3s9ngDTVxsEznOqCyToTgz0FLuPq0B33COy5pPpuWJpY3/2oRBVETuOgzdqRXfWpM9HIhp2LBBT1BA==
pg-types@2.2.0:
version "2.2.0"
@@ -1748,18 +1748,18 @@ pg-types@2.2.0:
postgres-date "~1.0.4"
postgres-interval "^1.1.0"
-pg@^8.20.0:
- version "8.20.0"
- resolved "https://registry.yarnpkg.com/pg/-/pg-8.20.0.tgz#1a274de944cb329fd6dd77a6d371a005ba6b136d"
- integrity sha512-ldhMxz2r8fl/6QkXnBD3CR9/xg694oT6DZQ2s6c/RI28OjtSOpxnPrUCGOBJ46RCUxcWdx3p6kw/xnDHjKvaRA==
+pg@^8.21.0:
+ version "8.21.0"
+ resolved "https://registry.yarnpkg.com/pg/-/pg-8.21.0.tgz#d7fa2118d960cec5cc7d2b24525f9850dd5932b0"
+ integrity sha512-AUP1EYJuHraQGsVoCQVIcM7TEJVGtDzxWtGFZd8rds9d+CCXlU5Js1rYgfLNvxy9iJrpHjGrRjoi/3BT9fRyiA==
dependencies:
- pg-connection-string "^2.12.0"
- pg-pool "^3.13.0"
- pg-protocol "^1.13.0"
+ pg-connection-string "^2.13.0"
+ pg-pool "^3.14.0"
+ pg-protocol "^1.14.0"
pg-types "2.2.0"
pgpass "1.0.5"
optionalDependencies:
- pg-cloudflare "^1.3.0"
+ pg-cloudflare "^1.4.0"
pgpass@1.0.5:
version "1.0.5"
From f2e8ab520222740323f9d47e0434eb1f571dfe12 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 26 May 2026 22:54:40 +0000
Subject: [PATCH 76/89] Bump the prod-minor-updates group across 1 directory
with 2 updates
Bumps the prod-minor-updates group with 2 updates in the /test directory: [cypress](https://github.com/cypress-io/cypress) and [eslint](https://github.com/eslint/eslint).
Updates `cypress` from 15.15.0 to 15.16.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.15.0...v15.16.0)
Updates `eslint` from 10.3.0 to 10.4.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.3.0...v10.4.0)
---
updated-dependencies:
- dependency-name: cypress
dependency-version: 15.16.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: eslint
dependency-version: 10.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
...
Signed-off-by: dependabot[bot]
---
test/yarn.lock | 83 ++++++++++++--------------------------------------
1 file changed, 20 insertions(+), 63 deletions(-)
diff --git a/test/yarn.lock b/test/yarn.lock
index 515ef259..9e6a0696 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -141,10 +141,10 @@
debug "^4.3.1"
minimatch "^10.2.4"
-"@eslint/config-helpers@^0.5.5":
- version "0.5.5"
- resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.5.5.tgz#ae16134e4792ac5fbdc533548a24ac1ea9f7f3ae"
- integrity sha512-eIJYKTCECbP/nsKaaruF6LW967mtbQbsw4JTtSVkUQc9MneSkbrgPJAbKl9nWr0ZeowV8BfsarBmPpBzGelA2w==
+"@eslint/config-helpers@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.6.0.tgz#ef9a36881d39dfd5dbeac22b0da997fabfb08b03"
+ integrity sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==
dependencies:
"@eslint/core" "^1.2.1"
@@ -281,13 +281,6 @@
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
-"@types/node@*":
- version "25.3.0"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-25.3.0.tgz#749b1bd4058e51b72e22bd41e9eab6ebd0180470"
- integrity sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==
- dependencies:
- undici-types "~7.18.0"
-
"@types/sinonjs__fake-timers@8.1.1":
version "8.1.1"
resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3"
@@ -303,13 +296,6 @@
resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.6.tgz#d785ee90c52d7cc020e249c948c36f7b32d1e217"
integrity sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==
-"@types/yauzl@^2.9.1":
- version "2.10.3"
- resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999"
- integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==
- dependencies:
- "@types/node" "*"
-
acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
@@ -697,9 +683,9 @@ cypress-wait-until@^3.0.2:
integrity sha512-iemies796dD5CgjG5kV0MnpEmKSH+s7O83ZoJLVzuVbZmm4lheMsZqAVT73hlMx4QlkwhxbyUzhOBUOZwoOe0w==
cypress@^15.15.0:
- version "15.15.0"
- resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.15.0.tgz#5f9d9e8304636f7add7cb296130c0262960648bc"
- integrity sha512-N8qBv3AUYn6xfIG73O5O58kTClUBSZ7a3C08IQFkSGTUdEauJ3BqwTFb/f9KPZgadftoZjllC0XSwD7xNNolbA==
+ version "15.16.0"
+ resolved "https://registry.yarnpkg.com/cypress/-/cypress-15.16.0.tgz#482f77e6f85aee98b94a5ad844d36f69dc212c28"
+ integrity sha512-fy0M0c9xDLEp4v9y7LLKFeAQhIdDsobxDSKpD3JcZpqQefjy9TSzEyVV3HA0zu7hUi0bGHlSYlI7ASub8wgR9A==
dependencies:
"@cypress/request" "^4.0.0"
"@cypress/xvfb" "^1.2.4"
@@ -721,7 +707,6 @@ cypress@^15.15.0:
eventemitter2 "6.4.7"
execa "4.1.0"
executable "^4.1.1"
- extract-zip "2.0.1"
fs-extra "^9.1.0"
hasha "5.2.2"
is-installed-globally "~0.4.0"
@@ -740,7 +725,7 @@ cypress@^15.15.0:
tree-kill "1.2.2"
tslib "1.14.1"
untildify "^4.0.0"
- yauzl "^2.10.0"
+ yauzl "^3.3.1"
dashdash@^1.12.0:
version "1.14.1"
@@ -759,7 +744,7 @@ dayjs@^1.10.4:
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938"
integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==
-debug@4, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0:
+debug@4, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@^4.3.5, debug@^4.4.0:
version "4.4.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
@@ -935,14 +920,14 @@ eslint-visitor-keys@^5.0.1:
integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==
eslint@^10.3.0:
- version "10.3.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.3.0.tgz#ed5b810eb8e0191bf24bddcf9cdb45b974e0a16d"
- integrity sha512-XbEXaRva5cF0ZQB8w6MluHA0kZZfV2DuCMJ3ozyEOHLwDpZX2Lmm/7Pp0xdJmI0GL1W05VH5VwIFHEm1Vcw2gw==
+ version "10.4.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.4.0.tgz#d86b6c405de0f19f3318c47139b8cb6771b3f592"
+ integrity sha512-loXy6bWOoP3EP6JA7jo6p5jMpBJmHmsNZM5SFRHLdh1MGOPurMnNBj4ZlAbaqUAaQWbCr7jHV4P7gzAyryZWkQ==
dependencies:
"@eslint-community/eslint-utils" "^4.8.0"
"@eslint-community/regexpp" "^4.12.2"
"@eslint/config-array" "^0.23.5"
- "@eslint/config-helpers" "^0.5.5"
+ "@eslint/config-helpers" "^0.6.0"
"@eslint/core" "^1.2.1"
"@eslint/plugin-kit" "^0.7.1"
"@humanfs/node" "^0.16.6"
@@ -1050,17 +1035,6 @@ extend@~3.0.2:
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-extract-zip@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
- integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
- dependencies:
- debug "^4.1.1"
- get-stream "^5.1.0"
- yauzl "^2.10.0"
- optionalDependencies:
- "@types/yauzl" "^2.9.1"
-
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
@@ -1109,13 +1083,6 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
-fd-slicer@~1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
- integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
- dependencies:
- pend "~1.2.0"
-
fdir@^6.5.0:
version "6.5.0"
resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350"
@@ -1266,7 +1233,7 @@ get-proto@^1.0.1:
dunder-proto "^1.0.1"
es-object-atoms "^1.0.0"
-get-stream@^5.0.0, get-stream@^5.1.0:
+get-stream@^5.0.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
@@ -1614,12 +1581,7 @@ lodash.once@^4.1.1:
resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac"
integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==
-lodash@^4.17.21, lodash@^4.17.23:
- version "4.17.23"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a"
- integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==
-
-lodash@^4.18.1:
+lodash@^4.17.21, lodash@^4.17.23, lodash@^4.18.1:
version "4.18.1"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c"
integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==
@@ -2363,11 +2325,6 @@ underscore@1.13.6:
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441"
integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==
-undici-types@~7.18.0:
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9"
- integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==
-
universalify@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"
@@ -2500,13 +2457,13 @@ yargs@^17.7.2:
y18n "^5.0.5"
yargs-parser "^21.1.1"
-yauzl@^2.10.0:
- version "2.10.0"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
- integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
+yauzl@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-3.3.1.tgz#b0de68ae3a862715e130849679a4236f54dba45f"
+ integrity sha512-RNPCUkiE/ZgO4w8i9U5yDQVHaFDdnzaFANElRvpJteCspvmv2VqrRb9lvS6odVD+jqI/zDsxAHJVsafpcheVQQ==
dependencies:
buffer-crc32 "~0.2.3"
- fd-slicer "~1.1.0"
+ pend "~1.2.0"
yocto-queue@^0.1.0:
version "0.1.0"
From 5fd8a305089e674a54217f3fe3b6be34f0f5264e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 27 May 2026 00:04:14 +0000
Subject: [PATCH 77/89] Bump the dev-patch-updates group across 1 directory
with 7 updates
Bumps the dev-patch-updates group with 7 updates in the /frontend directory:
| Package | From | To |
| --- | --- | --- |
| [@tanstack/react-query-devtools](https://github.com/TanStack/query/tree/HEAD/packages/react-query-devtools) | `5.100.10` | `5.100.14` |
| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.15` |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) | `6.0.1` | `6.0.2` |
| [postcss](https://github.com/postcss/postcss) | `8.5.14` | `8.5.15` |
| [tmp](https://github.com/raszi/node-tmp) | `0.2.5` | `0.2.6` |
| [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) | `8.0.12` | `8.0.14` |
| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.6` | `4.1.7` |
Updates `@tanstack/react-query-devtools` from 5.100.10 to 5.100.14
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query-devtools/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query-devtools@5.100.14/packages/react-query-devtools)
Updates `@types/react` from 19.2.14 to 19.2.15
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)
Updates `@vitejs/plugin-react` from 6.0.1 to 6.0.2
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.2/packages/plugin-react)
Updates `postcss` from 8.5.14 to 8.5.15
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.5.14...8.5.15)
Updates `tmp` from 0.2.5 to 0.2.6
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.5...v0.2.6)
Updates `vite` from 8.0.12 to 8.0.14
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.0.14/packages/vite)
Updates `vitest` from 4.1.6 to 4.1.7
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.7/packages/vitest)
---
updated-dependencies:
- dependency-name: "@tanstack/react-query-devtools"
dependency-version: 5.100.14
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
- dependency-name: "@types/react"
dependency-version: 19.2.15
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
- dependency-name: "@vitejs/plugin-react"
dependency-version: 6.0.2
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
- dependency-name: postcss
dependency-version: 8.5.15
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
- dependency-name: tmp
dependency-version: 0.2.6
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
- dependency-name: vite
dependency-version: 8.0.14
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
- dependency-name: vitest
dependency-version: 4.1.7
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
...
Signed-off-by: dependabot[bot]
---
frontend/package.json | 14 +-
frontend/yarn.lock | 359 ++++++++++++++++++++----------------------
2 files changed, 180 insertions(+), 193 deletions(-)
diff --git a/frontend/package.json b/frontend/package.json
index e06d21bb..5c36aaf8 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -42,25 +42,25 @@
"devDependencies": {
"@biomejs/biome": "^2.4.15",
"@formatjs/cli": "^6.16.3",
- "@tanstack/react-query-devtools": "^5.100.10",
+ "@tanstack/react-query-devtools": "^5.100.14",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/country-flag-icons": "^1.2.2",
"@types/humps": "^2.0.6",
"@types/node": "^25.9.1",
- "@types/react": "^19.2.14",
+ "@types/react": "^19.2.15",
"@types/react-dom": "^19.2.3",
"@types/react-table": "^7.7.20",
- "@vitejs/plugin-react": "^6.0.1",
+ "@vitejs/plugin-react": "^6.0.2",
"happy-dom": "^20.9.0",
- "postcss": "^8.5.14",
+ "postcss": "^8.5.15",
"postcss-simple-vars": "^7.0.1",
"sass": "^1.100.0",
- "tmp": "^0.2.5",
+ "tmp": "^0.2.6",
"typescript": "6.0.3",
- "vite": "^8.0.12",
+ "vite": "^8.0.14",
"vite-plugin-checker": "^0.14.1",
- "vitest": "^4.1.6"
+ "vitest": "^4.1.7"
}
}
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 9bc6efd3..ed2a1b5a 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -372,10 +372,10 @@
dependencies:
"@tybys/wasm-util" "^0.10.1"
-"@oxc-project/types@=0.129.0":
- version "0.129.0"
- resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.129.0.tgz#8e6362388ce6092feafd14f3a73ae6407b1285d9"
- integrity sha512-3oz8m3FGdr2nDXVqmFUw7jolKliC4MoyXYIG2c7gpjBnzUWQpUGIYcXYKxTdTi+N2jusvt610ckTMkxdwHkYEg==
+"@oxc-project/types@=0.132.0":
+ version "0.132.0"
+ resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.132.0.tgz#d77243df4fe1a0a1e60e12ac6240fa898d2363ff"
+ integrity sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==
"@parcel/watcher-android-arm64@2.5.6":
version "2.5.6"
@@ -507,94 +507,89 @@
uncontrollable "^8.0.4"
warning "^4.0.3"
-"@rolldown/binding-android-arm64@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0.tgz#aefa7afdcabc1269b1933d50cad31013cb697143"
- integrity sha512-TWMZnRLMe63C2Lhyicviu7ZHaU4kxa6PS3rofvc9GmcvptzNN11BcfQ4Sl7MwTOsisQoa2keB/EBdNCAnUo8vA==
+"@rolldown/binding-android-arm64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz#ebe1264e43ba5bb224c58c85e0ac238f87e5ad14"
+ integrity sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==
-"@rolldown/binding-darwin-arm64@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0.tgz#83e708d97f9f8f3791e79ef8c24d5fcc5e8f29df"
- integrity sha512-6XcD+8k0gPVItNagEw78/qqcBDwKcwDYS8V2hRmVsfUSIrd8cWe/CBvRDI5toqFyPfj+FJr6t8U6Xj2P2prEew==
+"@rolldown/binding-darwin-arm64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz#f972fb71bc03840629bee923babbb7048d14a5d0"
+ integrity sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==
-"@rolldown/binding-darwin-x64@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0.tgz#4649bb4db634850f6de2b2f1ec37fc39a18adcf8"
- integrity sha512-iN/tWVXRQDWvmZlKdceP1Dwug9GDpEymhb9p4xnEe6zvCg5lFmzVljl+1qR1NVx3yfGpr2Na+CuLmv5IU8uzfQ==
+"@rolldown/binding-darwin-x64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz#da1c062c135e1e50067084be5ab8055cc1e05b29"
+ integrity sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==
-"@rolldown/binding-freebsd-x64@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0.tgz#2b0e50fdc926fa9680dca9d6acc4c3729b7df899"
- integrity sha512-jjQMDvvwSOuhOwMszD/klSOjyWMM3zI64hWTj9KT5x4MxRbZAf+7vLQ6qouRhtsLVFHr3f0ILaJAfgENPiQdAQ==
+"@rolldown/binding-freebsd-x64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz#a4c8532072705ce597c0d75418513709b75b3f1d"
+ integrity sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==
-"@rolldown/binding-linux-arm-gnueabihf@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0.tgz#8fd160371f4c160a2fa52de8f9ede51fbd43fc5b"
- integrity sha512-d//Dtg2x6/m3mbV64yUGNnDGNZaDGRpDLLNGerHQUVObuNaIQaaDp25yUiqGXtHEXX+NP2d0wAlmKgpYgIAJ2A==
+"@rolldown/binding-linux-arm-gnueabihf@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz#78f3bd274a1bab07356017d728b70289f04011c1"
+ integrity sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==
-"@rolldown/binding-linux-arm64-gnu@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0.tgz#9915488c96cb0fc49a70bd27c030def3cbbc8cbb"
- integrity sha512-n7Ofp0mx+aB2cC+Sdy5YtMnXtY9lchnHbY+3Yt0uq9JsWQExf4f5Whu0tK0R8Jdc9S6RchTHjIFY7uc92puOVQ==
+"@rolldown/binding-linux-arm64-gnu@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz#4dc530aed0b554762ffc1a5e4f016b8be495eea0"
+ integrity sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==
-"@rolldown/binding-linux-arm64-musl@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0.tgz#74bb160f2747404eed2f917bea01b0548c783848"
- integrity sha512-EIVjy2cgd7uuMMo94FVkBp7F6DhcZAUwNURkSG3RwUmvAXR6s0ISxM81U+IydcZByPG0pZIHsf1b6kTxoFDgJA==
+"@rolldown/binding-linux-arm64-musl@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz#56043cdf4768ea3184bb08a3f45b24f183003877"
+ integrity sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==
-"@rolldown/binding-linux-ppc64-gnu@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0.tgz#fdc876160b6738ff34a7d719c4ea42edb38a70bc"
- integrity sha512-JEwwOPcwTLAcpDQlqSmjEmfs63xJnSiUNIGvLcDLUHCWK4XowpS/7c7tUsUH6uT/ct6bMUTdXKfI8967FYj6mg==
+"@rolldown/binding-linux-ppc64-gnu@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz#92eba998d5cd9e4cfc8b95407b4b80f46dacadf4"
+ integrity sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==
-"@rolldown/binding-linux-s390x-gnu@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0.tgz#39668ce16e8c2ac16308fdb7116ebd5b44acab65"
- integrity sha512-0wjCFhLrihtAubnT9iA0N++0pSV0z5Hg7tNGdNJ4RFaINceHadoF+kiFGyY1qSSNVIAZtLotG8Ju1bgDPkjnFA==
+"@rolldown/binding-linux-s390x-gnu@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz#50b0e95dc3c22af1ecd1669ad7e6030e6860819e"
+ integrity sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==
-"@rolldown/binding-linux-x64-gnu@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0.tgz#02a7e4a0fa3af90bf4e937ecd1f4c0dc07ab2397"
- integrity sha512-Dfn7iak9BcMMePxcoJfpSbWqnEyrp/dRF63/8qW/eHBdOZov6x5aShLLEYGYdIeSJ6vMLK/XCVB+lGIxm41bQA==
+"@rolldown/binding-linux-x64-gnu@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz#d9fd5af004a373a2d26a09ce8fb66bd0927cbc0b"
+ integrity sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==
-"@rolldown/binding-linux-x64-musl@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0.tgz#610a08a3055d21f287c550e16a5541501883f2b1"
- integrity sha512-5/utzzDmD/pD/bmuaUcbTf/sZYy0aztwIVlfpoW1fTjCZ0BaPOMVWGZL1zvgxyi7ZIVYWlxKONHmSbHuiOh8Jw==
+"@rolldown/binding-linux-x64-musl@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz#c0ad80adf4d4df430d0ec309e97924db85065c3c"
+ integrity sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==
-"@rolldown/binding-openharmony-arm64@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0.tgz#62e5da4d623b446a57c9f472b598fedaf5289a3d"
- integrity sha512-ouJs8VcUomfLfpbUECqFMRqdV4x6aeAK3MA4m6vTrJJjKyWTV5KnxZx7Jd9G+GlDaQQxubcba00x16OyJ1meig==
+"@rolldown/binding-openharmony-arm64@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz#341fc254ef7759f865bb219beb5cea6f5c9a44f6"
+ integrity sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==
-"@rolldown/binding-wasm32-wasi@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0.tgz#57191a2986e7f43a920fc618da92f29b0b8123c9"
- integrity sha512-E+oHKGiDA+lsKMmFtffDDw91EryDT7uJocrIuCHqhm6bCTM6xFK+3gaCkYOHfPwQr0cCNarSM2xaELoQDz9jJg==
+"@rolldown/binding-wasm32-wasi@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz#65f9389f74168fd54e67b12d0630fb90348051f0"
+ integrity sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==
dependencies:
"@emnapi/core" "1.10.0"
"@emnapi/runtime" "1.10.0"
"@napi-rs/wasm-runtime" "^1.1.4"
-"@rolldown/binding-win32-arm64-msvc@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0.tgz#77faf1e28521411bd0be6f4e55f3c4c5f17cd619"
- integrity sha512-yYK02n8Rngo+gbm1y6G0+7jk1sJ/2Wt7K0me0Y7k/ErBpyf+LJ2gFpqWVTcRV1rUepBlQRmpgWkTQCiiwrK0Ow==
+"@rolldown/binding-win32-arm64-msvc@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz#17e80f3402308f12c76ff4172768d51715b522ac"
+ integrity sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==
-"@rolldown/binding-win32-x64-msvc@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0.tgz#980a8f9983b0bd3d35ee867ade85cb020eca27ba"
- integrity sha512-14bpChMahXRRXiTwahSl+zzHPW6qQTXtkMuJBFlbo+pqSAews2d4BdCSHfrJ/MBsCZtpmTafsY+1QhBzitcmdg==
+"@rolldown/binding-win32-x64-msvc@1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz#875cfa37f26d11692dbe28b8331499c97aa99d1f"
+ integrity sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==
-"@rolldown/pluginutils@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0.tgz#d660b953fd500d552fc17213f279e29037f08c2d"
- integrity sha512-aKs/3GSWyV0mrhNmt/96/Z3yczC3yvrzYATCiCXQebBsGyYzjNdUphRVLeJQ67ySKVXRfMxt2lm12pmXvbPFQQ==
-
-"@rolldown/pluginutils@1.0.0-rc.7":
- version "1.0.0-rc.7"
- resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.7.tgz#0414869467f0e471a6515d4f506c85fde867e022"
- integrity sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==
+"@rolldown/pluginutils@^1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz#e3fcee093fbb5ce765e1ad088ff4de2889f6f9be"
+ integrity sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==
"@standard-schema/spec@^1.1.0":
version "1.1.0"
@@ -633,17 +628,17 @@
resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.100.10.tgz#aeb34d301fd4ff9762e67dfa018adc33b7a18be4"
integrity sha512-8UR0yJR+GiQ40m3lPhUr0xbfAupe6GSQiksSBSa9SM2NjezFyxXCIA69/lz8cSoNKZLrw1/PktIyQBJcVeMi3w==
-"@tanstack/query-devtools@5.100.10":
- version "5.100.10"
- resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.100.10.tgz#1972789fdc7c4cb9ec2062d51f25bc4dc655a27b"
- integrity sha512-3DmJf25hDPus5IpVvp6ujXv6bKV2zPzI9vpbAmpJigsL/H6DPvPjmf7/Q9yVKEke//8fgeQ45abjgnLuyYxAiw==
+"@tanstack/query-devtools@5.100.14":
+ version "5.100.14"
+ resolved "https://registry.yarnpkg.com/@tanstack/query-devtools/-/query-devtools-5.100.14.tgz#1555c8e1e4ea74db85dd2faaea2b7b50e135faf1"
+ integrity sha512-g96SmSSQecYTYcyuAMRXr895GplJv01UGt7qttQWPOUyZ5EGz5tbRc589bMc2m5BsPFD6O0PCEAHdbDYNP6UBw==
-"@tanstack/react-query-devtools@^5.100.10":
- version "5.100.10"
- resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.100.10.tgz#cca3479cc2c8b434637c31f8119fe6ff93e5832c"
- integrity sha512-zes0+o9ef5rAZXJ9f/SeaLs2nufJaeVkZkl/Or9NGrWVF41kL9Od9ED9nCwtQlgiF2VGtrzhEw5AU/igAO+aAg==
+"@tanstack/react-query-devtools@^5.100.14":
+ version "5.100.14"
+ resolved "https://registry.yarnpkg.com/@tanstack/react-query-devtools/-/react-query-devtools-5.100.14.tgz#0774021fdc0b417a86b67b196d5ffb9820cff10c"
+ integrity sha512-JkP5VDgKOw3t/QSA1OABRHEqx8BuNs5MfvZRooNqdvN57SzTuGq3fKR1a2IH5rqa5HDLUm+FOXUEnB9ueHiLzg==
dependencies:
- "@tanstack/query-devtools" "5.100.10"
+ "@tanstack/query-devtools" "5.100.14"
"@tanstack/react-query@^5.100.10":
version "5.100.10"
@@ -823,10 +818,10 @@
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044"
integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==
-"@types/react@*", "@types/react@>=16.9.11", "@types/react@^19.2.14":
- version "19.2.14"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.14.tgz#39604929b5e3957e3a6fa0001dafb17c7af70bad"
- integrity sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==
+"@types/react@*", "@types/react@>=16.9.11", "@types/react@^19.2.15":
+ version "19.2.15"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.15.tgz#9e2c6a4251a290f5c525c3143caa872fa6e01e0d"
+ integrity sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==
dependencies:
csstype "^3.2.2"
@@ -871,70 +866,70 @@
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8"
integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==
-"@vitejs/plugin-react@^6.0.1":
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-6.0.1.tgz#d9113b71a0a592714913eafd9e5e63bcafd0ff15"
- integrity sha512-l9X/E3cDb+xY3SWzlG1MOGt2usfEHGMNIaegaUGFsLkb3RCn/k8/TOXBcab+OndDI4TBtktT8/9BwwW8Vi9KUQ==
+"@vitejs/plugin-react@^6.0.2":
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-6.0.2.tgz#f70cb8ed0ce225dbc3055d78070f820d8aa35eda"
+ integrity sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==
dependencies:
- "@rolldown/pluginutils" "1.0.0-rc.7"
+ "@rolldown/pluginutils" "^1.0.0"
-"@vitest/expect@4.1.6":
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.1.6.tgz#b50c9390aae6957ab4d9e20722cebb17d5bf169a"
- integrity sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==
+"@vitest/expect@4.1.7":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.1.7.tgz#dc2918d51b54fa24ac5b4e7e802ef7440a11027f"
+ integrity sha512-1R+tw0ortHEbZDGMymm+pN7/AFQ/RkFFdtd7EN+VBpynKmLbP8A3rpEXdshBJ7+8hQ9zBJh/i1s0yKNtxAnU7w==
dependencies:
"@standard-schema/spec" "^1.1.0"
"@types/chai" "^5.2.2"
- "@vitest/spy" "4.1.6"
- "@vitest/utils" "4.1.6"
+ "@vitest/spy" "4.1.7"
+ "@vitest/utils" "4.1.7"
chai "^6.2.2"
tinyrainbow "^3.1.0"
-"@vitest/mocker@4.1.6":
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.1.6.tgz#6b624045745236b02aca879a02aef68b72d9d4cd"
- integrity sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==
+"@vitest/mocker@4.1.7":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.1.7.tgz#05c5b42968b56057c40ea3e4546f3227cf1bf6fc"
+ integrity sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA==
dependencies:
- "@vitest/spy" "4.1.6"
+ "@vitest/spy" "4.1.7"
estree-walker "^3.0.3"
magic-string "^0.30.21"
-"@vitest/pretty-format@4.1.6":
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.1.6.tgz#24a1c03a6b68a8775f8ddfec51d3636315edc3f5"
- integrity sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==
+"@vitest/pretty-format@4.1.7":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.1.7.tgz#86b37ea96d4c5bd1357be66982e60a89a343c1bb"
+ integrity sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==
dependencies:
tinyrainbow "^3.1.0"
-"@vitest/runner@4.1.6":
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.1.6.tgz#b6d189e68bd9927c4f111ad089ff96e4757591b1"
- integrity sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==
+"@vitest/runner@4.1.7":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.1.7.tgz#a7c465a76c0edc7deb1e8927dad452b71c5797b5"
+ integrity sha512-BapjmAQ2aI78WdMEfeUWivnfVzB+VPGwWRQcJE0OUq7qEeEcBsCSf+0T5iREBNE5nBb4wA5Ya0W6IA+sghdEFw==
dependencies:
- "@vitest/utils" "4.1.6"
+ "@vitest/utils" "4.1.7"
pathe "^2.0.3"
-"@vitest/snapshot@4.1.6":
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.1.6.tgz#14fdfc8baf6b4b3e4e35763431dbea3aaa8aa0eb"
- integrity sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==
+"@vitest/snapshot@4.1.7":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.1.7.tgz#03ca7bed0cb3f2ce37de9feee7a159ba5d4893a4"
+ integrity sha512-ZacLzja+TmJeZ1h14xW2FB/WpeimUD3haBXQPyJqxvo8jQTmfeA8zv58mtjN2C7EHXZDYVcVYdYmAxjkWVvKCw==
dependencies:
- "@vitest/pretty-format" "4.1.6"
- "@vitest/utils" "4.1.6"
+ "@vitest/pretty-format" "4.1.7"
+ "@vitest/utils" "4.1.7"
magic-string "^0.30.21"
pathe "^2.0.3"
-"@vitest/spy@4.1.6":
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.1.6.tgz#0a316893630f47fa545e33026cfc91575070d165"
- integrity sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==
+"@vitest/spy@4.1.7":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.1.7.tgz#459de6b5f2c80cb589e612b2fa8170a33393dee9"
+ integrity sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q==
-"@vitest/utils@4.1.6":
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.1.6.tgz#3f4acf1f60e135ec1ce896f10baa4cd6466d0d38"
- integrity sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==
+"@vitest/utils@4.1.7":
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.1.7.tgz#8d2350588f7054246f24d0dbadffbef5d3a5caff"
+ integrity sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==
dependencies:
- "@vitest/pretty-format" "4.1.6"
+ "@vitest/pretty-format" "4.1.7"
convert-source-map "^2.0.0"
tinyrainbow "^3.1.0"
@@ -1972,10 +1967,10 @@ ms@^2.1.3:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-nanoid@^3.3.11:
- version "3.3.11"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b"
- integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==
+nanoid@^3.3.12:
+ version "3.3.12"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05"
+ integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==
node-addon-api@^7.0.0:
version "7.1.1"
@@ -2082,12 +2077,12 @@ postcss-simple-vars@^7.0.1:
resolved "https://registry.yarnpkg.com/postcss-simple-vars/-/postcss-simple-vars-7.0.1.tgz#836b3097a54dcd13dbd3c36a5dbdd512fad2954c"
integrity sha512-5GLLXaS8qmzHMOjVxqkk1TZPf1jMqesiI7qLhnlyERalG0sMbHIbJqrcnrpmZdKCLglHnRHoEBB61RtGTsj++A==
-postcss@^8.5.14:
- version "8.5.14"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.14.tgz#a66c2d7808fadf69ebb5b84a03f8bafd76c4919c"
- integrity sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==
+postcss@^8.5.15:
+ version "8.5.15"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.15.tgz#d1eaf677a324e9ec02196da2d3fecf4a0b9a735c"
+ integrity sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==
dependencies:
- nanoid "^3.3.11"
+ nanoid "^3.3.12"
picocolors "^1.1.1"
source-map-js "^1.2.1"
@@ -2386,29 +2381,29 @@ retry@^0.12.0:
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
-rolldown@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0.tgz#9baf1407c4117570f19f75f697c4a0216065d12e"
- integrity sha512-yD986aXDESFGS95spT1LAv0jssywP4npMEjmMHyN2/5+eE8qQJUype2AaKkRiLgBgyD0LFlubwAht7VmY8rGoA==
+rolldown@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.2.tgz#ea2c786c5f063d08fd22b49e51997f15ec532bbd"
+ integrity sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==
dependencies:
- "@oxc-project/types" "=0.129.0"
- "@rolldown/pluginutils" "1.0.0"
+ "@oxc-project/types" "=0.132.0"
+ "@rolldown/pluginutils" "^1.0.0"
optionalDependencies:
- "@rolldown/binding-android-arm64" "1.0.0"
- "@rolldown/binding-darwin-arm64" "1.0.0"
- "@rolldown/binding-darwin-x64" "1.0.0"
- "@rolldown/binding-freebsd-x64" "1.0.0"
- "@rolldown/binding-linux-arm-gnueabihf" "1.0.0"
- "@rolldown/binding-linux-arm64-gnu" "1.0.0"
- "@rolldown/binding-linux-arm64-musl" "1.0.0"
- "@rolldown/binding-linux-ppc64-gnu" "1.0.0"
- "@rolldown/binding-linux-s390x-gnu" "1.0.0"
- "@rolldown/binding-linux-x64-gnu" "1.0.0"
- "@rolldown/binding-linux-x64-musl" "1.0.0"
- "@rolldown/binding-openharmony-arm64" "1.0.0"
- "@rolldown/binding-wasm32-wasi" "1.0.0"
- "@rolldown/binding-win32-arm64-msvc" "1.0.0"
- "@rolldown/binding-win32-x64-msvc" "1.0.0"
+ "@rolldown/binding-android-arm64" "1.0.2"
+ "@rolldown/binding-darwin-arm64" "1.0.2"
+ "@rolldown/binding-darwin-x64" "1.0.2"
+ "@rolldown/binding-freebsd-x64" "1.0.2"
+ "@rolldown/binding-linux-arm-gnueabihf" "1.0.2"
+ "@rolldown/binding-linux-arm64-gnu" "1.0.2"
+ "@rolldown/binding-linux-arm64-musl" "1.0.2"
+ "@rolldown/binding-linux-ppc64-gnu" "1.0.2"
+ "@rolldown/binding-linux-s390x-gnu" "1.0.2"
+ "@rolldown/binding-linux-x64-gnu" "1.0.2"
+ "@rolldown/binding-linux-x64-musl" "1.0.2"
+ "@rolldown/binding-openharmony-arm64" "1.0.2"
+ "@rolldown/binding-wasm32-wasi" "1.0.2"
+ "@rolldown/binding-win32-arm64-msvc" "1.0.2"
+ "@rolldown/binding-win32-x64-msvc" "1.0.2"
rooks@^9.8.0:
version "9.8.0"
@@ -2547,15 +2542,7 @@ tinyexec@^1.0.2:
resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.0.2.tgz#bdd2737fe2ba40bd6f918ae26642f264b99ca251"
integrity sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==
-tinyglobby@^0.2.15:
- version "0.2.15"
- resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2"
- integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==
- dependencies:
- fdir "^6.5.0"
- picomatch "^4.0.3"
-
-tinyglobby@^0.2.16:
+tinyglobby@^0.2.15, tinyglobby@^0.2.16:
version "0.2.16"
resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6"
integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==
@@ -2568,10 +2555,10 @@ tinyrainbow@^3.1.0:
resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-3.1.0.tgz#1d8a623893f95cf0a2ddb9e5d11150e191409421"
integrity sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==
-tmp@^0.2.5:
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8"
- integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==
+tmp@^0.2.6:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.6.tgz#0dfac10fd09a9319288eb0e8f0ed524604e183b4"
+ integrity sha512-5sJPdPjfI5Kx+qbrDesxkglRBxW//g7hCsqspEjwkewGvBMGIKMOTKzLt1hFVJzyadba3lDUN20O9qhvbQUSTA==
trim-lines@^3.0.0:
version "3.0.1"
@@ -2725,31 +2712,31 @@ vite-plugin-checker@^0.14.1:
proper-lockfile "^4.1.2"
tiny-invariant "^1.3.3"
-"vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.0.12:
- version "8.0.12"
- resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.12.tgz#105cce7bcb60733f9159842ec2a5a10aadf2da86"
- integrity sha512-w2dDofOWv2QB09ZITZBsvKTVAlYvPR4IAmrY/v0ir9KvLs0xybR7i48wxhM1/oyBWO34wPns+bPGw5ZrZqDpZg==
+"vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.0.14:
+ version "8.0.14"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.14.tgz#da5d8d1f63dbd106385cbe9c211acbc7a7a5b192"
+ integrity sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==
dependencies:
lightningcss "^1.32.0"
picomatch "^4.0.4"
- postcss "^8.5.14"
- rolldown "1.0.0"
+ postcss "^8.5.15"
+ rolldown "1.0.2"
tinyglobby "^0.2.16"
optionalDependencies:
fsevents "~2.3.3"
-vitest@^4.1.6:
- version "4.1.6"
- resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.6.tgz#754875c9a09c5a3e8ca7d07d440659d92c19787f"
- integrity sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==
+vitest@^4.1.7:
+ version "4.1.7"
+ resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.7.tgz#5ae483c0a901081bbf1428e07dafe80c36e62e6c"
+ integrity sha512-flYyaFd2CgoCoU+0UKt3pxksgC+S02iTDN0n3LtqaMeXsI9SBcdNujc2k0DeFLzUn/0k538yNjOSdwgCqcrwJA==
dependencies:
- "@vitest/expect" "4.1.6"
- "@vitest/mocker" "4.1.6"
- "@vitest/pretty-format" "4.1.6"
- "@vitest/runner" "4.1.6"
- "@vitest/snapshot" "4.1.6"
- "@vitest/spy" "4.1.6"
- "@vitest/utils" "4.1.6"
+ "@vitest/expect" "4.1.7"
+ "@vitest/mocker" "4.1.7"
+ "@vitest/pretty-format" "4.1.7"
+ "@vitest/runner" "4.1.7"
+ "@vitest/snapshot" "4.1.7"
+ "@vitest/spy" "4.1.7"
+ "@vitest/utils" "4.1.7"
es-module-lexer "^2.0.0"
expect-type "^1.3.0"
magic-string "^0.30.21"
From e703a9adc4928a15b34aa0fb14528a2aae67b56d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 27 May 2026 00:04:39 +0000
Subject: [PATCH 78/89] Bump the prod-patch-updates group across 1 directory
with 3 updates
Bumps the prod-patch-updates group with 3 updates in the /frontend directory: [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query), [react-intl](https://github.com/formatjs/formatjs) and [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Updates `@tanstack/react-query` from 5.100.10 to 5.100.14
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.100.14/packages/react-query)
Updates `react-intl` from 10.1.6 to 10.1.9
- [Release notes](https://github.com/formatjs/formatjs/releases)
- [Commits](https://github.com/formatjs/formatjs/compare/react-intl@10.1.6...react-intl@10.1.9)
Updates `react-router-dom` from 7.15.0 to 7.15.1
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.15.1/packages/react-router-dom)
---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
dependency-version: 5.100.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
- dependency-name: react-intl
dependency-version: 10.1.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
- dependency-name: react-router-dom
dependency-version: 7.15.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
...
Signed-off-by: dependabot[bot]
---
frontend/package.json | 6 +--
frontend/yarn.lock | 90 +++++++++++++++++++++----------------------
2 files changed, 48 insertions(+), 48 deletions(-)
diff --git a/frontend/package.json b/frontend/package.json
index e06d21bb..a5d7b729 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -18,7 +18,7 @@
"dependencies": {
"@tabler/core": "^1.4.0",
"@tabler/icons-react": "^3.44.0",
- "@tanstack/react-query": "^5.100.10",
+ "@tanstack/react-query": "^5.100.14",
"@tanstack/react-table": "^8.21.3",
"@uiw/react-textarea-code-editor": "^3.1.1",
"classnames": "^2.5.1",
@@ -32,9 +32,9 @@
"react": "^19.2.6",
"react-bootstrap": "^2.10.10",
"react-dom": "^19.2.6",
- "react-intl": "^10.1.6",
+ "react-intl": "^10.1.9",
"react-markdown": "^10.1.0",
- "react-router-dom": "^7.15.0",
+ "react-router-dom": "^7.15.1",
"react-select": "^5.10.2",
"react-toastify": "^11.1.0",
"rooks": "^9.8.0"
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 9bc6efd3..a6660672 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -311,26 +311,26 @@
resolved "https://registry.yarnpkg.com/@formatjs/fast-memoize/-/fast-memoize-3.1.5.tgz#bdfe0b884cdecc25100534086f36a0b30bd15b3b"
integrity sha512-KLi3fan6WnCHmigd9pmEEN8Hid0v4wiFBW576M/d07KMWYecf1CvyMI3n34vCmHT4AoVqG2n702kiHbXjzZX2A==
-"@formatjs/icu-messageformat-parser@3.5.8":
- version "3.5.8"
- resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-3.5.8.tgz#73719113084e045ac9ce42c0bcec19016e3a8214"
- integrity sha512-uZLvzLFN7iV2l8cbDdROwgKGtdELeLI4bpnsuz1DnyscHDxn8TdDE0anHzcfjtWK66XYCllGLV3Mi3CYcEPg/g==
+"@formatjs/icu-messageformat-parser@3.5.10":
+ version "3.5.10"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-3.5.10.tgz#0ced2d6e8009eed57c6f0e7b4cc51dfea63b9bff"
+ integrity sha512-XeJihYLy1lCe19xfK1KWKG/betBOK2rB0luL8lSkjfvJj0zP+LTJvkC+RKd0jsFI8mWxN71LrarHSrEXE8xxOQ==
dependencies:
- "@formatjs/icu-skeleton-parser" "2.1.8"
+ "@formatjs/icu-skeleton-parser" "2.1.9"
-"@formatjs/icu-skeleton-parser@2.1.8":
- version "2.1.8"
- resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-2.1.8.tgz#a84262d173d5141d411fc41d24437b68800561ef"
- integrity sha512-iX5i0O15gPf69l1WqmLFYwn7wq53lauvytvWFnHamIfX/5Ta56gpFj6fdeHRcKTV58IhrKv8QOvWfTYZYm7f+g==
+"@formatjs/icu-skeleton-parser@2.1.9":
+ version "2.1.9"
+ resolved "https://registry.yarnpkg.com/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-2.1.9.tgz#746edae664b2ef148df1301845d1bb40000bbebb"
+ integrity sha512-rsxswgHMfU1zUgB2byc08fesf83wLGjFnzLCEtuf00mx2doiqc6pYrf67raI37XqdRcGUviQepk2UKGqpng74Q==
-"@formatjs/intl@4.1.10":
- version "4.1.10"
- resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-4.1.10.tgz#960a75306264dd017f189c81919fd62bfc587368"
- integrity sha512-Zv9FqRVdEFsHLsXGkcthyuXv4hlTLvbvTr4Fi16w+VCd7MSz2RtI18mXd4B44N7nuvF5be2+JGauU3QoJ2wELw==
+"@formatjs/intl@4.1.12":
+ version "4.1.12"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl/-/intl-4.1.12.tgz#a29521f9bba79df1690c430f3d2cee8817778674"
+ integrity sha512-r288ut+p+CUQZSg+0gAT+D0i6xgrnoxE0B4HTbPY2zei/AtYmFhlu87BKjgCf1CweH4pZIbr152JFjxO8jVb1A==
dependencies:
"@formatjs/fast-memoize" "3.1.5"
- "@formatjs/icu-messageformat-parser" "3.5.8"
- intl-messageformat "11.2.5"
+ "@formatjs/icu-messageformat-parser" "3.5.10"
+ intl-messageformat "11.2.7"
"@jridgewell/gen-mapping@^0.3.12":
version "0.3.13"
@@ -628,10 +628,10 @@
resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-3.44.0.tgz#286b203aac98591e27360de03974762568bbb272"
integrity sha512-Wn0AOZG9sg0L+bjfMqq4eNhC6pQjIrk94LvvWYNYkY8KH8wC3YILRzQlrnVJc4FUeMxH/AK97QsYCX35H3LndA==
-"@tanstack/query-core@5.100.10":
- version "5.100.10"
- resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.100.10.tgz#aeb34d301fd4ff9762e67dfa018adc33b7a18be4"
- integrity sha512-8UR0yJR+GiQ40m3lPhUr0xbfAupe6GSQiksSBSa9SM2NjezFyxXCIA69/lz8cSoNKZLrw1/PktIyQBJcVeMi3w==
+"@tanstack/query-core@5.100.14":
+ version "5.100.14"
+ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.100.14.tgz#6bf11c9a6a33dbbbba21f05d880b93930d80000c"
+ integrity sha512-5X41dGpxgeaHISCRW2oYwcSycZeULZzAunaudXT9ov1KOTj9xwt0CH6hbwqP1/z74ZWF7rYFnDpyYH07XFcZew==
"@tanstack/query-devtools@5.100.10":
version "5.100.10"
@@ -645,12 +645,12 @@
dependencies:
"@tanstack/query-devtools" "5.100.10"
-"@tanstack/react-query@^5.100.10":
- version "5.100.10"
- resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.100.10.tgz#3bf1844efd76f5f68f9f39da2917fc4c6023e726"
- integrity sha512-FLaZf2RCrA/Zgp4aiu5tG3TyasTRO7aZ99skxQpr3Hg/zXOhu6yq5FZCYQ/tRaJtM9ylnoK8tFK7PolXQadv6Q==
+"@tanstack/react-query@^5.100.14":
+ version "5.100.14"
+ resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.100.14.tgz#799fe305421fd84bf2f6df40930c859c945b42ab"
+ integrity sha512-oOr6aRdSFEwWhzxEkD/9ZcItM3+LjBSkeVmadWKwUssAHTsqd/7bOjWrX4AbvEkoEhgAxzN0Xk6H/aYzXiYBAw==
dependencies:
- "@tanstack/query-core" "5.100.10"
+ "@tanstack/query-core" "5.100.14"
"@tanstack/react-table@^8.21.3":
version "8.21.3"
@@ -1453,13 +1453,13 @@ inline-style-parser@0.2.7:
resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.7.tgz#b1fc68bfc0313b8685745e4464e37f9376b9c909"
integrity sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==
-intl-messageformat@11.2.5:
- version "11.2.5"
- resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-11.2.5.tgz#08934613ab77b14730cf51c9454b0792853982bd"
- integrity sha512-zaROHiUsnlSFXVypU54AsQuAm3DLmmSH8KfDhiUuG1XZ9NTQ4o3xlxIJYVNmeWAklyp3CWg0lhexNUnee8PsYQ==
+intl-messageformat@11.2.7:
+ version "11.2.7"
+ resolved "https://registry.yarnpkg.com/intl-messageformat/-/intl-messageformat-11.2.7.tgz#1d922a7df8964ec496c56f62928ef2134674bdae"
+ integrity sha512-+q6Ktg119nULZEpZ8YTuGOst9MyEzFtjD63FTGBlN1mLz0Z/MOUYDIvnpVKwq17eezIEh+cfJIebfJoCetpiNw==
dependencies:
"@formatjs/fast-memoize" "3.1.5"
- "@formatjs/icu-messageformat-parser" "3.5.8"
+ "@formatjs/icu-messageformat-parser" "3.5.10"
invariant@^2.2.4:
version "2.2.4"
@@ -2190,14 +2190,14 @@ react-fast-compare@^2.0.1:
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
-react-intl@^10.1.6:
- version "10.1.6"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-10.1.6.tgz#febefb819581be56731b9d428d496c48e1d7c367"
- integrity sha512-cXXRQ+M/uot4OYIerz2q752wfYUKnRYlm++eny9d2u1LBmRo54KZviPb+modE0WcYg8ZB4mfokIOCaFZkZlD0w==
+react-intl@^10.1.9:
+ version "10.1.9"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-10.1.9.tgz#e256f0c28a049d391d421bf658e49fe137fb2cdf"
+ integrity sha512-FOWpTmwnZnAfz8JegRzyGnjUiuzLW3xJFjp/o8VR4HZAQ+Eg++YaeMhoUULLY+LMx7gZm3czaZEqcU4hntwerw==
dependencies:
- "@formatjs/icu-messageformat-parser" "3.5.8"
- "@formatjs/intl" "4.1.10"
- intl-messageformat "11.2.5"
+ "@formatjs/icu-messageformat-parser" "3.5.10"
+ "@formatjs/intl" "4.1.12"
+ intl-messageformat "11.2.7"
react-is@^16.13.1, react-is@^16.3.2, react-is@^16.7.0:
version "16.13.1"
@@ -2231,17 +2231,17 @@ react-markdown@^10.1.0:
unist-util-visit "^5.0.0"
vfile "^6.0.0"
-react-router-dom@^7.15.0:
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.15.0.tgz#a4b95c4402d896c2ad437014aff9076b94673063"
- integrity sha512-VcrVg64Fo8nwBvDscajG8gRTLIuTC6N50nb22l2HOOV4PTOHgoGp8mUjy9wLiHYoYTSYI36tUnXZgasSRFZorQ==
+react-router-dom@^7.15.1:
+ version "7.15.1"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.15.1.tgz#cf5aee65a44e407a17a2e9718d5350482b1e281f"
+ integrity sha512-AzF62gjY6U9rkMq4RfP/r2EVtQ7DMfNMjyOp/flLTCrtRylLiK4wT4pSq6O8rOXZ2eXdZYJPEYe+ifomiv+Igg==
dependencies:
- react-router "7.15.0"
+ react-router "7.15.1"
-react-router@7.15.0:
- version "7.15.0"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.15.0.tgz#cb438ff254ab5a1e356ef5a23d7821d8f6fbe652"
- integrity sha512-HW9vYwuM8f4yx66Izy8xfrzCM+SBJluoZcCbww9A1TySax11S5Vgw6fi3ZjMONw9J4gQwngL7PzkyIpJJpJ7RQ==
+react-router@7.15.1:
+ version "7.15.1"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.15.1.tgz#0a12fece05887a47c54970480745385c793bcaac"
+ integrity sha512-R8rl9HhgikFYoPJymnUtPXWbnDb3oget6lQnfIoupbt61aT9aOhRkDsY2XRhZRyX1Z/8a5sL74fXmFNm3NRK5A==
dependencies:
cookie "^1.0.1"
set-cookie-parser "^2.6.0"
From 0c151258309f40667ec682b4a4bf2bb45227388a Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Wed, 27 May 2026 11:30:25 +1000
Subject: [PATCH 79/89] Bump version
---
.version | 2 +-
README.md | 2 +-
SECURITY.md | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.version b/.version
index edcfe40d..68e69e40 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-2.14.0
+2.15.0
diff --git a/README.md b/README.md
index c22f12fa..0af3edec 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-
+
diff --git a/SECURITY.md b/SECURITY.md
index 15947983..66e4bb1f 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -7,8 +7,8 @@ Older versions are not actively maintained.
| Version | Supported |
| ------- | --------- |
-| 2.14.x (latest) | :white_check_mark: |
-| < 2.14.0 | :x: |
+| 2.15.x (latest) | :white_check_mark: |
+| < 2.15.0 | :x: |
Docker images: `jc21/nginx-proxy-manager:latest`, `jc21/nginx-proxy-manager:2`
From a6b7a7dd9d05c95ff981800a6f5fd56826a7134b Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Thu, 28 May 2026 18:24:13 +1000
Subject: [PATCH 80/89] Only clean domain names on cert save if given
---
backend/models/certificate.js | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/backend/models/certificate.js b/backend/models/certificate.js
index 9a349f30..8ca859cd 100644
--- a/backend/models/certificate.js
+++ b/backend/models/certificate.js
@@ -36,7 +36,9 @@ class Certificate extends Model {
}
// Default for domain_names
- this.domain_names = cleanDomainNames(this.domain_names);
+ if (typeof this.domain_names !== "undefined") {
+ this.domain_names = cleanDomainNames(this.domain_names);
+ }
// Default for meta
if (typeof this.meta === "undefined") {
@@ -46,7 +48,9 @@ class Certificate extends Model {
$beforeUpdate() {
this.modified_on = now();
- this.domain_names = cleanDomainNames(this.domain_names);
+ if (typeof this.domain_names !== "undefined") {
+ this.domain_names = cleanDomainNames(this.domain_names);
+ }
}
$parseDatabaseJson(json) {
From fc1adb64a3379e1f436760ff16b9ef2e6c230fe9 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Fri, 29 May 2026 07:32:58 +1000
Subject: [PATCH 81/89] Fix regression of null domains in db creates
---
backend/models/certificate.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/backend/models/certificate.js b/backend/models/certificate.js
index 8ca859cd..954255b9 100644
--- a/backend/models/certificate.js
+++ b/backend/models/certificate.js
@@ -38,6 +38,8 @@ class Certificate extends Model {
// Default for domain_names
if (typeof this.domain_names !== "undefined") {
this.domain_names = cleanDomainNames(this.domain_names);
+ } else {
+ this.domain_names = [];
}
// Default for meta
From 0d832092a539e60bd85c84c9e7c4a56ab3a96e95 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Tue, 2 Jun 2026 22:09:21 +1000
Subject: [PATCH 82/89] Only modify files in startup when they aren't mounted
---
docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/50-ipv6.sh | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/50-ipv6.sh b/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/50-ipv6.sh
index edc9649c..36387a98 100755
--- a/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/50-ipv6.sh
+++ b/docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/50-ipv6.sh
@@ -8,6 +8,10 @@ set -e
log_info 'IPv6 ...'
+is_mounted() {
+ awk -v p="$1" '$5 == p { found=1 } END { exit !found }' /proc/self/mountinfo
+}
+
process_folder () {
FILES=$(find "$1" -type f -name "*.conf")
SED_REGEX=
@@ -26,7 +30,10 @@ process_folder () {
do
echo "- ${FILE}"
TMPFILE="${FILE}.tmp"
- if sed -E "$SED_REGEX" "$FILE" > "$TMPFILE" && [ -s "$TMPFILE" ]; then
+
+ if is_mounted "${FILE}"; then
+ echo "WARNING: skipping ${FILE} — mounted file" >&2
+ elif sed -E "$SED_REGEX" "$FILE" > "$TMPFILE" && [ -s "$TMPFILE" ]; then
mv "$TMPFILE" "$FILE"
else
echo "WARNING: skipping ${FILE} — sed produced empty output" >&2
From 62ed3300531d5ca7e321f5cb35678a6092a08e96 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 13:57:48 +0000
Subject: [PATCH 83/89] Bump the prod-patch-updates group in /test with 2
updates
Bumps the prod-patch-updates group in /test with 2 updates: [@cypress/grep](https://github.com/cypress-io/cypress) and [eslint](https://github.com/eslint/eslint).
Updates `@cypress/grep` from 6.0.0 to 6.0.1
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/@cypress/grep-v6.0.0...@cypress/grep-v6.0.1)
Updates `eslint` from 10.4.0 to 10.4.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.4.0...v10.4.1)
---
updated-dependencies:
- dependency-name: "@cypress/grep"
dependency-version: 6.0.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
- dependency-name: eslint
dependency-version: 10.4.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
...
Signed-off-by: dependabot[bot]
---
test/yarn.lock | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/test/yarn.lock b/test/yarn.lock
index 0f41aea8..ca6b6539 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -81,9 +81,9 @@
"@babel/helper-validator-identifier" "^7.29.7"
"@cypress/grep@^6.0.0":
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/@cypress/grep/-/grep-6.0.0.tgz#fcc5f42d0086464e2752c4d84ac563c3cd21eb77"
- integrity sha512-n3PCeqt8OwmLFz310igbRUm3qDE5WJgM9LW+2ejdULfMu2Sudqg3UX8koC8/JU/+ZcJ5UbaQAap1Nbi0QvzXwA==
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/@cypress/grep/-/grep-6.0.1.tgz#33fb03fd860f3cc4d3f4940c54ad2f6426d0dfea"
+ integrity sha512-nxTBNid7mKeDfM5thNPc4YH6q+1BoDKFwDLcJJLvosNbJ9WcsRZAU9F6gUQyS/BWhKmRWn+st3JdVtokk8aMSw==
dependencies:
debug "^4.3.4"
find-test-names "^1.28.18"
@@ -160,10 +160,10 @@
resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-3.0.5.tgz#88e9bf4d11d2b19c082e78ebe7ce88724a5eb091"
integrity sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==
-"@eslint/plugin-kit@^0.7.1":
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.7.1.tgz#c4125fd015eceeb09b793109fdbcd4dd0a02d346"
- integrity sha512-rZAP3aVgB9ds9KOeUSL+zZ21hPmo8dh6fnIFwRQj5EAZl9gzR7wxYbYXYysAM8CTqGmUGyp2S4kUdV17MnGuWQ==
+"@eslint/plugin-kit@^0.7.2":
+ version "0.7.2"
+ resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz#4b0962f3f2c7ce8bc98b3ecfe34525c09d2cb729"
+ integrity sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==
dependencies:
"@eslint/core" "^1.2.1"
levn "^0.4.1"
@@ -928,16 +928,16 @@ eslint-visitor-keys@^5.0.1:
integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==
eslint@^10.3.0:
- version "10.4.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.4.0.tgz#d86b6c405de0f19f3318c47139b8cb6771b3f592"
- integrity sha512-loXy6bWOoP3EP6JA7jo6p5jMpBJmHmsNZM5SFRHLdh1MGOPurMnNBj4ZlAbaqUAaQWbCr7jHV4P7gzAyryZWkQ==
+ version "10.4.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-10.4.1.tgz#f6640b176e0912246d9ddbf8fcfa5e8b7f02445a"
+ integrity sha512-AyIKhnOBuOAdueD7RB3xB+YeAWScb9jHsJBgH2Hcde8InP5JYhqrRR6iTMHyTEwgENK54Cp44e4v8BwNhsuHuw==
dependencies:
"@eslint-community/eslint-utils" "^4.8.0"
"@eslint-community/regexpp" "^4.12.2"
"@eslint/config-array" "^0.23.5"
"@eslint/config-helpers" "^0.6.0"
"@eslint/core" "^1.2.1"
- "@eslint/plugin-kit" "^0.7.1"
+ "@eslint/plugin-kit" "^0.7.2"
"@humanfs/node" "^0.16.6"
"@humanwhocodes/module-importer" "^1.0.1"
"@humanwhocodes/retry" "^0.4.2"
From fc4a409292fcfd1f225db5b4de7ca0d39da3c156 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 13:58:55 +0000
Subject: [PATCH 84/89] Bump the dev-patch-updates group in /frontend with 4
updates
Bumps the dev-patch-updates group in /frontend with 4 updates: [@formatjs/cli](https://github.com/formatjs/formatjs), [tmp](https://github.com/raszi/node-tmp), [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).
Updates `@formatjs/cli` from 6.16.3 to 6.16.6
- [Release notes](https://github.com/formatjs/formatjs/releases)
- [Commits](https://github.com/formatjs/formatjs/compare/@formatjs/cli@6.16.3...@formatjs/intl-datetimeformat@6.16.6)
Updates `tmp` from 0.2.6 to 0.2.7
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.6...v0.2.7)
Updates `vite` from 8.0.14 to 8.0.16
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.0.16/packages/vite)
Updates `vitest` from 4.1.7 to 4.1.8
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.8/packages/vitest)
---
updated-dependencies:
- dependency-name: "@formatjs/cli"
dependency-version: 6.16.6
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
- dependency-name: tmp
dependency-version: 0.2.7
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
- dependency-name: vite
dependency-version: 8.0.16
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
- dependency-name: vitest
dependency-version: 4.1.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: dev-patch-updates
...
Signed-off-by: dependabot[bot]
---
frontend/package.json | 8 +-
frontend/yarn.lock | 340 +++++++++++++++++++++---------------------
2 files changed, 174 insertions(+), 174 deletions(-)
diff --git a/frontend/package.json b/frontend/package.json
index 769a2a77..1fa055e3 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -41,7 +41,7 @@
},
"devDependencies": {
"@biomejs/biome": "^2.4.15",
- "@formatjs/cli": "^6.16.3",
+ "@formatjs/cli": "^6.16.6",
"@tanstack/react-query-devtools": "^5.100.14",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
@@ -57,10 +57,10 @@
"postcss": "^8.5.15",
"postcss-simple-vars": "^7.0.1",
"sass": "^1.100.0",
- "tmp": "^0.2.6",
+ "tmp": "^0.2.7",
"typescript": "6.0.3",
- "vite": "^8.0.14",
+ "vite": "^8.0.16",
"vite-plugin-checker": "^0.14.1",
- "vitest": "^4.1.7"
+ "vitest": "^4.1.8"
}
}
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index d5f80376..3c116af3 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -276,35 +276,35 @@
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.10.tgz#a2a1e3812d14525f725d011a73eceb41fef5bc1c"
integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==
-"@formatjs/cli-native-darwin-arm64@1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@formatjs/cli-native-darwin-arm64/-/cli-native-darwin-arm64-1.1.0.tgz#c47df2ec7c1d27643900af77c474bd224b4587dc"
- integrity sha512-ygEpFpmRjbAKanWaeto/eUItyuK18667mdDzpDg3CTzc15WYzjZKnwJNFUuPFvFA4hiod1tnhXT1eiXmc1wWNg==
-
-"@formatjs/cli-native-linux-arm64@1.2.0":
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/@formatjs/cli-native-linux-arm64/-/cli-native-linux-arm64-1.2.0.tgz#3ddcafb006351417e82785b809a1ab1fbbb2c577"
- integrity sha512-G6YuIVD8D6hZjnsD/aYZQ2qMHSve7IadEiXgKiDfFQBbyrkjDAlt6LDSqq4qnuv3WJ7/jAOn/An6n/bGyt0rLg==
-
-"@formatjs/cli-native-linux-x64@1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@formatjs/cli-native-linux-x64/-/cli-native-linux-x64-1.1.0.tgz#1a3f01ea47f971a0dd0d7f49b98df237375862fa"
- integrity sha512-AxORf5LR14HvXU4ov9gnhLrNIS2DYKqKMkRkprUhuh+ljba1riF05msK8KzslEPYQoeYKc5A0OZp57poh4xz/g==
-
-"@formatjs/cli-native-win32-x64@1.1.1":
+"@formatjs/cli-native-darwin-arm64@1.1.1":
version "1.1.1"
- resolved "https://registry.yarnpkg.com/@formatjs/cli-native-win32-x64/-/cli-native-win32-x64-1.1.1.tgz#a911b22c8f5ccfe4aff5a00276ee4274f4b81079"
- integrity sha512-2vYgm7dzAb7wA9KjOOJGxZiSShwBNK4dEmgiJ1lRpEIz6RKMZ6wBY4UVn03VdAv8djJ7r6RK4Xyd2ouGcbh9Bg==
+ resolved "https://registry.yarnpkg.com/@formatjs/cli-native-darwin-arm64/-/cli-native-darwin-arm64-1.1.1.tgz#abf5d12040511bbb9225ae6835fb6107f3e7f866"
+ integrity sha512-G2IfmxwDN1kUMIbM9ec5HfJTNR89X11+U3bt4lewfrRqoHOc9bQAkkVHLsY8gNVLjyQIXch58Ewd+AAHkg6cag==
-"@formatjs/cli@^6.16.3":
- version "6.16.3"
- resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.16.3.tgz#728a17c1deaf1fec0ace554b2c72695f18253231"
- integrity sha512-AN6uZR1xnl3V215HHJiKiA+DvNMrO/XfQ7hOyq3gXfHJwKSgLLQFtSFxw9A1O0SaGC2E2Kwo4mqwS1ZCLGe/qw==
+"@formatjs/cli-native-linux-arm64@1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli-native-linux-arm64/-/cli-native-linux-arm64-1.2.1.tgz#b55884c1bbe4c68a6545dd4e87e60e043c394c0e"
+ integrity sha512-dbafLt5p1wQi16QnTFuz6s5j5c8HcyRSw+gUp5xEtaQ9Ua2YKRu+YqlgsERg+ArTWN+ZTHIGu+0YymTvfTropA==
+
+"@formatjs/cli-native-linux-x64@1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli-native-linux-x64/-/cli-native-linux-x64-1.1.1.tgz#e3439d454b6006537abc22130989f285d036426b"
+ integrity sha512-zi6eOPAc03fszPyiGCkmzBxjIxynDFflie9zgbyZIQgKV7MhXEmUmpGYeaTTDX903OFCJJ3ZvpajSTdZ7C7yeQ==
+
+"@formatjs/cli-native-win32-x64@1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli-native-win32-x64/-/cli-native-win32-x64-1.1.2.tgz#6cc2db043243d5215065d3548e7198233e342c0d"
+ integrity sha512-2TKatQRlDbVc+eJE4b9n0/+bsDg+DpS0kmHw7OYI1zGXhus4YqRPtlJnraazRmPlXtRNgvY/UYCPgBvX7DbYhw==
+
+"@formatjs/cli@^6.16.6":
+ version "6.16.6"
+ resolved "https://registry.yarnpkg.com/@formatjs/cli/-/cli-6.16.6.tgz#dcc47f28756eec01f59e3911f58407293ff9c65f"
+ integrity sha512-82l9wmeqvClrtI/8VQOcFVZQwZWYEiMI505hywngF+xr7ti94OQXg0gi3piYaQarfiIac2GSMibLQ2aQM5mJaA==
optionalDependencies:
- "@formatjs/cli-native-darwin-arm64" "1.1.0"
- "@formatjs/cli-native-linux-arm64" "1.2.0"
- "@formatjs/cli-native-linux-x64" "1.1.0"
- "@formatjs/cli-native-win32-x64" "1.1.1"
+ "@formatjs/cli-native-darwin-arm64" "1.1.1"
+ "@formatjs/cli-native-linux-arm64" "1.2.1"
+ "@formatjs/cli-native-linux-x64" "1.1.1"
+ "@formatjs/cli-native-win32-x64" "1.1.2"
"@formatjs/fast-memoize@3.1.5":
version "3.1.5"
@@ -372,10 +372,10 @@
dependencies:
"@tybys/wasm-util" "^0.10.1"
-"@oxc-project/types@=0.132.0":
- version "0.132.0"
- resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.132.0.tgz#d77243df4fe1a0a1e60e12ac6240fa898d2363ff"
- integrity sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==
+"@oxc-project/types@=0.133.0":
+ version "0.133.0"
+ resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.133.0.tgz#2e282ef9e1d26e06b68ccd14b73f310a3b2cf7f8"
+ integrity sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==
"@parcel/watcher-android-arm64@2.5.6":
version "2.5.6"
@@ -507,84 +507,84 @@
uncontrollable "^8.0.4"
warning "^4.0.3"
-"@rolldown/binding-android-arm64@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz#ebe1264e43ba5bb224c58c85e0ac238f87e5ad14"
- integrity sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==
+"@rolldown/binding-android-arm64@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz#54ce8f8382213f4a314a0c2f7ba83f81ffeae592"
+ integrity sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==
-"@rolldown/binding-darwin-arm64@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz#f972fb71bc03840629bee923babbb7048d14a5d0"
- integrity sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==
+"@rolldown/binding-darwin-arm64@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz#388fca1566c14c00c4b446fc3928630e7f0d95fc"
+ integrity sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==
-"@rolldown/binding-darwin-x64@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz#da1c062c135e1e50067084be5ab8055cc1e05b29"
- integrity sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==
+"@rolldown/binding-darwin-x64@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz#53f57de1f599ecf1db13823cfc88c18fb80954ad"
+ integrity sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==
-"@rolldown/binding-freebsd-x64@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz#a4c8532072705ce597c0d75418513709b75b3f1d"
- integrity sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==
+"@rolldown/binding-freebsd-x64@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz#6f3fdda1b7aeaac9d268a526804b4fb96e4e35f1"
+ integrity sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==
-"@rolldown/binding-linux-arm-gnueabihf@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz#78f3bd274a1bab07356017d728b70289f04011c1"
- integrity sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==
+"@rolldown/binding-linux-arm-gnueabihf@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz#d87a454bf585cc9676849377e91d6e375297326f"
+ integrity sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==
-"@rolldown/binding-linux-arm64-gnu@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz#4dc530aed0b554762ffc1a5e4f016b8be495eea0"
- integrity sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==
+"@rolldown/binding-linux-arm64-gnu@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz#419fd6bf612cf348f10528cbcd94ebab9607d8d1"
+ integrity sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==
-"@rolldown/binding-linux-arm64-musl@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz#56043cdf4768ea3184bb08a3f45b24f183003877"
- integrity sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==
+"@rolldown/binding-linux-arm64-musl@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz#fcc6918696bb76844877e1e4930a18fd0d374069"
+ integrity sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==
-"@rolldown/binding-linux-ppc64-gnu@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz#92eba998d5cd9e4cfc8b95407b4b80f46dacadf4"
- integrity sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==
+"@rolldown/binding-linux-ppc64-gnu@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz#32aecb7c8dae5d4f2a8cde57a058ec86991542f8"
+ integrity sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==
-"@rolldown/binding-linux-s390x-gnu@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz#50b0e95dc3c22af1ecd1669ad7e6030e6860819e"
- integrity sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==
+"@rolldown/binding-linux-s390x-gnu@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz#bed9346ea81e6bb8b93cf11f5d88b77db890b763"
+ integrity sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==
-"@rolldown/binding-linux-x64-gnu@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz#d9fd5af004a373a2d26a09ce8fb66bd0927cbc0b"
- integrity sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==
+"@rolldown/binding-linux-x64-gnu@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz#64c2d26f75dffd9b5a1f97557a00ae77250c8cb7"
+ integrity sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==
-"@rolldown/binding-linux-x64-musl@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz#c0ad80adf4d4df430d0ec309e97924db85065c3c"
- integrity sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==
+"@rolldown/binding-linux-x64-musl@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz#5a45132e8a47659eeaaf3b540c2954a97c860ff3"
+ integrity sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==
-"@rolldown/binding-openharmony-arm64@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz#341fc254ef7759f865bb219beb5cea6f5c9a44f6"
- integrity sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==
+"@rolldown/binding-openharmony-arm64@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz#290513068c55e849dc8457a32afee1d7b0acb309"
+ integrity sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==
-"@rolldown/binding-wasm32-wasi@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz#65f9389f74168fd54e67b12d0630fb90348051f0"
- integrity sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==
+"@rolldown/binding-wasm32-wasi@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz#3d9972dbf1a953d3c7afaa4a0f20ef2b2e39f31b"
+ integrity sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==
dependencies:
"@emnapi/core" "1.10.0"
"@emnapi/runtime" "1.10.0"
"@napi-rs/wasm-runtime" "^1.1.4"
-"@rolldown/binding-win32-arm64-msvc@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz#17e80f3402308f12c76ff4172768d51715b522ac"
- integrity sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==
+"@rolldown/binding-win32-arm64-msvc@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz#a004ab607a16d6f03bcb555728ff888af75773ad"
+ integrity sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==
-"@rolldown/binding-win32-x64-msvc@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz#875cfa37f26d11692dbe28b8331499c97aa99d1f"
- integrity sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==
+"@rolldown/binding-win32-x64-msvc@1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz#e2a25b34691a1cc8a1209d7de709063026dd0cdb"
+ integrity sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==
"@rolldown/pluginutils@^1.0.0":
version "1.0.1"
@@ -873,63 +873,63 @@
dependencies:
"@rolldown/pluginutils" "^1.0.0"
-"@vitest/expect@4.1.7":
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.1.7.tgz#dc2918d51b54fa24ac5b4e7e802ef7440a11027f"
- integrity sha512-1R+tw0ortHEbZDGMymm+pN7/AFQ/RkFFdtd7EN+VBpynKmLbP8A3rpEXdshBJ7+8hQ9zBJh/i1s0yKNtxAnU7w==
+"@vitest/expect@4.1.8":
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-4.1.8.tgz#45154f1f8559f55c5281eb0dcb1ac37b581a87d8"
+ integrity sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ==
dependencies:
"@standard-schema/spec" "^1.1.0"
"@types/chai" "^5.2.2"
- "@vitest/spy" "4.1.7"
- "@vitest/utils" "4.1.7"
+ "@vitest/spy" "4.1.8"
+ "@vitest/utils" "4.1.8"
chai "^6.2.2"
tinyrainbow "^3.1.0"
-"@vitest/mocker@4.1.7":
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.1.7.tgz#05c5b42968b56057c40ea3e4546f3227cf1bf6fc"
- integrity sha512-vY7nuamKgfvpA1Koa3oYIw/k7D6kZnpGyNMZW8loow2bsBYla1TFdqTaXncWdRn4pgwNs+90RhnXhJScDwQeJA==
+"@vitest/mocker@4.1.8":
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/@vitest/mocker/-/mocker-4.1.8.tgz#d006bfc5894a1af51e74deddef2535d6bd436b16"
+ integrity sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw==
dependencies:
- "@vitest/spy" "4.1.7"
+ "@vitest/spy" "4.1.8"
estree-walker "^3.0.3"
magic-string "^0.30.21"
-"@vitest/pretty-format@4.1.7":
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.1.7.tgz#86b37ea96d4c5bd1357be66982e60a89a343c1bb"
- integrity sha512-umgCarTOYQWIaDMvGDRZij+6b9oVeLIyJzfN+AS88e0ZOU3QTgNNSTtjQOpcvWr3np1N0j4WgZj+sb3oYBDscw==
+"@vitest/pretty-format@4.1.8":
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/@vitest/pretty-format/-/pretty-format-4.1.8.tgz#d9d2e248b900d7ad9556c4374fcdf1871c615193"
+ integrity sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==
dependencies:
tinyrainbow "^3.1.0"
-"@vitest/runner@4.1.7":
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.1.7.tgz#a7c465a76c0edc7deb1e8927dad452b71c5797b5"
- integrity sha512-BapjmAQ2aI78WdMEfeUWivnfVzB+VPGwWRQcJE0OUq7qEeEcBsCSf+0T5iREBNE5nBb4wA5Ya0W6IA+sghdEFw==
+"@vitest/runner@4.1.8":
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-4.1.8.tgz#4631808f3996359b74ccc3ca262990e14c295d50"
+ integrity sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg==
dependencies:
- "@vitest/utils" "4.1.7"
+ "@vitest/utils" "4.1.8"
pathe "^2.0.3"
-"@vitest/snapshot@4.1.7":
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.1.7.tgz#03ca7bed0cb3f2ce37de9feee7a159ba5d4893a4"
- integrity sha512-ZacLzja+TmJeZ1h14xW2FB/WpeimUD3haBXQPyJqxvo8jQTmfeA8zv58mtjN2C7EHXZDYVcVYdYmAxjkWVvKCw==
+"@vitest/snapshot@4.1.8":
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-4.1.8.tgz#37470135d64ea11bb2a839b1c6b7f5de7018f6ee"
+ integrity sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ==
dependencies:
- "@vitest/pretty-format" "4.1.7"
- "@vitest/utils" "4.1.7"
+ "@vitest/pretty-format" "4.1.8"
+ "@vitest/utils" "4.1.8"
magic-string "^0.30.21"
pathe "^2.0.3"
-"@vitest/spy@4.1.7":
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.1.7.tgz#459de6b5f2c80cb589e612b2fa8170a33393dee9"
- integrity sha512-kbkI5LMWakyuTIvs6fUJ5qdIVb1XVKsYJAT4OJ938cHMROYMSfmoQdZy0aaAnjbbc8F61vkoTqz/Az+/HiIu5Q==
+"@vitest/spy@4.1.8":
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-4.1.8.tgz#3abfe9301d25c39f808dcaa9f10fec0dd370e564"
+ integrity sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==
-"@vitest/utils@4.1.7":
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.1.7.tgz#8d2350588f7054246f24d0dbadffbef5d3a5caff"
- integrity sha512-T532WBu791cBxJlCl6SO+J14l81DQx6uQHm1bQbmCDY7nqlEIgkza/UFnSBNaUtSf41unldDFjdOBYEQC4b5Hw==
+"@vitest/utils@4.1.8":
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-4.1.8.tgz#099ea5255cec08735410cf707edaba2c158c5ad9"
+ integrity sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==
dependencies:
- "@vitest/pretty-format" "4.1.7"
+ "@vitest/pretty-format" "4.1.8"
convert-source-map "^2.0.0"
tinyrainbow "^3.1.0"
@@ -2381,29 +2381,29 @@ retry@^0.12.0:
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
-rolldown@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.2.tgz#ea2c786c5f063d08fd22b49e51997f15ec532bbd"
- integrity sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==
+rolldown@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.3.tgz#db88a3008fb0e28230a00423727ce75ba32121ac"
+ integrity sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==
dependencies:
- "@oxc-project/types" "=0.132.0"
+ "@oxc-project/types" "=0.133.0"
"@rolldown/pluginutils" "^1.0.0"
optionalDependencies:
- "@rolldown/binding-android-arm64" "1.0.2"
- "@rolldown/binding-darwin-arm64" "1.0.2"
- "@rolldown/binding-darwin-x64" "1.0.2"
- "@rolldown/binding-freebsd-x64" "1.0.2"
- "@rolldown/binding-linux-arm-gnueabihf" "1.0.2"
- "@rolldown/binding-linux-arm64-gnu" "1.0.2"
- "@rolldown/binding-linux-arm64-musl" "1.0.2"
- "@rolldown/binding-linux-ppc64-gnu" "1.0.2"
- "@rolldown/binding-linux-s390x-gnu" "1.0.2"
- "@rolldown/binding-linux-x64-gnu" "1.0.2"
- "@rolldown/binding-linux-x64-musl" "1.0.2"
- "@rolldown/binding-openharmony-arm64" "1.0.2"
- "@rolldown/binding-wasm32-wasi" "1.0.2"
- "@rolldown/binding-win32-arm64-msvc" "1.0.2"
- "@rolldown/binding-win32-x64-msvc" "1.0.2"
+ "@rolldown/binding-android-arm64" "1.0.3"
+ "@rolldown/binding-darwin-arm64" "1.0.3"
+ "@rolldown/binding-darwin-x64" "1.0.3"
+ "@rolldown/binding-freebsd-x64" "1.0.3"
+ "@rolldown/binding-linux-arm-gnueabihf" "1.0.3"
+ "@rolldown/binding-linux-arm64-gnu" "1.0.3"
+ "@rolldown/binding-linux-arm64-musl" "1.0.3"
+ "@rolldown/binding-linux-ppc64-gnu" "1.0.3"
+ "@rolldown/binding-linux-s390x-gnu" "1.0.3"
+ "@rolldown/binding-linux-x64-gnu" "1.0.3"
+ "@rolldown/binding-linux-x64-musl" "1.0.3"
+ "@rolldown/binding-openharmony-arm64" "1.0.3"
+ "@rolldown/binding-wasm32-wasi" "1.0.3"
+ "@rolldown/binding-win32-arm64-msvc" "1.0.3"
+ "@rolldown/binding-win32-x64-msvc" "1.0.3"
rooks@^9.8.0:
version "9.8.0"
@@ -2542,10 +2542,10 @@ tinyexec@^1.0.2:
resolved "https://registry.yarnpkg.com/tinyexec/-/tinyexec-1.0.2.tgz#bdd2737fe2ba40bd6f918ae26642f264b99ca251"
integrity sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==
-tinyglobby@^0.2.15, tinyglobby@^0.2.16:
- version "0.2.16"
- resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6"
- integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==
+tinyglobby@^0.2.15, tinyglobby@^0.2.17:
+ version "0.2.17"
+ resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631"
+ integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==
dependencies:
fdir "^6.5.0"
picomatch "^4.0.4"
@@ -2555,10 +2555,10 @@ tinyrainbow@^3.1.0:
resolved "https://registry.yarnpkg.com/tinyrainbow/-/tinyrainbow-3.1.0.tgz#1d8a623893f95cf0a2ddb9e5d11150e191409421"
integrity sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==
-tmp@^0.2.6:
- version "0.2.6"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.6.tgz#0dfac10fd09a9319288eb0e8f0ed524604e183b4"
- integrity sha512-5sJPdPjfI5Kx+qbrDesxkglRBxW//g7hCsqspEjwkewGvBMGIKMOTKzLt1hFVJzyadba3lDUN20O9qhvbQUSTA==
+tmp@^0.2.7:
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.7.tgz#26f4db11d1601ce8012dcb8a798ece1c06a99059"
+ integrity sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==
trim-lines@^3.0.0:
version "3.0.1"
@@ -2712,31 +2712,31 @@ vite-plugin-checker@^0.14.1:
proper-lockfile "^4.1.2"
tiny-invariant "^1.3.3"
-"vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.0.14:
- version "8.0.14"
- resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.14.tgz#da5d8d1f63dbd106385cbe9c211acbc7a7a5b192"
- integrity sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==
+"vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.0.16:
+ version "8.0.16"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.16.tgz#ae073866c06563d6634a90169a496e11bd84f1a6"
+ integrity sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==
dependencies:
lightningcss "^1.32.0"
picomatch "^4.0.4"
postcss "^8.5.15"
- rolldown "1.0.2"
- tinyglobby "^0.2.16"
+ rolldown "1.0.3"
+ tinyglobby "^0.2.17"
optionalDependencies:
fsevents "~2.3.3"
-vitest@^4.1.7:
- version "4.1.7"
- resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.7.tgz#5ae483c0a901081bbf1428e07dafe80c36e62e6c"
- integrity sha512-flYyaFd2CgoCoU+0UKt3pxksgC+S02iTDN0n3LtqaMeXsI9SBcdNujc2k0DeFLzUn/0k538yNjOSdwgCqcrwJA==
+vitest@^4.1.8:
+ version "4.1.8"
+ resolved "https://registry.yarnpkg.com/vitest/-/vitest-4.1.8.tgz#9fed17277bf7350497e54338898a7afd46dfd509"
+ integrity sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig==
dependencies:
- "@vitest/expect" "4.1.7"
- "@vitest/mocker" "4.1.7"
- "@vitest/pretty-format" "4.1.7"
- "@vitest/runner" "4.1.7"
- "@vitest/snapshot" "4.1.7"
- "@vitest/spy" "4.1.7"
- "@vitest/utils" "4.1.7"
+ "@vitest/expect" "4.1.8"
+ "@vitest/mocker" "4.1.8"
+ "@vitest/pretty-format" "4.1.8"
+ "@vitest/runner" "4.1.8"
+ "@vitest/snapshot" "4.1.8"
+ "@vitest/spy" "4.1.8"
+ "@vitest/utils" "4.1.8"
es-module-lexer "^2.0.0"
expect-type "^1.3.0"
magic-string "^0.30.21"
From 6311329772ca4a357ef7249903ee72cb4b14ef97 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Jun 2026 14:00:10 +0000
Subject: [PATCH 85/89] Bump the prod-patch-updates group in /frontend with 3
updates
Bumps the prod-patch-updates group in /frontend with 3 updates: [react](https://github.com/facebook/react/tree/HEAD/packages/react), [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [react-intl](https://github.com/formatjs/formatjs).
Updates `react` from 19.2.6 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react)
Updates `react-dom` from 19.2.6 to 19.2.7
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.2.7/packages/react-dom)
Updates `react-intl` from 10.1.9 to 10.1.11
- [Release notes](https://github.com/formatjs/formatjs/releases)
- [Commits](https://github.com/formatjs/formatjs/compare/react-intl@10.1.9...react-intl@10.1.11)
---
updated-dependencies:
- dependency-name: react
dependency-version: 19.2.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
- dependency-name: react-dom
dependency-version: 19.2.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
- dependency-name: react-intl
dependency-version: 10.1.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: prod-patch-updates
...
Signed-off-by: dependabot[bot]
---
frontend/package.json | 8 ++++----
frontend/yarn.lock | 32 ++++++++++++++++----------------
2 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/frontend/package.json b/frontend/package.json
index 769a2a77..0ddaf220 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -29,10 +29,10 @@
"generate-password-browser": "^1.1.0",
"humps": "^2.0.1",
"query-string": "^9.3.1",
- "react": "^19.2.6",
+ "react": "^19.2.7",
"react-bootstrap": "^2.10.10",
- "react-dom": "^19.2.6",
- "react-intl": "^10.1.9",
+ "react-dom": "^19.2.7",
+ "react-intl": "^10.1.11",
"react-markdown": "^10.1.0",
"react-router-dom": "^7.15.1",
"react-select": "^5.10.2",
@@ -49,7 +49,7 @@
"@types/country-flag-icons": "^1.2.2",
"@types/humps": "^2.0.6",
"@types/node": "^25.9.1",
- "@types/react": "^19.2.15",
+ "@types/react": "^19.2.16",
"@types/react-dom": "^19.2.3",
"@types/react-table": "^7.7.20",
"@vitejs/plugin-react": "^6.0.2",
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index d5f80376..f55a563a 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -818,10 +818,10 @@
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.12.tgz#b5d76568485b02a307238270bfe96cb51ee2a044"
integrity sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==
-"@types/react@*", "@types/react@>=16.9.11", "@types/react@^19.2.15":
- version "19.2.15"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.15.tgz#9e2c6a4251a290f5c525c3143caa872fa6e01e0d"
- integrity sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q==
+"@types/react@*", "@types/react@>=16.9.11", "@types/react@^19.2.16":
+ version "19.2.16"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.16.tgz#9868b153fd9e34e0117afcd5d7e372b8179337e1"
+ integrity sha512-esJiCAnl0kfpNdE69f3So4WJUXy95dLZydX0KwK46riIHDzHM7O9Vtf9xCHW0PXIqvgqNrswl522kA/5yx+F4w==
dependencies:
csstype "^3.2.2"
@@ -2173,10 +2173,10 @@ react-bootstrap@^2.10.10:
uncontrollable "^7.2.1"
warning "^4.0.3"
-react-dom@^19.2.6:
- version "19.2.6"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.6.tgz#44a81b0bcca22da814c00847d09d01c8615529b7"
- integrity sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==
+react-dom@^19.2.7:
+ version "19.2.7"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.7.tgz#0450dc9ae9ddbff76ef196401cd8b8c7fb466ccc"
+ integrity sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==
dependencies:
scheduler "^0.27.0"
@@ -2185,10 +2185,10 @@ react-fast-compare@^2.0.1:
resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-2.0.4.tgz#e84b4d455b0fec113e0402c329352715196f81f9"
integrity sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==
-react-intl@^10.1.9:
- version "10.1.9"
- resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-10.1.9.tgz#e256f0c28a049d391d421bf658e49fe137fb2cdf"
- integrity sha512-FOWpTmwnZnAfz8JegRzyGnjUiuzLW3xJFjp/o8VR4HZAQ+Eg++YaeMhoUULLY+LMx7gZm3czaZEqcU4hntwerw==
+react-intl@^10.1.11:
+ version "10.1.11"
+ resolved "https://registry.yarnpkg.com/react-intl/-/react-intl-10.1.11.tgz#1b08edb40082eeb4f8b783cecda33c84ab0da80f"
+ integrity sha512-9VCaWKumbrP91QvS50IYRlbZsD4KdSLwcfEeF9CQLmnqK9qCvFCfyof694I9lqHJL2/TUxBwLCA+whjF129oAg==
dependencies:
"@formatjs/icu-messageformat-parser" "3.5.10"
"@formatjs/intl" "4.1.12"
@@ -2273,10 +2273,10 @@ react-transition-group@^4.3.0, react-transition-group@^4.4.5:
loose-envify "^1.4.0"
prop-types "^15.6.2"
-react@^19.2.6:
- version "19.2.6"
- resolved "https://registry.yarnpkg.com/react/-/react-19.2.6.tgz#3dadb8e12b2a7934c1d5317973e5dce1301f9a4d"
- integrity sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==
+react@^19.2.7:
+ version "19.2.7"
+ resolved "https://registry.yarnpkg.com/react/-/react-19.2.7.tgz#1f47a1bfc06f8ec885752c6f4af14369a9f8260b"
+ integrity sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==
readdirp@^5.0.0:
version "5.0.0"
From af2de98c411c85bf741ffdffc335f4fc8dd1df38 Mon Sep 17 00:00:00 2001
From: Jamie Curnow
Date: Wed, 3 Jun 2026 08:22:27 +1000
Subject: [PATCH 86/89] Bump version
---
.version | 2 +-
README.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.version b/.version
index 68e69e40..3b1fc795 100644
--- a/.version
+++ b/.version
@@ -1 +1 @@
-2.15.0
+2.15.1
diff --git a/README.md b/README.md
index 0af3edec..5cd9be1c 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-
+
From 94176d2f9cca98670e12bda81a184bc5c9675220 Mon Sep 17 00:00:00 2001
From: Tony Chau <90050474+fo5for@users.noreply.github.com>
Date: Wed, 3 Jun 2026 20:03:29 +0800
Subject: [PATCH 87/89] Update s6 overlay to 3.2.3.0
---
docker/scripts/install-s6 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docker/scripts/install-s6 b/docker/scripts/install-s6
index 5fcb4e09..55513fe1 100755
--- a/docker/scripts/install-s6
+++ b/docker/scripts/install-s6
@@ -8,7 +8,7 @@ BLUE='\E[1;34m'
GREEN='\E[1;32m'
RESET='\E[0m'
-S6_OVERLAY_VERSION=3.2.1.0
+S6_OVERLAY_VERSION=3.2.3.0
TARGETPLATFORM=${1:-linux/amd64}
# Determine the correct binary file for the architecture given
From 06f060dc0fa138f280e3bd92e438085d9659df7d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 3 Jun 2026 21:21:13 +0000
Subject: [PATCH 88/89] Bump tmp from 0.2.5 to 0.2.7 in /test
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.5 to 0.2.7.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.5...v0.2.7)
---
updated-dependencies:
- dependency-name: tmp
dependency-version: 0.2.6
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
test/yarn.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/yarn.lock b/test/yarn.lock
index ca6b6539..f4bd7ca2 100644
--- a/test/yarn.lock
+++ b/test/yarn.lock
@@ -2284,9 +2284,9 @@ tldts@^6.1.32:
tldts-core "^6.1.86"
tmp@~0.2.4:
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8"
- integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.7.tgz#26f4db11d1601ce8012dcb8a798ece1c06a99059"
+ integrity sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw==
to-regex-range@^5.0.1:
version "5.0.1"
From 300d0653e07c931c000450ac77ecc38a3db6dfdc Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 3 Jun 2026 21:22:00 +0000
Subject: [PATCH 89/89] Bump the prod-minor-updates group across 1 directory
with 4 updates
Bumps the prod-minor-updates group with 4 updates in the /frontend directory: [@tanstack/react-query](https://github.com/TanStack/query/tree/HEAD/packages/react-query), [date-fns](https://github.com/date-fns/date-fns), [query-string](https://github.com/sindresorhus/query-string) and [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).
Updates `@tanstack/react-query` from 5.100.14 to 5.101.0
- [Release notes](https://github.com/TanStack/query/releases)
- [Changelog](https://github.com/TanStack/query/blob/main/packages/react-query/CHANGELOG.md)
- [Commits](https://github.com/TanStack/query/commits/@tanstack/react-query@5.101.0/packages/react-query)
Updates `date-fns` from 4.3.0 to 4.4.0
- [Release notes](https://github.com/date-fns/date-fns/releases)
- [Commits](https://github.com/date-fns/date-fns/compare/v4.3.0...v4.4.0)
Updates `query-string` from 9.3.1 to 9.4.0
- [Release notes](https://github.com/sindresorhus/query-string/releases)
- [Commits](https://github.com/sindresorhus/query-string/compare/v9.3.1...v9.4.0)
Updates `react-router-dom` from 7.15.1 to 7.16.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.16.0/packages/react-router-dom)
---
updated-dependencies:
- dependency-name: "@tanstack/react-query"
dependency-version: 5.101.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: date-fns
dependency-version: 4.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: query-string
dependency-version: 9.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
- dependency-name: react-router-dom
dependency-version: 7.16.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: prod-minor-updates
...
Signed-off-by: dependabot[bot]
---
frontend/package.json | 8 +++----
frontend/yarn.lock | 52 +++++++++++++++++++++----------------------
2 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/frontend/package.json b/frontend/package.json
index 002c9fe1..a592fda5 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -18,23 +18,23 @@
"dependencies": {
"@tabler/core": "^1.4.0",
"@tabler/icons-react": "^3.44.0",
- "@tanstack/react-query": "^5.100.14",
+ "@tanstack/react-query": "^5.101.0",
"@tanstack/react-table": "^8.21.3",
"@uiw/react-textarea-code-editor": "^3.1.1",
"classnames": "^2.5.1",
"country-flag-icons": "^1.6.17",
- "date-fns": "^4.3.0",
+ "date-fns": "^4.4.0",
"ez-modal-react": "^1.0.5",
"formik": "^2.4.9",
"generate-password-browser": "^1.1.0",
"humps": "^2.0.1",
- "query-string": "^9.3.1",
+ "query-string": "^9.4.0",
"react": "^19.2.7",
"react-bootstrap": "^2.10.10",
"react-dom": "^19.2.7",
"react-intl": "^10.1.11",
"react-markdown": "^10.1.0",
- "react-router-dom": "^7.15.1",
+ "react-router-dom": "^7.16.0",
"react-select": "^5.10.2",
"react-toastify": "^11.1.0",
"rooks": "^9.8.0"
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 6f587559..5fe787ee 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -623,10 +623,10 @@
resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-3.44.0.tgz#286b203aac98591e27360de03974762568bbb272"
integrity sha512-Wn0AOZG9sg0L+bjfMqq4eNhC6pQjIrk94LvvWYNYkY8KH8wC3YILRzQlrnVJc4FUeMxH/AK97QsYCX35H3LndA==
-"@tanstack/query-core@5.100.14":
- version "5.100.14"
- resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.100.14.tgz#6bf11c9a6a33dbbbba21f05d880b93930d80000c"
- integrity sha512-5X41dGpxgeaHISCRW2oYwcSycZeULZzAunaudXT9ov1KOTj9xwt0CH6hbwqP1/z74ZWF7rYFnDpyYH07XFcZew==
+"@tanstack/query-core@5.101.0":
+ version "5.101.0"
+ resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.101.0.tgz#45391ce143c270b7e7a55bd1a6696918f20782d1"
+ integrity sha512-cQetA74EB+seWySv1TTKr828TnP0u39m6LykwDXIo84SNortpDkp30TMEjkqtYCNP9c40uT/iwl6MLiufEt0Ow==
"@tanstack/query-devtools@5.100.14":
version "5.100.14"
@@ -640,12 +640,12 @@
dependencies:
"@tanstack/query-devtools" "5.100.14"
-"@tanstack/react-query@^5.100.14":
- version "5.100.14"
- resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.100.14.tgz#799fe305421fd84bf2f6df40930c859c945b42ab"
- integrity sha512-oOr6aRdSFEwWhzxEkD/9ZcItM3+LjBSkeVmadWKwUssAHTsqd/7bOjWrX4AbvEkoEhgAxzN0Xk6H/aYzXiYBAw==
+"@tanstack/react-query@^5.101.0":
+ version "5.101.0"
+ resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.101.0.tgz#2dd56c5b96ec816d6b6ec9cee5c80ed298974733"
+ integrity sha512-rLlJXSpkqfizLWgkR5+eLeIk0MvTx/meEIR7LRjxic+qxiQP8zVjq7BqQkiCMNLQBlLfuOLqqr6KO5GtrDlmSg==
dependencies:
- "@tanstack/query-core" "5.100.14"
+ "@tanstack/query-core" "5.101.0"
"@tanstack/react-table@^8.21.3":
version "8.21.3"
@@ -1090,10 +1090,10 @@ csstype@^3.0.2, csstype@^3.2.2:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a"
integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==
-date-fns@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.3.0.tgz#95663b78f2be5ce664eb6606d94582acc39c77ba"
- integrity sha512-OYcL+3N/jyWbYdFGqoMAhytDgxP9pbYPUUiRCOgn4Fewaadk9l/Wam4Avciiyp2BgkpfQyBV9B+ehnVJych+eQ==
+date-fns@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-4.4.0.tgz#806539edf45c616b2b76b5f78b88c56ed3c7e036"
+ integrity sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==
debug@^4.0.0, debug@^4.3.1:
version "4.4.3"
@@ -2131,10 +2131,10 @@ property-information@^7.0.0:
resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d"
integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==
-query-string@^9.3.1:
- version "9.3.1"
- resolved "https://registry.yarnpkg.com/query-string/-/query-string-9.3.1.tgz#d0c93e6c7fb7c17bdf04aa09e382114580ede270"
- integrity sha512-5fBfMOcDi5SA9qj5jZhWAcTtDfKF5WFdd2uD9nVNlbxVv1baq65aALy6qofpNEGELHvisjjasxQp7BlM9gvMzw==
+query-string@^9.4.0:
+ version "9.4.0"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-9.4.0.tgz#4f2cd518680e087dd781dd605f75dcb18c7f7a53"
+ integrity sha512-ivvWyHqU9K1Log4hJFhqVIIMoEi0nzmlRhvk2pPcTuQH/Y0K5iTTMxEx7R0PRHD2Z1hMVbWnjfsEWbIKIK+3IA==
dependencies:
decode-uri-component "^0.4.1"
filter-obj "^5.1.0"
@@ -2226,17 +2226,17 @@ react-markdown@^10.1.0:
unist-util-visit "^5.0.0"
vfile "^6.0.0"
-react-router-dom@^7.15.1:
- version "7.15.1"
- resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.15.1.tgz#cf5aee65a44e407a17a2e9718d5350482b1e281f"
- integrity sha512-AzF62gjY6U9rkMq4RfP/r2EVtQ7DMfNMjyOp/flLTCrtRylLiK4wT4pSq6O8rOXZ2eXdZYJPEYe+ifomiv+Igg==
+react-router-dom@^7.16.0:
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-7.16.0.tgz#284a7cd021052aa7d0a9240dca4a02eec24eceb5"
+ integrity sha512-kMUAbimWB5FVbF4Bce4bJsiKJWLIUHq/mEG8+CFDnCSgltptBiG5nguducmsJeGKytlCvQud9Qhzpn49iduTlA==
dependencies:
- react-router "7.15.1"
+ react-router "7.16.0"
-react-router@7.15.1:
- version "7.15.1"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.15.1.tgz#0a12fece05887a47c54970480745385c793bcaac"
- integrity sha512-R8rl9HhgikFYoPJymnUtPXWbnDb3oget6lQnfIoupbt61aT9aOhRkDsY2XRhZRyX1Z/8a5sL74fXmFNm3NRK5A==
+react-router@7.16.0:
+ version "7.16.0"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-7.16.0.tgz#fb41536aef2ccc2c7be12ea6be819a1e56eb6343"
+ integrity sha512-wArC8lVyJb3+jM9OpDyW6hLCizACWkvQR/sSGqSs+o5uEXEtGlqdZ4v8hENR3Jad6i+LRkK93q/+bQAcvl6V1A==
dependencies:
cookie "^1.0.1"
set-cookie-parser "^2.6.0"