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("Use Server URI for SNI verification")}
+
+
+ ${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
+