From 1a50e9f8d0003de15a13cc3b3993c637f3f2d612 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Sat, 23 Sep 2023 12:42:44 +0000 Subject: [PATCH 01/41] translate: Updates for file locale/en/LC_MESSAGES/django.po in fr on branch main (#6960) Translate locale/en/LC_MESSAGES/django.po in fr 100% translated source file: 'locale/en/LC_MESSAGES/django.po' on 'fr'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- locale/fr/LC_MESSAGES/django.po | 330 ++++++++++++++++++-------------- 1 file changed, 185 insertions(+), 145 deletions(-) diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index dfab6fc45..a9ea8f75d 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -10,17 +10,17 @@ # Charles Leclerc, 2023 # Titouan Petit, 2023 # Kyllian Delaye-Maillot, 2023 -# Marc Schmitt, 2023 # Manuel Viens, 2023 +# Marc Schmitt, 2023 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-07-21 13:04+0000\n" +"POT-Creation-Date: 2023-09-15 09:51+0000\n" "PO-Revision-Date: 2022-09-26 16:47+0000\n" -"Last-Translator: Manuel Viens, 2023\n" +"Last-Translator: Marc Schmitt, 2023\n" "Language-Team: French (https://app.transifex.com/authentik/teams/119923/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,11 +33,11 @@ msgstr "" msgid "Successfully re-scheduled Task %(name)s!" msgstr "La Tâche %(name)s a bien été reprogrammée !" -#: authentik/api/schema.py:21 +#: authentik/api/schema.py:25 msgid "Generic API Error" msgstr "Erreur d'API Générique" -#: authentik/api/schema.py:29 +#: authentik/api/schema.py:33 msgid "Validation Error" msgstr "Erreur de Validation" @@ -97,12 +97,12 @@ msgstr "Fournisseur SAML depuis métadonnées" msgid "Create a SAML Provider by importing its Metadata." msgstr "Créer un fournisseur SAML en important ses métadonnées." -#: authentik/core/api/users.py:144 +#: authentik/core/api/users.py:158 msgid "No leading or trailing slashes allowed." msgstr "" "Les barres obliques, ou slashes, de tête ou de queue ne sont pas autorisées." -#: authentik/core/api/users.py:147 +#: authentik/core/api/users.py:161 msgid "No empty segments in user path allowed." msgstr "Les segments vides dans le chemin utilisateur ne sont pas autorisés." @@ -114,19 +114,19 @@ msgstr "nom" msgid "Users added to this group will be superusers." msgstr "Les utilisateurs ajoutés à ce groupe seront des super-utilisateurs." -#: authentik/core/models.py:162 +#: authentik/core/models.py:142 msgid "User's display name." msgstr "Nom d'affichage de l'utilisateur" -#: authentik/core/models.py:256 authentik/providers/oauth2/models.py:294 +#: authentik/core/models.py:268 authentik/providers/oauth2/models.py:295 msgid "User" msgstr "Utilisateur" -#: authentik/core/models.py:257 +#: authentik/core/models.py:269 msgid "Users" msgstr "Utilisateurs" -#: authentik/core/models.py:270 +#: authentik/core/models.py:282 msgid "" "Flow used for authentication when the associated application is accessed by " "an un-authenticated user." @@ -134,11 +134,11 @@ msgstr "" "Flux utilisé lors d'authentification quand l'application associée est " "accédée par un utilisateur non-authentifié." -#: authentik/core/models.py:280 +#: authentik/core/models.py:292 msgid "Flow used when authorizing this provider." msgstr "Flux utilisé lors de l'autorisation de ce fournisseur." -#: authentik/core/models.py:292 +#: authentik/core/models.py:304 msgid "" "Accessed from applications; optional backchannel providers for protocols " "like LDAP and SCIM." @@ -146,32 +146,32 @@ msgstr "" "Accès à partir d'applications ; fournisseurs optionnels de canaux de retour " "pour des protocoles tels que LDAP et SCIM." -#: authentik/core/models.py:347 +#: authentik/core/models.py:359 msgid "Application's display Name." msgstr "Nom d'affichage de l'application" -#: authentik/core/models.py:348 +#: authentik/core/models.py:360 msgid "Internal application name, used in URLs." msgstr "Nom de l'application interne, utilisé dans les URLs." -#: authentik/core/models.py:360 +#: authentik/core/models.py:372 msgid "Open launch URL in a new browser tab or window." msgstr "" "Ouvrir l'URL de lancement dans une nouvelle fenêtre ou un nouvel onglet." -#: authentik/core/models.py:424 +#: authentik/core/models.py:436 msgid "Application" msgstr "Application" -#: authentik/core/models.py:425 +#: authentik/core/models.py:437 msgid "Applications" msgstr "Applications" -#: authentik/core/models.py:431 +#: authentik/core/models.py:443 msgid "Use the source-specific identifier" msgstr "Utiliser l'identifiant spécifique à la source" -#: authentik/core/models.py:433 +#: authentik/core/models.py:445 msgid "" "Link to a user with identical email address. Can have security implications " "when a source doesn't validate email addresses." @@ -179,7 +179,7 @@ msgstr "" "Lier à un utilisateur avec une adresse email identique. Peut avoir des " "implications de sécurité lorsqu'une source ne valide pas les adresses email." -#: authentik/core/models.py:437 +#: authentik/core/models.py:449 msgid "" "Use the user's email address, but deny enrollment when the email address " "already exists." @@ -187,7 +187,7 @@ msgstr "" "Utiliser l'adresse courriel de l'utilisateur, mais refuser l'inscription " "lorsque celle-ci existe déjà." -#: authentik/core/models.py:440 +#: authentik/core/models.py:452 msgid "" "Link to a user with identical username. Can have security implications when " "a username is used with another source." @@ -196,7 +196,7 @@ msgstr "" "problèmes de sécurité si ce nom d'utilisateur est partagé avec une autre " "source." -#: authentik/core/models.py:444 +#: authentik/core/models.py:456 msgid "" "Use the user's username, but deny enrollment when the username already " "exists." @@ -204,23 +204,23 @@ msgstr "" "Utiliser le nom d'utilisateur, mais refuser l'inscription si celui-ci existe" " déjà." -#: authentik/core/models.py:451 +#: authentik/core/models.py:463 msgid "Source's display Name." msgstr "Nom d'affichage de la source." -#: authentik/core/models.py:452 +#: authentik/core/models.py:464 msgid "Internal source name, used in URLs." msgstr "Nom interne de la source, utilisé dans les URLs." -#: authentik/core/models.py:471 +#: authentik/core/models.py:483 msgid "Flow to use when authenticating existing users." msgstr "Flux à utiliser pour authentifier les utilisateurs existants." -#: authentik/core/models.py:480 +#: authentik/core/models.py:492 msgid "Flow to use when enrolling new users." msgstr "Flux à utiliser pour inscrire les nouveaux utilisateurs." -#: authentik/core/models.py:488 +#: authentik/core/models.py:500 msgid "" "How the source determines if an existing user should be authenticated or a " "new user enrolled." @@ -228,31 +228,31 @@ msgstr "" "Comment la source détermine si un utilisateur existant doit être authentifié" " ou un nouvelle utilisateur doit être inscrit." -#: authentik/core/models.py:660 +#: authentik/core/models.py:672 msgid "Token" msgstr "Jeton" -#: authentik/core/models.py:661 +#: authentik/core/models.py:673 msgid "Tokens" msgstr "Jetons" -#: authentik/core/models.py:702 +#: authentik/core/models.py:714 msgid "Property Mapping" msgstr "Mappage de propriété" -#: authentik/core/models.py:703 +#: authentik/core/models.py:715 msgid "Property Mappings" msgstr "Mappages de propriété" -#: authentik/core/models.py:738 +#: authentik/core/models.py:750 msgid "Authenticated Session" msgstr "Session Authentifiée" -#: authentik/core/models.py:739 +#: authentik/core/models.py:751 msgid "Authenticated Sessions" msgstr "Sessions Authentifiées" -#: authentik/core/sources/flow_manager.py:193 +#: authentik/core/sources/flow_manager.py:189 #, python-format msgid "" "Request to authenticate with %(source)s has been denied. Please authenticate" @@ -261,22 +261,22 @@ msgstr "" "La requête d'authentification avec %(source)s a été refusée. Merci de vous " "authentifier avec la source utilisée précédemment." -#: authentik/core/sources/flow_manager.py:245 +#: authentik/core/sources/flow_manager.py:241 msgid "Configured flow does not exist." msgstr "Le flux configuré n'existe pas." -#: authentik/core/sources/flow_manager.py:275 -#: authentik/core/sources/flow_manager.py:327 +#: authentik/core/sources/flow_manager.py:271 +#: authentik/core/sources/flow_manager.py:323 #, python-format msgid "Successfully authenticated with %(source)s!" msgstr "Authentifié avec succès avec %(source)s!" -#: authentik/core/sources/flow_manager.py:299 +#: authentik/core/sources/flow_manager.py:295 #, python-format msgid "Successfully linked %(source)s!" msgstr "%(source)s lié avec succès!" -#: authentik/core/sources/flow_manager.py:318 +#: authentik/core/sources/flow_manager.py:314 msgid "Source is not configured for enrollment." msgstr "La source n'est pas configurée pour l'inscription." @@ -334,12 +334,12 @@ msgstr "" msgid "Go home" msgstr "Retourner à l'accueil" -#: authentik/core/templates/login/base_full.html:90 +#: authentik/core/templates/login/base_full.html:89 msgid "Powered by authentik" msgstr "Propulsé par authentik" #: authentik/core/views/apps.py:53 -#: authentik/providers/oauth2/views/authorize.py:391 +#: authentik/providers/oauth2/views/authorize.py:393 #: authentik/providers/oauth2/views/device_init.py:70 #: authentik/providers/saml/views/sso.py:70 #, python-format @@ -370,6 +370,14 @@ msgstr "Paire de clé/certificat" msgid "Certificate-Key Pairs" msgstr "Paires de clé/certificat" +#: authentik/enterprise/models.py:193 +msgid "License Usage" +msgstr "Utilisation de la licence" + +#: authentik/enterprise/models.py:194 +msgid "License Usage Records" +msgstr "Registre d'utilisation de la licence" + #: authentik/events/models.py:290 msgid "Event" msgstr "Évènement" @@ -479,7 +487,7 @@ msgstr "Mappage de Webhook" msgid "Webhook Mappings" msgstr "Mappages de Webhook" -#: authentik/events/monitored_tasks.py:198 +#: authentik/events/monitored_tasks.py:205 msgid "Task has not been run yet." msgstr "Tâche pas encore exécutée." @@ -655,7 +663,7 @@ msgstr "" msgid "Invalid kubeconfig" msgstr "kubeconfig invalide" -#: authentik/outposts/models.py:121 +#: authentik/outposts/models.py:122 msgid "" "If enabled, use the local connection. Required Docker socket/Kubernetes " "Integration" @@ -663,15 +671,15 @@ msgstr "" "Si activé, utilise la connexion locale. L'intégration Docker " "socket/Kubernetes est requise" -#: authentik/outposts/models.py:151 +#: authentik/outposts/models.py:152 msgid "Outpost Service-Connection" msgstr "Connexion de service de l'avant-poste" -#: authentik/outposts/models.py:152 +#: authentik/outposts/models.py:153 msgid "Outpost Service-Connections" msgstr "Connexions de service de l'avant-poste" -#: authentik/outposts/models.py:160 +#: authentik/outposts/models.py:161 msgid "" "Can be in the format of 'unix://' when connecting to a local docker " "daemon, or 'https://:2376' when connecting to a remote system." @@ -680,7 +688,7 @@ msgstr "" " local, ou \"https://:2376\" pour une connexion à un système " "distant." -#: authentik/outposts/models.py:172 +#: authentik/outposts/models.py:173 msgid "" "CA which the endpoint's Certificate is verified against. Can be left empty " "for no validation." @@ -688,7 +696,7 @@ msgstr "" "AC auprès de laquelle le certificat du terminal est vérifié. Peut être " "laissé vide en l'absence de validation." -#: authentik/outposts/models.py:184 +#: authentik/outposts/models.py:185 msgid "" "Certificate/Key used for authentication. Can be left empty for no " "authentication." @@ -696,15 +704,15 @@ msgstr "" "Certificat et clé utilisés pour l'authentification. Peut être laissé vide si" " pas d'authentification." -#: authentik/outposts/models.py:202 +#: authentik/outposts/models.py:203 msgid "Docker Service-Connection" msgstr "Connexion de service Docker" -#: authentik/outposts/models.py:203 +#: authentik/outposts/models.py:204 msgid "Docker Service-Connections" msgstr "Connexions de service Docker" -#: authentik/outposts/models.py:211 +#: authentik/outposts/models.py:212 msgid "" "Paste your kubeconfig here. authentik will automatically use the currently " "selected context." @@ -712,19 +720,19 @@ msgstr "" "Coller votre kubeconfig ici. authentik va automatiquement utiliseur le " "contexte actuellement sélectionné." -#: authentik/outposts/models.py:217 +#: authentik/outposts/models.py:218 msgid "Verify SSL Certificates of the Kubernetes API endpoint" msgstr "Vérifier les certificats SSL de l'API Kubernetes" -#: authentik/outposts/models.py:234 +#: authentik/outposts/models.py:235 msgid "Kubernetes Service-Connection" msgstr "Connexion de service Kubernetes" -#: authentik/outposts/models.py:235 +#: authentik/outposts/models.py:236 msgid "Kubernetes Service-Connections" msgstr "Connexions de service Kubernetes" -#: authentik/outposts/models.py:251 +#: authentik/outposts/models.py:252 msgid "" "Select Service-Connection authentik should use to manage this outpost. Leave" " empty if authentik should not handle the deployment." @@ -842,15 +850,19 @@ msgstr "Inverse la sortie de la politique. Les messages ne sont pas affectés." msgid "Timeout after which Policy execution is terminated." msgstr "Expiration après que l'exécution de la politique soit terminée." -#: authentik/policies/models.py:142 +#: authentik/policies/models.py:92 +msgid "Result if the Policy execution fails." +msgstr "Résultat si l'éxecution de la Politique échoue." + +#: authentik/policies/models.py:145 msgid "Policy Binding" msgstr "Liaison de politique" -#: authentik/policies/models.py:143 +#: authentik/policies/models.py:146 msgid "Policy Bindings" msgstr "Liaisons des politiques" -#: authentik/policies/models.py:164 +#: authentik/policies/models.py:167 msgid "" "When this option is enabled, all executions of this policy will be logged. " "By default, only execution errors are logged." @@ -858,11 +870,11 @@ msgstr "" "Si activée, toutes les exécutions de cette politique seront enregistrées. " "Par défaut, seules les erreurs d'exécution sont consignées." -#: authentik/policies/models.py:186 +#: authentik/policies/models.py:189 msgid "Policy" msgstr "Politique" -#: authentik/policies/models.py:187 +#: authentik/policies/models.py:190 msgid "Policies" msgstr "Politiques" @@ -906,14 +918,26 @@ msgstr "Politique de Mots de Passe" msgid "Password Policies" msgstr "Politiques de Mot de Passe" -#: authentik/policies/reputation/models.py:58 +#: authentik/policies/reputation/api.py:18 +msgid "Either IP or Username must be checked" +msgstr "L'IP ou le nom d'utilisateur doit être vérifé" + +#: authentik/policies/reputation/models.py:67 msgid "Reputation Policy" msgstr "Politique de Réputation" -#: authentik/policies/reputation/models.py:59 +#: authentik/policies/reputation/models.py:68 msgid "Reputation Policies" msgstr "Politiques de Réputation" +#: authentik/policies/reputation/models.py:95 +msgid "Reputation Score" +msgstr "Score de Réputation" + +#: authentik/policies/reputation/models.py:96 +msgid "Reputation Scores" +msgstr "Scores de Réputation" + #: authentik/policies/templates/policies/denied.html:7 #: authentik/policies/templates/policies/denied.html:11 msgid "Permission denied" @@ -1043,65 +1067,65 @@ msgstr "" "attribut \"upn\" renseigné. Utiliser cette méthode seulement si les domaines" " UPN et courriel sont différents." -#: authentik/providers/oauth2/models.py:42 +#: authentik/providers/oauth2/models.py:43 msgid "Confidential" msgstr "Confidentiel" -#: authentik/providers/oauth2/models.py:43 +#: authentik/providers/oauth2/models.py:44 msgid "Public" msgstr "Public" -#: authentik/providers/oauth2/models.py:65 +#: authentik/providers/oauth2/models.py:66 msgid "Same identifier is used for all providers" msgstr "Le même identifiant est utilisé pour tous les fournisseurs" -#: authentik/providers/oauth2/models.py:67 +#: authentik/providers/oauth2/models.py:68 msgid "Each provider has a different issuer, based on the application slug." msgstr "" "Chaque fournisseur a un émetteur différent, basé sur le slug de " "l'application." -#: authentik/providers/oauth2/models.py:74 +#: authentik/providers/oauth2/models.py:75 msgid "code (Authorization Code Flow)" msgstr "code (Authorization Code Flow)" -#: authentik/providers/oauth2/models.py:75 +#: authentik/providers/oauth2/models.py:76 msgid "id_token (Implicit Flow)" msgstr "id_token (Implicit Flow)" -#: authentik/providers/oauth2/models.py:76 +#: authentik/providers/oauth2/models.py:77 msgid "id_token token (Implicit Flow)" msgstr "id_token token (Implicit Flow)" -#: authentik/providers/oauth2/models.py:77 +#: authentik/providers/oauth2/models.py:78 msgid "code token (Hybrid Flow)" msgstr "code token (Hybrid Flow)" -#: authentik/providers/oauth2/models.py:78 +#: authentik/providers/oauth2/models.py:79 msgid "code id_token (Hybrid Flow)" msgstr "code id_token (Hybrid Flow)" -#: authentik/providers/oauth2/models.py:79 +#: authentik/providers/oauth2/models.py:80 msgid "code id_token token (Hybrid Flow)" msgstr "code id_token token (Hybrid Flow)" -#: authentik/providers/oauth2/models.py:85 +#: authentik/providers/oauth2/models.py:86 msgid "HS256 (Symmetric Encryption)" msgstr "HS256 (chiffrement symétrique)" -#: authentik/providers/oauth2/models.py:86 +#: authentik/providers/oauth2/models.py:87 msgid "RS256 (Asymmetric Encryption)" msgstr "RS256 (chiffrement asymétrique)" -#: authentik/providers/oauth2/models.py:87 +#: authentik/providers/oauth2/models.py:88 msgid "ES256 (Asymmetric Encryption)" msgstr "ES256 (Chiffrement Asymétrique)" -#: authentik/providers/oauth2/models.py:93 +#: authentik/providers/oauth2/models.py:94 msgid "Scope used by the client" msgstr "Portées utilisées par le client" -#: authentik/providers/oauth2/models.py:97 +#: authentik/providers/oauth2/models.py:98 msgid "" "Description shown to the user when consenting. If left empty, the user won't" " be informed." @@ -1109,19 +1133,19 @@ msgstr "" "Description montrée à l'utilisateur lors de l'approbation. Aucune " "information présentée à l'utilisateur si laissé vide." -#: authentik/providers/oauth2/models.py:116 +#: authentik/providers/oauth2/models.py:117 msgid "Scope Mapping" msgstr "Mappage de Portée" -#: authentik/providers/oauth2/models.py:117 +#: authentik/providers/oauth2/models.py:118 msgid "Scope Mappings" msgstr "Mappage de Portée" -#: authentik/providers/oauth2/models.py:127 +#: authentik/providers/oauth2/models.py:128 msgid "Client Type" msgstr "Type de Client" -#: authentik/providers/oauth2/models.py:129 +#: authentik/providers/oauth2/models.py:130 msgid "" "Confidential clients are capable of maintaining the confidentiality of their" " credentials. Public clients are incapable" @@ -1129,27 +1153,27 @@ msgstr "" "Les clients confidentiels sont capable de maintenir la confidentialité de " "leurs identifiants. Les clients publics n'en sont pas capables." -#: authentik/providers/oauth2/models.py:136 +#: authentik/providers/oauth2/models.py:137 msgid "Client ID" msgstr "ID client" -#: authentik/providers/oauth2/models.py:142 +#: authentik/providers/oauth2/models.py:143 msgid "Client Secret" msgstr "Secret du client" -#: authentik/providers/oauth2/models.py:148 +#: authentik/providers/oauth2/models.py:149 msgid "Redirect URIs" msgstr "URIs de redirection" -#: authentik/providers/oauth2/models.py:149 +#: authentik/providers/oauth2/models.py:150 msgid "Enter each URI on a new line." msgstr "Entrez chaque URI sur une nouvelle ligne." -#: authentik/providers/oauth2/models.py:154 +#: authentik/providers/oauth2/models.py:155 msgid "Include claims in id_token" msgstr "Include les demandes utilisateurs dans id_token" -#: authentik/providers/oauth2/models.py:156 +#: authentik/providers/oauth2/models.py:157 msgid "" "Include User claims from scopes in the id_token, for applications that don't" " access the userinfo endpoint." @@ -1157,7 +1181,7 @@ msgstr "" "Inclure depuis la portée les demandes utilisateurs dans id_token, pour les " "applications qui n'accèdent pas au point de terminaison userinfo." -#: authentik/providers/oauth2/models.py:165 +#: authentik/providers/oauth2/models.py:166 msgid "" "Access codes not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." @@ -1165,8 +1189,8 @@ msgstr "" "Les codes d'accès ne seront plus valide à partir de l'heure actuelle + cette" " valeur (Format : hours=1;minutes=2;seconds=3)." -#: authentik/providers/oauth2/models.py:173 -#: authentik/providers/oauth2/models.py:181 +#: authentik/providers/oauth2/models.py:174 +#: authentik/providers/oauth2/models.py:182 msgid "" "Tokens not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." @@ -1174,7 +1198,7 @@ msgstr "" "Les jetons ne seront plus valides à partir de l'heure actuelle + cette " "valeur (Format: hours=1;minutes=2;seconds=3)." -#: authentik/providers/oauth2/models.py:190 +#: authentik/providers/oauth2/models.py:191 msgid "" "Configure what data should be used as unique User Identifier. For most " "cases, the default should be fine." @@ -1182,15 +1206,15 @@ msgstr "" "Configure quelle donnée utiliser pour l'identifiant unique utilisateur. La " "valeur par défaut devrait être correcte dans la plupart des cas." -#: authentik/providers/oauth2/models.py:197 +#: authentik/providers/oauth2/models.py:198 msgid "Configure how the issuer field of the ID Token should be filled." msgstr "Configure comment le champ émetteur du jeton ID sera rempli." -#: authentik/providers/oauth2/models.py:202 +#: authentik/providers/oauth2/models.py:203 msgid "Signing Key" msgstr "Clé de signature" -#: authentik/providers/oauth2/models.py:206 +#: authentik/providers/oauth2/models.py:207 msgid "" "Key used to sign the tokens. Only required when JWT Algorithm is set to " "RS256." @@ -1198,7 +1222,7 @@ msgstr "" "Clé utilisée pour signer les jetons. Nécessaire uniquement lorsque " "l'algorithme JWT est réglé sur RS256." -#: authentik/providers/oauth2/models.py:213 +#: authentik/providers/oauth2/models.py:214 msgid "" "Any JWT signed by the JWK of the selected source can be used to " "authenticate." @@ -1206,72 +1230,72 @@ msgstr "" "Tout JWT signé par le JWK de la source sélectionnée peut être utilisé pour " "s'authentifier." -#: authentik/providers/oauth2/models.py:286 +#: authentik/providers/oauth2/models.py:287 msgid "OAuth2/OpenID Provider" msgstr "Fournisseur OAuth2/OpenID" -#: authentik/providers/oauth2/models.py:287 +#: authentik/providers/oauth2/models.py:288 msgid "OAuth2/OpenID Providers" msgstr "Fournisseurs OAuth2/OpenID" -#: authentik/providers/oauth2/models.py:296 -#: authentik/providers/oauth2/models.py:428 +#: authentik/providers/oauth2/models.py:297 +#: authentik/providers/oauth2/models.py:429 msgid "Scopes" msgstr "Portées" -#: authentik/providers/oauth2/models.py:315 +#: authentik/providers/oauth2/models.py:316 msgid "Code" msgstr "Code" -#: authentik/providers/oauth2/models.py:316 +#: authentik/providers/oauth2/models.py:317 msgid "Nonce" msgstr "Nonce" -#: authentik/providers/oauth2/models.py:317 +#: authentik/providers/oauth2/models.py:318 msgid "Code Challenge" msgstr "Challenge à code" -#: authentik/providers/oauth2/models.py:319 +#: authentik/providers/oauth2/models.py:320 msgid "Code Challenge Method" msgstr "Méthode de challenge à code" -#: authentik/providers/oauth2/models.py:339 +#: authentik/providers/oauth2/models.py:340 msgid "Authorization Code" msgstr "Code d'autorisation" -#: authentik/providers/oauth2/models.py:340 +#: authentik/providers/oauth2/models.py:341 msgid "Authorization Codes" msgstr "Codes d'autorisation" -#: authentik/providers/oauth2/models.py:382 +#: authentik/providers/oauth2/models.py:383 msgid "OAuth2 Access Token" msgstr "Jeton d'accès OAuth2" -#: authentik/providers/oauth2/models.py:383 +#: authentik/providers/oauth2/models.py:384 msgid "OAuth2 Access Tokens" msgstr "Jetons d'accès OAuth2" -#: authentik/providers/oauth2/models.py:393 +#: authentik/providers/oauth2/models.py:394 msgid "ID Token" msgstr "ID du jeton" -#: authentik/providers/oauth2/models.py:412 +#: authentik/providers/oauth2/models.py:413 msgid "OAuth2 Refresh Token" msgstr "Jeton de rafraîchissement OAuth2" -#: authentik/providers/oauth2/models.py:413 +#: authentik/providers/oauth2/models.py:414 msgid "OAuth2 Refresh Tokens" msgstr "Jetons de rafraîchissement OAuth2" -#: authentik/providers/oauth2/models.py:440 +#: authentik/providers/oauth2/models.py:441 msgid "Device Token" msgstr "Jeton d'équipement" -#: authentik/providers/oauth2/models.py:441 +#: authentik/providers/oauth2/models.py:442 msgid "Device Tokens" msgstr "Jetons d'équipement" -#: authentik/providers/oauth2/views/authorize.py:446 +#: authentik/providers/oauth2/views/authorize.py:448 #: authentik/providers/saml/views/flows.py:87 #, python-format msgid "Redirecting to %(app)s..." @@ -1281,20 +1305,20 @@ msgstr "Redirection vers %(app)s..." msgid "Invalid code" msgstr "Code invalide" -#: authentik/providers/oauth2/views/userinfo.py:51 -#: authentik/providers/oauth2/views/userinfo.py:52 +#: authentik/providers/oauth2/views/userinfo.py:55 +#: authentik/providers/oauth2/views/userinfo.py:56 msgid "GitHub Compatibility: Access your User Information" msgstr "Compatibilité GitHub : accès aux informations utilisateur" -#: authentik/providers/oauth2/views/userinfo.py:53 +#: authentik/providers/oauth2/views/userinfo.py:57 msgid "GitHub Compatibility: Access you Email addresses" msgstr "Compatibilité GitHub : accès aux adresses email" -#: authentik/providers/oauth2/views/userinfo.py:54 +#: authentik/providers/oauth2/views/userinfo.py:58 msgid "GitHub Compatibility: Access your Groups" msgstr "Compatibilité GitHub : accès aux groupes" -#: authentik/providers/oauth2/views/userinfo.py:55 +#: authentik/providers/oauth2/views/userinfo.py:59 msgid "authentik API Access on behalf of your user" msgstr "Accès à l'API authentik au nom des utilisateurs" @@ -1304,7 +1328,7 @@ msgstr "" "Les attributs utilisateur et mot de passe doivent être définis lorsque " "l'authentification basique est activée." -#: authentik/providers/proxy/api.py:62 +#: authentik/providers/proxy/api.py:63 msgid "Internal host cannot be empty when forward auth is disabled." msgstr "" "L'hôte interne ne peut pas être vide lorsque le transfert d'authentification" @@ -1411,11 +1435,11 @@ msgstr "Fournisseur Radius" msgid "Radius Providers" msgstr "Fournisseurs Radius" -#: authentik/providers/saml/api/providers.py:260 +#: authentik/providers/saml/api/providers.py:257 msgid "Invalid XML Syntax" msgstr "Syntaxe XML Invalide" -#: authentik/providers/saml/api/providers.py:270 +#: authentik/providers/saml/api/providers.py:267 #, python-format msgid "Failed to import Metadata: %(message)s" msgstr "Échec d'import des metadata : %(message)s" @@ -2084,8 +2108,8 @@ msgid "SMS Devices" msgstr "Appareils SMS" #: authentik/stages/authenticator_sms/stage.py:55 -#: authentik/stages/authenticator_totp/stage.py:42 -#: authentik/stages/authenticator_totp/stage.py:45 +#: authentik/stages/authenticator_totp/stage.py:41 +#: authentik/stages/authenticator_totp/stage.py:44 msgid "Code does not match" msgstr "Le Code ne correspond pas" @@ -2093,33 +2117,49 @@ msgstr "Le Code ne correspond pas" msgid "Invalid phone number" msgstr "Numéro de téléphone invalide" -#: authentik/stages/authenticator_static/models.py:46 +#: authentik/stages/authenticator_static/models.py:52 msgid "Static Authenticator Stage" msgstr "Étape de configuration de l'authentificateur statique" -#: authentik/stages/authenticator_static/models.py:47 +#: authentik/stages/authenticator_static/models.py:53 msgid "Static Authenticator Stages" msgstr "Étapes de configuration de l'authentificateur statique" -#: authentik/stages/authenticator_totp/models.py:16 +#: authentik/stages/authenticator_static/models.py:98 +msgid "Static device" +msgstr "Équipement statique" + +#: authentik/stages/authenticator_static/models.py:99 +msgid "Static devices" +msgstr "Équipements statiques" + +#: authentik/stages/authenticator_totp/models.py:25 msgid "6 digits, widely compatible" msgstr "6 chiffres, compatibilité large" -#: authentik/stages/authenticator_totp/models.py:17 +#: authentik/stages/authenticator_totp/models.py:26 msgid "8 digits, not compatible with apps like Google Authenticator" msgstr "" "8 chiffres, incompatible avec certaines applications telles que Google " "Authenticator" -#: authentik/stages/authenticator_totp/models.py:53 +#: authentik/stages/authenticator_totp/models.py:62 msgid "TOTP Authenticator Setup Stage" msgstr "Étape de configuration de l'authentificateur TOTP" -#: authentik/stages/authenticator_totp/models.py:54 +#: authentik/stages/authenticator_totp/models.py:63 msgid "TOTP Authenticator Setup Stages" msgstr "Étapes de configuration de l'authentificateur TOTP" -#: authentik/stages/authenticator_validate/challenge.py:123 +#: authentik/stages/authenticator_totp/models.py:244 +msgid "TOTP device" +msgstr "Équipement TOTP" + +#: authentik/stages/authenticator_totp/models.py:245 +msgid "TOTP devices" +msgstr "Équipements TOTP" + +#: authentik/stages/authenticator_validate/challenge.py:131 msgid "Invalid Token" msgstr "Jeton Invalide" @@ -2279,15 +2319,15 @@ msgstr "Étape Email" msgid "Email Stages" msgstr "Étape Email" -#: authentik/stages/email/stage.py:112 +#: authentik/stages/email/stage.py:117 msgid "Successfully verified Email." msgstr "Email vérifié avec succès." -#: authentik/stages/email/stage.py:119 authentik/stages/email/stage.py:141 +#: authentik/stages/email/stage.py:124 authentik/stages/email/stage.py:146 msgid "No pending user." msgstr "Pas d'utilisateurs en attente." -#: authentik/stages/email/stage.py:131 +#: authentik/stages/email/stage.py:136 msgid "Email sent." msgstr "Email envoyé." @@ -2433,11 +2473,11 @@ msgstr "Étape d'identification" msgid "Identification Stages" msgstr "Étapes d'identification" -#: authentik/stages/identification/stage.py:184 +#: authentik/stages/identification/stage.py:188 msgid "Log in" msgstr "Se connecter" -#: authentik/stages/identification/stage.py:185 +#: authentik/stages/identification/stage.py:189 msgid "Continue" msgstr "Continuer" @@ -2480,7 +2520,7 @@ msgstr "Invitation" msgid "Invitations" msgstr "Invitations" -#: authentik/stages/invitation/stage.py:66 +#: authentik/stages/invitation/stage.py:62 msgid "Invalid invite/invite not found" msgstr "Invitation invalide/invitation introuvable" @@ -2517,7 +2557,7 @@ msgstr "Étape de mot de passe" msgid "Password Stages" msgstr "Étapes de mot de passe" -#: authentik/stages/password/stage.py:159 +#: authentik/stages/password/stage.py:124 msgid "Invalid password" msgstr "Mot de passe invalide" @@ -2645,7 +2685,7 @@ msgstr "Étape de suppression utilisateur" msgid "User Delete Stages" msgstr "Étapes de suppression utilisateur" -#: authentik/stages/user_delete/stage.py:22 +#: authentik/stages/user_delete/stage.py:18 msgid "No Pending User." msgstr "Aucun utilisateur en attente." @@ -2682,11 +2722,11 @@ msgstr "Étape de connexion utlisateur" msgid "User Login Stages" msgstr "Étapes de connexion utilisateur" -#: authentik/stages/user_login/stage.py:63 +#: authentik/stages/user_login/stage.py:57 msgid "No Pending user to login." msgstr "Pas d'utilisateurs en attente à connecter." -#: authentik/stages/user_login/stage.py:96 +#: authentik/stages/user_login/stage.py:90 msgid "Successfully logged in!" msgstr "Connexion réussie !" @@ -2716,16 +2756,16 @@ msgstr "Étapes d'écriture utilisateur" msgid "User Write Stages" msgstr "Étapes d'écriture utilisateur" -#: authentik/stages/user_write/stage.py:134 +#: authentik/stages/user_write/stage.py:130 msgid "No Pending data." msgstr "Aucune donnée en attente." -#: authentik/stages/user_write/stage.py:140 +#: authentik/stages/user_write/stage.py:136 msgid "No user found and can't create new user." msgstr "Utilisateur introuvable et impossible de créer un nouvel utilisateur." -#: authentik/stages/user_write/stage.py:157 -#: authentik/stages/user_write/stage.py:171 +#: authentik/stages/user_write/stage.py:153 +#: authentik/stages/user_write/stage.py:167 msgid "Failed to update user. Please try again later." msgstr "" "Échec de mise à jour de l'utilisateur. Merci de réessayer ultérieurement," From b88b469f944be08e78459fbda490fbe04437a699 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:16:11 +0200 Subject: [PATCH 02/41] core: bump drf-spectacular from 0.26.4 to 0.26.5 (#6966) Bumps [drf-spectacular](https://github.com/tfranzel/drf-spectacular) from 0.26.4 to 0.26.5. - [Release notes](https://github.com/tfranzel/drf-spectacular/releases) - [Changelog](https://github.com/tfranzel/drf-spectacular/blob/master/CHANGELOG.rst) - [Commits](https://github.com/tfranzel/drf-spectacular/compare/0.26.4...0.26.5) --- updated-dependencies: - dependency-name: drf-spectacular dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9ea2dd6dd..9a2d2b949 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1330,13 +1330,13 @@ tests = ["black", "django-stubs[compatible-mypy]", "djangorestframework-stubs[co [[package]] name = "drf-spectacular" -version = "0.26.4" +version = "0.26.5" description = "Sane and flexible OpenAPI 3 schema generation for Django REST framework" optional = false python-versions = ">=3.6" files = [ - {file = "drf-spectacular-0.26.4.tar.gz", hash = "sha256:8f5a8f87353d1bb8dcb3f3909b7109b2dcbe1d91f3e069409cf322963e140bd6"}, - {file = "drf_spectacular-0.26.4-py3-none-any.whl", hash = "sha256:afeccc6533dcdb4e78afbfcc49f3c5e9c369aeb62f965e4d1a43b165449c147a"}, + {file = "drf-spectacular-0.26.5.tar.gz", hash = "sha256:aee55330a774ba8a9cbdb125714d1c9ee05a8aafd3ce3be8bfd26527649aeb44"}, + {file = "drf_spectacular-0.26.5-py3-none-any.whl", hash = "sha256:c0002a820b11771fdbf37853deb371947caf0159d1afeeffe7598e964bc1db94"}, ] [package.dependencies] From 1853ce15912d5999d5212c9fb79c39e4bc936f3d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:16:39 +0200 Subject: [PATCH 03/41] core: bump django-silk from 5.0.3 to 5.0.4 (#6967) Bumps [django-silk](https://github.com/jazzband/django-silk) from 5.0.3 to 5.0.4. - [Release notes](https://github.com/jazzband/django-silk/releases) - [Changelog](https://github.com/jazzband/django-silk/blob/master/CHANGELOG.md) - [Commits](https://github.com/jazzband/django-silk/compare/5.0.3...5.0.4) --- updated-dependencies: - dependency-name: django-silk dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9a2d2b949..6b23981d3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1219,13 +1219,13 @@ hiredis = ["redis[hiredis] (>=3,!=4.0.0,!=4.0.1)"] [[package]] name = "django-silk" -version = "5.0.3" +version = "5.0.4" description = "Silky smooth profiling for the Django Framework" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "django-silk-5.0.3.tar.gz", hash = "sha256:2f1fcaaf21192011147537fe1ca72dc9f552f32d7043ebd82aeeda370f194469"}, - {file = "django_silk-5.0.3-py3-none-any.whl", hash = "sha256:50552f06d9306d06517fbeab9a2c74856355e06304f03ed16b6dd353f7c77e7a"}, + {file = "django-silk-5.0.4.tar.gz", hash = "sha256:8cbfbc647d182527726d8d52d3fcfa193f4d250f21406c3fb1062efa6fb95c63"}, + {file = "django_silk-5.0.4-py3-none-any.whl", hash = "sha256:b345d3973d1d382e09735eb525eaf3eebd3edee9a69d1003eb9b01badb2438db"}, ] [package.dependencies] From 3dfb10ae23d683ec5dbe6db046f8403de81e453d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:17:02 +0200 Subject: [PATCH 04/41] core: bump ruff from 0.0.290 to 0.0.291 (#6965) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.0.290 to 0.0.291. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/BREAKING_CHANGES.md) - [Commits](https://github.com/astral-sh/ruff/compare/v0.0.290...v0.0.291) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/poetry.lock b/poetry.lock index 6b23981d3..d6c7c574f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3422,28 +3422,28 @@ pyasn1 = ">=0.1.3" [[package]] name = "ruff" -version = "0.0.290" +version = "0.0.291" description = "An extremely fast Python linter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.0.290-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:0e2b09ac4213b11a3520221083866a5816616f3ae9da123037b8ab275066fbac"}, - {file = "ruff-0.0.290-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:4ca6285aa77b3d966be32c9a3cd531655b3d4a0171e1f9bf26d66d0372186767"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35e3550d1d9f2157b0fcc77670f7bb59154f223bff281766e61bdd1dd854e0c5"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d748c8bd97874f5751aed73e8dde379ce32d16338123d07c18b25c9a2796574a"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:982af5ec67cecd099e2ef5e238650407fb40d56304910102d054c109f390bf3c"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:bbd37352cea4ee007c48a44c9bc45a21f7ba70a57edfe46842e346651e2b995a"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d9be6351b7889462912e0b8185a260c0219c35dfd920fb490c7f256f1d8313e"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75cdc7fe32dcf33b7cec306707552dda54632ac29402775b9e212a3c16aad5e6"}, - {file = "ruff-0.0.290-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb07f37f7aecdbbc91d759c0c09870ce0fb3eed4025eebedf9c4b98c69abd527"}, - {file = "ruff-0.0.290-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:2ab41bc0ba359d3f715fc7b705bdeef19c0461351306b70a4e247f836b9350ed"}, - {file = "ruff-0.0.290-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:150bf8050214cea5b990945b66433bf9a5e0cef395c9bc0f50569e7de7540c86"}, - {file = "ruff-0.0.290-py3-none-musllinux_1_2_i686.whl", hash = "sha256:75386ebc15fe5467248c039f5bf6a0cfe7bfc619ffbb8cd62406cd8811815fca"}, - {file = "ruff-0.0.290-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ac93eadf07bc4ab4c48d8bb4e427bf0f58f3a9c578862eb85d99d704669f5da0"}, - {file = "ruff-0.0.290-py3-none-win32.whl", hash = "sha256:461fbd1fb9ca806d4e3d5c745a30e185f7cf3ca77293cdc17abb2f2a990ad3f7"}, - {file = "ruff-0.0.290-py3-none-win_amd64.whl", hash = "sha256:f1f49f5ec967fd5778813780b12a5650ab0ebcb9ddcca28d642c689b36920796"}, - {file = "ruff-0.0.290-py3-none-win_arm64.whl", hash = "sha256:ae5a92dfbdf1f0c689433c223f8dac0782c2b2584bd502dfdbc76475669f1ba1"}, - {file = "ruff-0.0.290.tar.gz", hash = "sha256:949fecbc5467bb11b8db810a7fa53c7e02633856ee6bd1302b2f43adcd71b88d"}, + {file = "ruff-0.0.291-py3-none-macosx_10_7_x86_64.whl", hash = "sha256:b97d0d7c136a85badbc7fd8397fdbb336e9409b01c07027622f28dcd7db366f2"}, + {file = "ruff-0.0.291-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:6ab44ea607967171e18aa5c80335237be12f3a1523375fa0cede83c5cf77feb4"}, + {file = "ruff-0.0.291-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a04b384f2d36f00d5fb55313d52a7d66236531195ef08157a09c4728090f2ef0"}, + {file = "ruff-0.0.291-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b727c219b43f903875b7503a76c86237a00d1a39579bb3e21ce027eec9534051"}, + {file = "ruff-0.0.291-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87671e33175ae949702774071b35ed4937da06f11851af75cd087e1b5a488ac4"}, + {file = "ruff-0.0.291-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:b75f5801547f79b7541d72a211949754c21dc0705c70eddf7f21c88a64de8b97"}, + {file = "ruff-0.0.291-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b09b94efdcd162fe32b472b2dd5bf1c969fcc15b8ff52f478b048f41d4590e09"}, + {file = "ruff-0.0.291-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d5b56bc3a2f83a7a1d7f4447c54d8d3db52021f726fdd55d549ca87bca5d747"}, + {file = "ruff-0.0.291-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13f0d88e5f367b2dc8c7d90a8afdcfff9dd7d174e324fd3ed8e0b5cb5dc9b7f6"}, + {file = "ruff-0.0.291-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b3eeee1b1a45a247758ecdc3ab26c307336d157aafc61edb98b825cadb153df3"}, + {file = "ruff-0.0.291-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:6c06006350c3bb689765d71f810128c9cdf4a1121fd01afc655c87bab4fb4f83"}, + {file = "ruff-0.0.291-py3-none-musllinux_1_2_i686.whl", hash = "sha256:fd17220611047de247b635596e3174f3d7f2becf63bd56301fc758778df9b629"}, + {file = "ruff-0.0.291-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5383ba67ad360caf6060d09012f1fb2ab8bd605ab766d10ca4427a28ab106e0b"}, + {file = "ruff-0.0.291-py3-none-win32.whl", hash = "sha256:1d5f0616ae4cdc7a938b493b6a1a71c8a47d0300c0d65f6e41c281c2f7490ad3"}, + {file = "ruff-0.0.291-py3-none-win_amd64.whl", hash = "sha256:8a69bfbde72db8ca1c43ee3570f59daad155196c3fbe357047cd9b77de65f15b"}, + {file = "ruff-0.0.291-py3-none-win_arm64.whl", hash = "sha256:d867384a4615b7f30b223a849b52104214442b5ba79b473d7edd18da3cde22d6"}, + {file = "ruff-0.0.291.tar.gz", hash = "sha256:c61109661dde9db73469d14a82b42a88c7164f731e6a3b0042e71394c1c7ceed"}, ] [[package]] From bf149a1102e0f9b6c15df934e131707840d9184e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:17:23 +0200 Subject: [PATCH 05/41] web: bump rollup from 3.29.2 to 3.29.3 in /web (#6970) Bumps [rollup](https://github.com/rollup/rollup) from 3.29.2 to 3.29.3. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v3.29.2...v3.29.3) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 38899e004..edc0ba821 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -87,7 +87,7 @@ "pyright": "^1.1.328", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^3.29.2", + "rollup": "^3.29.3", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-postcss-lit": "^2.1.0", @@ -20017,9 +20017,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "3.29.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.2.tgz", - "integrity": "sha512-CJouHoZ27v6siztc21eEQGo0kIcE5D1gVPA571ez0mMYb25LGYGKnVNXpEj5MGlepmDWGXNjDB5q7uNiPHC11A==", + "version": "3.29.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.3.tgz", + "integrity": "sha512-T7du6Hum8jOkSWetjRgbwpM6Sy0nECYrYRSmZjayFcOddtKJWU4d17AC3HNUk7HRuqy4p+G7aEZclSHytqUmEg==", "dev": true, "bin": { "rollup": "dist/bin/rollup" diff --git a/web/package.json b/web/package.json index 97c20302c..8808cbe46 100644 --- a/web/package.json +++ b/web/package.json @@ -105,7 +105,7 @@ "pyright": "^1.1.328", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^3.29.2", + "rollup": "^3.29.3", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-postcss-lit": "^2.1.0", From bcf7545cadb8149bef4299274c421353f256d345 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:17:45 +0200 Subject: [PATCH 06/41] core: bump psycopg from 3.1.10 to 3.1.11 (#6964) Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.10 to 3.1.11. - [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst) - [Commits](https://github.com/psycopg/psycopg/compare/3.1.10...3.1.11) --- updated-dependencies: - dependency-name: psycopg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index d6c7c574f..76afcd505 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2570,36 +2570,36 @@ wcwidth = "*" [[package]] name = "psycopg" -version = "3.1.10" +version = "3.1.11" description = "PostgreSQL database adapter for Python" optional = false python-versions = ">=3.7" files = [ - {file = "psycopg-3.1.10-py3-none-any.whl", hash = "sha256:8bbeddae5075c7890b2fa3e3553440376d3c5e28418335dee3c3656b06fa2b52"}, - {file = "psycopg-3.1.10.tar.gz", hash = "sha256:15b25741494344c24066dc2479b0f383dd1b82fa5e75612fa4fa5bb30726e9b6"}, + {file = "psycopg-3.1.11-py3-none-any.whl", hash = "sha256:7542c45810ea16356e5126c9b4291cbc3802aa326fcbba09ff154fe380de29be"}, + {file = "psycopg-3.1.11.tar.gz", hash = "sha256:cd711edb64b07d7f8a233c365806caf7e55bbe7cbbd8d5c680f672bb5353c8d5"}, ] [package.dependencies] -psycopg-c = {version = "3.1.10", optional = true, markers = "extra == \"c\""} +psycopg-c = {version = "3.1.11", optional = true, markers = "extra == \"c\""} typing-extensions = ">=4.1" tzdata = {version = "*", markers = "sys_platform == \"win32\""} [package.extras] -binary = ["psycopg-binary (==3.1.10)"] -c = ["psycopg-c (==3.1.10)"] +binary = ["psycopg-binary (==3.1.11)"] +c = ["psycopg-c (==3.1.11)"] dev = ["black (>=23.1.0)", "dnspython (>=2.1)", "flake8 (>=4.0)", "mypy (>=1.4.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"] docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"] pool = ["psycopg-pool"] -test = ["anyio (>=3.6.2)", "mypy (>=1.4.1)", "pproxy (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.5)"] +test = ["anyio (>=3.6.2,<4.0)", "mypy (>=1.4.1)", "pproxy (>=2.7)", "pytest (>=6.2.5)", "pytest-cov (>=3.0)", "pytest-randomly (>=3.5)"] [[package]] name = "psycopg-c" -version = "3.1.10" +version = "3.1.11" description = "PostgreSQL database adapter for Python -- C optimisation distribution" optional = false python-versions = ">=3.7" files = [ - {file = "psycopg-c-3.1.10.tar.gz", hash = "sha256:0c923cfac7a8a3796c915c253f51b7c667358492924cbccecc18df9e79b103e9"}, + {file = "psycopg-c-3.1.11.tar.gz", hash = "sha256:e22a5bb4a6c0dc02219b954fe11ca49b79b4d278159f4b934b182f87bb96ef78"}, ] [[package]] From af33f8c01429d3256a208009b54724639e8de4f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:18:05 +0200 Subject: [PATCH 07/41] web: bump the storybook group in /web with 5 updates (#6968) Bumps the storybook group in /web with 5 updates: | Package | From | To | | --- | --- | --- | | [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `7.4.3` | `7.4.5` | | [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `7.4.3` | `7.4.5` | | [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) | `7.4.3` | `7.4.5` | | [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite) | `7.4.3` | `7.4.5` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `7.4.3` | `7.4.5` | Updates `@storybook/addon-essentials` from 7.4.3 to 7.4.5 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.5/code/addons/essentials) Updates `@storybook/addon-links` from 7.4.3 to 7.4.5 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.5/code/addons/links) Updates `@storybook/web-components` from 7.4.3 to 7.4.5 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.5/code/renderers/web-components) Updates `@storybook/web-components-vite` from 7.4.3 to 7.4.5 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.5/code/frameworks/web-components-vite) Updates `storybook` from 7.4.3 to 7.4.5 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.4.5/code/lib/cli) --- updated-dependencies: - dependency-name: "@storybook/addon-essentials" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-links" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components-vite" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: storybook dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 1828 ++++++++++++++++++++--------------------- web/package.json | 10 +- 2 files changed, 919 insertions(+), 919 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index edc0ba821..90460b832 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -61,11 +61,11 @@ "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-terser": "^0.4.3", "@rollup/plugin-typescript": "^11.1.3", - "@storybook/addon-essentials": "^7.4.3", - "@storybook/addon-links": "^7.4.3", + "@storybook/addon-essentials": "^7.4.5", + "@storybook/addon-links": "^7.4.5", "@storybook/blocks": "^7.1.1", - "@storybook/web-components": "^7.4.3", - "@storybook/web-components-vite": "^7.4.3", + "@storybook/web-components": "^7.4.5", + "@storybook/web-components-vite": "^7.4.5", "@trivago/prettier-plugin-sort-imports": "^4.2.0", "@types/chart.js": "^2.9.38", "@types/codemirror": "5.60.10", @@ -91,7 +91,7 @@ "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.4.3", + "storybook": "^7.4.5", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^1.2.1", "tslib": "^2.6.2", @@ -4599,19 +4599,19 @@ "dev": true }, "node_modules/@storybook/addon-actions": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.4.3.tgz", - "integrity": "sha512-ROlhxTQxBtMvfUU8ZTZZ6M0ALbUuChm2Fkau9inZyLgaE/HJbjAUCU7TbHFQ7GgdqA3/Lnw0Soox8cmjI4QQWA==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.4.5.tgz", + "integrity": "sha512-FkjJWmPN/+duLSkRwfa2bwlwjKfY6yCXYn7CRzn3rb64B8f50NB79zAgVLHjkJh9l6T3DIlWtol6vqPHj1aRpw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/components": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/components": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/manager-api": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "polished": "^4.2.2", @@ -4639,13 +4639,13 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -4657,9 +4657,9 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -4670,9 +4670,9 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -4683,19 +4683,19 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -4714,17 +4714,17 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4740,12 +4740,12 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -4759,13 +4759,13 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -4779,12 +4779,12 @@ } }, "node_modules/@storybook/addon-actions/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -4828,19 +4828,19 @@ "dev": true }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.4.3.tgz", - "integrity": "sha512-NCcJKbz/kVSOXmoV1c+YoM28/oG9oO/kv1xwtX//cVv02SGerRCRqwB7zt0NzcLMSkrwaphRuXd55n0J7nGrBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.4.5.tgz", + "integrity": "sha512-fTq9E1WrYH/9hwDemFVLVcaI2iSSuwWnvY/8tqGrY9xhQF5dIpeHf+z8+HWXpau7e6Z0/WiYR+1vwAcIKt95LQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/components": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/components": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/manager-api": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "memoizerific": "^1.11.3", "ts-dedent": "^2.0.0" }, @@ -4862,13 +4862,13 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -4880,9 +4880,9 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -4893,9 +4893,9 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -4906,19 +4906,19 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -4937,17 +4937,17 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -4963,12 +4963,12 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -4982,13 +4982,13 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5002,12 +5002,12 @@ } }, "node_modules/@storybook/addon-backgrounds/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5051,21 +5051,21 @@ "dev": true }, "node_modules/@storybook/addon-controls": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.4.3.tgz", - "integrity": "sha512-wlfr0Yx27GzQqb5iINQTwL8wCW1NK8+4bJ/HQe4SQOY1FpybOK59B421V6YyQ3tafDWU5MMKh2sElMY9z5Deqw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.4.5.tgz", + "integrity": "sha512-Mxs56jt44HIbZ4gJa0AII1U8GqEGFsvcM5Iob0ETNpxCW5Kj5iHly/4Ws0RFWPH/krrQKaLpWXaUxKmbtEzhJA==", "dev": true, "dependencies": { - "@storybook/blocks": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/components": "7.4.3", - "@storybook/core-common": "7.4.3", - "@storybook/core-events": "7.4.3", - "@storybook/manager-api": "7.4.3", - "@storybook/node-logger": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/blocks": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/components": "7.4.5", + "@storybook/core-common": "7.4.5", + "@storybook/core-events": "7.4.5", + "@storybook/manager-api": "7.4.5", + "@storybook/node-logger": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -5087,13 +5087,13 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5105,9 +5105,9 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5118,9 +5118,9 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5131,19 +5131,19 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -5162,17 +5162,17 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5188,12 +5188,12 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -5207,13 +5207,13 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5227,12 +5227,12 @@ } }, "node_modules/@storybook/addon-controls/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5276,26 +5276,26 @@ "dev": true }, "node_modules/@storybook/addon-docs": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.4.3.tgz", - "integrity": "sha512-c6r1nJY4fj/Uj9p7jHdicAS7quiK9RY0LJw+aB++FvcO1KavX33BlD2mxPIVU8a9oLJ3X4RUfNQz+OSABGy0xw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.4.5.tgz", + "integrity": "sha512-KjFVeq8oL7ZC1gsk8iY3Nn0RrHHUpczmOTCd8FeVNmKD4vq+dkPb/8bJLy+jArmIZ8vRhknpTh6kp1BqB7qHGQ==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/components": "7.4.3", - "@storybook/csf-plugin": "7.4.3", - "@storybook/csf-tools": "7.4.3", + "@storybook/blocks": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/components": "7.4.5", + "@storybook/csf-plugin": "7.4.5", + "@storybook/csf-tools": "7.4.5", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.4.3", - "@storybook/postinstall": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/react-dom-shim": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/node-logger": "7.4.5", + "@storybook/postinstall": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/react-dom-shim": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -5311,13 +5311,13 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5329,9 +5329,9 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5342,9 +5342,9 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5355,17 +5355,17 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5381,13 +5381,13 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5401,12 +5401,12 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5431,24 +5431,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.4.3.tgz", - "integrity": "sha512-LYAauAz4YGWmdZw6umJisl3X0gk1UV9Ovm6b7hicNfKKYGlsWz9KNyi3kvV+harScBzcqENFl5kwezFu2Ltq9g==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.4.5.tgz", + "integrity": "sha512-H7zZWJXZP0UU2kXfo9zlQfjIKHuuqYBK7PZ2/SL5y08mTrbtt1BfqYScz3xRvHocaFcsBWCXdy8jJULT4KFUpw==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.4.3", - "@storybook/addon-backgrounds": "7.4.3", - "@storybook/addon-controls": "7.4.3", - "@storybook/addon-docs": "7.4.3", - "@storybook/addon-highlight": "7.4.3", - "@storybook/addon-measure": "7.4.3", - "@storybook/addon-outline": "7.4.3", - "@storybook/addon-toolbars": "7.4.3", - "@storybook/addon-viewport": "7.4.3", - "@storybook/core-common": "7.4.3", - "@storybook/manager-api": "7.4.3", - "@storybook/node-logger": "7.4.3", - "@storybook/preview-api": "7.4.3", + "@storybook/addon-actions": "7.4.5", + "@storybook/addon-backgrounds": "7.4.5", + "@storybook/addon-controls": "7.4.5", + "@storybook/addon-docs": "7.4.5", + "@storybook/addon-highlight": "7.4.5", + "@storybook/addon-measure": "7.4.5", + "@storybook/addon-outline": "7.4.5", + "@storybook/addon-toolbars": "7.4.5", + "@storybook/addon-viewport": "7.4.5", + "@storybook/core-common": "7.4.5", + "@storybook/manager-api": "7.4.5", + "@storybook/node-logger": "7.4.5", + "@storybook/preview-api": "7.4.5", "ts-dedent": "^2.0.0" }, "funding": { @@ -5461,13 +5461,13 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5479,9 +5479,9 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5492,9 +5492,9 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5505,19 +5505,19 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -5536,17 +5536,17 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5562,12 +5562,12 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -5581,13 +5581,13 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5601,12 +5601,12 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5650,14 +5650,14 @@ "dev": true }, "node_modules/@storybook/addon-highlight": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.4.3.tgz", - "integrity": "sha512-4FDvg+ZH5/H6b7qI6tVSygCaF5h7TStfyLXwxx07edot0vaaw4ir/0sbCAH9AUQ9/+08RiXsMFO5tgMUp/BjcA==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.4.5.tgz", + "integrity": "sha512-6Ru411+Iis4m2weKb8kB1eEssLvCHwFqAf4fjcOC//O5Vaf5+beHYZJUm/rzD0k/oUHfLCBwDBSBY5TLRegkdA==", "dev": true, "dependencies": { - "@storybook/core-events": "7.4.3", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.4.3" + "@storybook/preview-api": "7.4.5" }, "funding": { "type": "opencollective", @@ -5665,13 +5665,13 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5683,9 +5683,9 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5696,9 +5696,9 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5709,17 +5709,17 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5735,12 +5735,12 @@ } }, "node_modules/@storybook/addon-highlight/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5751,19 +5751,19 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.4.3.tgz", - "integrity": "sha512-flnwlKdePQtwgryFhJlju94DVvZBq477xaD1mG9zcqEe+QeN+1GGggIo6R9e2hEsWcAfpc2yKA4dJP9KS9xIHg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.4.5.tgz", + "integrity": "sha512-eKczq3U5KfPLaxMUzzVQQrGVtzDshUmrSEEuWKf9ZbK3mh5yVuagIBb88edgUX58vZ3TJMvqQzq1+BtUoPHQ6Q==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/router": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/manager-api": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/router": "7.4.5", + "@storybook/types": "7.4.5", "prop-types": "^15.7.2", "ts-dedent": "^2.0.0" }, @@ -5785,13 +5785,13 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5803,9 +5803,9 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5816,9 +5816,9 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -5829,19 +5829,19 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -5860,17 +5860,17 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5886,12 +5886,12 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -5905,13 +5905,13 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -5925,12 +5925,12 @@ } }, "node_modules/@storybook/addon-links/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -5974,18 +5974,18 @@ "dev": true }, "node_modules/@storybook/addon-measure": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.4.3.tgz", - "integrity": "sha512-a07/GV9WWvqy1MuJtDevHzPo/weY86s7JT+qjGk0bhQdThVcd94Z7whlQL/LgrdAi1XLdHY5R5LpUIk9UDluNw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.4.5.tgz", + "integrity": "sha512-FQGZniTH67nC1YPR4ep0p+isgxwLaNAmIAyCZWXPRTkZssIrnXVwNgi0A2QkHdxZvxj8yXGFTOVXLWEPT9YvFQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/components": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/components": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/manager-api": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/types": "7.4.5", "tiny-invariant": "^1.3.1" }, "funding": { @@ -6006,13 +6006,13 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -6024,9 +6024,9 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -6037,9 +6037,9 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6050,19 +6050,19 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6081,17 +6081,17 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6107,12 +6107,12 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6126,13 +6126,13 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6146,12 +6146,12 @@ } }, "node_modules/@storybook/addon-measure/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6195,18 +6195,18 @@ "dev": true }, "node_modules/@storybook/addon-outline": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.4.3.tgz", - "integrity": "sha512-QPcTjmNgj0+7NEzomfqNOnm2DgcRjqvYGCdlxfDbnNB0J+ZGlaUozL3ZbofJKx9qCoHf+j+Z1pwONHafJV6t4w==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.4.5.tgz", + "integrity": "sha512-eOH9BZzpehUz5FXD98OLnWgzmBFMvEB2kFfw5JiO7IRx7Fan80fx/WDQuMSNDOgLBCTTvsZ4TBMMXZHpw91WAw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/components": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/components": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/manager-api": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/types": "7.4.5", "ts-dedent": "^2.0.0" }, "funding": { @@ -6227,13 +6227,13 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -6245,9 +6245,9 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -6258,9 +6258,9 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6271,19 +6271,19 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6302,17 +6302,17 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6328,12 +6328,12 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6347,13 +6347,13 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6367,12 +6367,12 @@ } }, "node_modules/@storybook/addon-outline/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6416,16 +6416,16 @@ "dev": true }, "node_modules/@storybook/addon-toolbars": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.4.3.tgz", - "integrity": "sha512-sHILofAarfzku+8qhueELoZYCLTHuDtmnlfILjBrH/w7Et3Vnyn1wJcdal7VnQPbX9EiEkdFaiZybQdniBb+hQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.4.5.tgz", + "integrity": "sha512-PZlwUTIdQ18de3zNb+627VSF4UrCGIXDdikyO9O5j2Cd0xfr5uhS6tgQ+3AT0DfUj0UIkKxilwcAt+agpNyicA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/components": "7.4.3", - "@storybook/manager-api": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/theming": "7.4.3" + "@storybook/client-logger": "7.4.5", + "@storybook/components": "7.4.5", + "@storybook/manager-api": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/theming": "7.4.5" }, "funding": { "type": "opencollective", @@ -6445,13 +6445,13 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -6463,9 +6463,9 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -6476,9 +6476,9 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6489,19 +6489,19 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6520,17 +6520,17 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6546,12 +6546,12 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6565,13 +6565,13 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6585,12 +6585,12 @@ } }, "node_modules/@storybook/addon-toolbars/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6634,18 +6634,18 @@ "dev": true }, "node_modules/@storybook/addon-viewport": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.4.3.tgz", - "integrity": "sha512-jDRG6ZMZ4ATOXiJQcXTpolTtIi8oAhbk6mbJyj65nClXgWqfZxMK9PMfJw5R7zHhAmrKoWNTDc72eayFOIHaNg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.4.5.tgz", + "integrity": "sha512-SBLnUMIztVrqJ0fRCsVg9KZ29APLIxqAvTsYHF3twy5KB2naeCFuX3K9LxSH7vbROI6zHEfnPduz/Ykyvu9yUg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/components": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/components": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/theming": "7.4.3", + "@storybook/manager-api": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/theming": "7.4.5", "memoizerific": "^1.11.3", "prop-types": "^15.7.2" }, @@ -6667,13 +6667,13 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -6685,9 +6685,9 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -6698,9 +6698,9 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6711,19 +6711,19 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6742,17 +6742,17 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6768,12 +6768,12 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6787,13 +6787,13 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6807,12 +6807,12 @@ } }, "node_modules/@storybook/addon-viewport/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7065,22 +7065,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.4.3.tgz", - "integrity": "sha512-uyZVx3er1qOPFpKJtsbozBwt1Os3zqiq+2se7xDBK6ERr07zaRHLgRci7+kI8T5mdlCxYiGV+kzx5Vx5/7XaXg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.4.5.tgz", + "integrity": "sha512-FhAIkCT2HrzJcKsC3mL5+uG3GrbS23mYAT1h3iyPjCliZzxfCCI9UCMUXqYx4Z/FmAGJgpsQQXiBFZuoTHO9aQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/components": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/components": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", - "@storybook/docs-tools": "7.4.3", + "@storybook/docs-tools": "7.4.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/manager-api": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -7104,13 +7104,13 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7122,9 +7122,9 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7135,9 +7135,9 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7148,19 +7148,19 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -7179,17 +7179,17 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -7205,12 +7205,12 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -7224,13 +7224,13 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -7244,12 +7244,12 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7293,15 +7293,15 @@ "dev": true }, "node_modules/@storybook/builder-manager": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.4.3.tgz", - "integrity": "sha512-6jzxZ2J1jFaZXn7ZucEgV6XyUe+FJ9uuoMRZcZefoCKeXK/BOPCefijYWP3DPgqqVh3/JLUglIpz0MH9k8cBaw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.4.5.tgz", + "integrity": "sha512-Jhql8iZgK9cxDmG9NSTejsj5FptHni2TBa5Sea2Uz1NIBQ0OpzNdUfYVX6TN/PEq3QrWXTrAEKPqsL2qGjOrxw==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.4.3", - "@storybook/manager": "7.4.3", - "@storybook/node-logger": "7.4.3", + "@storybook/core-common": "7.4.5", + "@storybook/manager": "7.4.5", + "@storybook/node-logger": "7.4.5", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -7335,20 +7335,20 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.4.3.tgz", - "integrity": "sha512-zCxIsJ0KZ+tiz8KzlAT54jGTGEbscqFQfiHK/Du+EYWG2ulX1+goMxw5k9+ndiK/GgjJGSdVoFvcNQH3MPOM6A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.4.5.tgz", + "integrity": "sha512-0aIMvBIx2U/DhDjdjWCW/KIG3HAJpus8NIUIvkVAUCaA7Vn8XvnSsdaRSTTxaaJReFZcIxDf7MebHSCJ0UEKqQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-common": "7.4.3", - "@storybook/csf-plugin": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-common": "7.4.5", + "@storybook/csf-plugin": "7.4.5", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.4.3", - "@storybook/preview": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/node-logger": "7.4.5", + "@storybook/preview": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/types": "7.4.5", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -7383,13 +7383,13 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7401,9 +7401,9 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7414,9 +7414,9 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7427,17 +7427,17 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -7453,12 +7453,12 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7514,23 +7514,23 @@ } }, "node_modules/@storybook/cli": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.4.3.tgz", - "integrity": "sha512-/lGtXbzNropsCF4srEGxiHzCU7b2wlV13LrSj3H3zOnHEAJlFcNpyNzO+4jKHfNTjjqEtcRGJ1OxrSYuGZTVjg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.4.5.tgz", + "integrity": "sha512-PlTkcHdKCugg3pD1zkBP/oFazcZsr7F3wdEmTvygfH0Cx/sQWg5wXBZCYKmf0ONRK4RKL3LVM8DRpeYiQVEFWg==", "dev": true, "dependencies": { "@babel/core": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/types": "^7.22.5", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.4.3", - "@storybook/core-common": "7.4.3", - "@storybook/core-events": "7.4.3", - "@storybook/core-server": "7.4.3", - "@storybook/csf-tools": "7.4.3", - "@storybook/node-logger": "7.4.3", - "@storybook/telemetry": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/codemod": "7.4.5", + "@storybook/core-common": "7.4.5", + "@storybook/core-events": "7.4.5", + "@storybook/core-server": "7.4.5", + "@storybook/csf-tools": "7.4.5", + "@storybook/node-logger": "7.4.5", + "@storybook/telemetry": "7.4.5", + "@storybook/types": "7.4.5", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -7571,13 +7571,13 @@ } }, "node_modules/@storybook/cli/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7589,9 +7589,9 @@ } }, "node_modules/@storybook/cli/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7602,9 +7602,9 @@ } }, "node_modules/@storybook/cli/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7615,12 +7615,12 @@ } }, "node_modules/@storybook/cli/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7768,18 +7768,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.4.3.tgz", - "integrity": "sha512-UwnsyVeUa+wLIeE/zO0slV3mwsPgS3DstZAWbjWUfFlJKZjgg1++Zkv0GmxkEyirsnf/g4r6Aq+KhIdIHmdzag==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.4.5.tgz", + "integrity": "sha512-gyI2xliSv4vvnfNQN+0e3tRmT7beiq8q8iGjcBtpOhA2xrStyCR7PjbOfLXtRx2I/b50MDZMRTcckzeM3BLoWQ==", "dev": true, "dependencies": { "@babel/core": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/types": "^7.22.5", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.4.3", - "@storybook/node-logger": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/csf-tools": "7.4.5", + "@storybook/node-logger": "7.4.5", + "@storybook/types": "7.4.5", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -7794,13 +7794,13 @@ } }, "node_modules/@storybook/codemod/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7812,9 +7812,9 @@ } }, "node_modules/@storybook/codemod/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7825,9 +7825,9 @@ } }, "node_modules/@storybook/codemod/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7838,12 +7838,12 @@ } }, "node_modules/@storybook/codemod/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7869,18 +7869,18 @@ } }, "node_modules/@storybook/components": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.4.3.tgz", - "integrity": "sha512-qwRW8wGUuM+H6oKUXXoIDrZECXh/lzowrWXFAzZiocovYEhPtZfl/yvJLWHjOwtka3n7lA7J7EtcjWe8/tueJQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.4.5.tgz", + "integrity": "sha512-boskkfvMBB8CFYY9+1ofFNyKrdWXTY/ghzt7oK80dz6f2Eseo/WXK3OsCdCq5vWbLRCdbgJ8zXG8pAFi4yBsxA==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -7895,13 +7895,13 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -7913,9 +7913,9 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -7926,9 +7926,9 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -7939,13 +7939,13 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -7959,12 +7959,12 @@ } }, "node_modules/@storybook/components/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -7975,13 +7975,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.4.3.tgz", - "integrity": "sha512-YRt07TxC+HUtnyvbpJbY8d2+2QfFExBL7zRbms9tIRorddWfPBq+lA2RS9zcjUJJJtNSz1+ST70FuGr1N3AXGg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.4.5.tgz", + "integrity": "sha512-d/qiCUZeOKY0HX/YmomxlccxJ2NKC3ttRrAsAXzJGypClKabv20X+qbeO/E7Kp5UQxIEJx1wuwJPcnlCvjgPDA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/preview-api": "7.4.3" + "@storybook/client-logger": "7.4.5", + "@storybook/preview-api": "7.4.5" }, "funding": { "type": "opencollective", @@ -7989,13 +7989,13 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8007,9 +8007,9 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8020,9 +8020,9 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8033,17 +8033,17 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -8059,12 +8059,12 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8075,14 +8075,14 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.4.3.tgz", - "integrity": "sha512-jwIBUnWitZzw0VfKC77yN8DvTyePLVnAjbA2lPMbMIdO9ZY2lfD4AQ4QpuWsxJyAllFC4slOFDNgCDHx2AlYWw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.4.5.tgz", + "integrity": "sha512-c4pBuILMD4YhSpJ+QpKtsUZpK+/rfolwOvzXfJwlN5EpYzMz6FjVR/LyX0cCT2YLI3X5YWRoCdvMxy5Aeryb8g==", "dev": true, "dependencies": { - "@storybook/core-events": "7.4.3", - "@storybook/node-logger": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/core-events": "7.4.5", + "@storybook/node-logger": "7.4.5", + "@storybook/types": "7.4.5", "@types/find-cache-dir": "^3.2.1", "@types/node": "^16.0.0", "@types/node-fetch": "^2.6.4", @@ -8110,13 +8110,13 @@ } }, "node_modules/@storybook/core-common/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8128,9 +8128,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8141,9 +8141,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8154,12 +8154,12 @@ } }, "node_modules/@storybook/core-common/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8170,9 +8170,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "16.18.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.53.tgz", - "integrity": "sha512-vVmHeo4tpF8zsknALU90Hh24VueYdu45ZlXzYWFbom61YR4avJqTFDC3QlWzjuTdAv6/3xHaxiO9NrtVZXrkmw==", + "version": "16.18.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.54.tgz", + "integrity": "sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==", "dev": true }, "node_modules/@storybook/core-common/node_modules/ansi-styles": { @@ -8230,9 +8230,9 @@ } }, "node_modules/@storybook/core-common/node_modules/glob": { - "version": "10.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.5.tgz", - "integrity": "sha512-bYUpUD7XDEHI4Q2O5a7PXGvyw4deKR70kHiDxzQbe925wbZknhOzUt2xBgTkYL6RBcVeXYuD9iNYeqoWbBZQnA==", + "version": "10.3.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.7.tgz", + "integrity": "sha512-wCMbE1m9Nx5yD9LYtgsVWq5VhHlk5WzJirw594qZR6AIvQYuHrdDtIktUVjQItalD53y7dqoedu9xP0u0WaxIQ==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", @@ -8242,7 +8242,7 @@ "path-scurry": "^1.10.1" }, "bin": { - "glob": "dist/cjs/src/bin.js" + "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -8302,26 +8302,26 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.4.3.tgz", - "integrity": "sha512-yl9HaVwk/xJV9zq76n/oR1cE39wAFmNmKVPOJAtr3+c7wS0tnBkw7T+GqZ2Seyv+xkcZUWS8KRH74HqwPwG0Bw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.4.5.tgz", + "integrity": "sha512-cW+Qx9Ls823577bd/s9Kv4M1MdKS8mkk6/+nYbwtAwH3hkdlb077rlk/ue0X4O9NZmCrtaJ84KNrBkeDUdFyLQ==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.4.3", - "@storybook/channels": "7.4.3", - "@storybook/core-common": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/builder-manager": "7.4.5", + "@storybook/channels": "7.4.5", + "@storybook/core-common": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.4.3", + "@storybook/csf-tools": "7.4.5", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.4.3", - "@storybook/node-logger": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/telemetry": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/manager": "7.4.5", + "@storybook/node-logger": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/telemetry": "7.4.5", + "@storybook/types": "7.4.5", "@types/detect-port": "^1.3.0", "@types/node": "^16.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -8356,13 +8356,13 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8374,9 +8374,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8387,9 +8387,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8400,17 +8400,17 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -8426,12 +8426,12 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8442,9 +8442,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "16.18.53", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.53.tgz", - "integrity": "sha512-vVmHeo4tpF8zsknALU90Hh24VueYdu45ZlXzYWFbom61YR4avJqTFDC3QlWzjuTdAv6/3xHaxiO9NrtVZXrkmw==", + "version": "16.18.54", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.54.tgz", + "integrity": "sha512-oTmGy68gxZZ21FhTJVVvZBYpQHEBZxHKTsGshobMqm9qWpbqdZsA5jvsuPZcHu0KwpmLrOHWPdEfg7XDpNT9UA==", "dev": true }, "node_modules/@storybook/core-server/node_modules/ansi-styles": { @@ -8556,12 +8556,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.4.3.tgz", - "integrity": "sha512-xQCimGsrGD1JxvyFc0LrH10WZWb181r0beF19aGIAadczs/JWhT+nxF8OhfP1LK4wHj9jH+F4nIXEMpm9yI9Qg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.4.5.tgz", + "integrity": "sha512-8p3AnwIm3xXtQhiF7OQ0rBiP/Pn5OCMHRiT4FytRnNimGaw7gxRZ2xzM608QZHQ4A8rHfmgoM2FTwgxdC15ulA==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.4.3", + "@storybook/csf-tools": "7.4.5", "unplugin": "^1.3.1" }, "funding": { @@ -8570,9 +8570,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.4.3.tgz", - "integrity": "sha512-nkVakGx2kzou91lGcxnyFNiSEdnpx1a53lQTl/DLm0QpDbqQuu3ZbZWXZCpXV97t/6YPeCCnGLXodnI7PZyZBA==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.4.5.tgz", + "integrity": "sha512-xbm5HGYvlwF0Efivx37v9rO7Exel1/Tdb/Yv/vXn4D/hQeljNVLNz4Bomfy4EQ207rRsrGDSOHEhLUbHDimnxg==", "dev": true, "dependencies": { "@babel/generator": "^7.22.9", @@ -8580,7 +8580,7 @@ "@babel/traverse": "^7.22.8", "@babel/types": "^7.22.5", "@storybook/csf": "^0.1.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -8591,13 +8591,13 @@ } }, "node_modules/@storybook/csf-tools/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8609,9 +8609,9 @@ } }, "node_modules/@storybook/csf-tools/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8622,9 +8622,9 @@ } }, "node_modules/@storybook/csf-tools/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8635,12 +8635,12 @@ } }, "node_modules/@storybook/csf-tools/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8671,14 +8671,14 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.4.3.tgz", - "integrity": "sha512-T9oU10vIY3mC6Up+9rjN5LfBydhhIFhKzHPtUT9PfN1iEa0lO2TkT4m+vf2kcokPppUZNVbqiGjy9t/WYnpeZg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.4.5.tgz", + "integrity": "sha512-ctK+yGb2nvWISSvCCzj3ZhDaAb7I2BLjbxuBGTyNPvl4V9UQ9LBYzdJwR50q+DfscxdwSHMSOE/0OnzmJdaSJA==", "dev": true, "dependencies": { - "@storybook/core-common": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/core-common": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/types": "7.4.5", "@types/doctrine": "^0.0.3", "doctrine": "^3.0.0", "lodash": "^4.17.21" @@ -8689,13 +8689,13 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -8707,9 +8707,9 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -8720,9 +8720,9 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -8733,17 +8733,17 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -8759,12 +8759,12 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -8781,9 +8781,9 @@ "dev": true }, "node_modules/@storybook/manager": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.4.3.tgz", - "integrity": "sha512-7U92tYwjt0DIKX7vCKNSZefuEavdnJYa5/zSjdlo0LtfBmGRBak1eq/sVLGfzrZ+wKIlCXgNh3f8OLy8RMnOOw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.4.5.tgz", + "integrity": "sha512-yoqVktWzzC0f8cXsxErOEUfT+VFfWV/W7soytIPQuJFqNaq+BqR5A7WCeoY7BIv3mdpRjo4GKwerCsgoHYeHhg==", "dev": true, "funding": { "type": "opencollective", @@ -8865,9 +8865,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.4.3.tgz", - "integrity": "sha512-pL13PPMUttflTWKVeDIKxPIJtBRl50Fzck12/7uiNROtBIrSV9DZSgOjInAazjo4tl+7fDj9lgkGeMEz00E8aQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.4.5.tgz", + "integrity": "sha512-fJSykphbryuEYj1qihbaTH5oOzD4NkptRxyf2uyBrpgkr5tCTq9d7GHheqaBuIdi513dsjlcIR7z5iHxW7ZD+Q==", "dev": true, "funding": { "type": "opencollective", @@ -8875,9 +8875,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.4.3.tgz", - "integrity": "sha512-6NMaAvL4a26jR50UPz+Q6VATY3lHZWw1ru/weFgiV0rat632RFdiFyrMMrjbUWu9HDJE4fbCzrIZU0jGVs1wlQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.4.5.tgz", + "integrity": "sha512-MWRjnKkUpEe2VkHNNpv3zkuMvxM2Zu9DMxFENQaEmhqUHkIFh5klfFwzhSBRexVLzIh7DA1p7mntIpY5A6lh+Q==", "dev": true, "funding": { "type": "opencollective", @@ -8885,9 +8885,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.4.3.tgz", - "integrity": "sha512-dItyGcql/rD6CWTKGUm58MguWC7L4KjlfNJmxxaHXnHRbaEjXPaRi9ztfmimIpAaBdBmreAZrZJYhLvOGG3CfA==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.4.5.tgz", + "integrity": "sha512-hCVFoPJP0d7vFCJKaWEsDMa6LcRFcEikQ8Cy6Vo+trS8xXwvwE+vIBqyuPozl4O/MYD9iOlzjgZFNwaUUgX0Jg==", "dev": true, "funding": { "type": "opencollective", @@ -8981,9 +8981,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.4.3.tgz", - "integrity": "sha512-d8kkZU4kqmNluuOx65l5H0L9lRn8Ji5rVxu+4MUCWrn82dxRLvVcFG0sfGUzOTNfX1/yajL2MxVJ2hx9fzLutQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.4.5.tgz", + "integrity": "sha512-/hGe8yuiWbT7L3ZsllmJPgxT9MEQE3k23FhliyKx6IGHsWoYaEsPYPZ9tygqtKY8RpqqMUKWz8+kbO79zUxaoQ==", "dev": true, "funding": { "type": "opencollective", @@ -9015,14 +9015,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.4.3.tgz", - "integrity": "sha512-gA7QfQSdDocNKP0KfrmIhD8ZgW5G4zZD/NL0OsATlkL3H/DehH3Ugjfffh7Ao2JZRXogHp8p9EQCVfPW7iKgBQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.4.5.tgz", + "integrity": "sha512-JbhQXZF5sqS2c7Cf+vAtuKTdTSBDco+liUP2UGQFjqdacTRLVzxyj+YY2UH4aAQn7wpmnQ67iHnqFp0+fdYmAA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-common": "7.4.3", - "@storybook/csf-tools": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-common": "7.4.5", + "@storybook/csf-tools": "7.4.5", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -9035,9 +9035,9 @@ } }, "node_modules/@storybook/telemetry/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -9152,18 +9152,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.4.3.tgz", - "integrity": "sha512-JimHyatC5OnO1BIbhQQKb6216SpuYBxAqNHUkEhE/FhF1Fp2EnRybi1CGwGjqkZu2NqPDRttRDkDZj2SstOatQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.4.5.tgz", + "integrity": "sha512-bLmrxnM4LKm8DfawUd89/EgUpPLIu0iRnxGKSzuUO6Rc1NW0WsCb/OLDAMzC6Eu1Ga7qLKMdzDgBoHZxRv8MrA==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-client": "7.4.3", - "@storybook/docs-tools": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-client": "7.4.5", + "@storybook/docs-tools": "7.4.5", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.3", - "@storybook/preview-api": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/manager-api": "7.4.5", + "@storybook/preview-api": "7.4.5", + "@storybook/types": "7.4.5", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, @@ -9179,15 +9179,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.4.3.tgz", - "integrity": "sha512-lZbZleoMVr8pga1HRjsyNqH10ZHC9RseH7lofkQgVZ9FYnHHSbwpaMb7L7QTd+iV06hgDGns62MLkJ1X35LzWg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.4.5.tgz", + "integrity": "sha512-J90WA/CKNUvDu962W1SnzsXmttIS8im0i9Op8zjMPAHq+nVzfXB0Qb/LUR3RbQHFU01V7BFaWgrA0CdINeN04g==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.4.3", - "@storybook/core-server": "7.4.3", - "@storybook/node-logger": "7.4.3", - "@storybook/web-components": "7.4.3", + "@storybook/builder-vite": "7.4.5", + "@storybook/core-server": "7.4.5", + "@storybook/node-logger": "7.4.5", + "@storybook/web-components": "7.4.5", "magic-string": "^0.30.0" }, "engines": { @@ -9215,13 +9215,13 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/channels": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.3.tgz", - "integrity": "sha512-lIoRX3EV0wKPX8ojIrJUtsOv4+Gv8r9pfJpam/NdyYd+rs0AjDK13ieINRfBMnJkfjsWa3vmZtGMBEVvDKwTMw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.5.tgz", + "integrity": "sha512-zWPZn4CxPFXsrrSRQ9JD8GmTeWeFYgr3sTBpe23hnhYookCXVNJ6AcaXogrT9b2ALfbB6MiFDbZIHHTgIgbWpg==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -9233,9 +9233,9 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/client-logger": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.3.tgz", - "integrity": "sha512-Nhngo9X4HjN00aRhgIVGWbwkWPe0Fz8PySuxnd8nAxSsz7KpdLFyYo2TbZZ3TX51FG5Fxcb0G5OHuunItP7EWQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.5.tgz", + "integrity": "sha512-Bn6eTAjhPDUfLpvuxhKkpDpOtkadfkSmkBNBZRu3r0Dzk2J1nNyKV5K6D8dOU4PFVof4z/gXYj5bktT29jKsmw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -9246,9 +9246,9 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/core-events": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.3.tgz", - "integrity": "sha512-FRfipCijMnVbGxL1ZjOLM836lyd/TGQcUFeVjTQWW/+pIGHELqDHiYeq68hqoGTKl0G0np59CJPWYTUZA4Dl9Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.5.tgz", + "integrity": "sha512-Jzy/adSC95saYCZlgXE5j7jmiMLAXYpnBFBxEtBdXwSWEBb0zt21n1nyWBEAv9s/k2gqDXlPHKHeL5Mn6y40zA==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -9259,19 +9259,19 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/manager-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.3.tgz", - "integrity": "sha512-o5oiL2cJKlY+HNBCdUo5QKT8yXTyYYvBKibSS3YfDKcjeR9RXP+RhdF5lLLh6TzPwfdtLrXQoVI4A/61v2kurQ==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.5.tgz", + "integrity": "sha512-8Hdh5Tutet8xRy2fAknczfvpshz09eVnLd8m34vcFceUOYvEnvDbWerufhlEzovsF4v7U32uqbDHKdKTamWEQQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.3", - "@storybook/theming": "7.4.3", - "@storybook/types": "7.4.3", + "@storybook/router": "7.4.5", + "@storybook/theming": "7.4.5", + "@storybook/types": "7.4.5", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -9290,17 +9290,17 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/preview-api": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.3.tgz", - "integrity": "sha512-qKwfH2+qN1Zpz2UX6dQLiTU5x2JH3o/+jOY4GYF6c3atTm5WAu1OvCYAJVb6MdXfAhZNuPwDKnJR8VmzWplWBg==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.5.tgz", + "integrity": "sha512-6xXQZPyilkGVddfZBI7tMbMMgOyIoZTYgTnwSPTMsXxO0f0TvtNDmGdwhn0I1nREHKfiQGpcQe6gwddEMnGtSg==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", - "@storybook/client-logger": "7.4.3", - "@storybook/core-events": "7.4.3", + "@storybook/channels": "7.4.5", + "@storybook/client-logger": "7.4.5", + "@storybook/core-events": "7.4.5", "@storybook/csf": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.3", + "@storybook/types": "7.4.5", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -9316,12 +9316,12 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/router": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.3.tgz", - "integrity": "sha512-1ab1VTYzzOsBGKeT8xm1kLriIsIsiB/l3t7DdARJxLmPbddKyyXE018w17gfrARCWQ8SM99Ko6+pLmlZ2sm8ug==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.5.tgz", + "integrity": "sha512-IM4IhiPiXsx3FAUeUOAB47uiuUS8Yd37VQcNlXLBO28GgHoTSYOrjS+VTGLIV5cAGKr8+H5pFB+q35BnlFUpkQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -9335,13 +9335,13 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/theming": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.3.tgz", - "integrity": "sha512-u5wLwWmhGcTmkcs6f2wDGv+w8wzwbNJat0WaIIbwdJfX7arH6nO5HkBhNxvl6FUFxX0tovp/e9ULzxVPc356jw==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.5.tgz", + "integrity": "sha512-QSIJDIMzOegzlhubIBaYIovf4mlf+AVL0SmQOskPS8GZ6s9t77yUUI6gZTEjO+S4eB3djXRsfTTijQ8+z4XmRA==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.3", + "@storybook/client-logger": "7.4.5", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -9355,12 +9355,12 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/types": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.3.tgz", - "integrity": "sha512-DrHC1hIiw9TqDILLokDnvbUPNxGz5iJaYFEv30uvYE0s9MvgEUPblCChEUjaHOps7zQTznMPf8ULfoXlgqxk2A==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.5.tgz", + "integrity": "sha512-DTWFNjfRTpncjufDoUs0QnNkgHG2qThGKWL1D6sO18cYI02zWPyHWD8/cbqlvtT7XIGe3s1iUEfCTdU5GcwWBA==", "dev": true, "dependencies": { - "@storybook/channels": "7.4.3", + "@storybook/channels": "7.4.5", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -9982,15 +9982,15 @@ "dev": true }, "node_modules/@types/ejs": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.2.tgz", - "integrity": "sha512-ZmiaE3wglXVWBM9fyVC17aGPkLo/UgaOjEiI2FXQfyczrCefORPxIe+2dVmnmk3zkVIbizjrlQzmPGhSYGXG5g==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.3.tgz", + "integrity": "sha512-mv5T/JI/bu+pbfz1o+TLl1NF0NIBbjS0Vl6Ppz1YY9DkXfzZT0lelXpfS5i3ZS3U/p90it7uERQpBvLYoK8e4A==", "dev": true }, "node_modules/@types/emscripten": { - "version": "1.39.7", - "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.7.tgz", - "integrity": "sha512-tLqYV94vuqDrXh515F/FOGtBcRMTPGvVV1LzLbtYDcQmmhtpf/gLYf+hikBbQk8MzOHNz37wpFfJbYAuSn8HqA==", + "version": "1.39.8", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.8.tgz", + "integrity": "sha512-Rk0HKcMXFUuqT32k1kXHZWgxiMvsyYsmlnjp0rLKa0MMoqXLE3T9dogDBTRfuc3SAsXu97KD3k4SKR1lHqd57w==", "dev": true }, "node_modules/@types/estree": { @@ -14537,9 +14537,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.216.1", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.216.1.tgz", - "integrity": "sha512-wstw46/C/8bRv/8RySCl15lK376j8DHxm41xFjD9eVL+jSS1UmVpbdLdA0LzGuS2v5uGgQiBLEj6mgSJQwW+MA==", + "version": "0.217.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.217.0.tgz", + "integrity": "sha512-hEa5n0dta1RcaDwJDWbnyelw07PK7+Vx0f9kDht28JOt2hXgKdKGaT3wM45euWV2DxOXtzDSTaUgGSD/FPvC2Q==", "dev": true, "engines": { "node": ">=0.4.0" @@ -21095,12 +21095,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.4.3.tgz", - "integrity": "sha512-afp7trR23jKt8ruGMPjkNAk3A/4CaLo20iPWAODznlF7u+XWnqGm1S+ZUiJFf13Jzj8jmJf/d7/xDHxY3qVMUA==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.4.5.tgz", + "integrity": "sha512-J7fidphTJ6SJHlR8f/USQE30K6ipbynLVLsTOz0bNYW/0Ua2t9u6dAYGbbq6bLikl3zxzQbdm9lXMUzmaYAdIA==", "dev": true, "dependencies": { - "@storybook/cli": "7.4.3" + "@storybook/cli": "7.4.5" }, "bin": { "sb": "index.js", diff --git a/web/package.json b/web/package.json index 8808cbe46..5b15d9afa 100644 --- a/web/package.json +++ b/web/package.json @@ -79,11 +79,11 @@ "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-terser": "^0.4.3", "@rollup/plugin-typescript": "^11.1.3", - "@storybook/addon-essentials": "^7.4.3", - "@storybook/addon-links": "^7.4.3", + "@storybook/addon-essentials": "^7.4.5", + "@storybook/addon-links": "^7.4.5", "@storybook/blocks": "^7.1.1", - "@storybook/web-components": "^7.4.3", - "@storybook/web-components-vite": "^7.4.3", + "@storybook/web-components": "^7.4.5", + "@storybook/web-components-vite": "^7.4.5", "@trivago/prettier-plugin-sort-imports": "^4.2.0", "@types/chart.js": "^2.9.38", "@types/codemirror": "5.60.10", @@ -109,7 +109,7 @@ "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.4.3", + "storybook": "^7.4.5", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^1.2.1", "tslib": "^2.6.2", From 385f949238c083ebb5c3bd71ec540bbb19acd34e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:27:06 +0200 Subject: [PATCH 08/41] web: bump the babel group in /web with 3 updates (#6971) Bumps the babel group in /web with 3 updates: [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core), [@babel/plugin-proposal-decorators](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-proposal-decorators) and [@babel/preset-typescript](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-typescript). Updates `@babel/core` from 7.22.20 to 7.23.0 - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.0/packages/babel-core) Updates `@babel/plugin-proposal-decorators` from 7.22.15 to 7.23.0 - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.0/packages/babel-plugin-proposal-decorators) Updates `@babel/preset-typescript` from 7.22.15 to 7.23.0 - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.0/packages/babel-preset-typescript) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: babel - dependency-name: "@babel/plugin-proposal-decorators" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: babel - dependency-name: "@babel/preset-typescript" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: babel ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 128 ++++++++++++++++++++++-------------------- web/package.json | 6 +- 2 files changed, 70 insertions(+), 64 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 90460b832..f1831c35d 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -43,14 +43,14 @@ "yaml": "^2.3.2" }, "devDependencies": { - "@babel/core": "^7.22.20", + "@babel/core": "^7.23.0", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-decorators": "^7.22.15", + "@babel/plugin-proposal-decorators": "^7.23.0", "@babel/plugin-transform-private-methods": "^7.22.5", "@babel/plugin-transform-private-property-in-object": "^7.22.11", "@babel/plugin-transform-runtime": "^7.22.15", "@babel/preset-env": "^7.22.20", - "@babel/preset-typescript": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", "@hcaptcha/types": "^1.0.3", "@jackfranklin/rollup-plugin-markdown": "^0.4.0", "@jeysal/storybook-addon-css-user-preferences": "^0.2.0", @@ -170,22 +170,22 @@ } }, "node_modules/@babel/core": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.20.tgz", - "integrity": "sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.0.tgz", + "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", + "@babel/generator": "^7.23.0", "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.22.20", - "@babel/helpers": "^7.22.15", - "@babel/parser": "^7.22.16", + "@babel/helper-module-transforms": "^7.23.0", + "@babel/helpers": "^7.23.0", + "@babel/parser": "^7.23.0", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.20", - "@babel/types": "^7.22.19", - "convert-source-map": "^1.7.0", + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", @@ -199,13 +199,19 @@ "url": "https://opencollective.com/babel" } }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/@babel/generator": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", - "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", + "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15", + "@babel/types": "^7.23.0", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -320,13 +326,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", - "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -369,9 +375,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz", - "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", + "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.22.20", @@ -426,13 +432,13 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", "@babel/helper-optimise-call-expression": "^7.22.5" }, "engines": { @@ -520,14 +526,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", - "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", + "version": "7.23.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", + "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", "dev": true, "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.23.0", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" @@ -548,9 +554,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -609,14 +615,14 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.15.tgz", - "integrity": "sha512-kc0VvbbUyKelvzcKOSyQUSVVXS5pT3UhRB0e3c9An86MvLqs+gx0dN4asllrDluqSa3m9YyooXKGOFVomnyFkg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.0.tgz", + "integrity": "sha512-kYsT+f5ARWF6AdFmqoEEp+hpqxEB8vGmRWfw2aj78M2vTwS2uHW91EF58iFm1Z9U8Y/RrLu2XKJn46P9ca1b0w==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-split-export-declaration": "^7.22.6", "@babel/plugin-syntax-decorators": "^7.22.10" }, @@ -1342,12 +1348,12 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz", - "integrity": "sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", + "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -1921,15 +1927,15 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.15.tgz", - "integrity": "sha512-HblhNmh6yM+cU4VwbBRpxFhxsTdfS1zsvH9W+gEjD0ARV9+8B4sNfpI6GuhePti84nuvhiwKS539jKPFHskA9A==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.0.tgz", + "integrity": "sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-option": "^7.22.15", "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", "@babel/plugin-transform-typescript": "^7.22.15" }, "engines": { @@ -2121,19 +2127,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz", - "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", + "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.22.15", + "@babel/generator": "^7.23.0", "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.22.16", - "@babel/types": "^7.22.19", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2142,13 +2148,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.19", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", - "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", + "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.19", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { diff --git a/web/package.json b/web/package.json index 5b15d9afa..cbb2ddf4e 100644 --- a/web/package.json +++ b/web/package.json @@ -61,14 +61,14 @@ "yaml": "^2.3.2" }, "devDependencies": { - "@babel/core": "^7.22.20", + "@babel/core": "^7.23.0", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-decorators": "^7.22.15", + "@babel/plugin-proposal-decorators": "^7.23.0", "@babel/plugin-transform-private-methods": "^7.22.5", "@babel/plugin-transform-private-property-in-object": "^7.22.11", "@babel/plugin-transform-runtime": "^7.22.15", "@babel/preset-env": "^7.22.20", - "@babel/preset-typescript": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", "@hcaptcha/types": "^1.0.3", "@jackfranklin/rollup-plugin-markdown": "^0.4.0", "@jeysal/storybook-addon-css-user-preferences": "^0.2.0", From 01ea6a402f86004f55351e347c1f39f4c19cbc36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 11:28:10 +0200 Subject: [PATCH 09/41] web: bump the eslint group in /web with 1 update (#6969) Bumps the eslint group in /web with 1 update: [eslint](https://github.com/eslint/eslint). - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.49.0...v8.50.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 16 ++++++++-------- web/package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index f1831c35d..ed35cff72 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -75,7 +75,7 @@ "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", - "eslint": "^8.49.0", + "eslint": "^8.50.0", "eslint-config-google": "^0.14.0", "eslint-plugin-custom-elements": "0.0.8", "eslint-plugin-lit": "^1.9.1", @@ -2796,9 +2796,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.49.0.tgz", - "integrity": "sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.50.0.tgz", + "integrity": "sha512-NCC3zz2+nvYd+Ckfh87rA47zfu2QsQpvc6k1yzTk+b9KzRj0wkGa8LSoGOXN6Zv4lRf/EIoZ80biDh9HOI+RNQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -13396,15 +13396,15 @@ } }, "node_modules/eslint": { - "version": "8.49.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.49.0.tgz", - "integrity": "sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==", + "version": "8.50.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.50.0.tgz", + "integrity": "sha512-FOnOGSuFuFLv/Sa+FDVRZl4GGVAAFFi8LecRsI5a1tMO5HIE8nCm4ivAlzt4dT3ol/PaaGC0rJEEXQmHJBGoOg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.49.0", + "@eslint/js": "8.50.0", "@humanwhocodes/config-array": "^0.11.11", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", diff --git a/web/package.json b/web/package.json index cbb2ddf4e..1ebfebd50 100644 --- a/web/package.json +++ b/web/package.json @@ -93,7 +93,7 @@ "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", - "eslint": "^8.49.0", + "eslint": "^8.50.0", "eslint-config-google": "^0.14.0", "eslint-plugin-custom-elements": "0.0.8", "eslint-plugin-lit": "^1.9.1", From 07ca3185354a40be9fc12b417282d4ced02c6077 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 12:42:54 +0200 Subject: [PATCH 10/41] website: bump remark-github from 11.2.4 to 12.0.0 in /website (#6963) * website: bump remark-github from 11.2.4 to 12.0.0 in /website Bumps [remark-github](https://github.com/remarkjs/remark-github) from 11.2.4 to 12.0.0. - [Release notes](https://github.com/remarkjs/remark-github/releases) - [Commits](https://github.com/remarkjs/remark-github/compare/11.2.4...12.0.0) --- updated-dependencies: - dependency-name: remark-github dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * fix build Signed-off-by: Jens Langhammer --------- Signed-off-by: dependabot[bot] Signed-off-by: Jens Langhammer Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jens Langhammer --- website/docusaurus.config.js | 6 +- website/docusaurus.docs-only.js | 6 +- website/package-lock.json | 448 +++++++++++++++++++------------- website/package.json | 2 +- 4 files changed, 266 insertions(+), 196 deletions(-) diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 70ca230ca..1392316d2 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -3,6 +3,7 @@ const fs = require("fs").promises; /** @type {import('@docusaurus/types').DocusaurusConfig} */ module.exports = async function () { const remarkGithub = (await import("remark-github")).default; + const defaultBuildUrl = (await import("remark-github")).defaultBuildUrl; const footerEmail = await fs.readFile("src/footer.html", { encoding: "utf-8", }); @@ -137,10 +138,7 @@ module.exports = async function () { { repository: "goauthentik/authentik", // Only replace issues and PR links - buildUrl: function ( - values, - defaultBuildUrl, - ) { + buildUrl: function (values) { return values.type === "issue" ? defaultBuildUrl(values) : false; diff --git a/website/docusaurus.docs-only.js b/website/docusaurus.docs-only.js index a619b21b5..08db9c3c5 100644 --- a/website/docusaurus.docs-only.js +++ b/website/docusaurus.docs-only.js @@ -2,6 +2,7 @@ const config = require("./docusaurus.config"); module.exports = async function () { const remarkGithub = (await import("remark-github")).default; + const defaultBuildUrl = (await import("remark-github")).defaultBuildUrl; const mainConfig = await config(); return { title: "authentik", @@ -71,10 +72,7 @@ module.exports = async function () { { repository: "goauthentik/authentik", // Only replace issues and PR links - buildUrl: function ( - values, - defaultBuildUrl, - ) { + buildUrl: function (values) { return values.type === "issue" ? defaultBuildUrl(values) : false; diff --git a/website/package-lock.json b/website/package-lock.json index 82ce6c353..87c6c49f6 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -23,7 +23,7 @@ "react-feather": "^2.0.10", "react-toggle": "^4.1.3", "react-tooltip": "^5.21.4", - "remark-github": "^11.2.4" + "remark-github": "^12.0.0" }, "devDependencies": { "prettier": "3.0.3" @@ -8503,20 +8503,33 @@ } }, "node_modules/mdast-util-find-and-replace": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-find-and-replace/node_modules/@types/mdast": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.0.tgz", + "integrity": "sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/@types/unist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", + "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==" + }, "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", @@ -8529,11 +8542,11 @@ } }, "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -8541,12 +8554,12 @@ } }, "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", @@ -10788,74 +10801,41 @@ } }, "node_modules/remark-github": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-11.2.4.tgz", - "integrity": "sha512-GJjWFpwqdrHHhPWqMbb8+lqFLiHQ9pCzUmXmRrhMFXGpYov5n2ljsZzuWgXlfzArfQYkiKIZczA2I8IHYMHqCA==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-12.0.0.tgz", + "integrity": "sha512-ByefQKFN184LeiGRCabfl7zUJsdlMYWEhiLX1gpmQ11yFg6xSuOTW7LVCv0oc1x+YvUMJW23NU36sJX2RWGgvg==", "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "mdast-util-to-string": "^3.0.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "to-vfile": "^8.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-github/node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/remark-github/node_modules/@types/mdast": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.0.tgz", + "integrity": "sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==", + "dependencies": { + "@types/unist": "*" } }, - "node_modules/remark-github/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/remark-github/node_modules/@types/unist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", + "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==" }, "node_modules/remark-github/node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-github/node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/remark-github/node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^4.0.0" }, "funding": { "type": "opencollective", @@ -10863,11 +10843,11 @@ } }, "node_modules/remark-github/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -10875,11 +10855,11 @@ } }, "node_modules/remark-github/node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -10887,13 +10867,13 @@ } }, "node_modules/remark-github/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", @@ -10901,12 +10881,12 @@ } }, "node_modules/remark-github/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", @@ -10914,14 +10894,13 @@ } }, "node_modules/remark-github/node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", @@ -10929,12 +10908,12 @@ } }, "node_modules/remark-github/node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", @@ -12373,6 +12352,62 @@ "node": ">=8.0" } }, + "node_modules/to-vfile": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-8.0.0.tgz", + "integrity": "sha512-IcmH1xB5576MJc9qcfEC/m/nQCFt3fzMHz45sSlgJyTWjRbKW1HAkJpuf3DgE57YzIlZcwcBZA5ENQbBo4aLkg==", + "dependencies": { + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/to-vfile/node_modules/@types/unist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", + "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==" + }, + "node_modules/to-vfile/node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/to-vfile/node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/to-vfile/node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -19968,36 +20003,49 @@ } }, "mdast-util-find-and-replace": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", "requires": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "dependencies": { + "@types/mdast": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.0.tgz", + "integrity": "sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==", + "requires": { + "@types/unist": "*" + } + }, + "@types/unist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", + "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==" + }, "escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==" }, "unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "requires": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" } }, "unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" } } } @@ -21539,107 +21587,91 @@ "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==" }, "remark-github": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-11.2.4.tgz", - "integrity": "sha512-GJjWFpwqdrHHhPWqMbb8+lqFLiHQ9pCzUmXmRrhMFXGpYov5n2ljsZzuWgXlfzArfQYkiKIZczA2I8IHYMHqCA==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/remark-github/-/remark-github-12.0.0.tgz", + "integrity": "sha512-ByefQKFN184LeiGRCabfl7zUJsdlMYWEhiLX1gpmQ11yFg6xSuOTW7LVCv0oc1x+YvUMJW23NU36sJX2RWGgvg==", "requires": { - "@types/mdast": "^3.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "mdast-util-to-string": "^3.0.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "mdast-util-to-string": "^4.0.0", + "to-vfile": "^8.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, "dependencies": { - "bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" - }, - "is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==" - }, - "mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "@types/mdast": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.0.tgz", + "integrity": "sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==", "requires": { - "@types/mdast": "^3.0.0" + "@types/unist": "*" } }, - "trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" + "@types/unist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", + "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==" }, - "unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "requires": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" + "@types/mdast": "^4.0.0" } }, "unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "requires": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" } }, "unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "requires": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" } }, "unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" } }, "unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" } }, "vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" } }, "vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" } } } @@ -22717,6 +22749,48 @@ "is-number": "^7.0.0" } }, + "to-vfile": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-8.0.0.tgz", + "integrity": "sha512-IcmH1xB5576MJc9qcfEC/m/nQCFt3fzMHz45sSlgJyTWjRbKW1HAkJpuf3DgE57YzIlZcwcBZA5ENQbBo4aLkg==", + "requires": { + "vfile": "^6.0.0" + }, + "dependencies": { + "@types/unist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.0.tgz", + "integrity": "sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==" + }, + "unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "requires": { + "@types/unist": "^3.0.0" + } + }, + "vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "requires": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + } + }, + "vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "requires": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + } + } + } + }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", diff --git a/website/package.json b/website/package.json index 6b6f76401..2528cf49f 100644 --- a/website/package.json +++ b/website/package.json @@ -30,7 +30,7 @@ "react-feather": "^2.0.10", "react-toggle": "^4.1.3", "react-tooltip": "^5.21.4", - "remark-github": "^11.2.4" + "remark-github": "^12.0.0" }, "browserslist": { "production": [ From 80e86c52e7480d3946c2dfc324e98464da889662 Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 25 Sep 2023 12:43:24 +0200 Subject: [PATCH 11/41] web/flows: improve WebAuthn error messages (#6957) * web/flows: improve WebAuthn error messages Signed-off-by: Jens Langhammer * include localhost Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- Makefile | 2 +- web/src/common/helpers/webauthn.ts | 12 ++++ .../AuthenticatorValidateStageWebAuthn.ts | 2 + .../WebAuthnAuthenticatorRegisterStage.ts | 2 + web/xliff/de.xlf | 21 ++++++ web/xliff/en.xlf | 21 ++++++ web/xliff/es.xlf | 21 ++++++ web/xliff/fr_FR.xlf | 21 ++++++ web/xliff/pl.xlf | 21 ++++++ web/xliff/pseudo-LOCALE.xlf | 21 ++++++ web/xliff/tr.xlf | 21 ++++++ web/xliff/zh-Hans.xlf | 67 ++++++++++++------- web/xliff/zh-Hant.xlf | 21 ++++++ web/xliff/zh_TW.xlf | 21 ++++++ 14 files changed, 250 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index 4750b17ef..f04e8dac8 100644 --- a/Makefile +++ b/Makefile @@ -129,7 +129,7 @@ gen: gen-build gen-clean gen-client-ts web-build: web-install cd web && npm run build -web: web-lint-fix web-lint web-check-compile +web: web-lint-fix web-lint web-check-compile web-i18n-extract web-install: cd web && npm ci diff --git a/web/src/common/helpers/webauthn.ts b/web/src/common/helpers/webauthn.ts index 01b1f05f6..c10edff17 100644 --- a/web/src/common/helpers/webauthn.ts +++ b/web/src/common/helpers/webauthn.ts @@ -1,5 +1,7 @@ import * as base64js from "base64-js"; +import { msg } from "@lit/localize"; + export function b64enc(buf: Uint8Array): string { return base64js.fromByteArray(buf).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, ""); } @@ -14,6 +16,16 @@ export function u8arr(input: string): Uint8Array { ); } +export function checkWebAuthnSupport() { + if ("credentials" in navigator) { + return; + } + if (window.location.protocol === "http:" && window.location.hostname !== "localhost") { + throw new Error(msg("WebAuthn requires this page to be accessed via HTTPS.")); + } + throw new Error(msg("WebAuthn not supported by browser.")); +} + /** * Transforms items in the credentialCreateOptions generated on the server * into byte arrays expected by the navigator.credentials.create() call diff --git a/web/src/flow/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts b/web/src/flow/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts index fdb749981..12e9b0a60 100644 --- a/web/src/flow/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts +++ b/web/src/flow/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts @@ -1,4 +1,5 @@ import { + checkWebAuthnSupport, transformAssertionForServer, transformCredentialRequestOptions, } from "@goauthentik/common/helpers/webauthn"; @@ -57,6 +58,7 @@ export class AuthenticatorValidateStageWebAuthn extends BaseStage< // request the authenticator to create an assertion signature using the // credential private key let assertion; + checkWebAuthnSupport(); try { assertion = await navigator.credentials.get({ publicKey: this.transformedCredentialRequestOptions, diff --git a/web/src/flow/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts b/web/src/flow/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts index a82f10bce..dd056da66 100644 --- a/web/src/flow/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts +++ b/web/src/flow/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts @@ -1,5 +1,6 @@ import { Assertion, + checkWebAuthnSupport, transformCredentialCreateOptions, transformNewAssertionForServer, } from "@goauthentik/common/helpers/webauthn"; @@ -47,6 +48,7 @@ export class WebAuthnAuthenticatorRegisterStage extends BaseStage< if (!this.challenge) { return; } + checkWebAuthnSupport(); // request the authenticator(s) to create a new credential keypair. let credential; try { diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf index 593f5c9b2..dbf951574 100644 --- a/web/xliff/de.xlf +++ b/web/xliff/de.xlf @@ -5904,6 +5904,27 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index fbfbbb585..658eba084 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -6218,6 +6218,27 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index ab6bb5d56..cc46a33f8 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -5812,6 +5812,27 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. diff --git a/web/xliff/fr_FR.xlf b/web/xliff/fr_FR.xlf index 9bb71da72..861d7ab89 100644 --- a/web/xliff/fr_FR.xlf +++ b/web/xliff/fr_FR.xlf @@ -5920,6 +5920,27 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index e3a653154..99d097f04 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -6051,6 +6051,27 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index e2232c6a8..dd53b9b84 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -6153,6 +6153,27 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index 2b842266e..34c746642 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -5805,6 +5805,27 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index e3767a0cf..42e46926f 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -613,9 +613,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1067,8 +1067,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1814,8 +1814,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -3238,8 +3238,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -4031,8 +4031,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -4041,8 +4041,8 @@ doesn't pass when either or both of the selected options are equal or above the - Format: "weeks=3;days=2;hours=3,seconds=2". - 格式:"weeks=3;days=2;hours=3,seconds=2"。 + Format: "weeks=3;days=2;hours=3,seconds=2". + 格式:"weeks=3;days=2;hours=3,seconds=2"。 @@ -4238,10 +4238,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5342,7 +5342,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5677,10 +5677,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5729,7 +5729,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7790,7 +7790,28 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential 避免:身份验证器不应该创建专用凭据 + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. - \ No newline at end of file + diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index 4861d6f56..2919040eb 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -5857,6 +5857,27 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index e3640fe0c..a4c2ec374 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -5856,6 +5856,27 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential + + + Lock the user out of this system + + + Allow the user to log in and use this system + + + Temporarily assume the identity of this user + + + Enter a new password for this user + + + Create a link for this user to reset their password + + + WebAuthn requires this page to be accessed via HTTPS. + + + WebAuthn not supported by browser. From ea264ffc134546873da7c620b3fe70c48c1c5ce5 Mon Sep 17 00:00:00 2001 From: okami <43506079+okamidash@users.noreply.github.com> Date: Mon, 25 Sep 2023 15:38:50 +0100 Subject: [PATCH 12/41] root: remove outdated sponsorship section on readme (#6973) Improve reliability somewhat Signed-off-by: okami <43506079+okamidash@users.noreply.github.com> --- README.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/README.md b/README.md index 360455a22..8f5f9c2a9 100644 --- a/README.md +++ b/README.md @@ -41,15 +41,3 @@ See [SECURITY.md](SECURITY.md) ## Adoption and Contributions Your organization uses authentik? We'd love to add your logo to the readme and our website! Email us @ hello@goauthentik.io or open a GitHub Issue/PR! For more information on how to contribute to authentik, please refer to our [CONTRIBUTING.md file](./CONTRIBUTING.md). - -## Sponsors - -This project is proudly sponsored by: - -

- - - -

- -DigitalOcean provides development and testing resources for authentik. From ce1a071d1651f6e78dd81666e3071be5e3482e4d Mon Sep 17 00:00:00 2001 From: Jens L Date: Mon, 25 Sep 2023 16:59:45 +0200 Subject: [PATCH 13/41] web/user: fix unenrollment flow not being shown (#6972) Signed-off-by: Jens Langhammer --- .../user-settings/details/UserSettingsFlowExecutor.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/web/src/user/user-settings/details/UserSettingsFlowExecutor.ts b/web/src/user/user-settings/details/UserSettingsFlowExecutor.ts index 2a369e1a6..e7aa36343 100644 --- a/web/src/user/user-settings/details/UserSettingsFlowExecutor.ts +++ b/web/src/user/user-settings/details/UserSettingsFlowExecutor.ts @@ -9,7 +9,7 @@ import "@goauthentik/user/user-settings/details/stages/prompt/PromptStage"; import { msg } from "@lit/localize"; import { CSSResult, TemplateResult, html } from "lit"; -import { customElement, property } from "lit/decorators.js"; +import { customElement, property, state } from "lit/decorators.js"; import { unsafeHTML } from "lit/directives/unsafe-html.js"; import PFButton from "@patternfly/patternfly/components/Button/button.css"; @@ -21,6 +21,7 @@ import PFBase from "@patternfly/patternfly/patternfly-base.css"; import { ChallengeChoices, ChallengeTypes, + CurrentTenant, FlowChallengeResponseRequest, FlowErrorChallenge, FlowsApi, @@ -34,6 +35,9 @@ export class UserSettingsFlowExecutor extends AKElement implements StageHost { @property() flowSlug?: string; + @state() + tenant?: CurrentTenant; + private _challenge?: ChallengeTypes; @property({ attribute: false }) @@ -83,8 +87,8 @@ export class UserSettingsFlowExecutor extends AKElement implements StageHost { } firstUpdated(): void { - const tenant = rootInterface()?.tenant; - this.flowSlug = tenant?.flowUserSettings; + this.tenant = rootInterface()?.tenant; + this.flowSlug = this.tenant?.flowUserSettings; if (!this.flowSlug) { return; } From 2398157b0b0c011bb887bae1fde59c69fb44bcc3 Mon Sep 17 00:00:00 2001 From: Rebecca Dodd <82806852+rebeccadee@users.noreply.github.com> Date: Mon, 25 Sep 2023 22:08:30 +0100 Subject: [PATCH 14/41] website/blogs: Swap em dash and hyphen on blog post (#6978) Swap em dash and hyphen Signed-off-by: Rebecca Dodd <82806852+rebeccadee@users.noreply.github.com> --- .../item.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/blog/2023-09-14-black-box-security-software-cant-keep-up-with-open-source/item.md b/website/blog/2023-09-14-black-box-security-software-cant-keep-up-with-open-source/item.md index aa62569f2..74cdca36f 100644 --- a/website/blog/2023-09-14-black-box-security-software-cant-keep-up-with-open-source/item.md +++ b/website/blog/2023-09-14-black-box-security-software-cant-keep-up-with-open-source/item.md @@ -25,7 +25,7 @@ image: ./image1.jpg --- -Legacy security vendors that rely on black box development can't keep up with open source. It's an oft—discussed topic-the ability of open source communities to quickly jump in and collectively solve problems and innovate solutions—but it is equally believed that "serious" security software companies have proprietary software. +Legacy security vendors that rely on black box development can't keep up with open source. It's an oft-discussed topic—the ability of open source communities to quickly jump in and collectively solve problems and innovate solutions—but it is equally believed that "serious" security software companies have proprietary software. In this blog, we will take a closer look at the pros and cons of the various source availability types of SSO and other security software. From 036a1cbde8aa84fe37406412f9ad81fb8eb9e781 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 23:18:49 +0200 Subject: [PATCH 15/41] translate: Updates for file web/xliff/en.xlf in zh-Hans on branch main (#6976) Translate web/xliff/en.xlf in zh-Hans 100% translated source file: 'web/xliff/en.xlf' on 'zh-Hans'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh-Hans.xlf | 53 ++++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 42e46926f..1d2ff7720 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -613,9 +613,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1067,8 +1067,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1814,8 +1814,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -3238,8 +3238,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -4031,8 +4031,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -4041,8 +4041,8 @@ doesn't pass when either or both of the selected options are equal or above the - Format: "weeks=3;days=2;hours=3,seconds=2". - 格式:"weeks=3;days=2;hours=3,seconds=2"。 + Format: "weeks=3;days=2;hours=3,seconds=2". + 格式:"weeks=3;days=2;hours=3,seconds=2"。 @@ -4238,10 +4238,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -5342,7 +5342,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5677,10 +5677,10 @@ doesn't pass when either or both of the selected options are equal or above the - ("", of type ) + ("", of type ) - (" - ",类型为 + (" + ",类型为 @@ -5729,7 +5729,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7793,25 +7793,32 @@ Bindings to groups/users are checked against the user of the event. Lock the user out of this system + 在此系统中锁定用户 Allow the user to log in and use this system + 允许用户登录并使用此系统 Temporarily assume the identity of this user + 临时假定此用户的身份 Enter a new password for this user + 为此用户输入新密码 Create a link for this user to reset their password + 为此用户创建一个重置密码链接 WebAuthn requires this page to be accessed via HTTPS. + WebAuthn 需要此页面通过 HTTPS 访问。 WebAuthn not supported by browser. + 浏览器不支持 WebAuthn。 - + \ No newline at end of file From 0d6c4c41fdb7cdc3164a27307a8268cefdd60c68 Mon Sep 17 00:00:00 2001 From: "transifex-integration[bot]" <43880903+transifex-integration[bot]@users.noreply.github.com> Date: Mon, 25 Sep 2023 23:19:06 +0200 Subject: [PATCH 16/41] translate: Updates for file web/xliff/en.xlf in zh_CN on branch main (#6975) Translate web/xliff/en.xlf in zh_CN 100% translated source file: 'web/xliff/en.xlf' on 'zh_CN'. Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com> --- web/xliff/zh_CN.xlf | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/web/xliff/zh_CN.xlf b/web/xliff/zh_CN.xlf index 113c3491f..acee9dc6b 100644 --- a/web/xliff/zh_CN.xlf +++ b/web/xliff/zh_CN.xlf @@ -7790,6 +7790,34 @@ Bindings to groups/users are checked against the user of the event. Discouraged: The authenticator should not create a dedicated credential 避免:身份验证器不应该创建专用凭据 + + + Lock the user out of this system + 在此系统中锁定用户 + + + Allow the user to log in and use this system + 允许用户登录并使用此系统 + + + Temporarily assume the identity of this user + 临时假定此用户的身份 + + + Enter a new password for this user + 为此用户输入新密码 + + + Create a link for this user to reset their password + 为此用户创建一个重置密码链接 + + + WebAuthn requires this page to be accessed via HTTPS. + WebAuthn 需要此页面通过 HTTPS 访问。 + + + WebAuthn not supported by browser. + 浏览器不支持 WebAuthn。 From 310099650f78c8f01854338a0e3bf0961ff99384 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:44:33 +0200 Subject: [PATCH 17/41] web: bump the eslint group in /web with 1 update (#6983) Bumps the eslint group in /web with 1 update: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin). - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.7.3/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: eslint ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 249 ++++++++++++++++++++++++++++++++++++++---- web/package.json | 2 +- 2 files changed, 231 insertions(+), 20 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index ed35cff72..d4e871a4f 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -70,7 +70,7 @@ "@types/chart.js": "^2.9.38", "@types/codemirror": "5.60.10", "@types/grecaptcha": "^3.0.5", - "@typescript-eslint/eslint-plugin": "^6.7.2", + "@typescript-eslint/eslint-plugin": "^6.7.3", "@typescript-eslint/parser": "^6.7.2", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", @@ -10299,16 +10299,16 @@ "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.2.tgz", - "integrity": "sha512-ooaHxlmSgZTM6CHYAFRlifqh1OAr3PAQEwi7lhYhaegbnXrnh7CDcHmc3+ihhbQC7H0i4JF0psI5ehzkF6Yl6Q==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.3.tgz", + "integrity": "sha512-vntq452UHNltxsaaN+L9WyuMch8bMd9CqJ3zhzTPXXidwbf5mqqKCVXEuvRZUqLJSTLeWE65lQwyXsRGnXkCTA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.2", - "@typescript-eslint/type-utils": "6.7.2", - "@typescript-eslint/utils": "6.7.2", - "@typescript-eslint/visitor-keys": "6.7.2", + "@typescript-eslint/scope-manager": "6.7.3", + "@typescript-eslint/type-utils": "6.7.3", + "@typescript-eslint/utils": "6.7.3", + "@typescript-eslint/visitor-keys": "6.7.3", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -10333,6 +10333,53 @@ } } }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz", + "integrity": "sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.3", + "@typescript-eslint/visitor-keys": "6.7.3" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz", + "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", + "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.3", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -10412,13 +10459,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.2.tgz", - "integrity": "sha512-36F4fOYIROYRl0qj95dYKx6kybddLtsbmPIYNK0OBeXv2j9L5nZ17j9jmfy+bIDHKQgn2EZX+cofsqi8NPATBQ==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.3.tgz", + "integrity": "sha512-Fc68K0aTDrKIBvLnKTZ5Pf3MXK495YErrbHb1R6aTpfK5OdSFj0rVN7ib6Tx6ePrZ2gsjLqr0s98NG7l96KSQw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.2", - "@typescript-eslint/utils": "6.7.2", + "@typescript-eslint/typescript-estree": "6.7.3", + "@typescript-eslint/utils": "6.7.3", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -10438,6 +10485,96 @@ } } }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz", + "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz", + "integrity": "sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.3", + "@typescript-eslint/visitor-keys": "6.7.3", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", + "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.3", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/@typescript-eslint/types": { "version": "6.7.2", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.2.tgz", @@ -10512,17 +10649,17 @@ "dev": true }, "node_modules/@typescript-eslint/utils": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.2.tgz", - "integrity": "sha512-ZCcBJug/TS6fXRTsoTkgnsvyWSiXwMNiPzBUani7hDidBdj1779qwM1FIAmpH4lvlOZNF3EScsxxuGifjpLSWQ==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.3.tgz", + "integrity": "sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.2", - "@typescript-eslint/types": "6.7.2", - "@typescript-eslint/typescript-estree": "6.7.2", + "@typescript-eslint/scope-manager": "6.7.3", + "@typescript-eslint/types": "6.7.3", + "@typescript-eslint/typescript-estree": "6.7.3", "semver": "^7.5.4" }, "engines": { @@ -10536,6 +10673,80 @@ "eslint": "^7.0.0 || ^8.0.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz", + "integrity": "sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.3", + "@typescript-eslint/visitor-keys": "6.7.3" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz", + "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz", + "integrity": "sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.3", + "@typescript-eslint/visitor-keys": "6.7.3", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", + "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.7.3", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", diff --git a/web/package.json b/web/package.json index 1ebfebd50..25671fbc6 100644 --- a/web/package.json +++ b/web/package.json @@ -88,7 +88,7 @@ "@types/chart.js": "^2.9.38", "@types/codemirror": "5.60.10", "@types/grecaptcha": "^3.0.5", - "@typescript-eslint/eslint-plugin": "^6.7.2", + "@typescript-eslint/eslint-plugin": "^6.7.3", "@typescript-eslint/parser": "^6.7.2", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", From c92f4161464738688aa2d2d2e9280c6727ea0499 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:46:29 +0200 Subject: [PATCH 18/41] web: bump @rollup/plugin-typescript from 11.1.3 to 11.1.4 in /web (#6985) Bumps [@rollup/plugin-typescript](https://github.com/rollup/plugins/tree/HEAD/packages/typescript) from 11.1.3 to 11.1.4. - [Changelog](https://github.com/rollup/plugins/blob/master/packages/typescript/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/typescript-v11.1.4/packages/typescript) --- updated-dependencies: - dependency-name: "@rollup/plugin-typescript" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index d4e871a4f..bf204864a 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -60,7 +60,7 @@ "@rollup/plugin-node-resolve": "^15.2.1", "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-terser": "^0.4.3", - "@rollup/plugin-typescript": "^11.1.3", + "@rollup/plugin-typescript": "^11.1.4", "@storybook/addon-essentials": "^7.4.5", "@storybook/addon-links": "^7.4.5", "@storybook/blocks": "^7.1.1", @@ -4464,9 +4464,9 @@ } }, "node_modules/@rollup/plugin-typescript": { - "version": "11.1.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.3.tgz", - "integrity": "sha512-8o6cNgN44kQBcpsUJTbTXMTtb87oR1O0zgP3Dxm71hrNgparap3VujgofEilTYJo+ivf2ke6uy3/E5QEaiRlDA==", + "version": "11.1.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.4.tgz", + "integrity": "sha512-WZRh5LBVLQXdKFICUId5J3eIpmjGURaBqntfg3GSZACgeOAFS+lOSMGTwfzDkELTaZVp/lWdMVNU3UkwCUBg/Q==", "dev": true, "dependencies": { "@rollup/pluginutils": "^5.0.1", diff --git a/web/package.json b/web/package.json index 25671fbc6..dc8186883 100644 --- a/web/package.json +++ b/web/package.json @@ -78,7 +78,7 @@ "@rollup/plugin-node-resolve": "^15.2.1", "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-terser": "^0.4.3", - "@rollup/plugin-typescript": "^11.1.3", + "@rollup/plugin-typescript": "^11.1.4", "@storybook/addon-essentials": "^7.4.5", "@storybook/addon-links": "^7.4.5", "@storybook/blocks": "^7.1.1", From 47f6ed48dd00e85cd76c95f742136d0783fec596 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:47:00 +0200 Subject: [PATCH 19/41] web: bump the sentry group in /web with 2 updates (#6982) Bumps the sentry group in /web with 2 updates: [@sentry/browser](https://github.com/getsentry/sentry-javascript) and [@sentry/tracing](https://github.com/getsentry/sentry-javascript). Updates `@sentry/browser` from 7.70.0 to 7.71.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.70.0...7.71.0) Updates `@sentry/tracing` from 7.70.0 to 7.71.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.70.0...7.71.0) --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry - dependency-name: "@sentry/tracing" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 76 +++++++++++++++++++++---------------------- web/package.json | 4 +-- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index bf204864a..c3d177cc9 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -24,8 +24,8 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.70.0", - "@sentry/tracing": "^7.70.0", + "@sentry/browser": "^7.71.0", + "@sentry/tracing": "^7.71.0", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.0", @@ -4512,13 +4512,13 @@ } }, "node_modules/@sentry-internal/tracing": { - "version": "7.70.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.70.0.tgz", - "integrity": "sha512-SpbE6wZhs6QwG2ORWCt8r28o1T949qkWx/KeRTCdK4Ub95PQ3Y3DgnqD8Wz//3q50Wt6EZDEibmz4t067g6PPg==", + "version": "7.71.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.71.0.tgz", + "integrity": "sha512-HRGsQOrA2Y3Ga+NTgCkTWO+qtU2SFTJ7t9pt/LR8Har9cvVcjLIlHNwPoDx6bVkICK3cGOF8ZtXVmLizVbXoAg==", "dependencies": { - "@sentry/core": "7.70.0", - "@sentry/types": "7.70.0", - "@sentry/utils": "7.70.0", + "@sentry/core": "7.71.0", + "@sentry/types": "7.71.0", + "@sentry/utils": "7.71.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -4526,15 +4526,15 @@ } }, "node_modules/@sentry/browser": { - "version": "7.70.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.70.0.tgz", - "integrity": "sha512-PB+IP49/TLcnDHCj9eJ5tcHE0pzXg23wBakmF3KGMSd5nxEbUvmOsaFPZcgUUlL9JlU3v1Y40We7HdPStrY6oA==", + "version": "7.71.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.71.0.tgz", + "integrity": "sha512-7xggzwW2QW9g4Li1M3VQEsQX7AIeSlWnweTkkT+62t3AcLHD7URnNNU7SBAj7x+8F0WqkvMws0XXar51+rv/rw==", "dependencies": { - "@sentry-internal/tracing": "7.70.0", - "@sentry/core": "7.70.0", - "@sentry/replay": "7.70.0", - "@sentry/types": "7.70.0", - "@sentry/utils": "7.70.0", + "@sentry-internal/tracing": "7.71.0", + "@sentry/core": "7.71.0", + "@sentry/replay": "7.71.0", + "@sentry/types": "7.71.0", + "@sentry/utils": "7.71.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -4542,12 +4542,12 @@ } }, "node_modules/@sentry/core": { - "version": "7.70.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.70.0.tgz", - "integrity": "sha512-voUsGVM+jwRp99AQYFnRvr7sVd2tUhIMj1L6F42LtD3vp7t5ZnKp3NpXagtFW2vWzXESfyJUBhM0qI/bFvn7ZA==", + "version": "7.71.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.71.0.tgz", + "integrity": "sha512-kZcWnzxzMxyNuCwq65owu0yGbY+C9QJhWFMDBsqmKK1/dSt0bdhNjf3VQW1dJLnWaQTk7rUTHEHGH8JSdV5EAg==", "dependencies": { - "@sentry/types": "7.70.0", - "@sentry/utils": "7.70.0", + "@sentry/types": "7.71.0", + "@sentry/utils": "7.71.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -4555,43 +4555,43 @@ } }, "node_modules/@sentry/replay": { - "version": "7.70.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.70.0.tgz", - "integrity": "sha512-XjnyE6ORREz9kBWWHdXaIjS9P2Wo7uEw+y23vfLQwzV0Nx3xJ+FG4dwf8onyIoeCZDKbz7cqQIbugU1gkgUtZw==", + "version": "7.71.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.71.0.tgz", + "integrity": "sha512-roB65ixEycAy1BrIJ3HOu7NLKo4EOBs6Q6xKEq5BvzjhDgvFXXq8X/lGriJXc9Q/hWIiDwTQ23yLuzVtPJRnCw==", "dependencies": { - "@sentry/core": "7.70.0", - "@sentry/types": "7.70.0", - "@sentry/utils": "7.70.0" + "@sentry/core": "7.71.0", + "@sentry/types": "7.71.0", + "@sentry/utils": "7.71.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/tracing": { - "version": "7.70.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.70.0.tgz", - "integrity": "sha512-IBEkYl+RZD8QnRXi2vIa2nC2hueYeK6nK3hxsZNXmNC7x+OzRl/5n1kCH97Zoob2cnuSu9ap/duujC6odiB4Mw==", + "version": "7.71.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.71.0.tgz", + "integrity": "sha512-vKW750IP/IXI0WaOmddiCWz7jAQFVWxtdhp9ONvdbRuQkrs5BNQ/GMrs712FWexAcEc9cJ1SPk5fqRTW5UOgLA==", "dependencies": { - "@sentry-internal/tracing": "7.70.0" + "@sentry-internal/tracing": "7.71.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/types": { - "version": "7.70.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.70.0.tgz", - "integrity": "sha512-rY4DqpiDBtXSk4MDNBH3dwWqfPbNBI/9GA7Y5WJSIcObBtfBKp0fzYliHJZD0pgM7d4DPFrDn42K9Iiumgymkw==", + "version": "7.71.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.71.0.tgz", + "integrity": "sha512-30PRLZI1RoeWbLE9K7AHsRPWDH22CqC4WcLNeVmRfLC5m1vE1FHb53r98QSKFhLoONMPMVzDhZZgl4ZcC5mptQ==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.70.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.70.0.tgz", - "integrity": "sha512-0cChMH0lsGp+5I3D4wOHWwjFN19HVrGUs7iWTLTO5St3EaVbdeLbI1vFXHxMxvopbwgpeZafbreHw/loIdZKpw==", + "version": "7.71.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.71.0.tgz", + "integrity": "sha512-aS53l/E/5XsSJMOXHKvS0GlX4gZHBgNAMfhEB3f8rUIn5iLF2uu8lCA1uEvX6VB8b7q/Cg4WFTi6BiJ0hvJHQg==", "dependencies": { - "@sentry/types": "7.70.0", + "@sentry/types": "7.71.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { diff --git a/web/package.json b/web/package.json index dc8186883..f31d07902 100644 --- a/web/package.json +++ b/web/package.json @@ -42,8 +42,8 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.70.0", - "@sentry/tracing": "^7.70.0", + "@sentry/browser": "^7.71.0", + "@sentry/tracing": "^7.71.0", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.0", From 5fcf4cb5928889fe6527772064f58166657f7da7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:47:36 +0200 Subject: [PATCH 20/41] core: bump pylint from 2.17.5 to 2.17.6 (#6980) Bumps [pylint](https://github.com/pylint-dev/pylint) from 2.17.5 to 2.17.6. - [Release notes](https://github.com/pylint-dev/pylint/releases) - [Commits](https://github.com/pylint-dev/pylint/compare/v2.17.5...v2.17.6) --- updated-dependencies: - dependency-name: pylint dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/poetry.lock b/poetry.lock index 76afcd505..8bc488e41 100644 --- a/poetry.lock +++ b/poetry.lock @@ -265,13 +265,13 @@ files = [ [[package]] name = "astroid" -version = "2.15.6" +version = "2.15.7" description = "An abstract syntax tree for Python with inference support." optional = false python-versions = ">=3.7.2" files = [ - {file = "astroid-2.15.6-py3-none-any.whl", hash = "sha256:389656ca57b6108f939cf5d2f9a2a825a3be50ba9d589670f393236e0a03b91c"}, - {file = "astroid-2.15.6.tar.gz", hash = "sha256:903f024859b7c7687d7a7f3a3f73b17301f8e42dfd9cc9df9d4418172d3e2dbd"}, + {file = "astroid-2.15.7-py3-none-any.whl", hash = "sha256:958f280532e36ca84a13023f15cb1556fb6792d193acb87e1f3ca536b6fa6bd2"}, + {file = "astroid-2.15.7.tar.gz", hash = "sha256:c522f2832a900e27a7d284b9b6ef670d2495f760ede3c8c0b004a5641d3c5987"}, ] [package.dependencies] @@ -2878,17 +2878,17 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] [[package]] name = "pylint" -version = "2.17.5" +version = "2.17.6" description = "python code static checker" optional = false python-versions = ">=3.7.2" files = [ - {file = "pylint-2.17.5-py3-none-any.whl", hash = "sha256:73995fb8216d3bed149c8d51bba25b2c52a8251a2c8ac846ec668ce38fab5413"}, - {file = "pylint-2.17.5.tar.gz", hash = "sha256:f7b601cbc06fef7e62a754e2b41294c2aa31f1cb659624b9a85bcba29eaf8252"}, + {file = "pylint-2.17.6-py3-none-any.whl", hash = "sha256:18a1412e873caf8ffb56b760ce1b5643675af23e6173a247b502406b24c716af"}, + {file = "pylint-2.17.6.tar.gz", hash = "sha256:be928cce5c76bf9acdc65ad01447a1e0b1a7bccffc609fb7fc40f2513045bd05"}, ] [package.dependencies] -astroid = ">=2.15.6,<=2.17.0-dev0" +astroid = ">=2.15.7,<=2.17.0-dev0" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} dill = {version = ">=0.3.6", markers = "python_version >= \"3.11\""} isort = ">=4.2.5,<6" From 0f87d975943a203f3151d19a744f78bfaa90df44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:47:54 +0200 Subject: [PATCH 21/41] core: bump selenium from 4.12.0 to 4.13.0 (#6981) Bumps [selenium](https://github.com/SeleniumHQ/Selenium) from 4.12.0 to 4.13.0. - [Release notes](https://github.com/SeleniumHQ/Selenium/releases) - [Commits](https://github.com/SeleniumHQ/Selenium/compare/selenium-4.12.0...selenium-4.13.0) --- updated-dependencies: - dependency-name: selenium dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8bc488e41..eb282ebb3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3448,13 +3448,13 @@ files = [ [[package]] name = "selenium" -version = "4.12.0" +version = "4.13.0" description = "" optional = false python-versions = ">=3.8" files = [ - {file = "selenium-4.12.0-py3-none-any.whl", hash = "sha256:b2c48b1440db54a0653300d9955f5421390723d53b36ec835e18de8e13bbd401"}, - {file = "selenium-4.12.0.tar.gz", hash = "sha256:95be6aa449a0ab4ac1198bb9de71bbe9170405e04b9752f4b450dc7292a21828"}, + {file = "selenium-4.13.0-py3-none-any.whl", hash = "sha256:f0f9185c01ae249a321529c4e3aa0edc2a900642e61fdbb76988cd72d2762ece"}, + {file = "selenium-4.13.0.tar.gz", hash = "sha256:3c413a4f1b8af67824703195e3b1c19cfb1c3186c799efa035d55fd59d6dd59f"}, ] [package.dependencies] From ee151b9e1734e0289c63f798fb8ac88cb337b92c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:48:22 +0200 Subject: [PATCH 22/41] core: bump pydantic from 2.3.0 to 2.4.0 (#6979) Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.3.0 to 2.4.0. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v2.3.0...v2.4.0) --- updated-dependencies: - dependency-name: pydantic dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 222 ++++++++++++++++++++++++++-------------------------- 1 file changed, 111 insertions(+), 111 deletions(-) diff --git a/poetry.lock b/poetry.lock index eb282ebb3..c7b773c2e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2692,19 +2692,19 @@ files = [ [[package]] name = "pydantic" -version = "2.3.0" +version = "2.4.0" description = "Data validation using Python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-2.3.0-py3-none-any.whl", hash = "sha256:45b5e446c6dfaad9444819a293b921a40e1db1aa61ea08aede0522529ce90e81"}, - {file = "pydantic-2.3.0.tar.gz", hash = "sha256:1607cc106602284cd4a00882986570472f193fde9cb1259bceeaedb26aa79a6d"}, + {file = "pydantic-2.4.0-py3-none-any.whl", hash = "sha256:909b2b7d7be775a890631218e8c4b6b5418c9b6c57074ae153e5c09b73bf06a3"}, + {file = "pydantic-2.4.0.tar.gz", hash = "sha256:54216ccb537a606579f53d7f6ed912e98fffce35aff93b25cd80b1c2ca806fc3"}, ] [package.dependencies] annotated-types = ">=0.4.0" email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"email\""} -pydantic-core = "2.6.3" +pydantic-core = "2.10.0" typing-extensions = ">=4.6.1" [package.extras] @@ -2712,117 +2712,117 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.6.3" +version = "2.10.0" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic_core-2.6.3-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:1a0ddaa723c48af27d19f27f1c73bdc615c73686d763388c8683fe34ae777bad"}, - {file = "pydantic_core-2.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5cfde4fab34dd1e3a3f7f3db38182ab6c95e4ea91cf322242ee0be5c2f7e3d2f"}, - {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5493a7027bfc6b108e17c3383959485087d5942e87eb62bbac69829eae9bc1f7"}, - {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:84e87c16f582f5c753b7f39a71bd6647255512191be2d2dbf49458c4ef024588"}, - {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:522a9c4a4d1924facce7270c84b5134c5cabcb01513213662a2e89cf28c1d309"}, - {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aaafc776e5edc72b3cad1ccedb5fd869cc5c9a591f1213aa9eba31a781be9ac1"}, - {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a750a83b2728299ca12e003d73d1264ad0440f60f4fc9cee54acc489249b728"}, - {file = "pydantic_core-2.6.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e8b374ef41ad5c461efb7a140ce4730661aadf85958b5c6a3e9cf4e040ff4bb"}, - {file = "pydantic_core-2.6.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b594b64e8568cf09ee5c9501ede37066b9fc41d83d58f55b9952e32141256acd"}, - {file = "pydantic_core-2.6.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2a20c533cb80466c1d42a43a4521669ccad7cf2967830ac62c2c2f9cece63e7e"}, - {file = "pydantic_core-2.6.3-cp310-none-win32.whl", hash = "sha256:04fe5c0a43dec39aedba0ec9579001061d4653a9b53a1366b113aca4a3c05ca7"}, - {file = "pydantic_core-2.6.3-cp310-none-win_amd64.whl", hash = "sha256:6bf7d610ac8f0065a286002a23bcce241ea8248c71988bda538edcc90e0c39ad"}, - {file = "pydantic_core-2.6.3-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:6bcc1ad776fffe25ea5c187a028991c031a00ff92d012ca1cc4714087e575973"}, - {file = "pydantic_core-2.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:df14f6332834444b4a37685810216cc8fe1fe91f447332cd56294c984ecbff1c"}, - {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0b7486d85293f7f0bbc39b34e1d8aa26210b450bbd3d245ec3d732864009819"}, - {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a892b5b1871b301ce20d40b037ffbe33d1407a39639c2b05356acfef5536d26a"}, - {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:883daa467865e5766931e07eb20f3e8152324f0adf52658f4d302242c12e2c32"}, - {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4eb77df2964b64ba190eee00b2312a1fd7a862af8918ec70fc2d6308f76ac64"}, - {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1ce8c84051fa292a5dc54018a40e2a1926fd17980a9422c973e3ebea017aa8da"}, - {file = "pydantic_core-2.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:22134a4453bd59b7d1e895c455fe277af9d9d9fbbcb9dc3f4a97b8693e7e2c9b"}, - {file = "pydantic_core-2.6.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:02e1c385095efbd997311d85c6021d32369675c09bcbfff3b69d84e59dc103f6"}, - {file = "pydantic_core-2.6.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d79f1f2f7ebdb9b741296b69049ff44aedd95976bfee38eb4848820628a99b50"}, - {file = "pydantic_core-2.6.3-cp311-none-win32.whl", hash = "sha256:430ddd965ffd068dd70ef4e4d74f2c489c3a313adc28e829dd7262cc0d2dd1e8"}, - {file = "pydantic_core-2.6.3-cp311-none-win_amd64.whl", hash = "sha256:84f8bb34fe76c68c9d96b77c60cef093f5e660ef8e43a6cbfcd991017d375950"}, - {file = "pydantic_core-2.6.3-cp311-none-win_arm64.whl", hash = "sha256:5a2a3c9ef904dcdadb550eedf3291ec3f229431b0084666e2c2aa8ff99a103a2"}, - {file = "pydantic_core-2.6.3-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:8421cf496e746cf8d6b677502ed9a0d1e4e956586cd8b221e1312e0841c002d5"}, - {file = "pydantic_core-2.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bb128c30cf1df0ab78166ded1ecf876620fb9aac84d2413e8ea1594b588c735d"}, - {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37a822f630712817b6ecc09ccc378192ef5ff12e2c9bae97eb5968a6cdf3b862"}, - {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:240a015102a0c0cc8114f1cba6444499a8a4d0333e178bc504a5c2196defd456"}, - {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f90e5e3afb11268628c89f378f7a1ea3f2fe502a28af4192e30a6cdea1e7d5e"}, - {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:340e96c08de1069f3d022a85c2a8c63529fd88709468373b418f4cf2c949fb0e"}, - {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1480fa4682e8202b560dcdc9eeec1005f62a15742b813c88cdc01d44e85308e5"}, - {file = "pydantic_core-2.6.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f14546403c2a1d11a130b537dda28f07eb6c1805a43dae4617448074fd49c282"}, - {file = "pydantic_core-2.6.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:a87c54e72aa2ef30189dc74427421e074ab4561cf2bf314589f6af5b37f45e6d"}, - {file = "pydantic_core-2.6.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f93255b3e4d64785554e544c1c76cd32f4a354fa79e2eeca5d16ac2e7fdd57aa"}, - {file = "pydantic_core-2.6.3-cp312-none-win32.whl", hash = "sha256:f70dc00a91311a1aea124e5f64569ea44c011b58433981313202c46bccbec0e1"}, - {file = "pydantic_core-2.6.3-cp312-none-win_amd64.whl", hash = "sha256:23470a23614c701b37252618e7851e595060a96a23016f9a084f3f92f5ed5881"}, - {file = "pydantic_core-2.6.3-cp312-none-win_arm64.whl", hash = "sha256:1ac1750df1b4339b543531ce793b8fd5c16660a95d13aecaab26b44ce11775e9"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:a53e3195f134bde03620d87a7e2b2f2046e0e5a8195e66d0f244d6d5b2f6d31b"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:f2969e8f72c6236c51f91fbb79c33821d12a811e2a94b7aa59c65f8dbdfad34a"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:672174480a85386dd2e681cadd7d951471ad0bb028ed744c895f11f9d51b9ebe"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:002d0ea50e17ed982c2d65b480bd975fc41086a5a2f9c924ef8fc54419d1dea3"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ccc13afee44b9006a73d2046068d4df96dc5b333bf3509d9a06d1b42db6d8bf"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:439a0de139556745ae53f9cc9668c6c2053444af940d3ef3ecad95b079bc9987"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d63b7545d489422d417a0cae6f9898618669608750fc5e62156957e609e728a5"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b44c42edc07a50a081672e25dfe6022554b47f91e793066a7b601ca290f71e42"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1c721bfc575d57305dd922e6a40a8fe3f762905851d694245807a351ad255c58"}, - {file = "pydantic_core-2.6.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:5e4a2cf8c4543f37f5dc881de6c190de08096c53986381daebb56a355be5dfe6"}, - {file = "pydantic_core-2.6.3-cp37-none-win32.whl", hash = "sha256:d9b4916b21931b08096efed090327f8fe78e09ae8f5ad44e07f5c72a7eedb51b"}, - {file = "pydantic_core-2.6.3-cp37-none-win_amd64.whl", hash = "sha256:a8acc9dedd304da161eb071cc7ff1326aa5b66aadec9622b2574ad3ffe225525"}, - {file = "pydantic_core-2.6.3-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:5e9c068f36b9f396399d43bfb6defd4cc99c36215f6ff33ac8b9c14ba15bdf6b"}, - {file = "pydantic_core-2.6.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e61eae9b31799c32c5f9b7be906be3380e699e74b2db26c227c50a5fc7988698"}, - {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85463560c67fc65cd86153a4975d0b720b6d7725cf7ee0b2d291288433fc21b"}, - {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9616567800bdc83ce136e5847d41008a1d602213d024207b0ff6cab6753fe645"}, - {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e9b65a55bbabda7fccd3500192a79f6e474d8d36e78d1685496aad5f9dbd92c"}, - {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f468d520f47807d1eb5d27648393519655eadc578d5dd862d06873cce04c4d1b"}, - {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9680dd23055dd874173a3a63a44e7f5a13885a4cfd7e84814be71be24fba83db"}, - {file = "pydantic_core-2.6.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a718d56c4d55efcfc63f680f207c9f19c8376e5a8a67773535e6f7e80e93170"}, - {file = "pydantic_core-2.6.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8ecbac050856eb6c3046dea655b39216597e373aa8e50e134c0e202f9c47efec"}, - {file = "pydantic_core-2.6.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:788be9844a6e5c4612b74512a76b2153f1877cd845410d756841f6c3420230eb"}, - {file = "pydantic_core-2.6.3-cp38-none-win32.whl", hash = "sha256:07a1aec07333bf5adebd8264047d3dc518563d92aca6f2f5b36f505132399efc"}, - {file = "pydantic_core-2.6.3-cp38-none-win_amd64.whl", hash = "sha256:621afe25cc2b3c4ba05fff53525156d5100eb35c6e5a7cf31d66cc9e1963e378"}, - {file = "pydantic_core-2.6.3-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:813aab5bfb19c98ae370952b6f7190f1e28e565909bfc219a0909db168783465"}, - {file = "pydantic_core-2.6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:50555ba3cb58f9861b7a48c493636b996a617db1a72c18da4d7f16d7b1b9952b"}, - {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19e20f8baedd7d987bd3f8005c146e6bcbda7cdeefc36fad50c66adb2dd2da48"}, - {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b0a5d7edb76c1c57b95df719af703e796fc8e796447a1da939f97bfa8a918d60"}, - {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f06e21ad0b504658a3a9edd3d8530e8cea5723f6ea5d280e8db8efc625b47e49"}, - {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea053cefa008fda40f92aab937fb9f183cf8752e41dbc7bc68917884454c6362"}, - {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:171a4718860790f66d6c2eda1d95dd1edf64f864d2e9f9115840840cf5b5713f"}, - {file = "pydantic_core-2.6.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5ed7ceca6aba5331ece96c0e328cd52f0dcf942b8895a1ed2642de50800b79d3"}, - {file = "pydantic_core-2.6.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:acafc4368b289a9f291e204d2c4c75908557d4f36bd3ae937914d4529bf62a76"}, - {file = "pydantic_core-2.6.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1aa712ba150d5105814e53cb141412217146fedc22621e9acff9236d77d2a5ef"}, - {file = "pydantic_core-2.6.3-cp39-none-win32.whl", hash = "sha256:44b4f937b992394a2e81a5c5ce716f3dcc1237281e81b80c748b2da6dd5cf29a"}, - {file = "pydantic_core-2.6.3-cp39-none-win_amd64.whl", hash = "sha256:9b33bf9658cb29ac1a517c11e865112316d09687d767d7a0e4a63d5c640d1b17"}, - {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d7050899026e708fb185e174c63ebc2c4ee7a0c17b0a96ebc50e1f76a231c057"}, - {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:99faba727727b2e59129c59542284efebbddade4f0ae6a29c8b8d3e1f437beb7"}, - {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fa159b902d22b283b680ef52b532b29554ea2a7fc39bf354064751369e9dbd7"}, - {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:046af9cfb5384f3684eeb3f58a48698ddab8dd870b4b3f67f825353a14441418"}, - {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:930bfe73e665ebce3f0da2c6d64455098aaa67e1a00323c74dc752627879fc67"}, - {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:85cc4d105747d2aa3c5cf3e37dac50141bff779545ba59a095f4a96b0a460e70"}, - {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b25afe9d5c4f60dcbbe2b277a79be114e2e65a16598db8abee2a2dcde24f162b"}, - {file = "pydantic_core-2.6.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e49ce7dc9f925e1fb010fc3d555250139df61fa6e5a0a95ce356329602c11ea9"}, - {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:2dd50d6a1aef0426a1d0199190c6c43ec89812b1f409e7fe44cb0fbf6dfa733c"}, - {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6595b0d8c8711e8e1dc389d52648b923b809f68ac1c6f0baa525c6440aa0daa"}, - {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ef724a059396751aef71e847178d66ad7fc3fc969a1a40c29f5aac1aa5f8784"}, - {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3c8945a105f1589ce8a693753b908815e0748f6279959a4530f6742e1994dcb6"}, - {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c8c6660089a25d45333cb9db56bb9e347241a6d7509838dbbd1931d0e19dbc7f"}, - {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:692b4ff5c4e828a38716cfa92667661a39886e71136c97b7dac26edef18767f7"}, - {file = "pydantic_core-2.6.3-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:f1a5d8f18877474c80b7711d870db0eeef9442691fcdb00adabfc97e183ee0b0"}, - {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:3796a6152c545339d3b1652183e786df648ecdf7c4f9347e1d30e6750907f5bb"}, - {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:b962700962f6e7a6bd77e5f37320cabac24b4c0f76afeac05e9f93cf0c620014"}, - {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:56ea80269077003eaa59723bac1d8bacd2cd15ae30456f2890811efc1e3d4413"}, - {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75c0ebbebae71ed1e385f7dfd9b74c1cff09fed24a6df43d326dd7f12339ec34"}, - {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:252851b38bad3bfda47b104ffd077d4f9604a10cb06fe09d020016a25107bf98"}, - {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:6656a0ae383d8cd7cc94e91de4e526407b3726049ce8d7939049cbfa426518c8"}, - {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:d9140ded382a5b04a1c030b593ed9bf3088243a0a8b7fa9f071a5736498c5483"}, - {file = "pydantic_core-2.6.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:d38bbcef58220f9c81e42c255ef0bf99735d8f11edef69ab0b499da77105158a"}, - {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:c9d469204abcca28926cbc28ce98f28e50e488767b084fb3fbdf21af11d3de26"}, - {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:48c1ed8b02ffea4d5c9c220eda27af02b8149fe58526359b3c07eb391cb353a2"}, - {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b2b1bfed698fa410ab81982f681f5b1996d3d994ae8073286515ac4d165c2e7"}, - {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf9d42a71a4d7a7c1f14f629e5c30eac451a6fc81827d2beefd57d014c006c4a"}, - {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4292ca56751aebbe63a84bbfc3b5717abb09b14d4b4442cc43fd7c49a1529efd"}, - {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7dc2ce039c7290b4ef64334ec7e6ca6494de6eecc81e21cb4f73b9b39991408c"}, - {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:615a31b1629e12445c0e9fc8339b41aaa6cc60bd53bf802d5fe3d2c0cda2ae8d"}, - {file = "pydantic_core-2.6.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1fa1f6312fb84e8c281f32b39affe81984ccd484da6e9d65b3d18c202c666149"}, - {file = "pydantic_core-2.6.3.tar.gz", hash = "sha256:1508f37ba9e3ddc0189e6ff4e2228bd2d3c3a4641cbe8c07177162f76ed696c7"}, + {file = "pydantic_core-2.10.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:daea90360d99ad06a3f686b3e628222ac3aa953b1982f13be5b69b2648c5e6bb"}, + {file = "pydantic_core-2.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f76cb8d68d87fd05e56aba392c841d98eeb3ad378bcf5331b42bac7afee0d66"}, + {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e816d042f80dd630aaedbc75c21084da9e1d7ea5918619b8089c7edaedd57e8"}, + {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7192492b09c1e4ad103e5cb98eb397f9b61a9037fce03e94cafe3238404dbe0f"}, + {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:312831c5bf50d9d432c11baf9bbd8d8961740608ccbc66fb1290d532aff21b18"}, + {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:873db84afcbcf3f1ed0040ed9c5534bc1af5d647d13c04be12f3568421f5dd3e"}, + {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0aa8bdc2d78afadd191148726f094be81d5e4b76011f8fa9300f317e06a1b732"}, + {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7cbf77664099345a25932ebe25d7bf9a330fc29acd9a909e8751ac0c42097fb3"}, + {file = "pydantic_core-2.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a537e87ca600e59e532fbc770a60f9f3a5ebcff9bae8c60aceeec5beb326e1b8"}, + {file = "pydantic_core-2.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed5f8d6cb834c80fb813d233f9bfb60d3453b7450c80c0814b8e78c23d1ea8bf"}, + {file = "pydantic_core-2.10.0-cp310-none-win32.whl", hash = "sha256:0e210107faf47d5965fcebc294c41891573adab36e5cf70731c57d0068fc7c5c"}, + {file = "pydantic_core-2.10.0-cp310-none-win_amd64.whl", hash = "sha256:9527cf9c25fd655617620c8d6cb43216c0ce5779871ab7f83175421267b85199"}, + {file = "pydantic_core-2.10.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:ab2d56dfa13244164f0ba8125d8315c799fa0150459b88fc42ed5c1e3c04d47a"}, + {file = "pydantic_core-2.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d1e79893a20207ff671f13f5562c1f0aaece030e6e30252683f536286ba89864"}, + {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:030ba2f59e78c8732445d8c9f093579674f2b5b93b3960945face14ec2e82682"}, + {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:705fad71297dfedc5c9e3c935702864aa0cc7812be11ac544f152677ba6ea430"}, + {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:394a8ce4a7495af8dbf33038daf57a6170be15f8d1d92a7b63c6f2211527d950"}, + {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19c7aa3c0ff08ddc91597d8af08f8c4de59b27fe752b3bd1db9a67f6f08c4020"}, + {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb204346d3eda4e0c63cbeeec6398a52682ac51f9cf7379a13505863e47d3186"}, + {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1fefe63baa04f1d9dd5b4564b1e73d133e1c745589933d7ef9718235915cc81"}, + {file = "pydantic_core-2.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fa4bd88165d860111e860e8b43efd97afd137a9165cf24eb3cfb2371f57452bf"}, + {file = "pydantic_core-2.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e21ab9c49cc58282c228ff89fb4a5e4b447233ccd53acb7f333d1cde58df37b"}, + {file = "pydantic_core-2.10.0-cp311-none-win32.whl", hash = "sha256:2a6f28e2b2a5cef3b52b5ac6c6d64fe810ca51ec57081554f447c818778eea09"}, + {file = "pydantic_core-2.10.0-cp311-none-win_amd64.whl", hash = "sha256:f94539aa4265ab5528d8c3dc4505a19369083c29d0713b8ed536f93b9bc1e94f"}, + {file = "pydantic_core-2.10.0-cp311-none-win_arm64.whl", hash = "sha256:2352f7cb8ef0cd21fbc582abe2a14105d7e8400f97a551ca2e3b05dee77525d2"}, + {file = "pydantic_core-2.10.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:c2a126c7271a9421005a0f57cf71294ad49c375e4d0a9198b93665796f49e7f7"}, + {file = "pydantic_core-2.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7440933341f655a64456065211cf7657c3cf3524d5b0b02f5d9b63ef5a7e0d49"}, + {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85d8225cd08aacb8a2843cf0a0a72f1c403c6ac6f18d4cfeecabe050f80c9ea3"}, + {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:573e89b3da5908f564ae54b6284e20b490158681e91e1776a59dfda17ec0a6a8"}, + {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b0061965942489e6da23f0399b1136fd10eff0a4f0cefae13369eba1776e22a6"}, + {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:725f0276402773a6b61b6f67bf9562f37ba08a8bfebdfb9990eea786ed5711b2"}, + {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25cacd12689b1a357ae6212c7f5980ebf487720db5bbf1bb5d91085226b6a962"}, + {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e70c6c882ab101a72010c8f91e87db211fa2aaf6aa51acc7160fe5649630ed75"}, + {file = "pydantic_core-2.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e079540fd4c45c23de4465cafb20cddcd8befe3b5f46505a2eb28e49b9d13ee2"}, + {file = "pydantic_core-2.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:98474284adb71c8738e5efb71ccb1382d8d66f042ad0875018c78bcb38ac0f47"}, + {file = "pydantic_core-2.10.0-cp312-none-win32.whl", hash = "sha256:ab1fa046ef9058ceef941b576c5e7711bab3d99be00a304fb4726cf4b94e05ff"}, + {file = "pydantic_core-2.10.0-cp312-none-win_amd64.whl", hash = "sha256:b4df023610af081d6da85328411fed7aacf19e939fe955bb31f29212f8dcf306"}, + {file = "pydantic_core-2.10.0-cp312-none-win_arm64.whl", hash = "sha256:f1a70f99d1a7270d4f321a8824e87d5b88acd64c2af6049915b7fd8215437e04"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:f622778eb180cf7eba25e65d2fe37a57a0eadd8403df4c44606b56d204f686de"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:fb513fc74bdf5f649e6e855fc87ed9b81ee8b0be96717190f9e00683244f0616"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82c3f0752547f928e4fcfb00151d6deb9124be7d35e012c567429fe93ec71b71"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:100bbd622433d9d7ca8ee4fa63dfae90f9f38358558955173aed6ed56c573db8"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f919d17581fdf6e71ff3d3fe4b02ed32aaa0429e0b4346798de7a1361e098ef"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f32df1d8d383e1b729674ad1053d8f43f7ed79848496d3cb6ca81a906318317b"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab4d279c480e83c516e4e0b7b1f882f168f614d9c62e18ab779edef0cd13aaa9"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c394e9ed6f9e6f4af3618c34bc15f2af4237f7d1989b7f45588f8e855bc10e08"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:bc0a33779fded534ff0b5d8ef766a1c94d3e740877ea8adab65cbf1878ba03b4"}, + {file = "pydantic_core-2.10.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c1041d8fcd313c68b77dec6a16bf1d690008270b50eec11e96d89e1b4ba756b1"}, + {file = "pydantic_core-2.10.0-cp37-none-win32.whl", hash = "sha256:68992f78507e95ed63ca87b8b177785d9806cde34ca3a9f98382188dd11d8720"}, + {file = "pydantic_core-2.10.0-cp37-none-win_amd64.whl", hash = "sha256:aa45f0846773cb142252ccef66b096d917bb76c6ef9da1aa747e6b44aa318192"}, + {file = "pydantic_core-2.10.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:a04054b91afc41282a0a7426147654849136b37a41da86412d4ff5ba51b9cd2f"}, + {file = "pydantic_core-2.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1c1bfa2ca352bf43d34b7099f8ed675deb88113bd36c76880f4ca18fc0d3af50"}, + {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba288fa675b2951e7898ebfdd8defa0e958e514d4d1cc7a5f6a8d627378c0c47"}, + {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fbba90179672707ab69ad19ef7d3c3f0a8e2f0a0579f0eb79649ffcdacf476d0"}, + {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7c6915a9b3dd16e016dba7e76070e667eca50530f957daa5b78c73abbf281b25"}, + {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e72c1e06a20c10b9c5f7a3fe09ec46e0e208c65a69d2efb92a3e1b64443e6c3"}, + {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b50848d1a614093c05c97d0fdf841ef547d8c087fbd06f6eafe8ef1d836d6c1"}, + {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ad7b5f4352f3dfcc481b008bce3b3931a485a93112deaa0a25bee2817d3f7b98"}, + {file = "pydantic_core-2.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:66c0169457733a4dfe72be51dd359414eddd0738b15dda07827f18a10e9f6ab7"}, + {file = "pydantic_core-2.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e24d92d3a60d6eb19a1bd0f1f259369f478e0f34412a33e794da6cdaa36218be"}, + {file = "pydantic_core-2.10.0-cp38-none-win32.whl", hash = "sha256:30c5df611afc5a9f2ad48babe2192f9cf0d12ed6c0dd5eb57b3538491c113737"}, + {file = "pydantic_core-2.10.0-cp38-none-win_amd64.whl", hash = "sha256:d72a561d7c0738ae5d05a709c739b2953d05e18151539750ca9622f3438de041"}, + {file = "pydantic_core-2.10.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:7cecd7669b1ebee8ae90f5aa7d459770b6e79db7b95983aacc5b7392a050b9ab"}, + {file = "pydantic_core-2.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:923000ea46def1bdded511b5792ec19866909797a05dc8f75342c6a9cacb2d66"}, + {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:729a2fc4bc1564d164258eaf138ab4c03baa2080a5e3f91a9b3cb2d758248b8f"}, + {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6930eaf3aa2ba660ed3f64206902a534f454f9954e5de06354e20d890bebbd8a"}, + {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0b17e8d08a1c94efb91d8d389ec76a32fc3f85ba06626b5ef0c2d6bffcbe066"}, + {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c61755149ba534123ae08e6aa814aa34f47c6ba45a622ea98ddd7860b5312767"}, + {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22b126893f53c789ad2253c9288a59362171a5bafbb865190c43d430dc805edb"}, + {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:776eee60ca8ca3de83add0fb95a0034ac965a12590bb22ec09b05c87870ba401"}, + {file = "pydantic_core-2.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b1496f38e49c7960461002768c5f4c9ba9720fe259cd5c8b229cd0b3b0861844"}, + {file = "pydantic_core-2.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cd175beab2ac845a90d31bb4ea8e6c1e8be12efaf14b9918d0ab4828dd3c916b"}, + {file = "pydantic_core-2.10.0-cp39-none-win32.whl", hash = "sha256:391805e8a4ad731e729a22d8e14bad2d724915d28618be6c66dc7ccb421a13a0"}, + {file = "pydantic_core-2.10.0-cp39-none-win_amd64.whl", hash = "sha256:7e2360b86b21e2aab8d4f1ce2551e2b731bc30610b7cc9324ea7517af4375b08"}, + {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:b40221d1490f2c6e488d2576773a574d42436b5aba1faed91f59a9feb82c384b"}, + {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9f3b25201efe20d182f3bd6fe8d99685f4ed01cac67b79c017c9cf688b747263"}, + {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34a45943bb14275e9681fd4abafbe3acae1e7dac7248bebf38ac5bde492e00f7"}, + {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc5be7a29a6b25a186941e9e2b5f9281c05723628e1fdb244f429f4c1682ff49"}, + {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17460ffd8f8e49ca52711b4926fefe2b336d01b63dc27aee432a576c2147c8ce"}, + {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c1ab3701d660bd136a22e1ca95292bfed50245eb869adaee2e08f29d4dd5e360"}, + {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:09ac18617199704327d99c85893d697b8442c18b8c2db1ea636ba83313223541"}, + {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e3f69d48191103587950981cf47c936064c808b6c18f57e745ed130a305c73a6"}, + {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:792af9e4f78d6f1d0aabfb95162c5ed56b5369b25350eaa68b1495e8f675d4d9"}, + {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ecd28fb4c98c97836046d092029017bcc35e060ea547484aa1234b8a592de17"}, + {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a622a8abf656cc51960766fa4d194504e8a9f85ae48032f87fb42c79462c7b8"}, + {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:52eb5c61de017bfee422f6aa9a3e76de5aa5a9189ba808bba63b9de67e55c4ca"}, + {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:69772dcdcf90b677d0d2ecedafe4c6a610572f1fad15912cde28a6f8eb5654fd"}, + {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:12470a4de172aaa1bbadb45744de4a9b0298fa8f974eb508314c3b5da0cb4aed"}, + {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:f9f2c70257f03db712658d4138e2b892bdd7c71472783eaebc2813a47fd29ef3"}, + {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:8a5323d6778931ab1b3b22bac05fb7c961786d3b04a6c84f7c0ffcc331b4b998"}, + {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:5f00e83aa9aebbfd4382695a5ed94e6282ac01455fbb1a37d99d2effa29df30f"}, + {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c871820c60fc863c7b3f660612af6ce5bb8f5f69d6364f208e29d2ca7992d154"}, + {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1bcb1b9b33573eeef218ffb3a2910c57fedc8831caf3c942e68a2222481d2cc"}, + {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d122a46c360c8069f7ac39c6f2c29cf99436baa48ba1e28ea5443336e9bbb838"}, + {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3ffb2a3462bb7905c4d849b95f536ac1f3948e92f5e0fc7e65bd3f3b0d132cf4"}, + {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b5d4eec8aba25b163a4d9dcc6be8354bc8f939040bc15a6400cbd62ba0511a5f"}, + {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5cbfe4cd608cf6d032374961e4e07d0506acfaec7b1a69beade1d5f98dce00fd"}, + {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:02b3d546342e7f583bf58f4a4618c7e97f44426db2358789393537dd4e9a921d"}, + {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7820faf076216654ae54ad8a8443a296faaac9057a49ff404ce92ab85c9518a3"}, + {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f114130c44ae52b3bd2450dac8e1d3e1e92a92baecb24dbcdb6de2d2fc15bdb5"}, + {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f6f70680c15876c583a24bd476e49004327e87392be0282aedbc65773519ea8"}, + {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f230d70be54447e12fcd0f1c2319dac74341244fafd2350d5675aa194f6c3f4"}, + {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:96b3007451863b46e8138f8096ef31aea6f7721a9910843b0554ce4ae17024a2"}, + {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b196c4ace34be6c2953c6ec3906d1af88c418b93325d612d7f900ed30bf1e0ac"}, + {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5958b1af7acd7b4a629e9758ce54a31c1910695e85e0ef847ba3daa4f25a0a08"}, + {file = "pydantic_core-2.10.0.tar.gz", hash = "sha256:8fe66506700efdfc699c613ccc4974ac7d8fceed8c74983e55ec380504db2e05"}, ] [package.dependencies] From 44ac94470677ccc59f493192b67e7fdb058e482e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 10:48:36 +0200 Subject: [PATCH 23/41] web: bump @typescript-eslint/parser from 6.7.2 to 6.7.3 in /web (#6984) Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 6.7.2 to 6.7.3. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.7.3/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 249 ++++-------------------------------------- web/package.json | 2 +- 2 files changed, 20 insertions(+), 231 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index c3d177cc9..60beb8888 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -71,7 +71,7 @@ "@types/codemirror": "5.60.10", "@types/grecaptcha": "^3.0.5", "@typescript-eslint/eslint-plugin": "^6.7.3", - "@typescript-eslint/parser": "^6.7.2", + "@typescript-eslint/parser": "^6.7.3", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", @@ -10333,53 +10333,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz", - "integrity": "sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz", - "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", - "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -10414,15 +10367,15 @@ "dev": true }, "node_modules/@typescript-eslint/parser": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.2.tgz", - "integrity": "sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.3.tgz", + "integrity": "sha512-TlutE+iep2o7R8Lf+yoer3zU6/0EAUc8QIBB3GYBc1KGz4c4TRm83xwXUZVPlZ6YCLss4r77jbu6j3sendJoiQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.7.2", - "@typescript-eslint/types": "6.7.2", - "@typescript-eslint/typescript-estree": "6.7.2", - "@typescript-eslint/visitor-keys": "6.7.2", + "@typescript-eslint/scope-manager": "6.7.3", + "@typescript-eslint/types": "6.7.3", + "@typescript-eslint/typescript-estree": "6.7.3", + "@typescript-eslint/visitor-keys": "6.7.3", "debug": "^4.3.4" }, "engines": { @@ -10442,13 +10395,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.2.tgz", - "integrity": "sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz", + "integrity": "sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.2", - "@typescript-eslint/visitor-keys": "6.7.2" + "@typescript-eslint/types": "6.7.3", + "@typescript-eslint/visitor-keys": "6.7.3" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -10485,7 +10438,7 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "node_modules/@typescript-eslint/types": { "version": "6.7.3", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz", "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==", @@ -10498,7 +10451,7 @@ "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "node_modules/@typescript-eslint/typescript-estree": { "version": "6.7.3", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz", "integrity": "sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==", @@ -10525,96 +10478,6 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", - "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/@typescript-eslint/types": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.2.tgz", - "integrity": "sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.2.tgz", - "integrity": "sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.2", - "@typescript-eslint/visitor-keys": "6.7.2", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -10673,80 +10536,6 @@ "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz", - "integrity": "sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/types": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.3.tgz", - "integrity": "sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz", - "integrity": "sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "@typescript-eslint/visitor-keys": "6.7.3", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", - "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.3", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -10781,12 +10570,12 @@ "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.2.tgz", - "integrity": "sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz", + "integrity": "sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.2", + "@typescript-eslint/types": "6.7.3", "eslint-visitor-keys": "^3.4.1" }, "engines": { diff --git a/web/package.json b/web/package.json index f31d07902..b53dc27f8 100644 --- a/web/package.json +++ b/web/package.json @@ -89,7 +89,7 @@ "@types/codemirror": "5.60.10", "@types/grecaptcha": "^3.0.5", "@typescript-eslint/eslint-plugin": "^6.7.3", - "@typescript-eslint/parser": "^6.7.2", + "@typescript-eslint/parser": "^6.7.3", "babel-plugin-macros": "^3.1.0", "babel-plugin-tsconfig-paths": "^1.0.3", "cross-env": "^7.0.3", From 3e818243882df55f9d80b980cb1ad46c351c83e1 Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 26 Sep 2023 12:04:40 +0200 Subject: [PATCH 24/41] core: prevent self-impersonation (#6885) Signed-off-by: Jens Langhammer --- authentik/core/api/users.py | 4 ++- authentik/core/tests/test_impersonation.py | 33 +++++++++++++++++++++- web/src/admin/users/RelatedUserList.ts | 14 +++++++-- web/src/admin/users/UserListPage.ts | 19 +++++++++++-- web/src/admin/users/UserViewPage.ts | 32 +++++++++++++-------- 5 files changed, 84 insertions(+), 18 deletions(-) diff --git a/authentik/core/api/users.py b/authentik/core/api/users.py index 2029ff7a6..09a5dc553 100644 --- a/authentik/core/api/users.py +++ b/authentik/core/api/users.py @@ -616,8 +616,10 @@ class UserViewSet(UsedByMixin, ModelViewSet): if not request.user.has_perm("impersonate"): LOGGER.debug("User attempted to impersonate without permissions", user=request.user) return Response(status=401) - user_to_be = self.get_object() + if user_to_be.pk == self.request.user.pk: + LOGGER.debug("User attempted to impersonate themselves", user=request.user) + return Response(status=401) request.session[SESSION_KEY_IMPERSONATE_ORIGINAL_USER] = request.user request.session[SESSION_KEY_IMPERSONATE_USER] = user_to_be diff --git a/authentik/core/tests/test_impersonation.py b/authentik/core/tests/test_impersonation.py index 6d17393a8..6d07f4bbc 100644 --- a/authentik/core/tests/test_impersonation.py +++ b/authentik/core/tests/test_impersonation.py @@ -6,6 +6,7 @@ from rest_framework.test import APITestCase from authentik.core.models import User from authentik.core.tests.utils import create_test_admin_user +from authentik.lib.config import CONFIG class TestImpersonation(APITestCase): @@ -46,12 +47,42 @@ class TestImpersonation(APITestCase): """test impersonation without permissions""" self.client.force_login(self.other_user) - self.client.get(reverse("authentik_api:user-impersonate", kwargs={"pk": self.user.pk})) + response = self.client.post( + reverse("authentik_api:user-impersonate", kwargs={"pk": self.user.pk}) + ) + self.assertEqual(response.status_code, 403) response = self.client.get(reverse("authentik_api:user-me")) response_body = loads(response.content.decode()) self.assertEqual(response_body["user"]["username"], self.other_user.username) + @CONFIG.patch("impersonation", False) + def test_impersonate_disabled(self): + """test impersonation that is disabled""" + self.client.force_login(self.user) + + response = self.client.post( + reverse("authentik_api:user-impersonate", kwargs={"pk": self.other_user.pk}) + ) + self.assertEqual(response.status_code, 401) + + response = self.client.get(reverse("authentik_api:user-me")) + response_body = loads(response.content.decode()) + self.assertEqual(response_body["user"]["username"], self.user.username) + + def test_impersonate_self(self): + """test impersonation that user can't impersonate themselves""" + self.client.force_login(self.user) + + response = self.client.post( + reverse("authentik_api:user-impersonate", kwargs={"pk": self.user.pk}) + ) + self.assertEqual(response.status_code, 401) + + response = self.client.get(reverse("authentik_api:user-me")) + response_body = loads(response.content.decode()) + self.assertEqual(response_body["user"]["username"], self.user.username) + def test_un_impersonate_empty(self): """test un-impersonation without impersonating first""" self.client.force_login(self.other_user) diff --git a/web/src/admin/users/RelatedUserList.ts b/web/src/admin/users/RelatedUserList.ts index 7bd907bde..3ebc5dbb5 100644 --- a/web/src/admin/users/RelatedUserList.ts +++ b/web/src/admin/users/RelatedUserList.ts @@ -3,6 +3,7 @@ import "@goauthentik/admin/users/UserActiveForm"; import "@goauthentik/admin/users/UserForm"; import "@goauthentik/admin/users/UserPasswordForm"; import "@goauthentik/admin/users/UserResetEmailForm"; +import { me } from "@goauthentik/app/common/users"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { MessageLevel } from "@goauthentik/common/messages"; import { uiConfig } from "@goauthentik/common/ui/config"; @@ -37,6 +38,7 @@ import { CoreUsersListTypeEnum, Group, ResponseError, + SessionUser, User, } from "@goauthentik/api"; @@ -123,12 +125,15 @@ export class RelatedUserList extends Table { @property({ type: Boolean }) hideServiceAccounts = getURLParam("hideServiceAccounts", true); + @state() + me?: SessionUser; + static get styles(): CSSResult[] { return super.styles.concat(PFDescriptionList, PFAlert, PFBanner); } async apiEndpoint(page: number): Promise> { - return new CoreApi(DEFAULT_CONFIG).coreUsersList({ + const users = await new CoreApi(DEFAULT_CONFIG).coreUsersList({ ordering: this.order, page: page, pageSize: (await uiConfig()).pagination.perPage, @@ -138,6 +143,8 @@ export class RelatedUserList extends Table { ? [CoreUsersListTypeEnum.External, CoreUsersListTypeEnum.Internal] : undefined, }); + this.me = await me(); + return users; } columns(): TableColumn[] { @@ -181,6 +188,9 @@ export class RelatedUserList extends Table { } row(item: User): TemplateResult[] { + const canImpersonate = + rootInterface()?.config?.capabilities.includes(CapabilitiesEnum.CanImpersonate) && + item.pk !== this.me?.user.pk; return [ html`
${item.username}
@@ -200,7 +210,7 @@ export class RelatedUserList extends Table { - ${rootInterface()?.config?.capabilities.includes(CapabilitiesEnum.CanImpersonate) + ${canImpersonate ? html` { @@ -62,6 +70,9 @@ export class UserListPage extends TablePage { @state() userPaths?: UserPath; + @state() + me?: SessionUser; + static get styles(): CSSResult[] { return super.styles.concat(PFDescriptionList, PFCard, PFAlert); } @@ -88,6 +99,7 @@ export class UserListPage extends TablePage { this.userPaths = await new CoreApi(DEFAULT_CONFIG).coreUsersPathsRetrieve({ search: this.search, }); + this.me = await me(); return users; } @@ -179,6 +191,9 @@ export class UserListPage extends TablePage { } row(item: User): TemplateResult[] { + const canImpersonate = + rootInterface()?.config?.capabilities.includes(CapabilitiesEnum.CanImpersonate) && + item.pk !== this.me?.user.pk; return [ html`
${item.username}
@@ -198,7 +213,7 @@ export class UserListPage extends TablePage { - ${rootInterface()?.config?.capabilities.includes(CapabilitiesEnum.CanImpersonate) + ${canImpersonate ? html` { - this.user = user; - }); + me().then((me) => { + this.me = me; + new CoreApi(DEFAULT_CONFIG) + .coreUsersRetrieve({ + id: id, + }) + .then((user) => { + this.user = user; + }); + }); } @property({ attribute: false }) user?: User; + @state() + me?: SessionUser; + static get styles(): CSSResult[] { return [ PFBase, @@ -103,6 +110,9 @@ export class UserViewPage extends AKElement { if (!this.user) { return html``; } + const canImpersonate = + rootInterface()?.config?.capabilities.includes(CapabilitiesEnum.CanImpersonate) && + this.user.pk !== this.me?.user.pk; return html`
${msg("User Info")}
@@ -213,9 +223,7 @@ export class UserViewPage extends AKElement { - ${rootInterface()?.config?.capabilities.includes( - CapabilitiesEnum.CanImpersonate, - ) + ${canImpersonate ? html` Date: Tue, 26 Sep 2023 03:10:18 -0700 Subject: [PATCH 25/41] root: make postgres connection in makefile customizable (#6977) * core/allow alternative postgres credentials This commit allows the `dev-reset` command in the Makefile to pick up and use credentials from the `.env` file if they are present, or fallback to the defaults provided if they are not. This is the only place in the Makefile where the database credentials are used directly against postgresql binaries. The syntax was tested with bash, zsh, and csh, and did not fail under those. The `$${:-}` syntax is a combination of a Makefile idiom for "Pass a single `$` to the environment where this command will be executed," and the shell expresion `${VARIABLE:-default}` means "dereference the environment variable; if it is undefined, used the default value provided." * Re-arrange sequence to avoid recursive make. Nothing wrong with recursive make; it just wasn't essential here. `migrate` is just a build target, not a task. * Cleanup according to the Usage: checkmake [options] ... checkmake -h | --help checkmake --version checkmake --list-rules Makefile linting tool. * core: added 'help' to the Makefile * get postgres config from authentik config loader Signed-off-by: Jens Langhammer * don't set -x by default Signed-off-by: Jens Langhammer * sort help Signed-off-by: Jens Langhammer * update help strings Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer Co-authored-by: Jens Langhammer --- Makefile | 87 +++++++++++++++++++++++++++++++++----------------------- 1 file changed, 52 insertions(+), 35 deletions(-) diff --git a/Makefile b/Makefile index f04e8dac8..a6c4b3e69 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,16 @@ -.SHELLFLAGS += -x -e +.PHONY: gen dev-reset all clean test web website + +.SHELLFLAGS += ${SHELLFLAGS} -e PWD = $(shell pwd) UID = $(shell id -u) GID = $(shell id -g) NPM_VERSION = $(shell python -m scripts.npm_version) PY_SOURCES = authentik tests scripts lifecycle +DOCKER_IMAGE ?= "authentik:test" + +pg_user := $(shell python -m authentik.lib.config postgresql.user 2>/dev/null) +pg_host := $(shell python -m authentik.lib.config postgresql.host 2>/dev/null) +pg_name := $(shell python -m authentik.lib.config postgresql.name 2>/dev/null) CODESPELL_ARGS = -D - -D .github/codespell-dictionary.txt \ -I .github/codespell-words.txt \ @@ -19,57 +26,78 @@ CODESPELL_ARGS = -D - -D .github/codespell-dictionary.txt \ website/integrations \ website/src -all: lint-fix lint test gen web +all: lint-fix lint test gen web ## Lint, build, and test everything + +help: ## Show this help + @echo "\nSpecify a command. The choices are:\n" + @grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | \ + awk 'BEGIN {FS = ":.*?## "}; {printf " \033[0;36m%-24s\033[m %s\n", $$1, $$2}' | \ + sort + @echo "" test-go: go test -timeout 0 -v -race -cover ./... -test-docker: +test-docker: ## Run all tests in a docker-compose echo "PG_PASS=$(openssl rand -base64 32)" >> .env echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 32)" >> .env docker-compose pull -q docker-compose up --no-start docker-compose start postgresql redis - docker-compose run -u root server test + docker-compose run -u root server test-all rm -f .env -test: +test: ## Run the server tests and produce a coverage report (locally) coverage run manage.py test --keepdb authentik coverage html coverage report -lint-fix: +lint-fix: ## Lint and automatically fix errors in the python source code. Reports spelling errors. isort authentik $(PY_SOURCES) black authentik $(PY_SOURCES) ruff authentik $(PY_SOURCES) codespell -w $(CODESPELL_ARGS) -lint: +lint: ## Lint the python and golang sources pylint $(PY_SOURCES) bandit -r $(PY_SOURCES) -x node_modules golangci-lint run -v -migrate: +migrate: ## Run the Authentik Django server's migrations python -m lifecycle.migrate -i18n-extract: i18n-extract-core web-i18n-extract +i18n-extract: i18n-extract-core web-i18n-extract ## Extract strings that require translation into files to send to a translation service i18n-extract-core: ak makemessages --ignore web --ignore internal --ignore web --ignore web-api --ignore website -l en +install: web-install website-install ## Install all requires dependencies for `web`, `website` and `core` + poetry install + +dev-drop-db: + echo dropdb -U ${pg_user} -h ${pg_host} ${pg_name} + # Also remove the test-db if it exists + dropdb -U ${pg_user} -h ${pg_host} test_${pg_name} || true + echo redis-cli -n 0 flushall + +dev-create-db: + createdb -U ${pg_user} -h ${pg_host} ${pg_name} + +dev-reset: dev-drop-db dev-create-db migrate ## Drop and restore the Authentik PostgreSQL instance to a "fresh install" state. + ######################### ## API Schema ######################### -gen-build: +gen-build: ## Extract the schema from the database AUTHENTIK_DEBUG=true ak make_blueprint_schema > blueprints/schema.json AUTHENTIK_DEBUG=true ak spectacular --file schema.yml -gen-changelog: +gen-changelog: ## (Release) generate the changelog based from the commits since the last tag git log --pretty=format:" - %s" $(shell git describe --tags $(shell git rev-list --tags --max-count=1))...$(shell git branch --show-current) | sort > changelog.md npx prettier --write changelog.md -gen-diff: +gen-diff: ## (Release) generate the changelog diff between the current schema and the last tag git show $(shell git describe --tags $(shell git rev-list --tags --max-count=1)):schema.yml > old_schema.yml docker run \ --rm -v ${PWD}:/local \ @@ -84,7 +112,7 @@ gen-clean: rm -rf web/api/src/ rm -rf api/ -gen-client-ts: +gen-client-ts: ## Build and install the authentik API for Typescript into the authentik UI Application docker run \ --rm -v ${PWD}:/local \ --user ${UID}:${GID} \ @@ -100,7 +128,7 @@ gen-client-ts: cd gen-ts-api && npm i \cp -rfv gen-ts-api/* web/node_modules/@goauthentik/api -gen-client-go: +gen-client-go: ## Build and install the authentik API for Golang mkdir -p ./gen-go-api ./gen-go-api/templates wget https://raw.githubusercontent.com/goauthentik/client-go/main/config.yaml -O ./gen-go-api/config.yaml wget https://raw.githubusercontent.com/goauthentik/client-go/main/templates/README.mustache -O ./gen-go-api/templates/README.mustache @@ -117,7 +145,7 @@ gen-client-go: go mod edit -replace goauthentik.io/api/v3=./gen-go-api rm -rf ./gen-go-api/config.yaml ./gen-go-api/templates/ -gen-dev-config: +gen-dev-config: ## Generate a local development config file python -m scripts.generate_config gen: gen-build gen-clean gen-client-ts @@ -126,21 +154,21 @@ gen: gen-build gen-clean gen-client-ts ## Web ######################### -web-build: web-install +web-build: web-install ## Build the Authentik UI cd web && npm run build -web: web-lint-fix web-lint web-check-compile web-i18n-extract +web: web-lint-fix web-lint web-check-compile web-i18n-extract ## Automatically fix formatting issues in the Authentik UI source code, lint the code, and compile it -web-install: +web-install: ## Install the necessary libraries to build the Authentik UI cd web && npm ci -web-watch: +web-watch: ## Build and watch the Authentik UI for changes, updating automatically rm -rf web/dist/ mkdir web/dist/ touch web/dist/.gitkeep cd web && npm run watch -web-storybook-watch: +web-storybook-watch: ## Build and run the storybook documentation server cd web && npm run storybook web-lint-fix: @@ -160,7 +188,7 @@ web-i18n-extract: ## Website ######################### -website: website-lint-fix website-build +website: website-lint-fix website-build ## Automatically fix formatting issues in the Authentik website/docs source code, lint the code, and compile it website-install: cd website && npm ci @@ -171,15 +199,15 @@ website-lint-fix: website-build: cd website && npm run build -website-watch: +website-watch: ## Build and watch the documentation website, updating automatically cd website && npm run watch ######################### ## Docker ######################### -docker: - DOCKER_BUILDKIT=1 docker build . --progress plain --tag authentik:test +docker: ## Build a docker image of the current source tree + DOCKER_BUILDKIT=1 docker build . --progress plain --tag ${DOCKER_IMAGE} ######################### ## CI @@ -214,14 +242,3 @@ ci-pyright: ci--meta-debug ci-pending-migrations: ci--meta-debug ak makemigrations --check - -install: web-install website-install - poetry install - -dev-reset: - dropdb -U postgres -h localhost authentik - # Also remove the test-db if it exists - dropdb -U postgres -h localhost test_authentik || true - createdb -U postgres -h localhost authentik - redis-cli -n 0 flushall - make migrate From 0e5952650b361b96aef500f298b8838153c79cc7 Mon Sep 17 00:00:00 2001 From: Alissa Gerhard Date: Tue, 26 Sep 2023 12:37:22 +0200 Subject: [PATCH 26/41] root: make Celery worker concurrency configurable (#6837) * root: made Celery worker concurrency configurable * core: fixed Celery worker command to set autoscaling options to account for worker concurrency setting * Update website/docs/installation/configuration.md Signed-off-by: Jens L. Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens L. Signed-off-by: Jens Langhammer Co-authored-by: Jens L --- authentik/core/management/commands/worker.py | 2 +- authentik/lib/default.yml | 3 +++ authentik/root/settings.py | 2 +- website/docs/installation/configuration.mdx | 10 ++++++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/authentik/core/management/commands/worker.py b/authentik/core/management/commands/worker.py index e400e83ab..b22187efe 100644 --- a/authentik/core/management/commands/worker.py +++ b/authentik/core/management/commands/worker.py @@ -29,7 +29,7 @@ class Command(BaseCommand): no_color=False, quiet=True, optimization="fair", - autoscale=(3, 1), + autoscale=(CONFIG.get_int("worker.concurrency"), 1), task_events=True, beat=options.get("beat", True), schedule_filename=f"{tempdir}/celerybeat-schedule", diff --git a/authentik/lib/default.yml b/authentik/lib/default.yml index 76792f9c8..793bece13 100644 --- a/authentik/lib/default.yml +++ b/authentik/lib/default.yml @@ -111,3 +111,6 @@ web: # No default here as it's set dynamically # workers: 2 threads: 4 + +worker: + concurrency: 2 diff --git a/authentik/root/settings.py b/authentik/root/settings.py index 4bec86fd9..d484d2ecb 100644 --- a/authentik/root/settings.py +++ b/authentik/root/settings.py @@ -332,7 +332,7 @@ LOCALE_PATHS = ["./locale"] CELERY = { "task_soft_time_limit": 600, "worker_max_tasks_per_child": 50, - "worker_concurrency": 2, + "worker_concurrency": CONFIG.get_int("worker.concurrency"), "beat_schedule": { "clean_expired_models": { "task": "authentik.core.tasks.clean_expired_models", diff --git a/website/docs/installation/configuration.mdx b/website/docs/installation/configuration.mdx index 400c13108..9f90666d2 100644 --- a/website/docs/installation/configuration.mdx +++ b/website/docs/installation/configuration.mdx @@ -363,6 +363,16 @@ Configure how many gunicorn threads a worker processes should have (see https:// Defaults to 4. +### `AUTHENTIK_WORKER__CONCURRENCY` + +:::info +Requires authentik 2023.9.0 +::: + +Configure Celery worker concurrency for authentik worker (see https://docs.celeryq.dev/en/latest/userguide/configuration.html#worker-concurrency). This essentially defines the number of worker processes spawned for a single worker. + +Defaults to 2. + ## Custom python settings To modify additional settings further than the options above allow, you can create a custom python file and mount it to `/data/user_settings.py`. This file will be loaded on startup by both the server and the worker. All default settings are [here](https://github.com/goauthentik/authentik/blob/main/authentik/root/settings.py) From 017771ddf76eb0645b7790ce7ca2bec21adf2da7 Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Tue, 26 Sep 2023 11:14:27 -0500 Subject: [PATCH 27/41] website/blogs: Blog about m2m (#6974) * m2m blog * fix image ext * tweak * updated dependency * formatting * removed old tag * Optimised images with calibre/image-actions * fixed errors marc and samir found * typo * tweak * image rename fighting me --------- Co-authored-by: Tana Berry Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> --- .../Image1.png | Bin 0 -> 44894 bytes .../item.md | 134 ++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 website/blog/2023-09-26-machine-to-machine-communication-in-authentik/Image1.png create mode 100644 website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md diff --git a/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/Image1.png b/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/Image1.png new file mode 100644 index 0000000000000000000000000000000000000000..4112876a731e5f439008250ef6fbd8c40df068e8 GIT binary patch literal 44894 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 “Machine to machine systems are the key to reliable data processing with near to zero errors” ([source](https://dataconomy.com/2023/07/14/what-is-machine-to-machine-m2m/)) + +Where there is communication in software systems, there is both authentication and authorization. The basic definition of the terms is that _authentication_ is about assessing and verifying WHO (the person, device, thing) is involved, while **_authorization_** is about what access rights that person or device has. So we choose to use the phrase “machine-to-machine communication” in order to capture both of those important aspects. + +> Or we could use fun terms like **AuthN** (authentication) and **AuthZ** (authorization). + +So in some ways you can think of M2M as being like an internal API, with data (tokens and keys and certs and all thing access-related) being passed back and forth, but specifically for authentication and authorization processes. + +!["Screenshot of authentik UI"](./Image1.png) + + + +## M2M communication in authentik + +As part of our providing a unified platform for authentication, authentik supports OAuth2-based M2M communication. By “unified platform” we mean that authentik provides workplace authentication for team members, B2C login by web site visitors, global communities and non-profit teams, educational societies, and [coming soon] mobile authentication. So that all authentications needs are met by authentik, as a unified platform. + +### Use cases for M2M in authentik + +Macine-to-machine communication speeds processing and adds a layer of security to inter-application and complex, multi-machine systems. With authentik’s M2M functionality, you can take advantage of these aspects, and optimize your workflow for authentication and authorization between servers, applications, and any provider or source in your ecosystem. + +**Common workflow** + +The workflow for all three of the use cases that we discuss below share several core common steps: + +1. Obtain a token from the environment you are working in (i.e. a build/CI tool such as GitLab or GitHub, or Kubernetes for applications running on Kubernetes). +2. Pass the token, via [client_credentials](https://goauthentik.io/docs/providers/oauth2/client_credentials), to authentik. +3. In the response, authentik returns a JWT (JSON Web Token). +4. The token is then used to authenticate requests to other services elsewhere. (These other services need to check the token for its validity, which can be done with the [proxy provider](https://goauthentik.io/docs/providers/proxy/) in authentik for example). + +**Three authentik use cases** + +Lets take a look at three specific use cases for implementing M2M with authentik. + +**1. Building Docker images and passing them to a [Docker registry](https://docs.docker.com/registry/)** + +After building and testing your application, you might want to package your application as a Docker image and push it to a registry so that others can use it for deployment. + +For this use case, you can use M2M with authentik to push the package to your registry without needing to login yourself, or needing a password, or even a pre-defined service account, to the registry. Instead, you can create a policy with authentik to allow a specific repository in your CI platform to push to the Docker registry. When logging into the registry, you can use the token you already have access to from the platform you’re running on, and the rest happens behind the scenes! + +For a real-life example, with code samples, take a look at my blog “[Setup a docker registry for passwordless Docker builds with GitHub/GitLab using authentik](https://beryju.io/blog/2022-06-github-gitlab-passwordless-docker/)”, which provides step-by-step instructions with code blocks. + +**2. Collect Prometheus metrics from multiple clusters** + +If you use Prometheus to monitor multiple Kubernetes clusters, you might want to collect all Prometheus metrics and put them in one place, using something like [Thanos](https://thanos.io/) or [Mimir](https://grafana.com/oss/mimir/) in order to better analyze the data. Using M2M functionality in authentik, you can simplify authentication, so that the source (the cluster sending the metrics, in this case) can authenticate itself with the receiving target cluster. + +In this use case, you will create an expression policy, in which you define service accounts to allow communication between that specific cluster and authentik. + +- You create an OAuth Source for each cluster (since each cluster usually has its own unique JWT Signing key). On the **Create a new source** panel, select **OpenID OAuth Source** as the type, and then click **Next**. Then you will need to populate the following fields: + - **Consumer key**, **Consumer secret**, **Authorization URL**, **Access token URL**, and **Profile URL, and OIDC JWKS** (to obtain the key for the cluster, run the command `kubectl get --raw /openid/v1/jwks`). +- You can create a proxy provider to authenticate the incoming requests, where the proxy provider functions like a traditional reverse-proxy, sending traffic to Thanos or Mimir in the cluster but also requiring authentication for any requests. When defining your proxy provider, use the following syntax: + + ```python + + # Replace these values with the namespace and service-account name for your prometheus instance + allowed_namespace = "prometheus-namespace" + allowed_service_account = "prometheus-sa" + + jwt = request.context.get("oauth_jwt", None) + if not jwt: + return False + allowed_sa = [ + f"system:serviceaccount:{allowed_namespace}:{allowed_service_account}", + ] + return jwt["sub"] in allowed_sa + ``` + + Then the rest is same as in the first use case; obtain a JWT from the K8s cluster, send the token to authentik, get back a diff token, then send that token to Thanos, Mimir, or where ever you want to store the metrics. Prometheus then uses that token to authenticate incoming requests from the other clusters. Actually, you can configure Promethesus to do the token exchange work, by using their `remote_write` feature. For an example of how this can be set up, refer to this YAML file, where I configured `remote_write`. + +**3. GitOps with M2M and Loki** + +This third use case is a twist on the first two use cases, but even more simple. + +We can utilize GitOps to configure [Loki alerting rules](https://grafana.com/docs/loki/latest/alert/), by using GitHub actions and a proxy provider to make Loki publicly accessible. This setup combines the use of a CI platform (as in the first use case) and using a proxy provider to authenticate requests (as in the second use case). In this third case, the authentication is for the requests from GitHub Actions to Loki. + +- Create an OAuth Source for GitHub, selecting **OpenID OAuth Source** as the type. Then, instead of populating the **OIDC JWKS** field, you use the **OIDC JWKS URL** field and set that to https://token.actions.githubusercontent.com/.well-known/jwks. +- As with the second use case, create proxy provider, which acts like a traditional reverse-proxy, sending traffic to Loki, but also authenticating any requests. +- Create an expression policy, using the following syntax: + +```python +# Replace the two values below +github_user = "my-user" +github_repo = "my-repo" + +jwt = request.context.get("oauth_jwt", None) +if not jwt: + return False +if jwt["iss"] != "https://token.actions.githubusercontent.com": + return False +if jwt["repository"] != f"{github_user}/{github_repo}": + return False +return True + +``` + +- Finally, call a snippet in a GitHub composite action (this can be done manually or programmatically) to exchange the tokens between the GitHub action and Loki. The proxy provider then verifies the tokens and forwards the requests to Loki. + +### What’s next + +Look for our upcoming tutorial about configuring machine-to-machine communication using authentik. As part of the tutorial, we will provide a GitHub composite action that bundles the multiple steps involved in token creation and exchange into a single, reusable action, instead of needing multiple `run` commands. + +We’d like to hear from you about how you use M2M, or how you plan to in the future. And as always, if you are interested in collaborating with us on our M2M functionality, or contributing to our documentation, visit us in our [GitHub repository](https://github.com/goauthentik/authentik) or reach out to us at [hello@goauthentik.io](mailto:hello@goauthentik.io). From 90aa5409cd3f595dd353ac21838c16e15d2c0953 Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 26 Sep 2023 18:55:33 +0200 Subject: [PATCH 28/41] sources/ldap: add default property mapping to mirror directory structure (#6990) * sources/ldap: add default property mapping to mirror directory structure Signed-off-by: Jens Langhammer * add tests Signed-off-by: Jens Langhammer * adjust name Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/sources/ldap/sync/base.py | 6 ++++-- authentik/sources/ldap/tests/mock_ad.py | 2 +- authentik/sources/ldap/tests/test_sync.py | 1 + blueprints/system/sources-ldap.yaml | 21 +++++++++++++++++++++ 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/authentik/sources/ldap/sync/base.py b/authentik/sources/ldap/sync/base.py index 2a769e101..a131d935c 100644 --- a/authentik/sources/ldap/sync/base.py +++ b/authentik/sources/ldap/sync/base.py @@ -133,7 +133,7 @@ class BaseLDAPSynchronizer: def build_user_properties(self, user_dn: str, **kwargs) -> dict[str, Any]: """Build attributes for User object based on property mappings.""" props = self._build_object_properties(user_dn, self._source.property_mappings, **kwargs) - props["path"] = self._source.get_user_path() + props.setdefault("path", self._source.get_user_path()) return props def build_group_properties(self, group_dn: str, **kwargs) -> dict[str, Any]: @@ -151,7 +151,9 @@ class BaseLDAPSynchronizer: continue mapping: LDAPPropertyMapping try: - value = mapping.evaluate(user=None, request=None, ldap=kwargs, dn=object_dn) + value = mapping.evaluate( + user=None, request=None, ldap=kwargs, dn=object_dn, source=self._source + ) if value is None: self._logger.warning("property mapping returned None", mapping=mapping) continue diff --git a/authentik/sources/ldap/tests/mock_ad.py b/authentik/sources/ldap/tests/mock_ad.py index 7a13e92aa..b0914bda4 100644 --- a/authentik/sources/ldap/tests/mock_ad.py +++ b/authentik/sources/ldap/tests/mock_ad.py @@ -55,7 +55,7 @@ def mock_ad_connection(password: str) -> Connection: "revision": 0, "objectSid": "user0", "objectClass": "person", - "distinguishedName": "cn=user0,ou=users,dc=goauthentik,dc=io", + "distinguishedName": "cn=user0,ou=foo,ou=users,dc=goauthentik,dc=io", "userAccountControl": ( UserAccountControl.ACCOUNTDISABLE + UserAccountControl.NORMAL_ACCOUNT ), diff --git a/authentik/sources/ldap/tests/test_sync.py b/authentik/sources/ldap/tests/test_sync.py index 6bf459017..13035ac2b 100644 --- a/authentik/sources/ldap/tests/test_sync.py +++ b/authentik/sources/ldap/tests/test_sync.py @@ -123,6 +123,7 @@ class LDAPSyncTests(TestCase): user = User.objects.filter(username="user0_sn").first() self.assertEqual(user.attributes["foo"], "bar") self.assertFalse(user.is_active) + self.assertEqual(user.path, "goauthentik.io/sources/ldap/users/foo") self.assertFalse(User.objects.filter(username="user1_sn").exists()) def test_sync_users_openldap(self): diff --git a/blueprints/system/sources-ldap.yaml b/blueprints/system/sources-ldap.yaml index fa0056390..dbf8891e7 100644 --- a/blueprints/system/sources-ldap.yaml +++ b/blueprints/system/sources-ldap.yaml @@ -4,6 +4,27 @@ metadata: blueprints.goauthentik.io/system: "true" name: System - LDAP Source - Mappings entries: + - identifiers: + managed: goauthentik.io/sources/ldap/default-dn-path + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "authentik default LDAP Mapping: DN to User Path" + object_field: "path" + expression: | + dn = ldap.get("distinguishedName") + path_elements = [] + for pair in dn.split(","): + attr, _, value = pair.partition("=") + # Ignore elements from the Root DSE and the canonical name of the object + if attr.lower() in ["cn", "dc"]: + continue + path_elements.append(value) + path_elements.reverse() + + path = source.get_user_path() + if len(path_elements) > 0: + path = f"{path}/{'/'.join(path_elements)}" + return path - identifiers: managed: goauthentik.io/sources/ldap/default-name model: authentik_sources_ldap.ldappropertymapping From c93c6ee6f9128c6375e377836b57a40c0379d854 Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 26 Sep 2023 18:56:37 +0200 Subject: [PATCH 29/41] root: replace boj/redistore with vendored version of rbcervilla/redisstore (#6988) * root: replace boj/redistore with vendored version of rbcervilla/redisstore Signed-off-by: Jens Langhammer * setup env for go tests Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- .github/workflows/ci-outpost.yml | 2 + go.mod | 4 +- go.sum | 10 +- .../proxyv2/application/application.go | 2 +- .../outpost/proxyv2/application/session.go | 59 +++--- internal/outpost/proxyv2/redisstore/LICENSE | 21 ++ .../outpost/proxyv2/redisstore/redisstore.go | 200 ++++++++++++++++++ .../proxyv2/redisstore/redisstore_test.go | 158 ++++++++++++++ 8 files changed, 418 insertions(+), 38 deletions(-) create mode 100644 internal/outpost/proxyv2/redisstore/LICENSE create mode 100644 internal/outpost/proxyv2/redisstore/redisstore.go create mode 100644 internal/outpost/proxyv2/redisstore/redisstore_test.go diff --git a/.github/workflows/ci-outpost.yml b/.github/workflows/ci-outpost.yml index 19a60cb6e..fe8ebf3b8 100644 --- a/.github/workflows/ci-outpost.yml +++ b/.github/workflows/ci-outpost.yml @@ -39,6 +39,8 @@ jobs: - uses: actions/setup-go@v4 with: go-version-file: "go.mod" + - name: Setup authentik env + uses: ./.github/actions/setup - name: Generate API run: make gen-client-go - name: Go unittests diff --git a/go.mod b/go.mod index 2c212348c..1caf0f9a2 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,6 @@ require ( beryju.io/ldap v0.1.0 github.com/Netflix/go-env v0.0.0-20210215222557-e437a7e7f9fb github.com/coreos/go-oidc v2.2.1+incompatible - github.com/garyburd/redigo v1.6.4 github.com/getsentry/sentry-go v0.24.1 github.com/go-http-utils/etag v0.0.0-20161124023236-513ea8f21eb1 github.com/go-ldap/ldap/v3 v3.4.6 @@ -23,6 +22,7 @@ require ( github.com/nmcclain/asn1-ber v0.0.0-20170104154839-2661553a0484 github.com/pires/go-proxyproto v0.7.0 github.com/prometheus/client_golang v1.16.0 + github.com/redis/go-redis/v9 v9.2.0 github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.7.0 github.com/stretchr/testify v1.8.4 @@ -30,7 +30,6 @@ require ( golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab golang.org/x/oauth2 v0.12.0 golang.org/x/sync v0.3.0 - gopkg.in/boj/redistore.v1 v1.0.0-20160128113310-fc113767cd6b gopkg.in/yaml.v2 v2.4.0 layeh.com/radius v0.0.0-20210819152912-ad72663a72ab ) @@ -41,6 +40,7 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/felixge/httpsnoop v1.0.1 // indirect github.com/go-asn1-ber/asn1-ber v1.5.5 // indirect github.com/go-http-utils/fresh v0.0.0-20161124030543-7231e26a4b27 // indirect diff --git a/go.sum b/go.sum index 269215118..db4212ebb 100644 --- a/go.sum +++ b/go.sum @@ -48,6 +48,8 @@ github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3d github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= +github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= @@ -63,14 +65,14 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/garyburd/redigo v1.6.4 h1:LFu2R3+ZOPgSMWMOL+saa/zXRjw0ID2G8FepO53BGlg= -github.com/garyburd/redigo v1.6.4/go.mod h1:rTb6epsqigu3kYKBnaF028A7Tf/Aw5s0cqA47doKKqw= github.com/getsentry/sentry-go v0.24.1 h1:W6/0GyTy8J6ge6lVCc94WB6Gx2ZuLrgopnn9w8Hiwuk= github.com/getsentry/sentry-go v0.24.1/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/go-asn1-ber/asn1-ber v1.5.5 h1:MNHlNMBDgEKD4TcKr36vQN68BA00aDfjIt3/bD50WnA= @@ -286,6 +288,8 @@ github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= github.com/prometheus/procfs v0.10.1 h1:kYK1Va/YMlutzCGazswoHKo//tZVlFpKYh+PymziUAg= github.com/prometheus/procfs v0.10.1/go.mod h1:nwNm2aOCAYw8uTR/9bWRREkZFxAUcWzPHWJq+XBB/FM= +github.com/redis/go-redis/v9 v9.2.0 h1:zwMdX0A4eVzse46YN18QhuDiM4uf3JmkOB4VZrdt5uI= +github.com/redis/go-redis/v9 v9.2.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -638,8 +642,6 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/boj/redistore.v1 v1.0.0-20160128113310-fc113767cd6b h1:U/Uqd1232+wrnHOvWNaxrNqn/kFnr4yu4blgPtQt0N8= -gopkg.in/boj/redistore.v1 v1.0.0-20160128113310-fc113767cd6b/go.mod h1:fgfIZMlsafAHpspcks2Bul+MWUNw/2dyQmjC2faKjtg= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/outpost/proxyv2/application/application.go b/internal/outpost/proxyv2/application/application.go index 3c8af5af3..657bcbec7 100644 --- a/internal/outpost/proxyv2/application/application.go +++ b/internal/outpost/proxyv2/application/application.go @@ -280,7 +280,7 @@ func (a *Application) handleSignOut(rw http.ResponseWriter, r *http.Request) { "id_token_hint": []string{cc.RawToken}, } redirect += "?" + uv.Encode() - err = a.Logout(cc.Sub) + err = a.Logout(r.Context(), cc.Sub) if err != nil { a.log.WithError(err).Warning("failed to logout of other sessions") } diff --git a/internal/outpost/proxyv2/application/session.go b/internal/outpost/proxyv2/application/session.go index bf426c10e..65fb7fed1 100644 --- a/internal/outpost/proxyv2/application/session.go +++ b/internal/outpost/proxyv2/application/session.go @@ -1,23 +1,23 @@ package application import ( + "context" "fmt" "math" "net/http" "net/url" "os" "path" - "strconv" "strings" - "github.com/garyburd/redigo/redis" "github.com/gorilla/securecookie" "github.com/gorilla/sessions" + "github.com/redis/go-redis/v9" "goauthentik.io/api/v3" "goauthentik.io/internal/config" "goauthentik.io/internal/outpost/proxyv2/codecs" "goauthentik.io/internal/outpost/proxyv2/constants" - "gopkg.in/boj/redistore.v1" + "goauthentik.io/internal/outpost/proxyv2/redisstore" ) const RedisKeyPrefix = "authentik_proxy_session_" @@ -30,20 +30,26 @@ func (a *Application) getStore(p api.ProxyOutpostConfig, externalHost *url.URL) maxAge = int(*t) + 1 } if a.isEmbedded { - rs, err := redistore.NewRediStoreWithDB(10, "tcp", fmt.Sprintf("%s:%d", config.Get().Redis.Host, config.Get().Redis.Port), config.Get().Redis.Password, strconv.Itoa(config.Get().Redis.DB)) + client := redis.NewClient(&redis.Options{ + Addr: fmt.Sprintf("%s:%d", config.Get().Redis.Host, config.Get().Redis.Port), + // Username: config.Get().Redis.Password, + Password: config.Get().Redis.Password, + DB: config.Get().Redis.DB, + }) + + // New default RedisStore + rs, err := redisstore.NewRedisStore(context.Background(), client) if err != nil { panic(err) } - rs.Codecs = codecs.CodecsFromPairs(maxAge, []byte(*p.CookieSecret)) - rs.SetMaxLength(math.MaxInt) - rs.SetKeyPrefix(RedisKeyPrefix) - rs.Options.HttpOnly = true - if strings.ToLower(externalHost.Scheme) == "https" { - rs.Options.Secure = true - } - rs.Options.Domain = *p.CookieDomain - rs.Options.SameSite = http.SameSiteLaxMode + rs.KeyPrefix(RedisKeyPrefix) + rs.Options(sessions.Options{ + HttpOnly: strings.ToLower(externalHost.Scheme) == "https", + Domain: *p.CookieDomain, + SameSite: http.SameSiteLaxMode, + }) + a.log.Trace("using redis session backend") return rs } @@ -80,7 +86,7 @@ func (a *Application) getAllCodecs() []securecookie.Codec { return cs } -func (a *Application) Logout(sub string) error { +func (a *Application) Logout(ctx context.Context, sub string) error { if _, ok := a.sessions.(*sessions.FilesystemStore); ok { files, err := os.ReadDir(os.TempDir()) if err != nil { @@ -120,31 +126,22 @@ func (a *Application) Logout(sub string) error { } } } - if rs, ok := a.sessions.(*redistore.RediStore); ok { - pool := rs.Pool.Get() - defer pool.Close() - rep, err := pool.Do("KEYS", fmt.Sprintf("%s*", RedisKeyPrefix)) + if rs, ok := a.sessions.(*redisstore.RedisStore); ok { + client := rs.Client() + defer client.Close() + keys, err := client.Keys(ctx, fmt.Sprintf("%s*", RedisKeyPrefix)).Result() if err != nil { return err } - keys, err := redis.Strings(rep, err) - if err != nil { - return err - } - serializer := redistore.GobSerializer{} + serializer := redisstore.GobSerializer{} for _, key := range keys { - v, err := pool.Do("GET", key) + v, err := client.Get(ctx, key).Result() if err != nil { a.log.WithError(err).Warning("failed to get value") continue } - b, err := redis.Bytes(v, err) - if err != nil { - a.log.WithError(err).Warning("failed to load value") - continue - } s := sessions.Session{} - err = serializer.Deserialize(b, &s) + err = serializer.Deserialize([]byte(v), &s) if err != nil { a.log.WithError(err).Warning("failed to deserialize") continue @@ -156,7 +153,7 @@ func (a *Application) Logout(sub string) error { claims := c.(Claims) if claims.Sub == sub { a.log.WithField("key", key).Trace("deleting session") - _, err := pool.Do("DEL", key) + _, err := client.Del(ctx, key).Result() if err != nil { a.log.WithError(err).Warning("failed to delete key") continue diff --git a/internal/outpost/proxyv2/redisstore/LICENSE b/internal/outpost/proxyv2/redisstore/LICENSE new file mode 100644 index 000000000..b13f8490e --- /dev/null +++ b/internal/outpost/proxyv2/redisstore/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Ruben Cervilla + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/internal/outpost/proxyv2/redisstore/redisstore.go b/internal/outpost/proxyv2/redisstore/redisstore.go new file mode 100644 index 000000000..21c812412 --- /dev/null +++ b/internal/outpost/proxyv2/redisstore/redisstore.go @@ -0,0 +1,200 @@ +package redisstore + +import ( + "bytes" + "context" + "crypto/rand" + "encoding/base32" + "encoding/gob" + "errors" + "io" + "net/http" + "strings" + "time" + + "github.com/gorilla/sessions" + "github.com/redis/go-redis/v9" +) + +// RedisStore stores gorilla sessions in Redis +type RedisStore struct { + // client to connect to redis + client redis.UniversalClient + // default options to use when a new session is created + options sessions.Options + // key prefix with which the session will be stored + keyPrefix string + // key generator + keyGen KeyGenFunc + // session serializer + serializer SessionSerializer +} + +// KeyGenFunc defines a function used by store to generate a key +type KeyGenFunc func() (string, error) + +// NewRedisStore returns a new RedisStore with default configuration +func NewRedisStore(ctx context.Context, client redis.UniversalClient) (*RedisStore, error) { + rs := &RedisStore{ + options: sessions.Options{ + Path: "/", + MaxAge: 86400 * 30, + }, + client: client, + keyPrefix: "session:", + keyGen: generateRandomKey, + serializer: GobSerializer{}, + } + + return rs, rs.client.Ping(ctx).Err() +} + +func (s *RedisStore) Client() redis.UniversalClient { + return s.client +} + +// Get returns a session for the given name after adding it to the registry. +func (s *RedisStore) Get(r *http.Request, name string) (*sessions.Session, error) { + return sessions.GetRegistry(r).Get(s, name) +} + +// New returns a session for the given name without adding it to the registry. +func (s *RedisStore) New(r *http.Request, name string) (*sessions.Session, error) { + session := sessions.NewSession(s, name) + opts := s.options + session.Options = &opts + session.IsNew = true + + c, err := r.Cookie(name) + if err != nil { + return session, nil + } + session.ID = c.Value + + err = s.load(r.Context(), session) + if err == nil { + session.IsNew = false + } else if err == redis.Nil { + err = nil // no data stored + } + return session, err +} + +// Save adds a single session to the response. +// +// If the Options.MaxAge of the session is <= 0 then the session file will be +// deleted from the store. With this process it enforces the properly +// session cookie handling so no need to trust in the cookie management in the +// web browser. +func (s *RedisStore) Save(r *http.Request, w http.ResponseWriter, session *sessions.Session) error { + // Delete if max-age is <= 0 + if session.Options.MaxAge <= 0 { + if err := s.delete(r.Context(), session); err != nil { + return err + } + http.SetCookie(w, sessions.NewCookie(session.Name(), "", session.Options)) + return nil + } + + if session.ID == "" { + id, err := s.keyGen() + if err != nil { + return errors.New("redisstore: failed to generate session id") + } + session.ID = id + } + if err := s.save(r.Context(), session); err != nil { + return err + } + + http.SetCookie(w, sessions.NewCookie(session.Name(), session.ID, session.Options)) + return nil +} + +// Options set options to use when a new session is created +func (s *RedisStore) Options(opts sessions.Options) { + s.options = opts +} + +// KeyPrefix sets the key prefix to store session in Redis +func (s *RedisStore) KeyPrefix(keyPrefix string) { + s.keyPrefix = keyPrefix +} + +// KeyGen sets the key generator function +func (s *RedisStore) KeyGen(f KeyGenFunc) { + s.keyGen = f +} + +// Serializer sets the session serializer to store session +func (s *RedisStore) Serializer(ss SessionSerializer) { + s.serializer = ss +} + +// Close closes the Redis store +func (s *RedisStore) Close() error { + return s.client.Close() +} + +// save writes session in Redis +func (s *RedisStore) save(ctx context.Context, session *sessions.Session) error { + b, err := s.serializer.Serialize(session) + if err != nil { + return err + } + + return s.client.Set(ctx, s.keyPrefix+session.ID, b, time.Duration(session.Options.MaxAge)*time.Second).Err() +} + +// load reads session from Redis +func (s *RedisStore) load(ctx context.Context, session *sessions.Session) error { + cmd := s.client.Get(ctx, s.keyPrefix+session.ID) + if cmd.Err() != nil { + return cmd.Err() + } + + b, err := cmd.Bytes() + if err != nil { + return err + } + + return s.serializer.Deserialize(b, session) +} + +// delete deletes session in Redis +func (s *RedisStore) delete(ctx context.Context, session *sessions.Session) error { + return s.client.Del(ctx, s.keyPrefix+session.ID).Err() +} + +// SessionSerializer provides an interface for serialize/deserialize a session +type SessionSerializer interface { + Serialize(s *sessions.Session) ([]byte, error) + Deserialize(b []byte, s *sessions.Session) error +} + +// Gob serializer +type GobSerializer struct{} + +func (gs GobSerializer) Serialize(s *sessions.Session) ([]byte, error) { + buf := new(bytes.Buffer) + enc := gob.NewEncoder(buf) + err := enc.Encode(s.Values) + if err == nil { + return buf.Bytes(), nil + } + return nil, err +} + +func (gs GobSerializer) Deserialize(d []byte, s *sessions.Session) error { + dec := gob.NewDecoder(bytes.NewBuffer(d)) + return dec.Decode(&s.Values) +} + +// generateRandomKey returns a new random key +func generateRandomKey() (string, error) { + k := make([]byte, 64) + if _, err := io.ReadFull(rand.Reader, k); err != nil { + return "", err + } + return strings.TrimRight(base32.StdEncoding.EncodeToString(k), "="), nil +} diff --git a/internal/outpost/proxyv2/redisstore/redisstore_test.go b/internal/outpost/proxyv2/redisstore/redisstore_test.go new file mode 100644 index 000000000..f7853b250 --- /dev/null +++ b/internal/outpost/proxyv2/redisstore/redisstore_test.go @@ -0,0 +1,158 @@ +package redisstore + +import ( + "context" + "net/http" + "net/http/httptest" + "testing" + + "github.com/gorilla/sessions" + "github.com/redis/go-redis/v9" +) + +const ( + redisAddr = "localhost:6379" +) + +func TestNew(t *testing.T) { + client := redis.NewClient(&redis.Options{ + Addr: redisAddr, + }) + + store, err := NewRedisStore(context.Background(), client) + if err != nil { + t.Fatal("failed to create redis store", err) + } + + req, err := http.NewRequest("GET", "http://www.example.com", nil) + if err != nil { + t.Fatal("failed to create request", err) + } + + session, err := store.New(req, "hello") + if err != nil { + t.Fatal("failed to create session", err) + } + if session.IsNew == false { + t.Fatal("session is not new") + } +} + +func TestOptions(t *testing.T) { + client := redis.NewClient(&redis.Options{ + Addr: redisAddr, + }) + + store, err := NewRedisStore(context.Background(), client) + if err != nil { + t.Fatal("failed to create redis store", err) + } + + opts := sessions.Options{ + Path: "/path", + MaxAge: 99999, + } + store.Options(opts) + + req, err := http.NewRequest("GET", "http://www.example.com", nil) + if err != nil { + t.Fatal("failed to create request", err) + } + + session, err := store.New(req, "hello") + if err != nil { + t.Fatal("failed to create store", err) + } + if session.Options.Path != opts.Path || session.Options.MaxAge != opts.MaxAge { + t.Fatal("failed to set options") + } +} + +func TestSave(t *testing.T) { + client := redis.NewClient(&redis.Options{ + Addr: redisAddr, + }) + + store, err := NewRedisStore(context.Background(), client) + if err != nil { + t.Fatal("failed to create redis store", err) + } + + req, err := http.NewRequest("GET", "http://www.example.com", nil) + if err != nil { + t.Fatal("failed to create request", err) + } + w := httptest.NewRecorder() + + session, err := store.New(req, "hello") + if err != nil { + t.Fatal("failed to create session", err) + } + + session.Values["key"] = "value" + err = session.Save(req, w) + if err != nil { + t.Fatal("failed to save: ", err) + } +} + +func TestDelete(t *testing.T) { + client := redis.NewClient(&redis.Options{ + Addr: redisAddr, + }) + + store, err := NewRedisStore(context.Background(), client) + if err != nil { + t.Fatal("failed to create redis store", err) + } + + req, err := http.NewRequest("GET", "http://www.example.com", nil) + if err != nil { + t.Fatal("failed to create request", err) + } + w := httptest.NewRecorder() + + session, err := store.New(req, "hello") + if err != nil { + t.Fatal("failed to create session", err) + } + + session.Values["key"] = "value" + err = session.Save(req, w) + if err != nil { + t.Fatal("failed to save session: ", err) + } + + session.Options.MaxAge = -1 + err = session.Save(req, w) + if err != nil { + t.Fatal("failed to delete session: ", err) + } +} + +func TestClose(t *testing.T) { + client := redis.NewClient(&redis.Options{ + Addr: redisAddr, + }) + + cmd := client.Ping(context.Background()) + err := cmd.Err() + if err != nil { + t.Fatal("connection is not opened") + } + + store, err := NewRedisStore(context.Background(), client) + if err != nil { + t.Fatal("failed to create redis store", err) + } + + err = store.Close() + if err != nil { + t.Fatal("failed to close") + } + + cmd = client.Ping(context.Background()) + if cmd.Err() == nil { + t.Fatal("connection is properly closed") + } +} From e55e27d060a54c32ecdd12effd6c019338b28f24 Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 26 Sep 2023 18:59:28 +0200 Subject: [PATCH 30/41] root: disable APPEND_SLASH (#6928) Signed-off-by: Jens Langhammer --- authentik/root/settings.py | 1 + 1 file changed, 1 insertion(+) diff --git a/authentik/root/settings.py b/authentik/root/settings.py index d484d2ecb..a7ed583ae 100644 --- a/authentik/root/settings.py +++ b/authentik/root/settings.py @@ -37,6 +37,7 @@ CSRF_HEADER_NAME = "HTTP_X_AUTHENTIK_CSRF" LANGUAGE_COOKIE_NAME = "authentik_language" SESSION_COOKIE_NAME = "authentik_session" SESSION_COOKIE_DOMAIN = CONFIG.get("cookie_domain", None) +APPEND_SLASH = False AUTHENTICATION_BACKENDS = [ "django.contrib.auth.backends.ModelBackend", From 8e39ad2cdad3448e0dc31cae140cb1d107e04014 Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 26 Sep 2023 19:51:45 +0200 Subject: [PATCH 31/41] web/user: fix incorrect link to admin interface (#6993) --- web/src/user/UserInterface.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/src/user/UserInterface.ts b/web/src/user/UserInterface.ts index 8cc59e284..0d83982a1 100644 --- a/web/src/user/UserInterface.ts +++ b/web/src/user/UserInterface.ts @@ -283,7 +283,7 @@ export class UserInterface extends Interface { ${this.me.user.isSuperuser ? html` ${msg("Admin interface")} ` From 4bb53fc3e8b0c90568b9a48587d5a06067e7d53a Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 26 Sep 2023 21:41:55 +0200 Subject: [PATCH 32/41] website/blog: fix missing link in m2m post (#6994) Signed-off-by: Jens Langhammer --- .../item.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md b/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md index 0a3b24d78..7d0ed592d 100644 --- a/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md +++ b/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md @@ -97,7 +97,7 @@ In this use case, you will create an expression policy, in which you define serv return jwt["sub"] in allowed_sa ``` - Then the rest is same as in the first use case; obtain a JWT from the K8s cluster, send the token to authentik, get back a diff token, then send that token to Thanos, Mimir, or where ever you want to store the metrics. Prometheus then uses that token to authenticate incoming requests from the other clusters. Actually, you can configure Promethesus to do the token exchange work, by using their `remote_write` feature. For an example of how this can be set up, refer to this YAML file, where I configured `remote_write`. + Then the rest is same as in the first use case; obtain a JWT from the K8s cluster, send the token to authentik, get back a diff token, then send that token to Thanos, Mimir, or where ever you want to store the metrics. Prometheus then uses that token to authenticate incoming requests from the other clusters. Actually, you can configure Promethesus to do the token exchange work, by using the `oauth2` configuration option. For an example of how this can be set up, refer to [this YAML file](https://github.com/BeryJu/k8s/blob/b4b26e5/common-monitoring/monitoring-system/prom-agent.yaml#L24-L39), where I configured `remote_write`. **3. GitOps with M2M and Loki** From f7927114e586e14e444a2f8b42e30fe4e679afc9 Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Tue, 26 Sep 2023 14:57:14 -0500 Subject: [PATCH 33/41] website/blog: improved sentence (#6995) kens catch Co-authored-by: Tana Berry --- .../item.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md b/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md index 7d0ed592d..8f936b475 100644 --- a/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md +++ b/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md @@ -25,7 +25,7 @@ We have provided M2M communication in authentik for the past year, and in this b ## What is M2M? -Broadly speaking, M2M communication is the process by which machines (devices, laptops, servers, smart appliances, any _thing_ that can be digitally communicated with) or more precisely, the client interface of any thing. Machine-to-machine communication is an important component of IoT, the Internet of Things; M2M is how all of the “things” communicate. So M2M is more about the communication between the devices, while IoT is the larger, more complex, overarching technology. +Broadly speaking, M2M communication is the process by which machines (devices, laptops, servers, smart appliances, or more precisely the client interface of any thing that can be digitally communicated with) exchange data. Machine-to-machine communication is an important component of IoT, the Internet of Things; M2M is how all of the “things” communicate. So M2M is more about the communication between the devices, while IoT is the larger, more complex, overarching technology. Interestingly, M2M is also implemented as a communication process between business systems, such as banking services, or payroll workflows. One of the first fields to heavily utilize M2M is the [oil and gas industry](https://blog.orbcomm.com/onshore-to-offshore-how-m2m-is-changing-oil-gas-world/); everything from monitoring the production (volume, pressure, etc.) of gas wells, to tracking fleets of trucks and sea vessels, to the health of pipelines can be done using M2M communication. From 1dd39b2612f70f81d76c1d5a912781f98060d932 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:15:59 +0200 Subject: [PATCH 34/41] web: bump pyright from 1.1.328 to 1.1.329 in /web (#7000) Bumps [pyright](https://github.com/Microsoft/pyright/tree/HEAD/packages/pyright) from 1.1.328 to 1.1.329. - [Release notes](https://github.com/Microsoft/pyright/releases) - [Commits](https://github.com/Microsoft/pyright/commits/1.1.329/packages/pyright) --- updated-dependencies: - dependency-name: pyright dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 60beb8888..1131ccfc0 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -84,7 +84,7 @@ "lit-analyzer": "^1.2.1", "npm-run-all": "^4.1.5", "prettier": "^3.0.3", - "pyright": "^1.1.328", + "pyright": "^1.1.329", "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^3.29.3", @@ -19240,9 +19240,9 @@ } }, "node_modules/pyright": { - "version": "1.1.328", - "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.328.tgz", - "integrity": "sha512-LiFIELh/6wVZuvgH+OGZ81ln0EpB8si2gt1M229qKnG4lbh93A0gyXLwu62XtTie8FDUcznmdCEiMal8jxJ7+w==", + "version": "1.1.329", + "resolved": "https://registry.npmjs.org/pyright/-/pyright-1.1.329.tgz", + "integrity": "sha512-5AT98Mi0OYcDiQ5lD1nPJ3cq8gX/HHaXrQ5WjJ/QZkaJtGqnEdrUp5Gq5wBPipWgOnv/l5e50YScaaNDMjoy9Q==", "dev": true, "bin": { "pyright": "index.js", diff --git a/web/package.json b/web/package.json index b53dc27f8..0a21c3616 100644 --- a/web/package.json +++ b/web/package.json @@ -102,7 +102,7 @@ "lit-analyzer": "^1.2.1", "npm-run-all": "^4.1.5", "prettier": "^3.0.3", - "pyright": "^1.1.328", + "pyright": "^1.1.329", "react": "^18.2.0", "react-dom": "^18.2.0", "rollup": "^3.29.3", From 4e42c1df2aadf712fc57fc1cf3c89fefc3f1584c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:16:27 +0200 Subject: [PATCH 35/41] web: bump the sentry group in /web with 2 updates (#6999) Bumps the sentry group in /web with 2 updates: [@sentry/browser](https://github.com/getsentry/sentry-javascript) and [@sentry/tracing](https://github.com/getsentry/sentry-javascript). Updates `@sentry/browser` from 7.71.0 to 7.72.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.71.0...7.72.0) Updates `@sentry/tracing` from 7.71.0 to 7.72.0 - [Release notes](https://github.com/getsentry/sentry-javascript/releases) - [Changelog](https://github.com/getsentry/sentry-javascript/blob/develop/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-javascript/compare/7.71.0...7.72.0) --- updated-dependencies: - dependency-name: "@sentry/browser" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry - dependency-name: "@sentry/tracing" dependency-type: direct:production update-type: version-update:semver-minor dependency-group: sentry ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 76 +++++++++++++++++++++---------------------- web/package.json | 4 +-- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 1131ccfc0..590c4bc5f 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -24,8 +24,8 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.71.0", - "@sentry/tracing": "^7.71.0", + "@sentry/browser": "^7.72.0", + "@sentry/tracing": "^7.72.0", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.0", @@ -4512,13 +4512,13 @@ } }, "node_modules/@sentry-internal/tracing": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.71.0.tgz", - "integrity": "sha512-HRGsQOrA2Y3Ga+NTgCkTWO+qtU2SFTJ7t9pt/LR8Har9cvVcjLIlHNwPoDx6bVkICK3cGOF8ZtXVmLizVbXoAg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.72.0.tgz", + "integrity": "sha512-DToryaRSHk9R5RLgN4ktYEXZjQdqncOAWPqyyIurji8lIobXFRfmLtGL1wjoCK6sQNgWsjhSM9kXxwGnva1DNw==", "dependencies": { - "@sentry/core": "7.71.0", - "@sentry/types": "7.71.0", - "@sentry/utils": "7.71.0", + "@sentry/core": "7.72.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -4526,15 +4526,15 @@ } }, "node_modules/@sentry/browser": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.71.0.tgz", - "integrity": "sha512-7xggzwW2QW9g4Li1M3VQEsQX7AIeSlWnweTkkT+62t3AcLHD7URnNNU7SBAj7x+8F0WqkvMws0XXar51+rv/rw==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.72.0.tgz", + "integrity": "sha512-fcFDTzqhPd3VZAmmYW3KvBTBaEfrKjPmRhlAsfhkGWYLCHqVkNtzsFER4cmUNRGNxjyt9tcG3WlTTqgLRucycQ==", "dependencies": { - "@sentry-internal/tracing": "7.71.0", - "@sentry/core": "7.71.0", - "@sentry/replay": "7.71.0", - "@sentry/types": "7.71.0", - "@sentry/utils": "7.71.0", + "@sentry-internal/tracing": "7.72.0", + "@sentry/core": "7.72.0", + "@sentry/replay": "7.72.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -4542,12 +4542,12 @@ } }, "node_modules/@sentry/core": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.71.0.tgz", - "integrity": "sha512-kZcWnzxzMxyNuCwq65owu0yGbY+C9QJhWFMDBsqmKK1/dSt0bdhNjf3VQW1dJLnWaQTk7rUTHEHGH8JSdV5EAg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.72.0.tgz", + "integrity": "sha512-G03JdQ5ZsFNRjcNNi+QvCjqOuBvYqU92Gs1T2iK3GE8dSBTu2khThydMpG4xrKZQLIpHOyiIhlFZiuPtZ66W8w==", "dependencies": { - "@sentry/types": "7.71.0", - "@sentry/utils": "7.71.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { @@ -4555,43 +4555,43 @@ } }, "node_modules/@sentry/replay": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.71.0.tgz", - "integrity": "sha512-roB65ixEycAy1BrIJ3HOu7NLKo4EOBs6Q6xKEq5BvzjhDgvFXXq8X/lGriJXc9Q/hWIiDwTQ23yLuzVtPJRnCw==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.72.0.tgz", + "integrity": "sha512-dHH/mYCFBwJ/kYmL9L5KihjwQKcefiuvcH0otHSwKSpbbeEoM/BV+SHQoYGd6OMSYnL9fq1dHfF7Zo26p5Yu0Q==", "dependencies": { - "@sentry/core": "7.71.0", - "@sentry/types": "7.71.0", - "@sentry/utils": "7.71.0" + "@sentry/core": "7.72.0", + "@sentry/types": "7.72.0", + "@sentry/utils": "7.72.0" }, "engines": { "node": ">=12" } }, "node_modules/@sentry/tracing": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.71.0.tgz", - "integrity": "sha512-vKW750IP/IXI0WaOmddiCWz7jAQFVWxtdhp9ONvdbRuQkrs5BNQ/GMrs712FWexAcEc9cJ1SPk5fqRTW5UOgLA==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.72.0.tgz", + "integrity": "sha512-DOMlyviMLNwWgN4gJw/TrHaAdBcZWvm8xLbgwMwrihRn/m84kmH2Ui1FUYpL30o/mH+mQS+53IHZukrgQjHkZA==", "dependencies": { - "@sentry-internal/tracing": "7.71.0" + "@sentry-internal/tracing": "7.72.0" }, "engines": { "node": ">=8" } }, "node_modules/@sentry/types": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.71.0.tgz", - "integrity": "sha512-30PRLZI1RoeWbLE9K7AHsRPWDH22CqC4WcLNeVmRfLC5m1vE1FHb53r98QSKFhLoONMPMVzDhZZgl4ZcC5mptQ==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.72.0.tgz", + "integrity": "sha512-g6u0mk62yGshx02rfFADIfyR/S9VXcf3RG2qQPuvykrWtOfN/BOTrZypF7I+MiqKwRW76r3Pcu2C/AB+6z9XQA==", "engines": { "node": ">=8" } }, "node_modules/@sentry/utils": { - "version": "7.71.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.71.0.tgz", - "integrity": "sha512-aS53l/E/5XsSJMOXHKvS0GlX4gZHBgNAMfhEB3f8rUIn5iLF2uu8lCA1uEvX6VB8b7q/Cg4WFTi6BiJ0hvJHQg==", + "version": "7.72.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.72.0.tgz", + "integrity": "sha512-o/MtqI7WJXuswidH0bSgBP40KN2lrnyQEIx5uoyJUJi/QEaboIsqbxU62vaFJpde8SYrbA+rTnP3J3ujF2gUag==", "dependencies": { - "@sentry/types": "7.71.0", + "@sentry/types": "7.72.0", "tslib": "^2.4.1 || ^1.9.3" }, "engines": { diff --git a/web/package.json b/web/package.json index 0a21c3616..154930475 100644 --- a/web/package.json +++ b/web/package.json @@ -42,8 +42,8 @@ "@open-wc/lit-helpers": "^0.6.0", "@patternfly/elements": "^2.4.0", "@patternfly/patternfly": "^4.224.2", - "@sentry/browser": "^7.71.0", - "@sentry/tracing": "^7.71.0", + "@sentry/browser": "^7.72.0", + "@sentry/tracing": "^7.72.0", "@webcomponents/webcomponentsjs": "^2.8.0", "base64-js": "^1.5.1", "chart.js": "^4.4.0", From 4833a870091fffedb9b17cd09cfa94678331b95d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:16:39 +0200 Subject: [PATCH 36/41] core: bump pydantic from 2.4.0 to 2.4.1 (#6998) Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.4.0 to 2.4.1. - [Release notes](https://github.com/pydantic/pydantic/releases) - [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md) - [Commits](https://github.com/pydantic/pydantic/compare/v2.4.0...v2.4.1) --- updated-dependencies: - dependency-name: pydantic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 222 ++++++++++++++++++++++++++-------------------------- 1 file changed, 111 insertions(+), 111 deletions(-) diff --git a/poetry.lock b/poetry.lock index c7b773c2e..60dd64a3e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2692,19 +2692,19 @@ files = [ [[package]] name = "pydantic" -version = "2.4.0" +version = "2.4.1" description = "Data validation using Python type hints" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic-2.4.0-py3-none-any.whl", hash = "sha256:909b2b7d7be775a890631218e8c4b6b5418c9b6c57074ae153e5c09b73bf06a3"}, - {file = "pydantic-2.4.0.tar.gz", hash = "sha256:54216ccb537a606579f53d7f6ed912e98fffce35aff93b25cd80b1c2ca806fc3"}, + {file = "pydantic-2.4.1-py3-none-any.whl", hash = "sha256:2b2240c8d54bb8f84b88e061fac1bdfa1761c2859c367f9d3afe0ec2966deddc"}, + {file = "pydantic-2.4.1.tar.gz", hash = "sha256:b172505886028e4356868d617d2d1a776d7af1625d1313450fd51bdd19d9d61f"}, ] [package.dependencies] annotated-types = ">=0.4.0" email-validator = {version = ">=2.0.0", optional = true, markers = "extra == \"email\""} -pydantic-core = "2.10.0" +pydantic-core = "2.10.1" typing-extensions = ">=4.6.1" [package.extras] @@ -2712,117 +2712,117 @@ email = ["email-validator (>=2.0.0)"] [[package]] name = "pydantic-core" -version = "2.10.0" +version = "2.10.1" description = "" optional = false python-versions = ">=3.7" files = [ - {file = "pydantic_core-2.10.0-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:daea90360d99ad06a3f686b3e628222ac3aa953b1982f13be5b69b2648c5e6bb"}, - {file = "pydantic_core-2.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5f76cb8d68d87fd05e56aba392c841d98eeb3ad378bcf5331b42bac7afee0d66"}, - {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e816d042f80dd630aaedbc75c21084da9e1d7ea5918619b8089c7edaedd57e8"}, - {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7192492b09c1e4ad103e5cb98eb397f9b61a9037fce03e94cafe3238404dbe0f"}, - {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:312831c5bf50d9d432c11baf9bbd8d8961740608ccbc66fb1290d532aff21b18"}, - {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:873db84afcbcf3f1ed0040ed9c5534bc1af5d647d13c04be12f3568421f5dd3e"}, - {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0aa8bdc2d78afadd191148726f094be81d5e4b76011f8fa9300f317e06a1b732"}, - {file = "pydantic_core-2.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7cbf77664099345a25932ebe25d7bf9a330fc29acd9a909e8751ac0c42097fb3"}, - {file = "pydantic_core-2.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a537e87ca600e59e532fbc770a60f9f3a5ebcff9bae8c60aceeec5beb326e1b8"}, - {file = "pydantic_core-2.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed5f8d6cb834c80fb813d233f9bfb60d3453b7450c80c0814b8e78c23d1ea8bf"}, - {file = "pydantic_core-2.10.0-cp310-none-win32.whl", hash = "sha256:0e210107faf47d5965fcebc294c41891573adab36e5cf70731c57d0068fc7c5c"}, - {file = "pydantic_core-2.10.0-cp310-none-win_amd64.whl", hash = "sha256:9527cf9c25fd655617620c8d6cb43216c0ce5779871ab7f83175421267b85199"}, - {file = "pydantic_core-2.10.0-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:ab2d56dfa13244164f0ba8125d8315c799fa0150459b88fc42ed5c1e3c04d47a"}, - {file = "pydantic_core-2.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d1e79893a20207ff671f13f5562c1f0aaece030e6e30252683f536286ba89864"}, - {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:030ba2f59e78c8732445d8c9f093579674f2b5b93b3960945face14ec2e82682"}, - {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:705fad71297dfedc5c9e3c935702864aa0cc7812be11ac544f152677ba6ea430"}, - {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:394a8ce4a7495af8dbf33038daf57a6170be15f8d1d92a7b63c6f2211527d950"}, - {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19c7aa3c0ff08ddc91597d8af08f8c4de59b27fe752b3bd1db9a67f6f08c4020"}, - {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb204346d3eda4e0c63cbeeec6398a52682ac51f9cf7379a13505863e47d3186"}, - {file = "pydantic_core-2.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b1fefe63baa04f1d9dd5b4564b1e73d133e1c745589933d7ef9718235915cc81"}, - {file = "pydantic_core-2.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fa4bd88165d860111e860e8b43efd97afd137a9165cf24eb3cfb2371f57452bf"}, - {file = "pydantic_core-2.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e21ab9c49cc58282c228ff89fb4a5e4b447233ccd53acb7f333d1cde58df37b"}, - {file = "pydantic_core-2.10.0-cp311-none-win32.whl", hash = "sha256:2a6f28e2b2a5cef3b52b5ac6c6d64fe810ca51ec57081554f447c818778eea09"}, - {file = "pydantic_core-2.10.0-cp311-none-win_amd64.whl", hash = "sha256:f94539aa4265ab5528d8c3dc4505a19369083c29d0713b8ed536f93b9bc1e94f"}, - {file = "pydantic_core-2.10.0-cp311-none-win_arm64.whl", hash = "sha256:2352f7cb8ef0cd21fbc582abe2a14105d7e8400f97a551ca2e3b05dee77525d2"}, - {file = "pydantic_core-2.10.0-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:c2a126c7271a9421005a0f57cf71294ad49c375e4d0a9198b93665796f49e7f7"}, - {file = "pydantic_core-2.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7440933341f655a64456065211cf7657c3cf3524d5b0b02f5d9b63ef5a7e0d49"}, - {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85d8225cd08aacb8a2843cf0a0a72f1c403c6ac6f18d4cfeecabe050f80c9ea3"}, - {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:573e89b3da5908f564ae54b6284e20b490158681e91e1776a59dfda17ec0a6a8"}, - {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b0061965942489e6da23f0399b1136fd10eff0a4f0cefae13369eba1776e22a6"}, - {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:725f0276402773a6b61b6f67bf9562f37ba08a8bfebdfb9990eea786ed5711b2"}, - {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25cacd12689b1a357ae6212c7f5980ebf487720db5bbf1bb5d91085226b6a962"}, - {file = "pydantic_core-2.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e70c6c882ab101a72010c8f91e87db211fa2aaf6aa51acc7160fe5649630ed75"}, - {file = "pydantic_core-2.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e079540fd4c45c23de4465cafb20cddcd8befe3b5f46505a2eb28e49b9d13ee2"}, - {file = "pydantic_core-2.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:98474284adb71c8738e5efb71ccb1382d8d66f042ad0875018c78bcb38ac0f47"}, - {file = "pydantic_core-2.10.0-cp312-none-win32.whl", hash = "sha256:ab1fa046ef9058ceef941b576c5e7711bab3d99be00a304fb4726cf4b94e05ff"}, - {file = "pydantic_core-2.10.0-cp312-none-win_amd64.whl", hash = "sha256:b4df023610af081d6da85328411fed7aacf19e939fe955bb31f29212f8dcf306"}, - {file = "pydantic_core-2.10.0-cp312-none-win_arm64.whl", hash = "sha256:f1a70f99d1a7270d4f321a8824e87d5b88acd64c2af6049915b7fd8215437e04"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:f622778eb180cf7eba25e65d2fe37a57a0eadd8403df4c44606b56d204f686de"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:fb513fc74bdf5f649e6e855fc87ed9b81ee8b0be96717190f9e00683244f0616"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82c3f0752547f928e4fcfb00151d6deb9124be7d35e012c567429fe93ec71b71"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:100bbd622433d9d7ca8ee4fa63dfae90f9f38358558955173aed6ed56c573db8"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f919d17581fdf6e71ff3d3fe4b02ed32aaa0429e0b4346798de7a1361e098ef"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f32df1d8d383e1b729674ad1053d8f43f7ed79848496d3cb6ca81a906318317b"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab4d279c480e83c516e4e0b7b1f882f168f614d9c62e18ab779edef0cd13aaa9"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c394e9ed6f9e6f4af3618c34bc15f2af4237f7d1989b7f45588f8e855bc10e08"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:bc0a33779fded534ff0b5d8ef766a1c94d3e740877ea8adab65cbf1878ba03b4"}, - {file = "pydantic_core-2.10.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c1041d8fcd313c68b77dec6a16bf1d690008270b50eec11e96d89e1b4ba756b1"}, - {file = "pydantic_core-2.10.0-cp37-none-win32.whl", hash = "sha256:68992f78507e95ed63ca87b8b177785d9806cde34ca3a9f98382188dd11d8720"}, - {file = "pydantic_core-2.10.0-cp37-none-win_amd64.whl", hash = "sha256:aa45f0846773cb142252ccef66b096d917bb76c6ef9da1aa747e6b44aa318192"}, - {file = "pydantic_core-2.10.0-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:a04054b91afc41282a0a7426147654849136b37a41da86412d4ff5ba51b9cd2f"}, - {file = "pydantic_core-2.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1c1bfa2ca352bf43d34b7099f8ed675deb88113bd36c76880f4ca18fc0d3af50"}, - {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba288fa675b2951e7898ebfdd8defa0e958e514d4d1cc7a5f6a8d627378c0c47"}, - {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fbba90179672707ab69ad19ef7d3c3f0a8e2f0a0579f0eb79649ffcdacf476d0"}, - {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7c6915a9b3dd16e016dba7e76070e667eca50530f957daa5b78c73abbf281b25"}, - {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e72c1e06a20c10b9c5f7a3fe09ec46e0e208c65a69d2efb92a3e1b64443e6c3"}, - {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b50848d1a614093c05c97d0fdf841ef547d8c087fbd06f6eafe8ef1d836d6c1"}, - {file = "pydantic_core-2.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ad7b5f4352f3dfcc481b008bce3b3931a485a93112deaa0a25bee2817d3f7b98"}, - {file = "pydantic_core-2.10.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:66c0169457733a4dfe72be51dd359414eddd0738b15dda07827f18a10e9f6ab7"}, - {file = "pydantic_core-2.10.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e24d92d3a60d6eb19a1bd0f1f259369f478e0f34412a33e794da6cdaa36218be"}, - {file = "pydantic_core-2.10.0-cp38-none-win32.whl", hash = "sha256:30c5df611afc5a9f2ad48babe2192f9cf0d12ed6c0dd5eb57b3538491c113737"}, - {file = "pydantic_core-2.10.0-cp38-none-win_amd64.whl", hash = "sha256:d72a561d7c0738ae5d05a709c739b2953d05e18151539750ca9622f3438de041"}, - {file = "pydantic_core-2.10.0-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:7cecd7669b1ebee8ae90f5aa7d459770b6e79db7b95983aacc5b7392a050b9ab"}, - {file = "pydantic_core-2.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:923000ea46def1bdded511b5792ec19866909797a05dc8f75342c6a9cacb2d66"}, - {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:729a2fc4bc1564d164258eaf138ab4c03baa2080a5e3f91a9b3cb2d758248b8f"}, - {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6930eaf3aa2ba660ed3f64206902a534f454f9954e5de06354e20d890bebbd8a"}, - {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d0b17e8d08a1c94efb91d8d389ec76a32fc3f85ba06626b5ef0c2d6bffcbe066"}, - {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c61755149ba534123ae08e6aa814aa34f47c6ba45a622ea98ddd7860b5312767"}, - {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22b126893f53c789ad2253c9288a59362171a5bafbb865190c43d430dc805edb"}, - {file = "pydantic_core-2.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:776eee60ca8ca3de83add0fb95a0034ac965a12590bb22ec09b05c87870ba401"}, - {file = "pydantic_core-2.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b1496f38e49c7960461002768c5f4c9ba9720fe259cd5c8b229cd0b3b0861844"}, - {file = "pydantic_core-2.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cd175beab2ac845a90d31bb4ea8e6c1e8be12efaf14b9918d0ab4828dd3c916b"}, - {file = "pydantic_core-2.10.0-cp39-none-win32.whl", hash = "sha256:391805e8a4ad731e729a22d8e14bad2d724915d28618be6c66dc7ccb421a13a0"}, - {file = "pydantic_core-2.10.0-cp39-none-win_amd64.whl", hash = "sha256:7e2360b86b21e2aab8d4f1ce2551e2b731bc30610b7cc9324ea7517af4375b08"}, - {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:b40221d1490f2c6e488d2576773a574d42436b5aba1faed91f59a9feb82c384b"}, - {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9f3b25201efe20d182f3bd6fe8d99685f4ed01cac67b79c017c9cf688b747263"}, - {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34a45943bb14275e9681fd4abafbe3acae1e7dac7248bebf38ac5bde492e00f7"}, - {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc5be7a29a6b25a186941e9e2b5f9281c05723628e1fdb244f429f4c1682ff49"}, - {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17460ffd8f8e49ca52711b4926fefe2b336d01b63dc27aee432a576c2147c8ce"}, - {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c1ab3701d660bd136a22e1ca95292bfed50245eb869adaee2e08f29d4dd5e360"}, - {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:09ac18617199704327d99c85893d697b8442c18b8c2db1ea636ba83313223541"}, - {file = "pydantic_core-2.10.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e3f69d48191103587950981cf47c936064c808b6c18f57e745ed130a305c73a6"}, - {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:792af9e4f78d6f1d0aabfb95162c5ed56b5369b25350eaa68b1495e8f675d4d9"}, - {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ecd28fb4c98c97836046d092029017bcc35e060ea547484aa1234b8a592de17"}, - {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a622a8abf656cc51960766fa4d194504e8a9f85ae48032f87fb42c79462c7b8"}, - {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:52eb5c61de017bfee422f6aa9a3e76de5aa5a9189ba808bba63b9de67e55c4ca"}, - {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:69772dcdcf90b677d0d2ecedafe4c6a610572f1fad15912cde28a6f8eb5654fd"}, - {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:12470a4de172aaa1bbadb45744de4a9b0298fa8f974eb508314c3b5da0cb4aed"}, - {file = "pydantic_core-2.10.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:f9f2c70257f03db712658d4138e2b892bdd7c71472783eaebc2813a47fd29ef3"}, - {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:8a5323d6778931ab1b3b22bac05fb7c961786d3b04a6c84f7c0ffcc331b4b998"}, - {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:5f00e83aa9aebbfd4382695a5ed94e6282ac01455fbb1a37d99d2effa29df30f"}, - {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c871820c60fc863c7b3f660612af6ce5bb8f5f69d6364f208e29d2ca7992d154"}, - {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1bcb1b9b33573eeef218ffb3a2910c57fedc8831caf3c942e68a2222481d2cc"}, - {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d122a46c360c8069f7ac39c6f2c29cf99436baa48ba1e28ea5443336e9bbb838"}, - {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3ffb2a3462bb7905c4d849b95f536ac1f3948e92f5e0fc7e65bd3f3b0d132cf4"}, - {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b5d4eec8aba25b163a4d9dcc6be8354bc8f939040bc15a6400cbd62ba0511a5f"}, - {file = "pydantic_core-2.10.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5cbfe4cd608cf6d032374961e4e07d0506acfaec7b1a69beade1d5f98dce00fd"}, - {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:02b3d546342e7f583bf58f4a4618c7e97f44426db2358789393537dd4e9a921d"}, - {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7820faf076216654ae54ad8a8443a296faaac9057a49ff404ce92ab85c9518a3"}, - {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f114130c44ae52b3bd2450dac8e1d3e1e92a92baecb24dbcdb6de2d2fc15bdb5"}, - {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f6f70680c15876c583a24bd476e49004327e87392be0282aedbc65773519ea8"}, - {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f230d70be54447e12fcd0f1c2319dac74341244fafd2350d5675aa194f6c3f4"}, - {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:96b3007451863b46e8138f8096ef31aea6f7721a9910843b0554ce4ae17024a2"}, - {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b196c4ace34be6c2953c6ec3906d1af88c418b93325d612d7f900ed30bf1e0ac"}, - {file = "pydantic_core-2.10.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:5958b1af7acd7b4a629e9758ce54a31c1910695e85e0ef847ba3daa4f25a0a08"}, - {file = "pydantic_core-2.10.0.tar.gz", hash = "sha256:8fe66506700efdfc699c613ccc4974ac7d8fceed8c74983e55ec380504db2e05"}, + {file = "pydantic_core-2.10.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:d64728ee14e667ba27c66314b7d880b8eeb050e58ffc5fec3b7a109f8cddbd63"}, + {file = "pydantic_core-2.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:48525933fea744a3e7464c19bfede85df4aba79ce90c60b94d8b6e1eddd67096"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef337945bbd76cce390d1b2496ccf9f90b1c1242a3a7bc242ca4a9fc5993427a"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1392e0638af203cee360495fd2cfdd6054711f2db5175b6e9c3c461b76f5175"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0675ba5d22de54d07bccde38997e780044dcfa9a71aac9fd7d4d7a1d2e3e65f7"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:128552af70a64660f21cb0eb4876cbdadf1a1f9d5de820fed6421fa8de07c893"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f6e6aed5818c264412ac0598b581a002a9f050cb2637a84979859e70197aa9e"}, + {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ecaac27da855b8d73f92123e5f03612b04c5632fd0a476e469dfc47cd37d6b2e"}, + {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3c01c2fb081fced3bbb3da78510693dc7121bb893a1f0f5f4b48013201f362e"}, + {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92f675fefa977625105708492850bcbc1182bfc3e997f8eecb866d1927c98ae6"}, + {file = "pydantic_core-2.10.1-cp310-none-win32.whl", hash = "sha256:420a692b547736a8d8703c39ea935ab5d8f0d2573f8f123b0a294e49a73f214b"}, + {file = "pydantic_core-2.10.1-cp310-none-win_amd64.whl", hash = "sha256:0880e239827b4b5b3e2ce05e6b766a7414e5f5aedc4523be6b68cfbc7f61c5d0"}, + {file = "pydantic_core-2.10.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:073d4a470b195d2b2245d0343569aac7e979d3a0dcce6c7d2af6d8a920ad0bea"}, + {file = "pydantic_core-2.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:600d04a7b342363058b9190d4e929a8e2e715c5682a70cc37d5ded1e0dd370b4"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39215d809470f4c8d1881758575b2abfb80174a9e8daf8f33b1d4379357e417c"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eeb3d3d6b399ffe55f9a04e09e635554012f1980696d6b0aca3e6cf42a17a03b"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a7902bf75779bc12ccfc508bfb7a4c47063f748ea3de87135d433a4cca7a2f"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3625578b6010c65964d177626fde80cf60d7f2e297d56b925cb5cdeda6e9925a"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa48fc31fc7243e50188197b5f0c4228956f97b954f76da157aae7f67269ae8"}, + {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:07ec6d7d929ae9c68f716195ce15e745b3e8fa122fc67698ac6498d802ed0fa4"}, + {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6f31a17acede6a8cd1ae2d123ce04d8cca74056c9d456075f4f6f85de055607"}, + {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f1ebca515a03e5654f88411420fea6380fc841d1bea08effb28184e3d4899f"}, + {file = "pydantic_core-2.10.1-cp311-none-win32.whl", hash = "sha256:6db2eb9654a85ada248afa5a6db5ff1cf0f7b16043a6b070adc4a5be68c716d6"}, + {file = "pydantic_core-2.10.1-cp311-none-win_amd64.whl", hash = "sha256:4a5be350f922430997f240d25f8219f93b0c81e15f7b30b868b2fddfc2d05f27"}, + {file = "pydantic_core-2.10.1-cp311-none-win_arm64.whl", hash = "sha256:5fdb39f67c779b183b0c853cd6b45f7db84b84e0571b3ef1c89cdb1dfc367325"}, + {file = "pydantic_core-2.10.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:b1f22a9ab44de5f082216270552aa54259db20189e68fc12484873d926426921"}, + {file = "pydantic_core-2.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8572cadbf4cfa95fb4187775b5ade2eaa93511f07947b38f4cd67cf10783b118"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9a28c063c7c00844ae42a80203eb6d2d6bbb97070cfa00194dff40e6f545ab"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e2a35baa428181cb2270a15864ec6286822d3576f2ed0f4cd7f0c1708472aff"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05560ab976012bf40f25d5225a58bfa649bb897b87192a36c6fef1ab132540d7"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6495008733c7521a89422d7a68efa0a0122c99a5861f06020ef5b1f51f9ba7c"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ac492c686defc8e6133e3a2d9eaf5261b3df26b8ae97450c1647286750b901"}, + {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8282bab177a9a3081fd3d0a0175a07a1e2bfb7fcbbd949519ea0980f8a07144d"}, + {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:aafdb89fdeb5fe165043896817eccd6434aee124d5ee9b354f92cd574ba5e78f"}, + {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f6defd966ca3b187ec6c366604e9296f585021d922e666b99c47e78738b5666c"}, + {file = "pydantic_core-2.10.1-cp312-none-win32.whl", hash = "sha256:7c4d1894fe112b0864c1fa75dffa045720a194b227bed12f4be7f6045b25209f"}, + {file = "pydantic_core-2.10.1-cp312-none-win_amd64.whl", hash = "sha256:5994985da903d0b8a08e4935c46ed8daf5be1cf217489e673910951dc533d430"}, + {file = "pydantic_core-2.10.1-cp312-none-win_arm64.whl", hash = "sha256:0d8a8adef23d86d8eceed3e32e9cca8879c7481c183f84ed1a8edc7df073af94"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:9badf8d45171d92387410b04639d73811b785b5161ecadabf056ea14d62d4ede"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:ebedb45b9feb7258fac0a268a3f6bec0a2ea4d9558f3d6f813f02ff3a6dc6698"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfe1090245c078720d250d19cb05d67e21a9cd7c257698ef139bc41cf6c27b4f"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e357571bb0efd65fd55f18db0a2fb0ed89d0bb1d41d906b138f088933ae618bb"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b3dcd587b69bbf54fc04ca157c2323b8911033e827fffaecf0cafa5a892a0904"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c120c9ce3b163b985a3b966bb701114beb1da4b0468b9b236fc754783d85aa3"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15d6bca84ffc966cc9976b09a18cf9543ed4d4ecbd97e7086f9ce9327ea48891"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cabb9710f09d5d2e9e2748c3e3e20d991a4c5f96ed8f1132518f54ab2967221"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:82f55187a5bebae7d81d35b1e9aaea5e169d44819789837cdd4720d768c55d15"}, + {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1d40f55222b233e98e3921df7811c27567f0e1a4411b93d4c5c0f4ce131bc42f"}, + {file = "pydantic_core-2.10.1-cp37-none-win32.whl", hash = "sha256:14e09ff0b8fe6e46b93d36a878f6e4a3a98ba5303c76bb8e716f4878a3bee92c"}, + {file = "pydantic_core-2.10.1-cp37-none-win_amd64.whl", hash = "sha256:1396e81b83516b9d5c9e26a924fa69164156c148c717131f54f586485ac3c15e"}, + {file = "pydantic_core-2.10.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6835451b57c1b467b95ffb03a38bb75b52fb4dc2762bb1d9dbed8de31ea7d0fc"}, + {file = "pydantic_core-2.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b00bc4619f60c853556b35f83731bd817f989cba3e97dc792bb8c97941b8053a"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fa467fd300a6f046bdb248d40cd015b21b7576c168a6bb20aa22e595c8ffcdd"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d99277877daf2efe074eae6338453a4ed54a2d93fb4678ddfe1209a0c93a2468"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa7db7558607afeccb33c0e4bf1c9a9a835e26599e76af6fe2fcea45904083a6"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aad7bd686363d1ce4ee930ad39f14e1673248373f4a9d74d2b9554f06199fb58"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:443fed67d33aa85357464f297e3d26e570267d1af6fef1c21ca50921d2976302"}, + {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:042462d8d6ba707fd3ce9649e7bf268633a41018d6a998fb5fbacb7e928a183e"}, + {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ecdbde46235f3d560b18be0cb706c8e8ad1b965e5c13bbba7450c86064e96561"}, + {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ed550ed05540c03f0e69e6d74ad58d026de61b9eaebebbaaf8873e585cbb18de"}, + {file = "pydantic_core-2.10.1-cp38-none-win32.whl", hash = "sha256:8cdbbd92154db2fec4ec973d45c565e767ddc20aa6dbaf50142676484cbff8ee"}, + {file = "pydantic_core-2.10.1-cp38-none-win_amd64.whl", hash = "sha256:9f6f3e2598604956480f6c8aa24a3384dbf6509fe995d97f6ca6103bb8c2534e"}, + {file = "pydantic_core-2.10.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:655f8f4c8d6a5963c9a0687793da37b9b681d9ad06f29438a3b2326d4e6b7970"}, + {file = "pydantic_core-2.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e570ffeb2170e116a5b17e83f19911020ac79d19c96f320cbfa1fa96b470185b"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64322bfa13e44c6c30c518729ef08fda6026b96d5c0be724b3c4ae4da939f875"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485a91abe3a07c3a8d1e082ba29254eea3e2bb13cbbd4351ea4e5a21912cc9b0"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7c2b8eb9fc872e68b46eeaf835e86bccc3a58ba57d0eedc109cbb14177be531"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5cb87bdc2e5f620693148b5f8f842d293cae46c5f15a1b1bf7ceeed324a740c"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25bd966103890ccfa028841a8f30cebcf5875eeac8c4bde4fe221364c92f0c9a"}, + {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f323306d0556351735b54acbf82904fe30a27b6a7147153cbe6e19aaaa2aa429"}, + {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c27f38dc4fbf07b358b2bc90edf35e82d1703e22ff2efa4af4ad5de1b3833e7"}, + {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f1365e032a477c1430cfe0cf2856679529a2331426f8081172c4a74186f1d595"}, + {file = "pydantic_core-2.10.1-cp39-none-win32.whl", hash = "sha256:a1c311fd06ab3b10805abb72109f01a134019739bd3286b8ae1bc2fc4e50c07a"}, + {file = "pydantic_core-2.10.1-cp39-none-win_amd64.whl", hash = "sha256:ae8a8843b11dc0b03b57b52793e391f0122e740de3df1474814c700d2622950a"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d43002441932f9a9ea5d6f9efaa2e21458221a3a4b417a14027a1d530201ef1b"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fcb83175cc4936a5425dde3356f079ae03c0802bbdf8ff82c035f8a54b333521"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:962ed72424bf1f72334e2f1e61b68f16c0e596f024ca7ac5daf229f7c26e4208"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cf5bb4dd67f20f3bbc1209ef572a259027c49e5ff694fa56bed62959b41e1f9"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e544246b859f17373bed915182ab841b80849ed9cf23f1f07b73b7c58baee5fb"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c0877239307b7e69d025b73774e88e86ce82f6ba6adf98f41069d5b0b78bd1bf"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:53df009d1e1ba40f696f8995683e067e3967101d4bb4ea6f667931b7d4a01357"}, + {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a1254357f7e4c82e77c348dabf2d55f1d14d19d91ff025004775e70a6ef40ada"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:524ff0ca3baea164d6d93a32c58ac79eca9f6cf713586fdc0adb66a8cdeab96a"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f0ac9fb8608dbc6eaf17956bf623c9119b4db7dbb511650910a82e261e6600f"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:320f14bd4542a04ab23747ff2c8a778bde727158b606e2661349557f0770711e"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63974d168b6233b4ed6a0046296803cb13c56637a7b8106564ab575926572a55"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:417243bf599ba1f1fef2bb8c543ceb918676954734e2dcb82bf162ae9d7bd514"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dda81e5ec82485155a19d9624cfcca9be88a405e2857354e5b089c2a982144b2"}, + {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14cfbb00959259e15d684505263d5a21732b31248a5dd4941f73a3be233865b9"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:631cb7415225954fdcc2a024119101946793e5923f6c4d73a5914d27eb3d3a05"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:bec7dd208a4182e99c5b6c501ce0b1f49de2802448d4056091f8e630b28e9a52"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:149b8a07712f45b332faee1a2258d8ef1fb4a36f88c0c17cb687f205c5dc6e7d"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d966c47f9dd73c2d32a809d2be529112d509321c5310ebf54076812e6ecd884"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7eb037106f5c6b3b0b864ad226b0b7ab58157124161d48e4b30c4a43fef8bc4b"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:154ea7c52e32dce13065dbb20a4a6f0cc012b4f667ac90d648d36b12007fa9f7"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e562617a45b5a9da5be4abe72b971d4f00bf8555eb29bb91ec2ef2be348cd132"}, + {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f23b55eb5464468f9e0e9a9935ce3ed2a870608d5f534025cd5536bca25b1402"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e9121b4009339b0f751955baf4543a0bfd6bc3f8188f8056b1a25a2d45099934"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0523aeb76e03f753b58be33b26540880bac5aa54422e4462404c432230543f33"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0e2959ef5d5b8dc9ef21e1a305a21a36e254e6a34432d00c72a92fdc5ecda5"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da01bec0a26befab4898ed83b362993c844b9a607a86add78604186297eb047e"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2e9072d71c1f6cfc79a36d4484c82823c560e6f5599c43c1ca6b5cdbd54f881"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f36a3489d9e28fe4b67be9992a23029c3cec0babc3bd9afb39f49844a8c721c5"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f64f82cc3443149292b32387086d02a6c7fb39b8781563e0ca7b8d7d9cf72bd7"}, + {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b4a6db486ac8e99ae696e09efc8b2b9fea67b63c8f88ba7a1a16c24a057a0776"}, + {file = "pydantic_core-2.10.1.tar.gz", hash = "sha256:0f8682dbdd2f67f8e1edddcbffcc29f60a6182b4901c367fc8c1c40d30bb0a82"}, ] [package.dependencies] From 82cbc16c459afb59d1aaa49df9e5059a4c25369c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:16:48 +0200 Subject: [PATCH 37/41] core: bump psycopg from 3.1.11 to 3.1.12 (#6997) Bumps [psycopg](https://github.com/psycopg/psycopg) from 3.1.11 to 3.1.12. - [Changelog](https://github.com/psycopg/psycopg/blob/master/docs/news.rst) - [Commits](https://github.com/psycopg/psycopg/compare/3.1.11...3.1.12) --- updated-dependencies: - dependency-name: psycopg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/poetry.lock b/poetry.lock index 60dd64a3e..39dddafa6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2570,23 +2570,23 @@ wcwidth = "*" [[package]] name = "psycopg" -version = "3.1.11" +version = "3.1.12" description = "PostgreSQL database adapter for Python" optional = false python-versions = ">=3.7" files = [ - {file = "psycopg-3.1.11-py3-none-any.whl", hash = "sha256:7542c45810ea16356e5126c9b4291cbc3802aa326fcbba09ff154fe380de29be"}, - {file = "psycopg-3.1.11.tar.gz", hash = "sha256:cd711edb64b07d7f8a233c365806caf7e55bbe7cbbd8d5c680f672bb5353c8d5"}, + {file = "psycopg-3.1.12-py3-none-any.whl", hash = "sha256:8ec5230d6a7eb654b4fb3cf2d3eda8871d68f24807b934790504467f1deee9f8"}, + {file = "psycopg-3.1.12.tar.gz", hash = "sha256:cec7ad2bc6a8510e56c45746c631cf9394148bdc8a9a11fd8cf8554ce129ae78"}, ] [package.dependencies] -psycopg-c = {version = "3.1.11", optional = true, markers = "extra == \"c\""} +psycopg-c = {version = "3.1.12", optional = true, markers = "extra == \"c\""} typing-extensions = ">=4.1" tzdata = {version = "*", markers = "sys_platform == \"win32\""} [package.extras] -binary = ["psycopg-binary (==3.1.11)"] -c = ["psycopg-c (==3.1.11)"] +binary = ["psycopg-binary (==3.1.12)"] +c = ["psycopg-c (==3.1.12)"] dev = ["black (>=23.1.0)", "dnspython (>=2.1)", "flake8 (>=4.0)", "mypy (>=1.4.1)", "types-setuptools (>=57.4)", "wheel (>=0.37)"] docs = ["Sphinx (>=5.0)", "furo (==2022.6.21)", "sphinx-autobuild (>=2021.3.14)", "sphinx-autodoc-typehints (>=1.12)"] pool = ["psycopg-pool"] @@ -2594,12 +2594,12 @@ test = ["anyio (>=3.6.2,<4.0)", "mypy (>=1.4.1)", "pproxy (>=2.7)", "pytest (>=6 [[package]] name = "psycopg-c" -version = "3.1.11" +version = "3.1.12" description = "PostgreSQL database adapter for Python -- C optimisation distribution" optional = false python-versions = ">=3.7" files = [ - {file = "psycopg-c-3.1.11.tar.gz", hash = "sha256:e22a5bb4a6c0dc02219b954fe11ca49b79b4d278159f4b934b182f87bb96ef78"}, + {file = "psycopg-c-3.1.12.tar.gz", hash = "sha256:81db07874c7c530482d07155d144b287b47260dd1782a0d2d3ca7ae2d4641686"}, ] [[package]] From b15002a992a0837e06fa6b1ea5c4b05be124f47b Mon Sep 17 00:00:00 2001 From: Jens L Date: Wed, 27 Sep 2023 12:34:02 +0200 Subject: [PATCH 38/41] flows: stage_invalid() makes flow restart depending on invalid_response_action setting (#6780) * flows: stage_invalid() makes flow restart depending on invalid_response_action setting Signed-off-by: Jens Langhammer * fix Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/flows/views/executor.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/authentik/flows/views/executor.py b/authentik/flows/views/executor.py index 31f08c107..92b944670 100644 --- a/authentik/flows/views/executor.py +++ b/authentik/flows/views/executor.py @@ -42,6 +42,7 @@ from authentik.flows.models import ( FlowDesignation, FlowStageBinding, FlowToken, + InvalidResponseAction, Stage, ) from authentik.flows.planner import ( @@ -105,7 +106,7 @@ class FlowExecutorView(APIView): flow: Flow plan: Optional[FlowPlan] = None - current_binding: FlowStageBinding + current_binding: Optional[FlowStageBinding] = None current_stage: Stage current_stage_view: View @@ -411,6 +412,19 @@ class FlowExecutorView(APIView): Optionally, an exception can be passed, which will be shown if the current user is a superuser.""" self._logger.debug("f(exec): Stage invalid") + if self.current_binding and self.current_binding.invalid_response_action in [ + InvalidResponseAction.RESTART, + InvalidResponseAction.RESTART_WITH_CONTEXT, + ]: + keep_context = ( + self.current_binding.invalid_response_action + == InvalidResponseAction.RESTART_WITH_CONTEXT + ) + self._logger.debug( + "f(exec): Invalid response, restarting flow", + keep_context=keep_context, + ) + return self.restart_flow(keep_context) self.cancel() challenge_view = AccessDeniedChallengeView(self, error_message) challenge_view.request = self.request From 4a434d581d99fd0b1854a0bec9af18730f95e23b Mon Sep 17 00:00:00 2001 From: risson <18313093+rissson@users.noreply.github.com> Date: Wed, 27 Sep 2023 13:34:29 +0200 Subject: [PATCH 39/41] root: handle SIGHUP and SIGUSR2, healthcheck gunicorn (#6630) Co-authored-by: Jens Langhammer --- cmd/server/server.go | 1 + internal/gounicorn/gounicorn.go | 120 +++++++++++++++++++++++++++++--- internal/utils/process.go | 39 +++++++++++ internal/web/web.go | 16 +++++ 4 files changed, 166 insertions(+), 10 deletions(-) create mode 100644 internal/utils/process.go diff --git a/cmd/server/server.go b/cmd/server/server.go index f80c98544..8e3c3f28b 100644 --- a/cmd/server/server.go +++ b/cmd/server/server.go @@ -9,6 +9,7 @@ import ( "github.com/getsentry/sentry-go" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" + "goauthentik.io/internal/common" "goauthentik.io/internal/config" "goauthentik.io/internal/constants" diff --git a/internal/gounicorn/gounicorn.go b/internal/gounicorn/gounicorn.go index b07a8c61a..0f328c943 100644 --- a/internal/gounicorn/gounicorn.go +++ b/internal/gounicorn/gounicorn.go @@ -1,14 +1,20 @@ package gounicorn import ( + "fmt" "os" "os/exec" + "os/signal" "runtime" + "strconv" + "strings" "syscall" "time" log "github.com/sirupsen/logrus" + "goauthentik.io/internal/config" + "goauthentik.io/internal/utils" ) type GoUnicorn struct { @@ -17,6 +23,7 @@ type GoUnicorn struct { log *log.Entry p *exec.Cmd + pidFile string started bool killed bool alive bool @@ -33,15 +40,36 @@ func New(healthcheck func() bool) *GoUnicorn { HealthyCallback: func() {}, } g.initCmd() + c := make(chan os.Signal, 1) + signal.Notify(c, syscall.SIGHUP, syscall.SIGUSR2) + go func() { + for sig := range c { + if sig == syscall.SIGHUP { + g.log.Info("SIGHUP received, forwarding to gunicorn") + g.Reload() + } else if sig == syscall.SIGUSR2 { + g.log.Info("SIGUSR2 received, restarting gunicorn") + g.Restart() + } + } + }() return g } func (g *GoUnicorn) initCmd() { - command := "gunicorn" - args := []string{"-c", "./lifecycle/gunicorn.conf.py", "authentik.root.asgi:application"} - if config.Get().Debug { - command = "./manage.py" - args = []string{"dev_server"} + command := "./manage.py" + args := []string{"dev_server"} + if !config.Get().Debug { + pidFile, err := os.CreateTemp("", "authentik-gunicorn.*.pid") + if err != nil { + panic(fmt.Errorf("failed to create temporary pid file: %v", err)) + } + g.pidFile = pidFile.Name() + command = "gunicorn" + args = []string{"-c", "./lifecycle/gunicorn.conf.py", "authentik.root.asgi:application"} + if g.pidFile != "" { + args = append(args, "--pid", g.pidFile) + } } g.log.WithField("args", args).WithField("cmd", command).Debug("Starting gunicorn") g.p = exec.Command(command, args...) @@ -55,13 +83,10 @@ func (g *GoUnicorn) IsRunning() bool { } func (g *GoUnicorn) Start() error { - if g.killed { - g.log.Debug("Not restarting gunicorn since we're shutdown") - return nil - } if g.started { g.initCmd() } + g.killed = false g.started = true go g.healthcheck() return g.p.Run() @@ -85,8 +110,76 @@ func (g *GoUnicorn) healthcheck() { } } +func (g *GoUnicorn) Reload() { + g.log.WithField("method", "reload").Info("reloading gunicorn") + err := g.p.Process.Signal(syscall.SIGHUP) + if err != nil { + g.log.WithError(err).Warning("failed to reload gunicorn") + } +} + +func (g *GoUnicorn) Restart() { + g.log.WithField("method", "restart").Info("restart gunicorn") + if g.pidFile == "" { + g.log.Warning("pidfile is non existent, cannot restart") + return + } + + err := g.p.Process.Signal(syscall.SIGUSR2) + if err != nil { + g.log.WithError(err).Warning("failed to restart gunicorn") + return + } + + newPidFile := fmt.Sprintf("%s.2", g.pidFile) + + // Wait for the new PID file to be created + for range time.NewTicker(1 * time.Second).C { + _, err = os.Stat(newPidFile) + if err == nil || !os.IsNotExist(err) { + break + } + g.log.Debugf("waiting for new gunicorn pidfile to appear at %s", newPidFile) + } + if err != nil { + g.log.WithError(err).Warning("failed to find the new gunicorn process, aborting") + return + } + + newPidB, err := os.ReadFile(newPidFile) + if err != nil { + g.log.WithError(err).Warning("failed to find the new gunicorn process, aborting") + return + } + newPidS := strings.TrimSpace(string(newPidB[:])) + newPid, err := strconv.Atoi(newPidS) + if err != nil { + g.log.WithError(err).Warning("failed to find the new gunicorn process, aborting") + return + } + g.log.Warningf("new gunicorn PID is %d", newPid) + + newProcess, err := utils.FindProcess(newPid) + if newProcess == nil || err != nil { + g.log.WithError(err).Warning("failed to find the new gunicorn process, aborting") + return + } + + // The new process has started, let's gracefully kill the old one + g.log.Warning("killing old gunicorn") + err = g.p.Process.Signal(syscall.SIGTERM) + if err != nil { + g.log.Warning("failed to kill old instance of gunicorn") + } + + g.p.Process = newProcess + // No need to close any files and the .2 pid file is deleted by Gunicorn +} + func (g *GoUnicorn) Kill() { - g.killed = true + if !g.started { + return + } var err error if runtime.GOOS == "darwin" { g.log.WithField("method", "kill").Warning("stopping gunicorn") @@ -98,4 +191,11 @@ func (g *GoUnicorn) Kill() { if err != nil { g.log.WithError(err).Warning("failed to stop gunicorn") } + if g.pidFile != "" { + err := os.Remove(g.pidFile) + if err != nil { + g.log.WithError(err).Warning("failed to remove pidfile") + } + } + g.killed = true } diff --git a/internal/utils/process.go b/internal/utils/process.go new file mode 100644 index 000000000..366d0d1c4 --- /dev/null +++ b/internal/utils/process.go @@ -0,0 +1,39 @@ +package utils + +import ( + "errors" + "fmt" + "os" + "syscall" +) + +func FindProcess(pid int) (*os.Process, error) { + if pid <= 0 { + return nil, fmt.Errorf("invalid pid %v", pid) + } + // The error doesn't mean anything on Unix systems, let's just check manually + // that the new gunicorn master has properly started + // https://github.com/golang/go/issues/34396 + proc, err := os.FindProcess(pid) + if err != nil { + return nil, err + } + err = proc.Signal(syscall.Signal(0)) + if err == nil { + return proc, nil + } + if errors.Is(err, os.ErrProcessDone) { + return nil, nil + } + errno, ok := err.(syscall.Errno) + if !ok { + return nil, err + } + switch errno { + case syscall.ESRCH: + return nil, nil + case syscall.EPERM: + return proc, nil + } + return nil, err +} diff --git a/internal/web/web.go b/internal/web/web.go index e0b3a749d..ea7ac1746 100644 --- a/internal/web/web.go +++ b/internal/web/web.go @@ -9,6 +9,7 @@ import ( "net/url" "os" "path" + "time" "github.com/gorilla/handlers" "github.com/gorilla/mux" @@ -109,6 +110,21 @@ func (ws *WebServer) attemptStartBackend() { } err := ws.g.Start() log.WithField("logger", "authentik.router").WithError(err).Warning("gunicorn process died, restarting") + if err != nil { + log.WithField("logger", "authentik.router").WithError(err).Error("gunicorn failed to start, restarting") + continue + } + failedChecks := 0 + for range time.NewTicker(30 * time.Second).C { + if !ws.g.IsRunning() { + log.WithField("logger", "authentik.router").Warningf("gunicorn process failed healthcheck %d times", failedChecks) + failedChecks += 1 + } + if failedChecks >= 3 { + log.WithField("logger", "authentik.router").WithError(err).Error("gunicorn process failed healthcheck three times, restarting") + break + } + } } } From ac3fcc4284e63c96fe47dca8729630a37c11c90f Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Wed, 27 Sep 2023 07:51:49 -0500 Subject: [PATCH 40/41] website/blog: add info-block to blog about m2m (#7002) * add info-block * tweak working info-block --------- Co-authored-by: Tana Berry --- .../item.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md b/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md index 8f936b475..12d1abe4a 100644 --- a/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md +++ b/website/blog/2023-09-26-machine-to-machine-communication-in-authentik/item.md @@ -21,6 +21,10 @@ hide_table_of_contents: false image: ./Image1.png --- +> **_authentik is a unified identity platform that helps with all of your authentication needs, replacing Okta, Active Directory, Auth0, and more. Building on the open-source project, Authentik Security Inc is a [public benefit company](https://github.com/OpenCoreVentures/ocv-public-benefit-company/blob/main/ocv-public-benefit-company-charter.md) that provides additional features and dedicated support._** + +--- + We have provided M2M communication in authentik for the past year, and in this blog we want to share some more information about how it works in authentik, and take a look at three use cases. ## What is M2M? From 6b5200fead1169fd41b8d9ff9e8ade58f67258f0 Mon Sep 17 00:00:00 2001 From: Jens Langhammer Date: Wed, 27 Sep 2023 16:57:57 +0200 Subject: [PATCH 41/41] root: fix missing /lifecycle in path Signed-off-by: Jens Langhammer --- Dockerfile | 6 +++--- website/docs/installation/monitoring.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index bbbcee63e..95d20d999 100644 --- a/Dockerfile +++ b/Dockerfile @@ -146,10 +146,10 @@ USER 1000 ENV TMPDIR=/dev/shm/ \ PYTHONDONTWRITEBYTECODE=1 \ PYTHONUNBUFFERED=1 \ - PATH="/ak-root/venv/bin:$PATH" \ + PATH="/ak-root/venv/bin:/lifecycle:$PATH" \ VENV_PATH="/ak-root/venv" \ POETRY_VIRTUALENVS_CREATE=false -HEALTHCHECK --interval=30s --timeout=30s --start-period=60s --retries=3 CMD [ "/lifecycle/ak", "healthcheck" ] +HEALTHCHECK --interval=30s --timeout=30s --start-period=60s --retries=3 CMD [ "ak", "healthcheck" ] -ENTRYPOINT [ "dumb-init", "--", "/lifecycle/ak" ] +ENTRYPOINT [ "dumb-init", "--", "ak" ] diff --git a/website/docs/installation/monitoring.md b/website/docs/installation/monitoring.md index 6d8506523..a3d03bc70 100644 --- a/website/docs/installation/monitoring.md +++ b/website/docs/installation/monitoring.md @@ -10,7 +10,7 @@ Configure your monitoring software to send requests to `/-/health/live/`, which ## Worker monitoring -The worker container can be monitored by running `/lifecycle/ak healthcheck` in the worker container. This will ping the worker and ensure it can communicate with redis as required. +The worker container can be monitored by running `ak healthcheck` in the worker container. This will ping the worker and ensure it can communicate with redis as required. ## Outpost monitoring