diff --git a/.github/workflows/release-next-branch.yml b/.github/workflows/release-next-branch.yml new file mode 100644 index 000000000..babbe0a81 --- /dev/null +++ b/.github/workflows/release-next-branch.yml @@ -0,0 +1,25 @@ +name: authentik-on-release-next-branch + +on: + schedule: + - cron: "0 12 * * *" # every day at noon + workflow_dispatch: + +permissions: + contents: write + +jobs: + update-next: + runs-on: ubuntu-latest + environment: internal-production + steps: + - uses: actions/checkout@v3 + with: + ref: main + - id: main-state + run: | + state=$(curl -fsSL -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${{ github.token }}" "https://api.github.com/repos/${{ github.repository }}/commits/HEAD/state" | jq -r '.state') + echo "state=${state}" >> $GITHUB_OUTPUT + - if: ${{ steps.main-state.outputs.state == 'success' }} + run: | + git push origin next --force diff --git a/Makefile b/Makefile index 1943e85b4..dcd8e73ca 100644 --- a/Makefile +++ b/Makefile @@ -151,7 +151,7 @@ web-check-compile: cd web && npm run tsc web-i18n-extract: - cd web && npm run extract + cd web && npm run extract-locales ######################### ## Website diff --git a/authentik/core/models.py b/authentik/core/models.py index 3fd8a44a0..310497856 100644 --- a/authentik/core/models.py +++ b/authentik/core/models.py @@ -376,10 +376,10 @@ class Application(SerializerModel, PolicyBindingModel): def get_launch_url(self, user: Optional["User"] = None) -> Optional[str]: """Get launch URL if set, otherwise attempt to get launch URL based on provider.""" url = None - if provider := self.get_provider(): - url = provider.launch_url if self.meta_launch_url: url = self.meta_launch_url + elif provider := self.get_provider(): + url = provider.launch_url if user and url: if isinstance(user, SimpleLazyObject): user._setup() diff --git a/authentik/providers/ldap/api.py b/authentik/providers/ldap/api.py index 96b3a5926..870d66ee5 100644 --- a/authentik/providers/ldap/api.py +++ b/authentik/providers/ldap/api.py @@ -105,7 +105,9 @@ class LDAPOutpostConfigSerializer(ModelSerializer): class LDAPOutpostConfigViewSet(ReadOnlyModelViewSet): """LDAPProvider Viewset""" - queryset = LDAPProvider.objects.filter(application__isnull=False) + queryset = LDAPProvider.objects.filter( + Q(application__isnull=False) | Q(backchannel_application__isnull=False) + ) serializer_class = LDAPOutpostConfigSerializer ordering = ["name"] search_fields = ["name"] diff --git a/authentik/providers/ldap/tests/__init__.py b/authentik/providers/ldap/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/authentik/providers/ldap/tests/test_api.py b/authentik/providers/ldap/tests/test_api.py new file mode 100644 index 000000000..1271f7640 --- /dev/null +++ b/authentik/providers/ldap/tests/test_api.py @@ -0,0 +1,52 @@ +"""LDAP Provider API tests""" +from json import loads + +from django.urls import reverse +from rest_framework.test import APITestCase + +from authentik.core.models import Application +from authentik.core.tests.utils import create_test_admin_user, create_test_flow +from authentik.lib.generators import generate_id +from authentik.providers.ldap.models import LDAPProvider + + +class TestLDAPProviderAPI(APITestCase): + """LDAP Provider API tests""" + + def test_outpost_application(self): + """Test outpost-like provider retrieval (direct connection)""" + provider = LDAPProvider.objects.create( + name=generate_id(), + authorization_flow=create_test_flow(), + ) + Application.objects.create( + name=generate_id(), + slug=generate_id(), + provider=provider, + ) + user = create_test_admin_user() + self.client.force_login(user) + res = self.client.get(reverse("authentik_api:ldapprovideroutpost-list")) + self.assertEqual(res.status_code, 200) + data = loads(res.content.decode()) + self.assertEqual(data["pagination"]["count"], 1) + self.assertEqual(len(data["results"]), 1) + + def test_outpost_application_backchannel(self): + """Test outpost-like provider retrieval (backchannel connection)""" + provider = LDAPProvider.objects.create( + name=generate_id(), + authorization_flow=create_test_flow(), + ) + app: Application = Application.objects.create( + name=generate_id(), + slug=generate_id(), + ) + app.backchannel_providers.add(provider) + user = create_test_admin_user() + self.client.force_login(user) + res = self.client.get(reverse("authentik_api:ldapprovideroutpost-list")) + self.assertEqual(res.status_code, 200) + data = loads(res.content.decode()) + self.assertEqual(data["pagination"]["count"], 1) + self.assertEqual(len(data["results"]), 1) diff --git a/authentik/providers/ldap/urls.py b/authentik/providers/ldap/urls.py index fc32e4954..ae916f9f7 100644 --- a/authentik/providers/ldap/urls.py +++ b/authentik/providers/ldap/urls.py @@ -2,6 +2,6 @@ from authentik.providers.ldap.api import LDAPOutpostConfigViewSet, LDAPProviderViewSet api_urlpatterns = [ - ("outposts/ldap", LDAPOutpostConfigViewSet), + ("outposts/ldap", LDAPOutpostConfigViewSet, "ldapprovideroutpost"), ("providers/ldap", LDAPProviderViewSet), ] diff --git a/authentik/providers/oauth2/models.py b/authentik/providers/oauth2/models.py index 837940832..1357b2101 100644 --- a/authentik/providers/oauth2/models.py +++ b/authentik/providers/oauth2/models.py @@ -17,6 +17,7 @@ from django.urls import reverse from django.utils.translation import gettext_lazy as _ from jwt import encode from rest_framework.serializers import Serializer +from structlog.stdlib import get_logger from authentik.core.models import ExpiringModel, PropertyMapping, Provider, User from authentik.crypto.models import CertificateKeyPair @@ -26,6 +27,8 @@ from authentik.lib.utils.time import timedelta_string_validator from authentik.providers.oauth2.id_token import IDToken, SubModes from authentik.sources.oauth.models import OAuthSource +LOGGER = get_logger() + def generate_client_secret() -> str: """Generate client secret with adequate length""" @@ -251,8 +254,12 @@ class OAuth2Provider(Provider): if self.redirect_uris == "": return None main_url = self.redirect_uris.split("\n", maxsplit=1)[0] - launch_url = urlparse(main_url)._replace(path="") - return urlunparse(launch_url) + try: + launch_url = urlparse(main_url)._replace(path="") + return urlunparse(launch_url) + except ValueError as exc: + LOGGER.warning("Failed to format launch url", exc=exc) + return None @property def component(self) -> str: diff --git a/authentik/providers/oauth2/tests/test_api.py b/authentik/providers/oauth2/tests/test_api.py index 2bd0c5c98..5aecb3a0e 100644 --- a/authentik/providers/oauth2/tests/test_api.py +++ b/authentik/providers/oauth2/tests/test_api.py @@ -1,5 +1,7 @@ """Test OAuth2 API""" from json import loads +from sys import version_info +from unittest import skipUnless from django.urls import reverse from rest_framework.test import APITestCase @@ -42,3 +44,14 @@ class TestAPI(APITestCase): self.assertEqual(response.status_code, 200) body = loads(response.content.decode()) self.assertEqual(body["issuer"], "http://testserver/application/o/test/") + + # https://github.com/goauthentik/authentik/pull/5918 + @skipUnless(version_info >= (3, 11, 4), "This behaviour is only Python 3.11.4 and up") + def test_launch_url(self): + """Test launch_url""" + self.provider.redirect_uris = ( + "https://[\\d\\w]+.pr.test.goauthentik.io/source/oauth/callback/authentik/\n" + ) + self.provider.save() + self.provider.refresh_from_db() + self.assertIsNone(self.provider.launch_url) diff --git a/authentik/providers/proxy/urls.py b/authentik/providers/proxy/urls.py index fa4706de6..384cc1d6f 100644 --- a/authentik/providers/proxy/urls.py +++ b/authentik/providers/proxy/urls.py @@ -2,6 +2,6 @@ from authentik.providers.proxy.api import ProxyOutpostConfigViewSet, ProxyProviderViewSet api_urlpatterns = [ - ("outposts/proxy", ProxyOutpostConfigViewSet), + ("outposts/proxy", ProxyOutpostConfigViewSet, "proxyprovideroutpost"), ("providers/proxy", ProxyProviderViewSet), ] diff --git a/authentik/providers/radius/urls.py b/authentik/providers/radius/urls.py index b0c1bd33f..9cbef52ef 100644 --- a/authentik/providers/radius/urls.py +++ b/authentik/providers/radius/urls.py @@ -2,6 +2,6 @@ from authentik.providers.radius.api import RadiusOutpostConfigViewSet, RadiusProviderViewSet api_urlpatterns = [ - ("outposts/radius", RadiusOutpostConfigViewSet), + ("outposts/radius", RadiusOutpostConfigViewSet, "radiusprovideroutpost"), ("providers/radius", RadiusProviderViewSet), ] diff --git a/authentik/root/middleware.py b/authentik/root/middleware.py index 353a58ff0..a6b0d9c7e 100644 --- a/authentik/root/middleware.py +++ b/authentik/root/middleware.py @@ -1,5 +1,4 @@ """Dynamically set SameSite depending if the upstream connection is TLS or not""" -from functools import lru_cache from hashlib import sha512 from time import time from timeit import default_timer @@ -17,16 +16,10 @@ from jwt import PyJWTError, decode, encode from structlog.stdlib import get_logger from authentik.lib.utils.http import get_client_ip -from authentik.root.install_id import get_install_id LOGGER = get_logger("authentik.asgi") ACR_AUTHENTIK_SESSION = "goauthentik.io/core/default" - - -@lru_cache -def get_signing_hash(): - """Get cookie JWT signing hash""" - return sha512(get_install_id().encode()).hexdigest() +SIGNING_HASH = sha512(settings.SECRET_KEY.encode()).hexdigest() class SessionMiddleware(UpstreamSessionMiddleware): @@ -54,7 +47,7 @@ class SessionMiddleware(UpstreamSessionMiddleware): # for testing setups, where the session is directly set session_key = key if settings.TEST else None try: - session_payload = decode(key, get_signing_hash(), algorithms=["HS256"]) + session_payload = decode(key, SIGNING_HASH, algorithms=["HS256"]) session_key = session_payload["sid"] except (KeyError, PyJWTError): pass @@ -121,7 +114,7 @@ class SessionMiddleware(UpstreamSessionMiddleware): } if request.user.is_authenticated: payload["sub"] = request.user.uid - value = encode(payload=payload, key=get_signing_hash()) + value = encode(payload=payload, key=SIGNING_HASH) if settings.TEST: value = request.session.session_key response.set_cookie( diff --git a/authentik/sources/ldap/api.py b/authentik/sources/ldap/api.py index 3f6e24837..0a8849345 100644 --- a/authentik/sources/ldap/api.py +++ b/authentik/sources/ldap/api.py @@ -8,6 +8,7 @@ from drf_spectacular.utils import extend_schema, extend_schema_field, inline_ser from rest_framework.decorators import action from rest_framework.exceptions import ValidationError from rest_framework.fields import DictField, ListField +from rest_framework.relations import PrimaryKeyRelatedField from rest_framework.request import Request from rest_framework.response import Response from rest_framework.viewsets import ModelViewSet @@ -16,6 +17,7 @@ from authentik.admin.api.tasks import TaskSerializer from authentik.core.api.propertymappings import PropertyMappingSerializer from authentik.core.api.sources import SourceSerializer from authentik.core.api.used_by import UsedByMixin +from authentik.crypto.models import CertificateKeyPair from authentik.events.monitored_tasks import TaskInfo from authentik.sources.ldap.models import LDAPPropertyMapping, LDAPSource from authentik.sources.ldap.tasks import SYNC_CLASSES @@ -24,6 +26,15 @@ from authentik.sources.ldap.tasks import SYNC_CLASSES class LDAPSourceSerializer(SourceSerializer): """LDAP Source Serializer""" + client_certificate = PrimaryKeyRelatedField( + allow_null=True, + help_text="Client certificate to authenticate against the LDAP Server's Certificate.", + queryset=CertificateKeyPair.objects.exclude( + key_data__exact="", + ), + required=False, + ) + def validate(self, attrs: dict[str, Any]) -> dict[str, Any]: """Check that only a single source has password_sync on""" sync_users_password = attrs.get("sync_users_password", True) @@ -42,9 +53,11 @@ class LDAPSourceSerializer(SourceSerializer): fields = SourceSerializer.Meta.fields + [ "server_uri", "peer_certificate", + "client_certificate", "bind_cn", "bind_password", "start_tls", + "sni", "base_dn", "additional_user_dn", "additional_group_dn", @@ -75,7 +88,9 @@ class LDAPSourceViewSet(UsedByMixin, ModelViewSet): "server_uri", "bind_cn", "peer_certificate", + "client_certificate", "start_tls", + "sni", "base_dn", "additional_user_dn", "additional_group_dn", diff --git a/authentik/sources/ldap/auth.py b/authentik/sources/ldap/auth.py index 5cc21f991..508aacb3e 100644 --- a/authentik/sources/ldap/auth.py +++ b/authentik/sources/ldap/auth.py @@ -57,13 +57,13 @@ class LDAPBackend(InbuiltBackend): # Try to bind as new user LOGGER.debug("Attempting to bind as user", user=user) try: - temp_connection = source.connection( + # source.connection also attempts to bind + source.connection( connection_kwargs={ "user": user.attributes.get(LDAP_DISTINGUISHED_NAME), "password": password, } ) - temp_connection.bind() return user except LDAPInvalidCredentialsResult as exc: LOGGER.debug("invalid LDAP credentials", user=user, exc=exc) diff --git a/authentik/sources/ldap/migrations/0003_ldapsource_client_certificate_ldapsource_sni_and_more.py b/authentik/sources/ldap/migrations/0003_ldapsource_client_certificate_ldapsource_sni_and_more.py new file mode 100644 index 000000000..7c67597bb --- /dev/null +++ b/authentik/sources/ldap/migrations/0003_ldapsource_client_certificate_ldapsource_sni_and_more.py @@ -0,0 +1,45 @@ +# Generated by Django 4.1.7 on 2023-06-06 18:33 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("authentik_crypto", "0004_alter_certificatekeypair_name"), + ("authentik_sources_ldap", "0002_auto_20211203_0900"), + ] + + operations = [ + migrations.AddField( + model_name="ldapsource", + name="client_certificate", + field=models.ForeignKey( + default=None, + help_text="Client certificate to authenticate against the LDAP Server's Certificate.", + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + related_name="ldap_client_certificates", + to="authentik_crypto.certificatekeypair", + ), + ), + migrations.AddField( + model_name="ldapsource", + name="sni", + field=models.BooleanField( + default=False, verbose_name="Use Server URI for SNI verification" + ), + ), + migrations.AlterField( + model_name="ldapsource", + name="peer_certificate", + field=models.ForeignKey( + default=None, + help_text="Optionally verify the LDAP Server's Certificate against the CA Chain in this keypair.", + null=True, + on_delete=django.db.models.deletion.SET_DEFAULT, + related_name="ldap_peer_certificates", + to="authentik_crypto.certificatekeypair", + ), + ), + ] diff --git a/authentik/sources/ldap/models.py b/authentik/sources/ldap/models.py index 4cbddd582..4a6c2fd2e 100644 --- a/authentik/sources/ldap/models.py +++ b/authentik/sources/ldap/models.py @@ -1,11 +1,13 @@ """authentik LDAP Models""" +from os import chmod from ssl import CERT_REQUIRED +from tempfile import NamedTemporaryFile, mkdtemp from typing import Optional from django.db import models from django.utils.translation import gettext_lazy as _ from ldap3 import ALL, NONE, RANDOM, Connection, Server, ServerPool, Tls -from ldap3.core.exceptions import LDAPSchemaError +from ldap3.core.exceptions import LDAPInsufficientAccessRightsResult, LDAPSchemaError from rest_framework.serializers import Serializer from authentik.core.models import Group, PropertyMapping, Source @@ -39,14 +41,24 @@ class LDAPSource(Source): on_delete=models.SET_DEFAULT, default=None, null=True, + related_name="ldap_peer_certificates", help_text=_( "Optionally verify the LDAP Server's Certificate against the CA Chain in this keypair." ), ) + client_certificate = models.ForeignKey( + CertificateKeyPair, + on_delete=models.SET_DEFAULT, + default=None, + null=True, + related_name="ldap_client_certificates", + help_text=_("Client certificate to authenticate against the LDAP Server's Certificate."), + ) bind_cn = models.TextField(verbose_name=_("Bind CN"), blank=True) bind_password = models.TextField(blank=True) start_tls = models.BooleanField(default=False, verbose_name=_("Enable Start TLS")) + sni = models.BooleanField(default=False, verbose_name=_("Use Server URI for SNI verification")) base_dn = models.TextField(verbose_name=_("Base DN")) additional_user_dn = models.TextField( @@ -112,8 +124,22 @@ class LDAPSource(Source): if self.peer_certificate: tls_kwargs["ca_certs_data"] = self.peer_certificate.certificate_data tls_kwargs["validate"] = CERT_REQUIRED + if self.client_certificate: + temp_dir = mkdtemp() + with NamedTemporaryFile(mode="w", delete=False, dir=temp_dir) as temp_cert: + temp_cert.write(self.client_certificate.certificate_data) + certificate_file = temp_cert.name + chmod(certificate_file, 0o600) + with NamedTemporaryFile(mode="w", delete=False, dir=temp_dir) as temp_key: + temp_key.write(self.client_certificate.key_data) + private_key_file = temp_key.name + chmod(private_key_file, 0o600) + tls_kwargs["local_private_key_file"] = private_key_file + tls_kwargs["local_certificate_file"] = certificate_file if ciphers := CONFIG.y("ldap.tls.ciphers", None): tls_kwargs["ciphers"] = ciphers.strip() + if self.sni: + tls_kwargs["sni"] = self.server_uri.split(",", maxsplit=1)[0].strip() server_kwargs = { "get_info": ALL, "connect_timeout": LDAP_TIMEOUT, @@ -133,8 +159,10 @@ class LDAPSource(Source): """Get a fully connected and bound LDAP Connection""" server_kwargs = server_kwargs or {} connection_kwargs = connection_kwargs or {} - connection_kwargs.setdefault("user", self.bind_cn) - connection_kwargs.setdefault("password", self.bind_password) + if self.bind_cn is not None: + connection_kwargs.setdefault("user", self.bind_cn) + if self.bind_password is not None: + connection_kwargs.setdefault("password", self.bind_password) connection = Connection( self.server(**server_kwargs), raise_exceptions=True, @@ -145,15 +173,18 @@ class LDAPSource(Source): if self.start_tls: connection.start_tls(read_server_info=False) try: - connection.bind() - except LDAPSchemaError as exc: + successful = connection.bind() + if successful: + return connection + except (LDAPSchemaError, LDAPInsufficientAccessRightsResult) as exc: # Schema error, so try connecting without schema info # See https://github.com/goauthentik/authentik/issues/4590 + # See also https://github.com/goauthentik/authentik/issues/3399 if server_kwargs.get("get_info", ALL) == NONE: raise exc server_kwargs["get_info"] = NONE return self.connection(server_kwargs, connection_kwargs) - return connection + return RuntimeError("Failed to bind") class Meta: verbose_name = _("LDAP Source") diff --git a/authentik/sources/ldap/tests/test_auth.py b/authentik/sources/ldap/tests/test_auth.py index 3ba6ae386..715edc139 100644 --- a/authentik/sources/ldap/tests/test_auth.py +++ b/authentik/sources/ldap/tests/test_auth.py @@ -29,6 +29,37 @@ class LDAPSyncTests(TestCase): additional_group_dn="ou=groups", ) + def test_auth_direct_user_ad(self): + """Test direct auth""" + self.source.property_mappings.set( + LDAPPropertyMapping.objects.filter( + Q(managed__startswith="goauthentik.io/sources/ldap/default-") + | Q(managed__startswith="goauthentik.io/sources/ldap/ms-") + ) + ) + raw_conn = mock_ad_connection(LDAP_PASSWORD) + bind_mock = Mock(wraps=raw_conn.bind) + raw_conn.bind = bind_mock + connection = MagicMock(return_value=raw_conn) + with patch("authentik.sources.ldap.models.LDAPSource.connection", connection): + user_sync = UserLDAPSynchronizer(self.source) + user_sync.sync() + + user = User.objects.get(username="user0_sn") + # auth_user_by_bind = Mock(return_value=user) + backend = LDAPBackend() + self.assertEqual( + backend.authenticate(None, username="user0_sn", password=LDAP_PASSWORD), + user, + ) + connection.assert_called_with( + connection_kwargs={ + "user": "cn=user0,ou=users,dc=goauthentik,dc=io", + "password": LDAP_PASSWORD, + } + ) + bind_mock.assert_not_called() + def test_auth_synced_user_ad(self): """Test Cached auth""" self.source.property_mappings.set( diff --git a/blueprints/example/sources-google-ldap-mappings.yaml b/blueprints/example/sources-google-ldap-mappings.yaml new file mode 100644 index 000000000..e070798dd --- /dev/null +++ b/blueprints/example/sources-google-ldap-mappings.yaml @@ -0,0 +1,222 @@ +version: 1 +metadata: + labels: + blueprints.goauthentik.io/instantiate: "false" + name: Example - Google Secure LDAP mappings +entries: + - identifiers: + managed: goauthentik.io/sources/ldap/google-uid + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: uid" + object_field: "username" + expression: | + return ldap.get('uid') + - identifiers: + managed: goauthentik.io/sources/ldap/google-googleuid + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: googleUid" + object_field: "attributes.googleUid" + expression: | + return ldap.get('googleUid') + - identifiers: + managed: goauthentik.io/sources/ldap/google-posixuid + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: posixUid" + object_field: "attributes.posixUid" + expression: | + return ldap.get('posixUid') + - identifiers: + managed: goauthentik.io/sources/ldap/google-cn + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: cn" + object_field: "name" + expression: | + return ldap.get('cn') + - identifiers: + managed: goauthentik.io/sources/ldap/google-sn + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: sn" + object_field: "attributes.sn" + expression: | + return list_flatten(ldap.get('sn')) + - identifiers: + managed: goauthentik.io/sources/ldap/google-givenname + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: givenName" + object_field: "attributes.givenName" + expression: | + return list_flatten(ldap.get('givenName')) + - identifiers: + managed: goauthentik.io/sources/ldap/google-displayname + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: displayName" + object_field: "attributes.displayName" + expression: | + return ldap.get('displayName') + - identifiers: + managed: goauthentik.io/sources/ldap/google-mail + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: mail" + object_field: "email" + expression: | + return ldap.get('mail') + - identifiers: + managed: goauthentik.io/sources/ldap/google-memberof + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: memberOf" + object_field: "attributes.memberOf" + expression: | + return ldap.get('memberOf') + - identifiers: + managed: goauthentik.io/sources/ldap/google-title + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: title" + object_field: "attributes.title" + expression: | + return ldap.get('title') + - identifiers: + managed: goauthentik.io/sources/ldap/google-employeenumber + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: employeeNumber" + object_field: "attributes.employeeNumber" + expression: | + return ldap.get('employeeNumber') + - identifiers: + managed: goauthentik.io/sources/ldap/google-employeetype + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: employeeType" + object_field: "attributes.employeeType" + expression: | + return ldap.get('employeeType') + - identifiers: + managed: goauthentik.io/sources/ldap/google-departmentnumber + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: departmentNumber" + object_field: "attributes.departmentNumber" + expression: | + return ldap.get('departmentNumber') + - identifiers: + managed: goauthentik.io/sources/ldap/google-physicaldeliveryofficename + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: physicalDeliveryOfficeName" + object_field: "attributes.physicalDeliveryOfficeName" + expression: | + return ldap.get('physicalDeliveryOfficeName') + - identifiers: + managed: goauthentik.io/sources/ldap/google-jpegphoto + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: jpegPhoto" + object_field: "attributes.jpegPhoto" + expression: | + return ldap.get('jpegPhoto') + - identifiers: + managed: goauthentik.io/sources/ldap/google-entryuuid + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: entryUuid" + object_field: "attributes.entryUuid" + expression: | + return ldap.get('entryUuid') + - identifiers: + managed: goauthentik.io/sources/ldap/google-objectsid + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: objectSid" + object_field: "attributes.objectSid" + expression: | + return ldap.get('objectSid') + - identifiers: + managed: goauthentik.io/sources/ldap/google-uidnumber + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: uidNumber" + object_field: "attributes.uidNumber" + expression: | + return ldap.get('uidNumber') + - identifiers: + managed: goauthentik.io/sources/ldap/google-gidnumber + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: gidNumber" + object_field: "attributes.gidNumber" + expression: | + return ldap.get('gidNumber') + - identifiers: + managed: goauthentik.io/sources/ldap/google-homedirectory + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: homeDirectory" + object_field: "attributes.homeDirectory" + expression: | + return ldap.get('homeDirectory') + - identifiers: + managed: goauthentik.io/sources/ldap/google-loginshell + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: loginShell" + object_field: "attributes.loginShell" + expression: | + return ldap.get('loginShell') + - identifiers: + managed: goauthentik.io/sources/ldap/google-gidnumber + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: gidNumber" + object_field: "attributes.gidNumber" + expression: | + return ldap.get('gidNumber') + - identifiers: + managed: goauthentik.io/sources/ldap/google-sshpublickey + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: sshPublicKey" + object_field: "attributes.sshPublicKey" + expression: | + return list_flatten(ldap.get('sshPublicKey')) + - identifiers: + managed: goauthentik.io/sources/ldap/google-description + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: description" + object_field: "attributes.description" + expression: | + return list_flatten(ldap.get('description')) + - identifiers: + managed: goauthentik.io/sources/ldap/google-member + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: member" + object_field: "attributes.member" + expression: | + return list_flatten(ldap.get('member')) + - identifiers: + managed: goauthentik.io/sources/ldap/google-memberuid + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: memberUid" + object_field: "attributes.memberUid" + expression: | + return list_flatten(ldap.get('memberUid')) + - identifiers: + managed: goauthentik.io/sources/ldap/google-googleadmincreated + model: authentik_sources_ldap.ldappropertymapping + attrs: + name: "Google Secure LDAP Mapping: googleAdminCreated" + object_field: "attributes.googleAdminCreated" + expression: | + return list_flatten(ldap.get('googleAdminCreated')) diff --git a/blueprints/schema.json b/blueprints/schema.json index 9422fbc79..edbc7f81b 100644 --- a/blueprints/schema.json +++ b/blueprints/schema.json @@ -4732,6 +4732,11 @@ "title": "Peer certificate", "description": "Optionally verify the LDAP Server's Certificate against the CA Chain in this keypair." }, + "client_certificate": { + "type": "integer", + "title": "Client certificate", + "description": "Client certificate to authenticate against the LDAP Server's Certificate." + }, "bind_cn": { "type": "string", "title": "Bind CN" @@ -4744,6 +4749,10 @@ "type": "boolean", "title": "Enable Start TLS" }, + "sni": { + "type": "boolean", + "title": "Use Server URI for SNI verification" + }, "base_dn": { "type": "string", "minLength": 1, diff --git a/go.mod b/go.mod index 30fa667eb..63348448b 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/garyburd/redigo v1.6.4 github.com/getsentry/sentry-go v0.21.0 github.com/go-http-utils/etag v0.0.0-20161124023236-513ea8f21eb1 - github.com/go-ldap/ldap/v3 v3.4.4 + github.com/go-ldap/ldap/v3 v3.4.5 github.com/go-openapi/runtime v0.26.0 github.com/go-openapi/strfmt v0.21.7 github.com/golang-jwt/jwt v3.2.2+incompatible @@ -36,7 +36,7 @@ require ( ) require ( - github.com/Azure/go-ntlmssp v0.0.0-20220621081337-cb9428e4ac1e // indirect + github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.2.0 // indirect diff --git a/go.sum b/go.sum index e635b2400..41c7a00d0 100644 --- a/go.sum +++ b/go.sum @@ -1,13 +1,15 @@ beryju.io/ldap v0.1.0 h1:rPjGE3qR1Klbvn9N+iECWdzt/tK87XHgz8W5wZJg9B8= beryju.io/ldap v0.1.0/go.mod h1:sOrYV+ZlDTDu/IvIiEiuAaXzjcpMBE+XXr4V+NJ0pWI= cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -github.com/Azure/go-ntlmssp v0.0.0-20220621081337-cb9428e4ac1e h1:NeAW1fUYUEWhft7pkxDf6WoUvEZJ/uOKsvtpjLnn8MU= -github.com/Azure/go-ntlmssp v0.0.0-20220621081337-cb9428e4ac1e/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= +github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8= +github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/Netflix/go-env v0.0.0-20210215222557-e437a7e7f9fb h1:w9IDEB7P1VzNcBpOG7kMpFkZp2DkyJIUt0gDx5MBhRU= github.com/Netflix/go-env v0.0.0-20210215222557-e437a7e7f9fb/go.mod h1:9XMFaCeRyW7fC9XJOWQ+NdAv8VLG7ys7l3x4ozEGLUQ= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74 h1:Kk6a4nehpJ3UuJRqlA3JxYxBZEqCeOmATOvrbT4p9RA= +github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4= github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= @@ -37,8 +39,8 @@ github.com/go-http-utils/fresh v0.0.0-20161124030543-7231e26a4b27 h1:O6yi4xa9b2D github.com/go-http-utils/fresh v0.0.0-20161124030543-7231e26a4b27/go.mod h1:AYvN8omj7nKLmbcXS2dyABYU6JB1Lz1bHmkkq1kf4I4= github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a h1:v6zMvHuY9yue4+QkG/HQ/W67wvtQmWJ4SDo9aK/GIno= github.com/go-http-utils/headers v0.0.0-20181008091004-fed159eddc2a/go.mod h1:I79BieaU4fxrw4LMXby6q5OS9XnoR9UIKLOzDFjUmuw= -github.com/go-ldap/ldap/v3 v3.4.4 h1:qPjipEpt+qDa6SI/h1fzuGWoRUY+qqQ9sOZq67/PYUs= -github.com/go-ldap/ldap/v3 v3.4.4/go.mod h1:fe1MsuN5eJJ1FeLT/LEBVdWfNWKh459R7aXgXtJC+aI= +github.com/go-ldap/ldap/v3 v3.4.5 h1:ekEKmaDrpvR2yf5Nc/DClsGG9lAmdDixe44mLzlW5r8= +github.com/go-ldap/ldap/v3 v3.4.5/go.mod h1:bMGIq3AGbytbaMwf8wdv5Phdxz0FWHTIYMSzyrYgnQs= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -216,7 +218,6 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -265,6 +266,7 @@ golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1 golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= @@ -294,11 +296,13 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= @@ -307,6 +311,7 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 7499d20f4..a8e43fce6 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-05-21 21:59+0000\n" +"POT-Creation-Date: 2023-06-12 12:11+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -31,16 +31,16 @@ msgstr "" msgid "Validation Error" msgstr "" -#: authentik/blueprints/api.py:43 +#: authentik/blueprints/api.py:44 msgid "Blueprint file does not exist" msgstr "" -#: authentik/blueprints/api.py:54 +#: authentik/blueprints/api.py:55 #, python-format msgid "Failed to validate blueprint: %(logs)s" msgstr "" -#: authentik/blueprints/api.py:59 +#: authentik/blueprints/api.py:60 msgid "Either path or content must be set." msgstr "" @@ -69,24 +69,24 @@ msgstr "" msgid "authentik Export - %(date)s" msgstr "" -#: authentik/blueprints/v1/tasks.py:149 authentik/crypto/tasks.py:93 +#: authentik/blueprints/v1/tasks.py:150 authentik/crypto/tasks.py:93 #, python-format msgid "Successfully imported %(count)d files." msgstr "" -#: authentik/core/api/providers.py:113 +#: authentik/core/api/providers.py:120 msgid "SAML Provider from Metadata" msgstr "" -#: authentik/core/api/providers.py:114 +#: authentik/core/api/providers.py:121 msgid "Create a SAML Provider by importing its Metadata." msgstr "" -#: authentik/core/api/users.py:118 +#: authentik/core/api/users.py:143 msgid "No leading or trailing slashes allowed." msgstr "" -#: authentik/core/api/users.py:121 +#: authentik/core/api/users.py:146 msgid "No empty segments in user path allowed." msgstr "" @@ -1365,7 +1365,7 @@ msgstr "" msgid "Authentication token" msgstr "" -#: authentik/providers/scim/models.py:33 authentik/sources/ldap/models.py:82 +#: authentik/providers/scim/models.py:33 authentik/sources/ldap/models.py:94 msgid "Property mappings used for group creation/updating." msgstr "" @@ -1426,79 +1426,88 @@ msgstr "" msgid "Used recovery-link to authenticate." msgstr "" -#: authentik/sources/ldap/models.py:35 +#: authentik/sources/ldap/models.py:37 msgid "Server URI" msgstr "" -#: authentik/sources/ldap/models.py:43 +#: authentik/sources/ldap/models.py:46 msgid "" "Optionally verify the LDAP Server's Certificate against the CA Chain in this " "keypair." msgstr "" -#: authentik/sources/ldap/models.py:47 -msgid "Bind CN" -msgstr "" - -#: authentik/sources/ldap/models.py:49 -msgid "Enable Start TLS" -msgstr "" - -#: authentik/sources/ldap/models.py:51 -msgid "Base DN" -msgstr "" - -#: authentik/sources/ldap/models.py:53 -msgid "Prepended to Base DN for User-queries." -msgstr "" - -#: authentik/sources/ldap/models.py:54 -msgid "Addition User DN" +#: authentik/sources/ldap/models.py:55 +msgid "" +"Client certificate to authenticate against the LDAP Server's Certificate." msgstr "" #: authentik/sources/ldap/models.py:58 -msgid "Prepended to Base DN for Group-queries." +msgid "Bind CN" msgstr "" -#: authentik/sources/ldap/models.py:59 -msgid "Addition Group DN" +#: authentik/sources/ldap/models.py:60 +msgid "Enable Start TLS" +msgstr "" + +#: authentik/sources/ldap/models.py:61 +msgid "Use Server URI for SNI verification" +msgstr "" + +#: authentik/sources/ldap/models.py:63 +msgid "Base DN" msgstr "" #: authentik/sources/ldap/models.py:65 +msgid "Prepended to Base DN for User-queries." +msgstr "" + +#: authentik/sources/ldap/models.py:66 +msgid "Addition User DN" +msgstr "" + +#: authentik/sources/ldap/models.py:70 +msgid "Prepended to Base DN for Group-queries." +msgstr "" + +#: authentik/sources/ldap/models.py:71 +msgid "Addition Group DN" +msgstr "" + +#: authentik/sources/ldap/models.py:77 msgid "Consider Objects matching this filter to be Users." msgstr "" -#: authentik/sources/ldap/models.py:68 +#: authentik/sources/ldap/models.py:80 msgid "Field which contains members of a group." msgstr "" -#: authentik/sources/ldap/models.py:72 +#: authentik/sources/ldap/models.py:84 msgid "Consider Objects matching this filter to be Groups." msgstr "" -#: authentik/sources/ldap/models.py:75 +#: authentik/sources/ldap/models.py:87 msgid "Field which contains a unique Identifier." msgstr "" -#: authentik/sources/ldap/models.py:89 +#: authentik/sources/ldap/models.py:101 msgid "" "When a user changes their password, sync it back to LDAP. This can only be " "enabled on a single LDAP source." msgstr "" -#: authentik/sources/ldap/models.py:159 +#: authentik/sources/ldap/models.py:188 msgid "LDAP Source" msgstr "" -#: authentik/sources/ldap/models.py:160 +#: authentik/sources/ldap/models.py:189 msgid "LDAP Sources" msgstr "" -#: authentik/sources/ldap/models.py:182 +#: authentik/sources/ldap/models.py:211 msgid "LDAP Property Mapping" msgstr "" -#: authentik/sources/ldap/models.py:183 +#: authentik/sources/ldap/models.py:212 msgid "LDAP Property Mappings" msgstr "" diff --git a/poetry.lock b/poetry.lock index 7bce24f5d..7fe769d9f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,10 +1,9 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand. [[package]] name = "aiohttp" version = "3.8.4" description = "Async http client/server framework (asyncio)" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -113,7 +112,6 @@ speedups = ["Brotli", "aiodns", "cchardet"] name = "aiohttp-retry" version = "2.8.3" description = "Simple retry client for aiohttp" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -128,7 +126,6 @@ aiohttp = "*" name = "aiosignal" version = "1.3.1" description = "aiosignal: a list of registered asynchronous callbacks" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -143,7 +140,6 @@ frozenlist = ">=1.1.0" name = "amqp" version = "5.1.1" description = "Low-level AMQP client for Python (fork of amqplib)." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -158,7 +154,6 @@ vine = ">=5.0.0" name = "anyio" version = "3.6.2" description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "main" optional = false python-versions = ">=3.6.2" files = [ @@ -179,7 +174,6 @@ trio = ["trio (>=0.16,<0.22)"] name = "argon2-cffi" version = "21.3.0" description = "The secure Argon2 password hashing algorithm." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -199,7 +193,6 @@ tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"] name = "argon2-cffi-bindings" version = "21.2.0" description = "Low-level CFFI bindings for Argon2" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -237,7 +230,6 @@ tests = ["pytest"] name = "asgiref" version = "3.5.2" description = "ASGI specs, helper code, and adapters" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -252,7 +244,6 @@ tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] name = "asn1crypto" version = "1.5.1" description = "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP" -category = "main" optional = false python-versions = "*" files = [ @@ -264,7 +255,6 @@ files = [ name = "astroid" version = "2.15.4" description = "An abstract syntax tree for Python with inference support." -category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -280,7 +270,6 @@ wrapt = {version = ">=1.14,<2", markers = "python_version >= \"3.11\""} name = "async-generator" version = "1.10" description = "Async generators and context managers for Python 3.5+" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -292,7 +281,6 @@ files = [ name = "async-timeout" version = "4.0.2" description = "Timeout context manager for asyncio programs" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -304,7 +292,6 @@ files = [ name = "attrs" version = "22.1.0" description = "Classes Without Boilerplate" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -322,7 +309,6 @@ tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy name = "autobahn" version = "22.7.1" description = "WebSocket client & server library, WAMP real-time framework" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -351,7 +337,6 @@ xbr = ["base58 (>=2.1.0)", "cbor2 (>=5.2.0)", "click (>=8.1.2)", "ecdsa (>=0.16. name = "automat" version = "22.10.0" description = "Self-service finite-state machines for the programmer on the go." -category = "main" optional = false python-versions = "*" files = [ @@ -370,7 +355,6 @@ visualize = ["Twisted (>=16.1.1)", "graphviz (>0.5.1)"] name = "autopep8" version = "2.0.0" description = "A tool that automatically formats Python code to conform to the PEP 8 style guide" -category = "dev" optional = false python-versions = "*" files = [ @@ -386,7 +370,6 @@ tomli = "*" name = "bandit" version = "1.7.5" description = "Security oriented static analyser for python code." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -410,7 +393,6 @@ yaml = ["PyYAML"] name = "bcrypt" version = "4.0.1" description = "Modern password hashing for your software and your servers" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -445,7 +427,6 @@ typecheck = ["mypy"] name = "billiard" version = "4.1.0" description = "Python multiprocessing fork with improvements and bugfixes" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -457,7 +438,6 @@ files = [ name = "black" version = "23.3.0" description = "The uncompromising code formatter." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -505,7 +485,6 @@ uvloop = ["uvloop (>=0.15.2)"] name = "bump2version" version = "1.0.1" description = "Version-bump your software with a single command!" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -517,7 +496,6 @@ files = [ name = "cachetools" version = "5.2.0" description = "Extensible memoizing collections and decorators" -category = "main" optional = false python-versions = "~=3.7" files = [ @@ -529,7 +507,6 @@ files = [ name = "cbor2" version = "5.4.3" description = "CBOR (de)serializer with extensive tag support" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -571,7 +548,6 @@ test = ["pytest", "pytest-cov"] name = "celery" version = "5.3.0" description = "Distributed Task Queue." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -627,7 +603,6 @@ zstd = ["zstandard (==0.21.0)"] name = "certifi" version = "2022.12.7" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -639,7 +614,6 @@ files = [ name = "cffi" version = "1.15.1" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = false python-versions = "*" files = [ @@ -716,7 +690,6 @@ pycparser = "*" name = "channels" version = "4.0.0" description = "Brings async, event-driven capabilities to Django 3.2 and up." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -737,7 +710,6 @@ tests = ["async-timeout", "coverage (>=4.5,<5.0)", "pytest", "pytest-asyncio", " name = "channels-redis" version = "4.1.0" description = "Redis-backed ASGI channel layer implementation" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -759,7 +731,6 @@ tests = ["async-timeout", "cryptography (>=1.3.0)", "pytest", "pytest-asyncio", name = "charset-normalizer" version = "2.1.1" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.6.0" files = [ @@ -774,7 +745,6 @@ unicode-backport = ["unicodedata2"] name = "click" version = "8.1.3" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -789,7 +759,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "click-didyoumean" version = "0.3.0" description = "Enables git-like *did-you-mean* feature in click" -category = "main" optional = false python-versions = ">=3.6.2,<4.0.0" files = [ @@ -804,7 +773,6 @@ click = ">=7" name = "click-plugins" version = "1.1.1" description = "An extension module for click to enable registering CLI commands via setuptools entry-points." -category = "main" optional = false python-versions = "*" files = [ @@ -822,7 +790,6 @@ dev = ["coveralls", "pytest (>=3.6)", "pytest-cov", "wheel"] name = "click-repl" version = "0.2.0" description = "REPL plugin for Click" -category = "main" optional = false python-versions = "*" files = [ @@ -839,7 +806,6 @@ six = "*" name = "codespell" version = "2.2.4" description = "Codespell" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -857,7 +823,6 @@ types = ["chardet (>=5.1.0)", "mypy", "pytest", "pytest-cov", "pytest-dependency name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -869,7 +834,6 @@ files = [ name = "constantly" version = "15.1.0" description = "Symbolic constants in Python" -category = "main" optional = false python-versions = "*" files = [ @@ -881,7 +845,6 @@ files = [ name = "coverage" version = "7.2.7" description = "Code coverage measurement for Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -954,7 +917,6 @@ toml = ["tomli"] name = "cryptography" version = "41.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -996,7 +958,6 @@ test-randomorder = ["pytest-randomly"] name = "dacite" version = "1.8.1" description = "Simple creation of data classes from dictionaries." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1010,7 +971,6 @@ dev = ["black", "coveralls", "mypy", "pre-commit", "pylint", "pytest (>=5)", "py name = "daphne" version = "4.0.0" description = "Django ASGI (HTTP/WebSocket) server" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1030,7 +990,6 @@ tests = ["django", "hypothesis", "pytest", "pytest-asyncio"] name = "deepmerge" version = "1.1.0" description = "a toolset to deeply merge python dictionaries." -category = "main" optional = false python-versions = "*" files = [ @@ -1042,7 +1001,6 @@ files = [ name = "defusedxml" version = "0.7.1" description = "XML bomb protection for Python stdlib modules" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -1054,7 +1012,6 @@ files = [ name = "dill" version = "0.3.6" description = "serialize all of python" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1069,7 +1026,6 @@ graph = ["objgraph (>=1.7.2)"] name = "django" version = "4.1.7" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1090,7 +1046,6 @@ bcrypt = ["bcrypt"] name = "django-filter" version = "23.2" description = "Django-filter is a reusable Django application for allowing users to filter querysets dynamically." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1105,7 +1060,6 @@ Django = ">=3.2" name = "django-guardian" version = "2.4.0" description = "Implementation of per object permissions for Django." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1120,7 +1074,6 @@ Django = ">=2.2" name = "django-model-utils" version = "4.3.1" description = "Django model mixins and utilities" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1135,7 +1088,6 @@ Django = ">=3.2" name = "django-otp" version = "1.2.1" description = "A pluggable framework for adding two-factor authentication to Django using one-time passwords." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1153,7 +1105,6 @@ qrcode = ["qrcode"] name = "django-prometheus" version = "2.3.1" description = "Django middlewares to monitor your application with Prometheus.io." -category = "main" optional = false python-versions = "*" files = [ @@ -1168,7 +1119,6 @@ prometheus-client = ">=0.7" name = "django-redis" version = "5.2.0" description = "Full featured redis cache backend for Django." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1187,7 +1137,6 @@ hiredis = ["redis[hiredis] (>=3,!=4.0.0,!=4.0.1)"] name = "django-silk" version = "5.0.3" description = "Silky smooth profiling for the Django Framework" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1205,7 +1154,6 @@ sqlparse = "*" name = "djangorestframework" version = "3.14.0" description = "Web APIs for Django, made easy." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1221,7 +1169,6 @@ pytz = "*" name = "djangorestframework-guardian" version = "0.3.0" description = "django-guardian support for Django REST Framework" -category = "main" optional = false python-versions = "*" files = [ @@ -1238,7 +1185,6 @@ djangorestframework = "*" name = "dnspython" version = "2.3.0" description = "DNS toolkit" -category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -1259,7 +1205,6 @@ wmi = ["wmi (>=1.5.1,<2.0.0)"] name = "docker" version = "6.1.3" description = "A Python library for the Docker Engine API." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1281,7 +1226,6 @@ ssh = ["paramiko (>=2.4.3)"] name = "drf-jsonschema-serializer" version = "1.0.0" description = "JSON Schema support for Django REST Framework" -category = "dev" optional = false python-versions = "*" files = [ @@ -1305,7 +1249,6 @@ tests = ["black", "django-stubs[compatible-mypy]", "djangorestframework-stubs[co name = "drf-spectacular" version = "0.26.2" description = "Sane and flexible OpenAPI 3 schema generation for Django REST framework" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1329,7 +1272,6 @@ sidecar = ["drf-spectacular-sidecar"] name = "dumb-init" version = "1.2.5.post1" description = "Simple wrapper script which proxies signals to a child" -category = "main" optional = false python-versions = "*" files = [ @@ -1344,7 +1286,6 @@ files = [ name = "duo-client" version = "5.0.1" description = "Reference client for Duo Security APIs" -category = "main" optional = false python-versions = "*" files = [ @@ -1360,7 +1301,6 @@ six = "*" name = "email-validator" version = "1.3.1" description = "A robust email address syntax and deliverability validation library." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1376,7 +1316,6 @@ idna = ">=2.0.0" name = "facebook-sdk" version = "3.1.0" description = "This client library is designed to support the Facebook Graph API and the official Facebook JavaScript SDK, which is the canonical way to implement Facebook authentication." -category = "main" optional = false python-versions = "*" files = [ @@ -1391,7 +1330,6 @@ requests = "*" name = "flower" version = "1.2.0" description = "Celery Flower" -category = "main" optional = false python-versions = "*" files = [ @@ -1410,7 +1348,6 @@ tornado = ">=5.0.0,<7.0.0" name = "frozenlist" version = "1.3.3" description = "A list-like structure which implements collections.abc.MutableSequence" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1494,7 +1431,6 @@ files = [ name = "geoip2" version = "4.7.0" description = "MaxMind GeoIP2 API" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1511,7 +1447,6 @@ requests = ">=2.24.0,<3.0.0" name = "gitdb" version = "4.0.9" description = "Git Object Database" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -1526,7 +1461,6 @@ smmap = ">=3.0.1,<6" name = "gitpython" version = "3.1.30" description = "GitPython is a python library used to interact with Git repositories" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1541,7 +1475,6 @@ gitdb = ">=4.0.1,<5" name = "google-auth" version = "2.14.1" description = "Google Authentication Library" -category = "main" optional = false python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*" files = [ @@ -1565,7 +1498,6 @@ reauth = ["pyu2f (>=0.1.5)"] name = "gprof2dot" version = "2022.7.29" description = "Generate a dot graph from the output of several profilers." -category = "dev" optional = false python-versions = ">=2.7" files = [ @@ -1577,7 +1509,6 @@ files = [ name = "gunicorn" version = "20.1.0" description = "WSGI HTTP Server for UNIX" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1598,7 +1529,6 @@ tornado = ["tornado (>=0.2)"] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1610,7 +1540,6 @@ files = [ name = "httptools" version = "0.5.0" description = "A collection of framework independent HTTP protocol utils." -category = "main" optional = false python-versions = ">=3.5.0" files = [ @@ -1664,7 +1593,6 @@ test = ["Cython (>=0.29.24,<0.30.0)"] name = "humanize" version = "4.4.0" description = "Python humanize utilities" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1679,7 +1607,6 @@ tests = ["freezegun", "pytest", "pytest-cov"] name = "hyperlink" version = "21.0.0" description = "A featureful, immutable, and correct URL for Python." -category = "main" optional = false python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -1694,7 +1621,6 @@ idna = ">=2.5" name = "idna" version = "3.4" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1706,7 +1632,6 @@ files = [ name = "importlib-metadata" version = "6.6.0" description = "Read metadata from Python packages" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1726,7 +1651,6 @@ testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packag name = "incremental" version = "22.10.0" description = "\"A small library that versions your Python projects.\"" -category = "main" optional = false python-versions = "*" files = [ @@ -1742,7 +1666,6 @@ scripts = ["click (>=6.0)", "twisted (>=16.4.0)"] name = "inflection" version = "0.5.1" description = "A port of Ruby on Rails inflector to Python" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -1754,7 +1677,6 @@ files = [ name = "iniconfig" version = "1.1.1" description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" optional = false python-versions = "*" files = [ @@ -1766,7 +1688,6 @@ files = [ name = "isort" version = "5.10.1" description = "A Python utility / library to sort Python imports." -category = "dev" optional = false python-versions = ">=3.6.1,<4.0" files = [ @@ -1784,7 +1705,6 @@ requirements-deprecated-finder = ["pip-api", "pipreqs"] name = "jsonschema" version = "4.17.0" description = "An implementation of JSON Schema validation for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1804,7 +1724,6 @@ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339- name = "kombu" version = "5.3.0" description = "Messaging library for Python." -category = "main" optional = false python-versions = ">=3.8" files = [ @@ -1837,7 +1756,6 @@ zookeeper = ["kazoo (>=2.8.0)"] name = "kubernetes" version = "26.1.0" description = "Kubernetes python client" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -1855,7 +1773,7 @@ requests-oauthlib = "*" setuptools = ">=21.0.0" six = ">=1.9.0" urllib3 = ">=1.24.2" -websocket-client = ">=0.32.0,<0.40.0 || >0.40.0,<0.41.0 || >=0.43.0" +websocket-client = ">=0.32.0,<0.40.0 || >0.40.0,<0.41.dev0 || >=0.43.dev0" [package.extras] adal = ["adal (>=1.0.2)"] @@ -1864,7 +1782,6 @@ adal = ["adal (>=1.0.2)"] name = "lazy-object-proxy" version = "1.8.0" description = "A fast and thorough lazy object proxy." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -1893,7 +1810,6 @@ files = [ name = "ldap3" version = "2.9.1" description = "A strictly RFC 4510 conforming LDAP V3 pure Python client library" -category = "main" optional = false python-versions = "*" files = [ @@ -1908,7 +1824,6 @@ pyasn1 = ">=0.4.6" name = "lxml" version = "4.9.2" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" files = [ @@ -2001,7 +1916,6 @@ source = ["Cython (>=0.29.7)"] name = "markdown-it-py" version = "2.2.0" description = "Python port of markdown-it. Markdown parsing, done right!" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2026,7 +1940,6 @@ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] name = "maxminddb" version = "2.3.0" description = "Reader for the MaxMind DB format" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2037,7 +1950,6 @@ files = [ name = "mccabe" version = "0.7.0" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2049,7 +1961,6 @@ files = [ name = "mdurl" version = "0.1.2" description = "Markdown URL utilities" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2061,7 +1972,6 @@ files = [ name = "msgpack" version = "1.0.4" description = "MessagePack serializer" -category = "main" optional = false python-versions = "*" files = [ @@ -2123,7 +2033,6 @@ files = [ name = "multidict" version = "6.0.2" description = "multidict implementation" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2192,7 +2101,6 @@ files = [ name = "mypy-extensions" version = "0.4.3" description = "Experimental type system extensions for programs checked with the mypy typechecker." -category = "dev" optional = false python-versions = "*" files = [ @@ -2204,7 +2112,6 @@ files = [ name = "netaddr" version = "0.8.0" description = "A network address manipulation library for Python" -category = "dev" optional = false python-versions = "*" files = [ @@ -2216,7 +2123,6 @@ files = [ name = "oauthlib" version = "3.2.2" description = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2233,7 +2139,6 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] name = "opencontainers" version = "0.0.14" description = "Python module for oci specifications" -category = "main" optional = false python-versions = "*" files = [ @@ -2244,7 +2149,6 @@ files = [ name = "outcome" version = "1.2.0" description = "Capture the outcome of Python function calls." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2259,7 +2163,6 @@ attrs = ">=19.2.0" name = "packaging" version = "23.1" description = "Core utilities for Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2271,7 +2174,6 @@ files = [ name = "paramiko" version = "3.2.0" description = "SSH2 protocol library" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2293,7 +2195,6 @@ invoke = ["invoke (>=2.0)"] name = "pathspec" version = "0.10.2" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2305,7 +2206,6 @@ files = [ name = "pbr" version = "5.11.0" description = "Python Build Reasonableness" -category = "dev" optional = false python-versions = ">=2.6" files = [ @@ -2317,7 +2217,6 @@ files = [ name = "platformdirs" version = "2.5.4" description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2333,7 +2232,6 @@ test = ["appdirs (==1.4.4)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock name = "pluggy" version = "1.0.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2349,7 +2247,6 @@ testing = ["pytest", "pytest-benchmark"] name = "prometheus-client" version = "0.15.0" description = "Python client for the Prometheus monitoring system." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2364,7 +2261,6 @@ twisted = ["twisted"] name = "prompt-toolkit" version = "3.0.32" description = "Library for building powerful interactive command lines in Python" -category = "main" optional = false python-versions = ">=3.6.2" files = [ @@ -2379,7 +2275,6 @@ wcwidth = "*" name = "psycopg2-binary" version = "2.9.6" description = "psycopg2 - Python-PostgreSQL Database Adapter" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2451,7 +2346,6 @@ files = [ name = "pyasn1" version = "0.4.8" description = "ASN.1 types and codecs" -category = "main" optional = false python-versions = "*" files = [ @@ -2463,7 +2357,6 @@ files = [ name = "pyasn1-modules" version = "0.2.8" description = "A collection of ASN.1-based protocols modules." -category = "main" optional = false python-versions = "*" files = [ @@ -2478,7 +2371,6 @@ pyasn1 = ">=0.4.6,<0.5.0" name = "pycodestyle" version = "2.9.1" description = "Python style guide checker" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2490,7 +2382,6 @@ files = [ name = "pycparser" version = "2.21" description = "C parser in Python" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2502,7 +2393,6 @@ files = [ name = "pycryptodome" version = "3.18.0" description = "Cryptographic library for Python" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -2544,7 +2434,6 @@ files = [ name = "pydantic" version = "1.10.2" description = "Data validation and settings management using python type hints" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2598,7 +2487,6 @@ email = ["email-validator (>=1.0.3)"] name = "pydantic-scim" version = "0.0.7" description = "Pydantic types for SCIM" -category = "main" optional = false python-versions = ">=3.8.0" files = [ @@ -2616,7 +2504,6 @@ pydantic = [ name = "pygments" version = "2.14.0" description = "Pygments is a syntax highlighting package written in Python." -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -2631,7 +2518,6 @@ plugins = ["importlib-metadata"] name = "pyjwt" version = "2.7.0" description = "JSON Web Token implementation in Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2649,7 +2535,6 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] name = "pylint" version = "2.17.4" description = "python code static checker" -category = "dev" optional = false python-versions = ">=3.7.2" files = [ @@ -2674,7 +2559,6 @@ testutils = ["gitpython (>3)"] name = "pylint-django" version = "2.5.3" description = "A Pylint plugin to help Pylint understand the Django web framework" -category = "dev" optional = false python-versions = "*" files = [ @@ -2694,7 +2578,6 @@ with-django = ["Django"] name = "pylint-plugin-utils" version = "0.7" description = "Utilities and helpers for writing Pylint plugins" -category = "dev" optional = false python-versions = ">=3.6.2" files = [ @@ -2709,7 +2592,6 @@ pylint = ">=1.7" name = "pynacl" version = "1.5.0" description = "Python binding to the Networking and Cryptography (NaCl) library" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2736,7 +2618,6 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"] name = "pyopenssl" version = "23.2.0" description = "Python wrapper module around the OpenSSL library" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -2755,7 +2636,6 @@ test = ["flaky", "pretend", "pytest (>=3.0.1)"] name = "pyrad" version = "2.4" description = "RADIUS tools" -category = "dev" optional = false python-versions = "*" files = [ @@ -2771,7 +2651,6 @@ six = "*" name = "pyrsistent" version = "0.19.2" description = "Persistent/Functional/Immutable data structures" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2803,7 +2682,6 @@ files = [ name = "pysocks" version = "1.7.1" description = "A Python SOCKS client module. See https://github.com/Anorov/PySocks for more information." -category = "dev" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -2814,14 +2692,13 @@ files = [ [[package]] name = "pytest" -version = "7.3.1" +version = "7.3.2" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "pytest-7.3.1-py3-none-any.whl", hash = "sha256:3799fa815351fea3a5e96ac7e503a96fa51cc9942c3753cda7651b93c1cfa362"}, - {file = "pytest-7.3.1.tar.gz", hash = "sha256:434afafd78b1d78ed0addf160ad2b77a30d35d4bdf8af234fe621919d9ed15e3"}, + {file = "pytest-7.3.2-py3-none-any.whl", hash = "sha256:cdcbd012c9312258922f8cd3f1b62a6580fdced17db6014896053d47cddf9295"}, + {file = "pytest-7.3.2.tar.gz", hash = "sha256:ee990a3cc55ba808b80795a79944756f315c67c12b56abd3ac993a7b8c17030b"}, ] [package.dependencies] @@ -2831,13 +2708,12 @@ packaging = "*" pluggy = ">=0.12,<2.0" [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-django" version = "4.5.2" description = "A Django plugin for pytest." -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -2856,7 +2732,6 @@ testing = ["Django", "django-configurations (>=2.0)"] name = "pytest-github-actions-annotate-failures" version = "0.2.0" description = "pytest plugin to annotate failed tests with a workflow command for GitHub Actions" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2871,7 +2746,6 @@ pytest = ">=4.0.0" name = "pytest-randomly" version = "3.12.0" description = "Pytest plugin to randomly order tests and control random.seed." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -2886,7 +2760,6 @@ pytest = "*" name = "python-dateutil" version = "2.8.2" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ @@ -2901,7 +2774,6 @@ six = ">=1.5" name = "python-dotenv" version = "0.21.0" description = "Read key-value pairs from a .env file and set them as environment variables" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2916,7 +2788,6 @@ cli = ["click (>=5.0)"] name = "pytz" version = "2022.6" description = "World timezone definitions, modern and historical" -category = "main" optional = false python-versions = "*" files = [ @@ -2928,7 +2799,6 @@ files = [ name = "pywin32" version = "305" description = "Python for Window Extensions" -category = "main" optional = false python-versions = "*" files = [ @@ -2952,7 +2822,6 @@ files = [ name = "pyyaml" version = "6.0" description = "YAML parser and emitter for Python" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3002,7 +2871,6 @@ files = [ name = "redis" version = "4.5.4" description = "Python client for Redis database and key-value store" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3021,7 +2889,6 @@ ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)" name = "requests" version = "2.31.0" description = "Python HTTP for Humans." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3041,14 +2908,13 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] [[package]] name = "requests-mock" -version = "1.10.0" +version = "1.11.0" description = "Mock out responses from the requests package" -category = "dev" optional = false python-versions = "*" files = [ - {file = "requests-mock-1.10.0.tar.gz", hash = "sha256:59c9c32419a9fb1ae83ec242d98e889c45bd7d7a65d48375cc243ec08441658b"}, - {file = "requests_mock-1.10.0-py2.py3-none-any.whl", hash = "sha256:2fdbb637ad17ee15c06f33d31169e71bf9fe2bdb7bc9da26185be0dd8d842699"}, + {file = "requests-mock-1.11.0.tar.gz", hash = "sha256:ef10b572b489a5f28e09b708697208c4a3b2b89ef80a9f01584340ea357ec3c4"}, + {file = "requests_mock-1.11.0-py2.py3-none-any.whl", hash = "sha256:f7fae383f228633f6bececebdab236c478ace2284d6292c6e7e2867b9ab74d15"}, ] [package.dependencies] @@ -3057,13 +2923,12 @@ six = "*" [package.extras] fixture = ["fixtures"] -test = ["fixtures", "mock", "purl", "pytest", "requests-futures", "sphinx", "testrepository (>=0.0.18)", "testtools"] +test = ["fixtures", "mock", "purl", "pytest", "requests-futures", "sphinx", "testtools"] [[package]] name = "requests-oauthlib" version = "1.3.1" description = "OAuthlib authentication support for Requests." -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" files = [ @@ -3082,7 +2947,6 @@ rsa = ["oauthlib[signedtoken] (>=3.0.0)"] name = "rich" version = "13.3.2" description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -category = "dev" optional = false python-versions = ">=3.7.0" files = [ @@ -3101,7 +2965,6 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" -category = "main" optional = false python-versions = ">=3.6,<4" files = [ @@ -3116,7 +2979,6 @@ pyasn1 = ">=0.1.3" name = "ruff" version = "0.0.272" description = "An extremely fast Python linter, written in Rust." -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3143,7 +3005,6 @@ files = [ name = "selenium" version = "4.10.0" description = "" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3161,7 +3022,6 @@ urllib3 = {version = ">=1.26,<3", extras = ["socks"]} name = "sentry-sdk" version = "1.25.1" description = "Python client for Sentry (https://sentry.io)" -category = "main" optional = false python-versions = "*" files = [ @@ -3204,7 +3064,6 @@ tornado = ["tornado (>=5)"] name = "service-identity" version = "21.1.0" description = "Service identity verification for pyOpenSSL & cryptography." -category = "main" optional = false python-versions = "*" files = [ @@ -3229,7 +3088,6 @@ tests = ["coverage[toml] (>=5.0.2)", "pytest"] name = "setuptools" version = "65.5.1" description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3246,7 +3104,6 @@ testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs ( name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -3258,7 +3115,6 @@ files = [ name = "smmap" version = "5.0.0" description = "A pure Python implementation of a sliding window memory map manager" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3270,7 +3126,6 @@ files = [ name = "sniffio" version = "1.3.0" description = "Sniff out which async library your code is running under" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3282,7 +3137,6 @@ files = [ name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" -category = "dev" optional = false python-versions = "*" files = [ @@ -3294,7 +3148,6 @@ files = [ name = "sqlparse" version = "0.4.4" description = "A non-validating SQL parser." -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -3311,7 +3164,6 @@ test = ["pytest", "pytest-cov"] name = "stevedore" version = "4.1.1" description = "Manage dynamic plugins for Python applications" -category = "dev" optional = false python-versions = ">=3.8" files = [ @@ -3326,7 +3178,6 @@ pbr = ">=2.0.0,<2.1.0 || >2.1.0" name = "structlog" version = "23.1.0" description = "Structured Logging for Python" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3344,7 +3195,6 @@ typing = ["mypy", "rich", "twisted"] name = "swagger-spec-validator" version = "3.0.3" description = "Validation of Swagger specifications" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3361,7 +3211,6 @@ typing-extensions = "*" name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3373,7 +3222,6 @@ files = [ name = "tomlkit" version = "0.11.6" description = "Style preserving TOML library" -category = "dev" optional = false python-versions = ">=3.6" files = [ @@ -3385,7 +3233,6 @@ files = [ name = "tornado" version = "6.3.2" description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." -category = "main" optional = false python-versions = ">= 3.8" files = [ @@ -3406,7 +3253,6 @@ files = [ name = "trio" version = "0.22.0" description = "A friendly Python library for async concurrency and I/O" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -3427,7 +3273,6 @@ sortedcontainers = "*" name = "trio-websocket" version = "0.9.2" description = "WebSocket library for Trio" -category = "dev" optional = false python-versions = ">=3.5" files = [ @@ -3444,7 +3289,6 @@ wsproto = ">=0.14" name = "twilio" version = "8.2.2" description = "Twilio API client and TwiML generator" -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -3463,7 +3307,6 @@ requests = ">=2.0.0" name = "twisted" version = "22.10.0" description = "An asynchronous networking framework written in Python" -category = "main" optional = false python-versions = ">=3.7.1" files = [ @@ -3505,7 +3348,6 @@ windows-platform = ["PyHamcrest (>=1.9.0)", "appdirs (>=1.4.0)", "bcrypt (>=3.0. name = "twisted-iocpsupport" version = "1.0.2" description = "An extension for use in the twisted I/O Completion Ports reactor." -category = "main" optional = false python-versions = "*" files = [ @@ -3527,7 +3369,6 @@ files = [ name = "txaio" version = "22.2.1" description = "Compatibility API between asyncio/Twisted/Trollius" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3544,7 +3385,6 @@ twisted = ["twisted (>=20.3.0)", "zope.interface (>=5.2.0)"] name = "typing-extensions" version = "4.4.0" description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3556,7 +3396,6 @@ files = [ name = "tzdata" version = "2023.3" description = "Provider of IANA time zone data" -category = "main" optional = false python-versions = ">=2" files = [ @@ -3568,7 +3407,6 @@ files = [ name = "ua-parser" version = "0.16.1" description = "Python port of Browserscope's user agent parser" -category = "main" optional = false python-versions = "*" files = [ @@ -3580,7 +3418,6 @@ files = [ name = "uritemplate" version = "4.1.1" description = "Implementation of RFC 6570 URI Templates" -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3592,7 +3429,6 @@ files = [ name = "urllib3" version = "2.0.3" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3618,7 +3454,6 @@ zstd = ["zstandard (>=0.18.0)"] name = "urllib3-secure-extra" version = "0.1.0" description = "Marker library to detect whether urllib3 was installed with the deprecated [secure] extra" -category = "main" optional = false python-versions = "*" files = [ @@ -3630,7 +3465,6 @@ files = [ name = "uvicorn" version = "0.22.0" description = "The lightning-fast ASGI server." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3645,7 +3479,7 @@ h11 = ">=0.8" httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} -uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} @@ -3656,7 +3490,6 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", name = "uvloop" version = "0.17.0" description = "Fast implementation of asyncio event loop on top of libuv" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3701,7 +3534,6 @@ test = ["Cython (>=0.29.32,<0.30.0)", "aiohttp", "flake8 (>=3.9.2,<3.10.0)", "my name = "vine" version = "5.0.0" description = "Promises, promises, promises." -category = "main" optional = false python-versions = ">=3.6" files = [ @@ -3713,7 +3545,6 @@ files = [ name = "watchdog" version = "3.0.0" description = "Filesystem events monitoring" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3753,7 +3584,6 @@ watchmedo = ["PyYAML (>=3.10)"] name = "watchfiles" version = "0.18.1" description = "Simple, modern and high performance file watching and code reload in python." -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3784,7 +3614,6 @@ anyio = ">=3.0.0" name = "wcwidth" version = "0.2.5" description = "Measures the displayed width of unicode strings in a terminal" -category = "main" optional = false python-versions = "*" files = [ @@ -3796,7 +3625,6 @@ files = [ name = "webauthn" version = "1.8.1" description = "Pythonic WebAuthn" -category = "main" optional = false python-versions = "*" files = [ @@ -3815,7 +3643,6 @@ pyOpenSSL = ">=23.0.0" name = "websocket-client" version = "1.4.2" description = "WebSocket client for Python with low level API options" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3832,7 +3659,6 @@ test = ["websockets"] name = "websockets" version = "10.4" description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -3911,7 +3737,6 @@ files = [ name = "wrapt" version = "1.14.1" description = "Module for decorators, wrappers and monkey patching." -category = "dev" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" files = [ @@ -3985,7 +3810,6 @@ files = [ name = "wsproto" version = "1.2.0" description = "WebSockets state-machine based protocol implementation" -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -4000,7 +3824,6 @@ h11 = ">=0.9.0,<1" name = "xmlsec" version = "1.3.13" description = "Python bindings for the XML Security Library" -category = "main" optional = false python-versions = ">=3.5" files = [ @@ -4026,7 +3849,6 @@ lxml = ">=3.8" name = "yarl" version = "1.8.1" description = "Yet another URL library" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -4099,7 +3921,6 @@ multidict = ">=4.0" name = "zipp" version = "3.10.0" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "dev" optional = false python-versions = ">=3.7" files = [ @@ -4115,7 +3936,6 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools" name = "zope-interface" version = "5.5.1" description = "Interfaces for Python" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" files = [ @@ -4172,7 +3992,6 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] name = "zxcvbn" version = "4.4.28" description = "" -category = "main" optional = false python-versions = "*" files = [ diff --git a/schema.yml b/schema.yml index 5ac3ccba5..63065ceee 100644 --- a/schema.yml +++ b/schema.yml @@ -17096,6 +17096,11 @@ paths: name: bind_cn schema: type: string + - in: query + name: client_certificate + schema: + type: string + format: uuid - in: query name: enabled schema: @@ -17171,6 +17176,10 @@ paths: name: slug schema: type: string + - in: query + name: sni + schema: + type: boolean - in: query name: start_tls schema: @@ -30950,11 +30959,20 @@ components: nullable: true description: Optionally verify the LDAP Server's Certificate against the CA Chain in this keypair. + client_certificate: + type: string + format: uuid + nullable: true + description: Client certificate to authenticate against the LDAP Server's + Certificate. bind_cn: type: string start_tls: type: boolean title: Enable Start TLS + sni: + type: boolean + title: Use Server URI for SNI verification base_dn: type: string additional_user_dn: @@ -31064,6 +31082,12 @@ components: nullable: true description: Optionally verify the LDAP Server's Certificate against the CA Chain in this keypair. + client_certificate: + type: string + format: uuid + nullable: true + description: Client certificate to authenticate against the LDAP Server's + Certificate. bind_cn: type: string bind_password: @@ -31072,6 +31096,9 @@ components: start_tls: type: boolean title: Enable Start TLS + sni: + type: boolean + title: Use Server URI for SNI verification base_dn: type: string minLength: 1 @@ -36356,6 +36383,12 @@ components: nullable: true description: Optionally verify the LDAP Server's Certificate against the CA Chain in this keypair. + client_certificate: + type: string + format: uuid + nullable: true + description: Client certificate to authenticate against the LDAP Server's + Certificate. bind_cn: type: string bind_password: @@ -36364,6 +36397,9 @@ components: start_tls: type: boolean title: Enable Start TLS + sni: + type: boolean + title: Use Server URI for SNI verification base_dn: type: string minLength: 1 diff --git a/web/package-lock.json b/web/package-lock.json index 10d7ba871..c5a619799 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -15,9 +15,9 @@ "@codemirror/lang-xml": "^6.0.2", "@codemirror/legacy-modes": "^6.3.2", "@codemirror/theme-one-dark": "^6.1.2", - "@formatjs/intl-listformat": "^7.3.0", + "@formatjs/intl-listformat": "^7.4.0", "@fortawesome/fontawesome-free": "^6.4.0", - "@goauthentik/api": "^2023.5.3-1685646044", + "@goauthentik/api": "^2023.5.3-1686577333", "@lit/localize": "^0.11.4", "@patternfly/patternfly": "^4.224.2", "@sentry/browser": "^7.54.0", @@ -28,30 +28,30 @@ "chartjs-adapter-moment": "^1.0.1", "codemirror": "^6.0.1", "construct-style-sheets-polyfill": "^3.1.0", - "core-js": "^3.30.2", + "core-js": "^3.31.0", "country-flag-icons": "^1.5.7", "fuse.js": "^6.6.2", "lit": "^2.7.5", - "mermaid": "^10.2.2", + "mermaid": "^10.2.3", "rapidoc": "^9.3.4", "webcomponent-qr-code": "^1.1.1", "yaml": "^2.3.1", "zxcvbn": "^4.4.2" }, "devDependencies": { - "@babel/core": "^7.22.1", + "@babel/core": "^7.22.5", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-decorators": "^7.22.3", + "@babel/plugin-proposal-decorators": "^7.22.5", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-transform-runtime": "^7.22.4", - "@babel/preset-env": "^7.22.4", - "@babel/preset-typescript": "^7.21.5", + "@babel/plugin-transform-runtime": "^7.22.5", + "@babel/preset-env": "^7.22.5", + "@babel/preset-typescript": "^7.22.5", "@hcaptcha/types": "^1.0.3", "@jackfranklin/rollup-plugin-markdown": "^0.4.0", "@jeysal/storybook-addon-css-user-preferences": "^0.2.0", "@lit/localize-tools": "^0.6.9", "@rollup/plugin-babel": "^6.0.3", - "@rollup/plugin-commonjs": "^25.0.0", + "@rollup/plugin-commonjs": "^25.0.1", "@rollup/plugin-node-resolve": "^15.0.2", "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-typescript": "^11.1.1", @@ -139,39 +139,42 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.21.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.5.tgz", + "integrity": "sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", + "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.22.1", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", + "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", "dev": true, - "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.0", - "@babel/helper-compilation-targets": "^7.22.1", - "@babel/helper-module-transforms": "^7.22.1", - "@babel/helpers": "^7.22.0", - "@babel/parser": "^7.22.0", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helpers": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -187,11 +190,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.5.tgz", + "integrity": "sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.22.3", + "@babel/types": "^7.22.5", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" @@ -201,35 +205,37 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", + "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.1", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", + "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.0", - "@babel/helper-validator-option": "^7.21.0", + "@babel/compat-data": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", "browserslist": "^4.21.3", "lru-cache": "^5.1.1", "semver": "^6.3.0" @@ -255,18 +261,19 @@ "license": "ISC" }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.1", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", + "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.22.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.22.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", "semver": "^6.3.0" }, "engines": { @@ -277,11 +284,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.1", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz", + "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-annotate-as-pure": "^7.22.5", "regexpu-core": "^5.3.1", "semver": "^6.3.0" }, @@ -309,115 +317,113 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.1", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz", + "integrity": "sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.21.0", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", + "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.22.3" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", + "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.21.4" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.22.1", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", + "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.5.tgz", + "integrity": "sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-wrap-function": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -427,111 +433,121 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.1", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", + "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-member-expression-to-functions": "^7.22.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.0" + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-member-expression-to-functions": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.21.5" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.20.0" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.5.tgz", + "integrity": "sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz", + "integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", + "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", "dev": true, - "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.5.tgz", + "integrity": "sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", + "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.21.9", - "@babel/traverse": "^7.22.1", - "@babel/types": "^7.22.3" + "@babel/template": "^7.22.5", + "@babel/traverse": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.5.tgz", + "integrity": "sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.22.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -540,9 +556,10 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.5.tgz", + "integrity": "sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==", "dev": true, - "license": "MIT", "bin": { "parser": "bin/babel-parser.js" }, @@ -551,11 +568,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz", + "integrity": "sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -565,13 +583,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz", + "integrity": "sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-transform-optional-chaining": "^7.22.3" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -631,15 +650,16 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.22.5.tgz", + "integrity": "sha512-h8hlezQ4dl6ixodgXkH8lUfcD7x+WAuIqPUjwGoItynrXOAv4a4Tci1zA/qjzQjjcl0v3QpLdc2LM6ZACQuY7A==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-replace-supers": "^7.22.1", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/plugin-syntax-decorators": "^7.22.3" + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/plugin-syntax-decorators": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -880,11 +900,12 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.5.tgz", + "integrity": "sha512-avpUOBS7IU6al8MmF1XpAyj9QYeLPuSDJI5D4pVMSMdL7xQokKqJPYQC67RCT0aCTashUXPiGwMJ0DEXXCEmMA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -931,11 +952,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", + "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -945,11 +967,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", + "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -981,11 +1004,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", + "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1089,11 +1113,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.21.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", + "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1118,11 +1143,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", + "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1132,13 +1158,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.5.tgz", + "integrity": "sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -1149,13 +1176,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.20.7", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", + "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9" + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1165,11 +1193,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", + "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1179,11 +1208,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.21.0", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz", + "integrity": "sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1193,12 +1223,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", + "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1208,12 +1239,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz", + "integrity": "sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1224,18 +1256,19 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.21.0", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.5.tgz", + "integrity": "sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", "globals": "^11.1.0" }, "engines": { @@ -1246,12 +1279,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", + "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/template": "^7.20.7" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1261,11 +1295,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.21.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz", + "integrity": "sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1275,12 +1310,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", + "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1290,11 +1326,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", + "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1304,11 +1341,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.1", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz", + "integrity": "sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1319,12 +1357,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", + "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1334,11 +1373,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz", + "integrity": "sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1365,11 +1405,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz", + "integrity": "sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1379,13 +1420,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", + "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1395,11 +1437,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz", + "integrity": "sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1410,11 +1453,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", + "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1424,11 +1468,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz", + "integrity": "sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1439,11 +1484,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", + "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1453,12 +1499,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.20.11", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", + "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1468,13 +1515,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", + "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1484,14 +1532,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz", + "integrity": "sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1501,12 +1550,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", + "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1516,12 +1566,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1531,11 +1582,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", + "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1545,11 +1597,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz", + "integrity": "sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1560,11 +1613,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz", + "integrity": "sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1575,15 +1629,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz", + "integrity": "sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.3", - "@babel/helper-compilation-targets": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.3" + "@babel/plugin-transform-parameters": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1593,12 +1648,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", + "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1608,11 +1664,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz", + "integrity": "sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1623,12 +1680,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.5.tgz", + "integrity": "sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1639,11 +1697,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", + "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1653,12 +1712,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", + "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1668,13 +1728,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz", + "integrity": "sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1685,11 +1746,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", + "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1718,11 +1780,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz", + "integrity": "sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-plugin-utils": "^7.22.5", "regenerator-transform": "^0.15.1" }, "engines": { @@ -1733,11 +1796,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", + "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1747,12 +1811,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.5.tgz", + "integrity": "sha512-bg4Wxd1FWeFx3daHFTWk1pkSWK/AyQuiyAoeZAOkAOUBjnZPH6KT7eMxouV47tQ6hl6ax2zyAWBdWZXbrvXlaw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-plugin-utils": "^7.21.5", + "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", "babel-plugin-polyfill-corejs2": "^0.4.3", "babel-plugin-polyfill-corejs3": "^0.8.1", "babel-plugin-polyfill-regenerator": "^0.5.0", @@ -1766,11 +1831,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", + "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1780,12 +1846,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.20.7", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", + "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1795,11 +1862,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", + "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1809,11 +1877,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", + "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1823,11 +1892,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", + "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1837,14 +1907,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.21.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz", + "integrity": "sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1854,11 +1925,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz", + "integrity": "sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1868,12 +1940,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", + "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1883,12 +1956,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", + "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1898,12 +1972,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.3", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", + "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5" + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -1913,24 +1988,25 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.5.tgz", + "integrity": "sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.3", - "@babel/helper-compilation-targets": "^7.22.1", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.3", - "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@babel/compat-data": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.5", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.5", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-import-attributes": "^7.22.3", + "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-syntax-import-attributes": "^7.22.5", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1942,56 +2018,56 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.21.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.3", - "@babel/plugin-transform-async-to-generator": "^7.20.7", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.21.0", - "@babel/plugin-transform-class-properties": "^7.22.3", - "@babel/plugin-transform-class-static-block": "^7.22.3", - "@babel/plugin-transform-classes": "^7.21.0", - "@babel/plugin-transform-computed-properties": "^7.21.5", - "@babel/plugin-transform-destructuring": "^7.21.3", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-dynamic-import": "^7.22.1", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-export-namespace-from": "^7.22.3", - "@babel/plugin-transform-for-of": "^7.21.5", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-json-strings": "^7.22.3", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.3", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.20.11", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-modules-systemjs": "^7.22.3", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.3", - "@babel/plugin-transform-new-target": "^7.22.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.3", - "@babel/plugin-transform-numeric-separator": "^7.22.3", - "@babel/plugin-transform-object-rest-spread": "^7.22.3", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-optional-catch-binding": "^7.22.3", - "@babel/plugin-transform-optional-chaining": "^7.22.3", - "@babel/plugin-transform-parameters": "^7.22.3", - "@babel/plugin-transform-private-methods": "^7.22.3", - "@babel/plugin-transform-private-property-in-object": "^7.22.3", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.21.5", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.20.7", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.21.5", - "@babel/plugin-transform-unicode-property-regex": "^7.22.3", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.3", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "@babel/plugin-transform-async-generator-functions": "^7.22.5", + "@babel/plugin-transform-async-to-generator": "^7.22.5", + "@babel/plugin-transform-block-scoped-functions": "^7.22.5", + "@babel/plugin-transform-block-scoping": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-class-static-block": "^7.22.5", + "@babel/plugin-transform-classes": "^7.22.5", + "@babel/plugin-transform-computed-properties": "^7.22.5", + "@babel/plugin-transform-destructuring": "^7.22.5", + "@babel/plugin-transform-dotall-regex": "^7.22.5", + "@babel/plugin-transform-duplicate-keys": "^7.22.5", + "@babel/plugin-transform-dynamic-import": "^7.22.5", + "@babel/plugin-transform-exponentiation-operator": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.5", + "@babel/plugin-transform-for-of": "^7.22.5", + "@babel/plugin-transform-function-name": "^7.22.5", + "@babel/plugin-transform-json-strings": "^7.22.5", + "@babel/plugin-transform-literals": "^7.22.5", + "@babel/plugin-transform-logical-assignment-operators": "^7.22.5", + "@babel/plugin-transform-member-expression-literals": "^7.22.5", + "@babel/plugin-transform-modules-amd": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-modules-systemjs": "^7.22.5", + "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.22.5", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.5", + "@babel/plugin-transform-numeric-separator": "^7.22.5", + "@babel/plugin-transform-object-rest-spread": "^7.22.5", + "@babel/plugin-transform-object-super": "^7.22.5", + "@babel/plugin-transform-optional-catch-binding": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.22.5", + "@babel/plugin-transform-parameters": "^7.22.5", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/plugin-transform-private-property-in-object": "^7.22.5", + "@babel/plugin-transform-property-literals": "^7.22.5", + "@babel/plugin-transform-regenerator": "^7.22.5", + "@babel/plugin-transform-reserved-words": "^7.22.5", + "@babel/plugin-transform-shorthand-properties": "^7.22.5", + "@babel/plugin-transform-spread": "^7.22.5", + "@babel/plugin-transform-sticky-regex": "^7.22.5", + "@babel/plugin-transform-template-literals": "^7.22.5", + "@babel/plugin-transform-typeof-symbol": "^7.22.5", + "@babel/plugin-transform-unicode-escapes": "^7.22.5", + "@babel/plugin-transform-unicode-property-regex": "^7.22.5", + "@babel/plugin-transform-unicode-regex": "^7.22.5", + "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.22.4", + "@babel/types": "^7.22.5", "babel-plugin-polyfill-corejs2": "^0.4.3", "babel-plugin-polyfill-corejs3": "^0.8.1", "babel-plugin-polyfill-regenerator": "^0.5.0", @@ -2005,6 +2081,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/preset-flow": { "version": "7.21.4", "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.21.4.tgz", @@ -2038,15 +2126,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.21.5", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", + "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-typescript": "^7.21.3" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/plugin-transform-typescript": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -2205,31 +2294,33 @@ } }, "node_modules/@babel/template": { - "version": "7.21.9", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.5.tgz", + "integrity": "sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/parser": "^7.21.9", - "@babel/types": "^7.21.5" + "@babel/code-frame": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.22.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.5.tgz", + "integrity": "sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.22.3", - "@babel/helper-environment-visitor": "^7.22.1", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.22.4", - "@babel/types": "^7.22.4", + "@babel/code-frame": "^7.22.5", + "@babel/generator": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.5", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.5", + "@babel/parser": "^7.22.5", + "@babel/types": "^7.22.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2238,12 +2329,13 @@ } }, "node_modules/@babel/types": { - "version": "7.22.4", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.5.tgz", + "integrity": "sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.5", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2865,28 +2957,28 @@ "dev": true }, "node_modules/@formatjs/ecma402-abstract": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.16.0.tgz", - "integrity": "sha512-qIH2cmG/oHGrVdApbqDf6/YR+B2A4NdkBjKLeq369OMVkqMFsC5oPSP1xpiyL1cAn+PbNEZHxwOVMYD/C76c6g==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-1.17.0.tgz", + "integrity": "sha512-6ueQTeJZtwKjmh23bdkq/DMqH4l4bmfvtQH98blOSbiXv/OUiyijSW6jU22IT8BNM1ujCaEvJfTtyCYVH38EMQ==", "dependencies": { - "@formatjs/intl-localematcher": "0.3.0", + "@formatjs/intl-localematcher": "0.4.0", "tslib": "^2.4.0" } }, "node_modules/@formatjs/intl-listformat": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.3.0.tgz", - "integrity": "sha512-HWSST1TBcKi5frneeDi9O6YYp9NWb7HNrDSbCgnBLmz/9rpGycdp9c5bTKJqYFN6apw3E/kIo+kZHjVeiFITRQ==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-listformat/-/intl-listformat-7.4.0.tgz", + "integrity": "sha512-ifupb+balZUAF/Oh3QyGRqPRWGSKwWoMPR0cYZEG7r61SimD+m38oFQqVx/3Fp7LfQFF11m7IS+MlxOo2sKINA==", "dependencies": { - "@formatjs/ecma402-abstract": "1.16.0", - "@formatjs/intl-localematcher": "0.3.0", + "@formatjs/ecma402-abstract": "1.17.0", + "@formatjs/intl-localematcher": "0.4.0", "tslib": "^2.4.0" } }, "node_modules/@formatjs/intl-localematcher": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.3.0.tgz", - "integrity": "sha512-NFoxXX3dtZ6B53NlCErq181NxN/noMZOWKHfcEPQRNfV0a19THxyjxu2RTSNS3532wGm6fOdid5qsBQWg0Rhtw==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@formatjs/intl-localematcher/-/intl-localematcher-0.4.0.tgz", + "integrity": "sha512-bRTd+rKomvfdS4QDlVJ6TA/Jx1F2h/TBVO5LjvhQ7QPPHp19oPNMIum7W2CMEReq/zPxpmCeB31F9+5gl/qtvw==", "dependencies": { "tslib": "^2.4.0" } @@ -2900,9 +2992,9 @@ } }, "node_modules/@goauthentik/api": { - "version": "2023.5.3-1685646044", - "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.5.3-1685646044.tgz", - "integrity": "sha512-OCelUbkUEvQvOvbTqmiXtHB7NQg6dEBQaTxrnDh7kPTmBWlh7JeZebTF1107vHXEU0/J+hmTiR32ZH/eZjHMcA==" + "version": "2023.5.3-1686577333", + "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.5.3-1686577333.tgz", + "integrity": "sha512-BxDMH+qL5yz7+llksC20ZV3jCZOJUTRomSOoXUm4VRqhhKiHL2BU6HxSdqtX+YhO1AO53UsUrRxILITZaaLdzw==" }, "node_modules/@hcaptcha/types": { "version": "1.0.3", @@ -3564,9 +3656,10 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "25.0.0", + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.1.tgz", + "integrity": "sha512-2DJ4kv4b1xfTJopWhu61ANdNRHvzQZ2fpaIrlgaP2jOfUv1wDJ0Ucqy8AZlbFmn/iUjiwKoqki9j55Y6L8kyNQ==", "dev": true, - "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", "commondir": "^1.0.1", @@ -12499,9 +12592,10 @@ } }, "node_modules/core-js": { - "version": "3.30.2", + "version": "3.31.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz", + "integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==", "hasInstallScript": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -17153,9 +17247,9 @@ } }, "node_modules/mermaid": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.2.2.tgz", - "integrity": "sha512-ifYKlCcZKYq48hxC1poJXnvk/PbCdgqqbg5B4qsybb8nIItPM1ATKqVEDkyde6BBJxVFhVJr9hoUjipzniQJZg==", + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-10.2.3.tgz", + "integrity": "sha512-cMVE5s9PlQvOwfORkyVpr5beMsLdInrycAosdr+tpZ0WFjG4RJ/bUHST7aTgHNJbujHkdBRAm+N50P3puQOfPw==", "dependencies": { "@braintree/sanitize-url": "^6.0.2", "cytoscape": "^3.23.0", diff --git a/web/package.json b/web/package.json index 675ac137c..9203b22d7 100644 --- a/web/package.json +++ b/web/package.json @@ -32,9 +32,9 @@ "@codemirror/lang-xml": "^6.0.2", "@codemirror/legacy-modes": "^6.3.2", "@codemirror/theme-one-dark": "^6.1.2", - "@formatjs/intl-listformat": "^7.3.0", + "@formatjs/intl-listformat": "^7.4.0", "@fortawesome/fontawesome-free": "^6.4.0", - "@goauthentik/api": "^2023.5.3-1685646044", + "@goauthentik/api": "^2023.5.3-1686577333", "@lit/localize": "^0.11.4", "@patternfly/patternfly": "^4.224.2", "@sentry/browser": "^7.54.0", @@ -45,30 +45,30 @@ "chartjs-adapter-moment": "^1.0.1", "codemirror": "^6.0.1", "construct-style-sheets-polyfill": "^3.1.0", - "core-js": "^3.30.2", + "core-js": "^3.31.0", "country-flag-icons": "^1.5.7", "fuse.js": "^6.6.2", "lit": "^2.7.5", - "mermaid": "^10.2.2", + "mermaid": "^10.2.3", "rapidoc": "^9.3.4", "webcomponent-qr-code": "^1.1.1", "yaml": "^2.3.1", "zxcvbn": "^4.4.2" }, "devDependencies": { - "@babel/core": "^7.22.1", + "@babel/core": "^7.22.5", "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-decorators": "^7.22.3", + "@babel/plugin-proposal-decorators": "^7.22.5", "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-transform-runtime": "^7.22.4", - "@babel/preset-env": "^7.22.4", - "@babel/preset-typescript": "^7.21.5", + "@babel/plugin-transform-runtime": "^7.22.5", + "@babel/preset-env": "^7.22.5", + "@babel/preset-typescript": "^7.22.5", "@hcaptcha/types": "^1.0.3", "@jackfranklin/rollup-plugin-markdown": "^0.4.0", "@jeysal/storybook-addon-css-user-preferences": "^0.2.0", "@lit/localize-tools": "^0.6.9", "@rollup/plugin-babel": "^6.0.3", - "@rollup/plugin-commonjs": "^25.0.0", + "@rollup/plugin-commonjs": "^25.0.1", "@rollup/plugin-node-resolve": "^15.0.2", "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-typescript": "^11.1.1", diff --git a/web/src/admin/sources/ldap/LDAPSourceForm.ts b/web/src/admin/sources/ldap/LDAPSourceForm.ts index 986a973b1..0985f7cde 100644 --- a/web/src/admin/sources/ldap/LDAPSourceForm.ts +++ b/web/src/admin/sources/ldap/LDAPSourceForm.ts @@ -184,6 +184,26 @@ export class LDAPSourceForm extends ModelForm { ${msg("To use SSL instead, use 'ldaps://' and disable this option.")}

+ + +

+ ${msg("Required for servers using TLS 1.3+")} +

+
{ )}

+ + => { + const args: CryptoCertificatekeypairsListRequest = { + ordering: "name", + hasKey: true, + includeDetails: false, + }; + if (query !== undefined) { + args.search = query; + } + const certificates = await new CryptoApi( + DEFAULT_CONFIG, + ).cryptoCertificatekeypairsList(args); + return certificates.results; + }} + .renderElement=${(item: CertificateKeyPair): string => { + return item.name; + }} + .value=${(item: CertificateKeyPair | undefined): string | undefined => { + return item?.pk; + }} + .selected=${(item: CertificateKeyPair): boolean => { + return item.pk === this.instance?.clientCertificate; + }} + ?blankable=${true} + > + +

+ ${msg( + "Client certificate keypair to authenticate against the LDAP Server's Certificate.", + )} +

+
Certificate Zertifikat - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - - - If multiple providers share an outpost, a self-signed certificate is used. - Wenn sich mehrere Anbieter einen Außenposten teilen, wird ein selbstsigniertes Zertifikat verwendet. - UID start number UID-Startnummer @@ -5722,6 +5715,27 @@ Bindings to groups/users are checked against the user of the event. Activate Aktivieren + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate + diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index b9cbe7086..37f5aa799 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -777,14 +777,6 @@ Certificate Certificate - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - - - If multiple providers share an outpost, a self-signed certificate is used. - If multiple providers share an outpost, a self-signed certificate is used. - UID start number UID start number @@ -6039,6 +6031,27 @@ Bindings to groups/users are checked against the user of the event. Activate Activate + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate + diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index 9c8ff95f2..a7728aae3 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -733,13 +733,6 @@ Certificate Certificado - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - - - If multiple providers share an outpost, a self-signed certificate is used. - Si varios proveedores comparten un puesto avanzado, se utiliza un certificado autofirmado. - UID start number Número inicial de UID @@ -5630,6 +5623,27 @@ Bindings to groups/users are checked against the user of the event. Activate Activar + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate + diff --git a/web/xliff/fr_FR.xlf b/web/xliff/fr_FR.xlf index 0a0749c7f..e3bba1891 100644 --- a/web/xliff/fr_FR.xlf +++ b/web/xliff/fr_FR.xlf @@ -749,13 +749,6 @@ Certificate Certificat - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - - - If multiple providers share an outpost, a self-signed certificate is used. - Si plusieurs fournisseurs partagent un avant-poste, un certificat auto-signé est utilisé. - UID start number Numéro de départ d'UID @@ -5737,6 +5730,27 @@ Bindings to groups/users are checked against the user of the event. Activate Activer + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate + diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index 16e0d4537..a4c7bfe04 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -752,13 +752,6 @@ Certificate Certyfikat - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - - - If multiple providers share an outpost, a self-signed certificate is used. - Jeśli wielu dostawców współdzieli placówkę, używany jest certyfikat z podpisem własnym. - UID start number Numer początkowy UID @@ -5869,6 +5862,27 @@ Bindings to groups/users are checked against the user of the event. Activate Aktywuj + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate + diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index 7e315cdec..017d57a3a 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -761,14 +761,6 @@ Certificate - - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - - - - If multiple providers share an outpost, a self-signed certificate is used. - UID start number @@ -5973,6 +5965,27 @@ Bindings to groups/users are checked against the user of the event. Activate + + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index 0cb41745c..4e6ae5aeb 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -733,13 +733,6 @@ Certificate Sertifika - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - - - If multiple providers share an outpost, a self-signed certificate is used. - Birden çok sağlayıcı bir üssü paylaşıyorsa, otomatik olarak imzalanan bir sertifika kullanılır. - UID start number UID başlangıç numarası @@ -5620,6 +5613,27 @@ Bindings to groups/users are checked against the user of the event. Activate Etkinleştir + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate + diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index 861c8b067..f50358a42 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -965,16 +965,6 @@ Certificate 证书 - - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - 由于协议限制,只在前哨有单个提供程序,或所有提供程序都使用相同证书时才使用此证书。 - - - - If multiple providers share an outpost, a self-signed certificate is used. - 如果多个提供程序共享同一个前哨,则使用自签名证书。 - UID start number @@ -7547,6 +7537,27 @@ Bindings to groups/users are checked against the user of the event. 激活 + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate + diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index aab8e7994..a12a5e055 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -740,13 +740,6 @@ Certificate 证书 - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - - - If multiple providers share an outpost, a self-signed certificate is used. - 如果多个提供商共享一个 Outpost,则使用自签名证书。 - UID start number UID 起始编号 @@ -5675,6 +5668,27 @@ Bindings to groups/users are checked against the user of the event. Activate 启用 + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate + diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index 3ba0aee41..840a00c89 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -740,13 +740,6 @@ Certificate 证书 - - Due to protocol limitations, this certificate is only used when the outpost has a single provider, or all providers use the same certificate. - - - If multiple providers share an outpost, a self-signed certificate is used. - 如果多个提供商共享一个 Outpost,则使用自签名证书。 - UID start number UID 起始编号 @@ -5674,6 +5667,27 @@ Bindings to groups/users are checked against the user of the event. Activate 启用 + + Use Server URI for SNI verification + + + Required for servers using TLS 1.3+ + + + Client certificate keypair to authenticate against the LDAP Server's Certificate. + + + The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + + + TLS Server name + + + DNS name for which the above configured certificate should be used. The certificate cannot be detected based on the base DN, as the SSL/TLS negotiation happens before such data is exchanged. + + + TLS Client authentication certificate + diff --git a/website/integrations/services/dokuwiki/index.md b/website/integrations/services/dokuwiki/index.md index 36750201a..d3b9d988b 100644 --- a/website/integrations/services/dokuwiki/index.md +++ b/website/integrations/services/dokuwiki/index.md @@ -4,7 +4,7 @@ title: DokuWiki Support level: Community -## What is Service Name +## What is DokuWiki From https://en.wikipedia.org/wiki/DokuWiki diff --git a/website/integrations/services/wordpress/index.md b/website/integrations/services/wordpress/index.md index e02d56ca4..8a6cb1369 100644 --- a/website/integrations/services/wordpress/index.md +++ b/website/integrations/services/wordpress/index.md @@ -65,12 +65,12 @@ Review each setting and choose the ones that you require for your installation. ### Step 3 - authentik -In authentik, create an application which uses this provider. Optionally apply access restrictions to the application using policy bindings. +In authentik, create an application which uses this provider and directly launches Wordpress' backend login-screen. Optionally apply access restrictions to the application using policy bindings. - Name: Wordpress - Slug: wordpress - Provider: wordpress -- Launch URL: https://wp.company +- Launch URL: https://wp.company/wp-login.php ## Notes