diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 8978eeee7a..66975dbc25 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2024.10.0 +current_version = 2024.10.4 tag = True commit = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)(?:-(?P[a-zA-Z-]+)(?P[1-9]\\d*))? diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 4812a57a03..7c223fac8c 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -116,7 +116,7 @@ jobs: poetry run make test poetry run coverage xml - if: ${{ always() }} - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: flags: unit token: ${{ secrets.CODECOV_TOKEN }} @@ -140,7 +140,7 @@ jobs: poetry run coverage run manage.py test tests/integration poetry run coverage xml - if: ${{ always() }} - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: flags: integration token: ${{ secrets.CODECOV_TOKEN }} @@ -198,7 +198,7 @@ jobs: poetry run coverage run manage.py test ${{ matrix.job.glob }} poetry run coverage xml - if: ${{ always() }} - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v5 with: flags: e2e token: ${{ secrets.CODECOV_TOKEN }} diff --git a/Dockerfile b/Dockerfile index c75fa81a52..ea9f491a12 100644 --- a/Dockerfile +++ b/Dockerfile @@ -80,7 +80,7 @@ RUN --mount=type=cache,sharing=locked,target=/go/pkg/mod \ go build -o /go/authentik ./cmd/server # Stage 4: MaxMind GeoIP -FROM --platform=${BUILDPLATFORM} ghcr.io/maxmind/geoipupdate:v7.0.1 AS geoip +FROM --platform=${BUILDPLATFORM} ghcr.io/maxmind/geoipupdate:v7.1.0 AS geoip ENV GEOIPUPDATE_EDITION_IDS="GeoLite2-City GeoLite2-ASN" ENV GEOIPUPDATE_VERBOSE="1" diff --git a/authentik/__init__.py b/authentik/__init__.py index 259d0f83f6..38e760de9b 100644 --- a/authentik/__init__.py +++ b/authentik/__init__.py @@ -2,7 +2,7 @@ from os import environ -__version__ = "2024.10.0" +__version__ = "2024.10.4" ENV_GIT_HASH_KEY = "GIT_BUILD_HASH" diff --git a/authentik/api/templates/api/browser.html b/authentik/api/templates/api/browser.html index a84ef3cb25..e753d79f21 100644 --- a/authentik/api/templates/api/browser.html +++ b/authentik/api/templates/api/browser.html @@ -7,7 +7,7 @@ API Browser - {{ brand.branding_title }} {% endblock %} {% block head %} -{% versioned_script "dist/standalone/api-browser/index-%v.js" %} + {% endblock %} diff --git a/authentik/blueprints/tests/test_packaged.py b/authentik/blueprints/tests/test_packaged.py index 443173bac2..32d392447f 100644 --- a/authentik/blueprints/tests/test_packaged.py +++ b/authentik/blueprints/tests/test_packaged.py @@ -27,7 +27,8 @@ def blueprint_tester(file_name: Path) -> Callable: base = Path("blueprints/") rel_path = Path(file_name).relative_to(base) importer = Importer.from_string(BlueprintInstance(path=str(rel_path)).retrieve()) - self.assertTrue(importer.validate()[0]) + validation, logs = importer.validate() + self.assertTrue(validation, logs) self.assertTrue(importer.apply()) return tester diff --git a/authentik/blueprints/v1/importer.py b/authentik/blueprints/v1/importer.py index f0cc804f52..ff272b5c62 100644 --- a/authentik/blueprints/v1/importer.py +++ b/authentik/blueprints/v1/importer.py @@ -293,7 +293,11 @@ class Importer: serializer_kwargs = {} model_instance = existing_models.first() - if not isinstance(model(), BaseMetaModel) and model_instance: + if ( + not isinstance(model(), BaseMetaModel) + and model_instance + and entry.state != BlueprintEntryDesiredState.MUST_CREATED + ): self.logger.debug( "Initialise serializer with instance", model=model, @@ -303,11 +307,12 @@ class Importer: serializer_kwargs["instance"] = model_instance serializer_kwargs["partial"] = True elif model_instance and entry.state == BlueprintEntryDesiredState.MUST_CREATED: + msg = ( + f"State is set to {BlueprintEntryDesiredState.MUST_CREATED.value} " + "and object exists already", + ) raise EntryInvalidError.from_entry( - ( - f"State is set to {BlueprintEntryDesiredState.MUST_CREATED} " - "and object exists already", - ), + ValidationError({k: msg for k in entry.identifiers.keys()}, "unique"), entry, ) else: diff --git a/authentik/brands/middleware.py b/authentik/brands/middleware.py index 71650cc621..52af854e33 100644 --- a/authentik/brands/middleware.py +++ b/authentik/brands/middleware.py @@ -4,7 +4,7 @@ from collections.abc import Callable from django.http.request import HttpRequest from django.http.response import HttpResponse -from django.utils.translation import activate +from django.utils.translation import override from authentik.brands.utils import get_brand_for_request @@ -18,10 +18,12 @@ class BrandMiddleware: self.get_response = get_response def __call__(self, request: HttpRequest) -> HttpResponse: + locale_to_set = None if not hasattr(request, "brand"): brand = get_brand_for_request(request) request.brand = brand locale = brand.default_locale if locale != "": - activate(locale) - return self.get_response(request) + locale_to_set = locale + with override(locale_to_set): + return self.get_response(request) diff --git a/authentik/core/api/devices.py b/authentik/core/api/devices.py index 58040df835..cc8f77f558 100644 --- a/authentik/core/api/devices.py +++ b/authentik/core/api/devices.py @@ -1,5 +1,6 @@ """Authenticator Devices API Views""" +from django.utils.translation import gettext_lazy as _ from drf_spectacular.types import OpenApiTypes from drf_spectacular.utils import OpenApiParameter, extend_schema from rest_framework.fields import ( @@ -40,7 +41,11 @@ class DeviceSerializer(MetaNameSerializer): def get_extra_description(self, instance: Device) -> str: """Get extra description""" if isinstance(instance, WebAuthnDevice): - return instance.device_type.description + return ( + instance.device_type.description + if instance.device_type + else _("Extra description not available") + ) if isinstance(instance, EndpointDevice): return instance.data.get("deviceSignals", {}).get("deviceModel") return "" diff --git a/authentik/core/api/transactional_applications.py b/authentik/core/api/transactional_applications.py index 1e47096ca6..44e390ecd1 100644 --- a/authentik/core/api/transactional_applications.py +++ b/authentik/core/api/transactional_applications.py @@ -1,10 +1,12 @@ """transactional application and provider creation""" from django.apps import apps +from django.db.models import Model +from django.utils.translation import gettext as _ from drf_spectacular.utils import PolymorphicProxySerializer, extend_schema, extend_schema_field -from rest_framework.exceptions import ValidationError +from rest_framework.exceptions import PermissionDenied, ValidationError from rest_framework.fields import BooleanField, CharField, ChoiceField, DictField, ListField -from rest_framework.permissions import IsAdminUser +from rest_framework.permissions import IsAuthenticated from rest_framework.request import Request from rest_framework.response import Response from rest_framework.views import APIView @@ -22,6 +24,7 @@ from authentik.core.api.applications import ApplicationSerializer from authentik.core.api.utils import PassiveSerializer from authentik.core.models import Provider from authentik.lib.utils.reflection import all_subclasses +from authentik.policies.api.bindings import PolicyBindingSerializer def get_provider_serializer_mapping(): @@ -45,6 +48,13 @@ class TransactionProviderField(DictField): """Dictionary field which can hold provider creation data""" +class TransactionPolicyBindingSerializer(PolicyBindingSerializer): + """PolicyBindingSerializer which does not require target as target is set implicitly""" + + class Meta(PolicyBindingSerializer.Meta): + fields = [x for x in PolicyBindingSerializer.Meta.fields if x != "target"] + + class TransactionApplicationSerializer(PassiveSerializer): """Serializer for creating a provider and an application in one transaction""" @@ -52,6 +62,8 @@ class TransactionApplicationSerializer(PassiveSerializer): provider_model = ChoiceField(choices=list(get_provider_serializer_mapping().keys())) provider = TransactionProviderField() + policy_bindings = TransactionPolicyBindingSerializer(many=True, required=False) + _provider_model: type[Provider] = None def validate_provider_model(self, fq_model_name: str) -> str: @@ -96,6 +108,19 @@ class TransactionApplicationSerializer(PassiveSerializer): id="app", ) ) + for binding in attrs.get("policy_bindings", []): + binding["target"] = KeyOf(None, ScalarNode(tag="", value="app")) + for key, value in binding.items(): + if not isinstance(value, Model): + continue + binding[key] = value.pk + blueprint.entries.append( + BlueprintEntry( + model="authentik_policies.policybinding", + state=BlueprintEntryDesiredState.MUST_CREATED, + identifiers=binding, + ) + ) importer = Importer(blueprint, {}) try: valid, _ = importer.validate(raise_validation_errors=True) @@ -120,8 +145,7 @@ class TransactionApplicationResponseSerializer(PassiveSerializer): class TransactionalApplicationView(APIView): """Create provider and application and attach them in a single transaction""" - # TODO: Migrate to a more specific permission - permission_classes = [IsAdminUser] + permission_classes = [IsAuthenticated] @extend_schema( request=TransactionApplicationSerializer(), @@ -133,8 +157,23 @@ class TransactionalApplicationView(APIView): """Convert data into a blueprint, validate it and apply it""" data = TransactionApplicationSerializer(data=request.data) data.is_valid(raise_exception=True) - - importer = Importer(data.validated_data, {}) + blueprint: Blueprint = data.validated_data + for entry in blueprint.entries: + full_model = entry.get_model(blueprint) + app, __, model = full_model.partition(".") + if not request.user.has_perm(f"{app}.add_{model}"): + raise PermissionDenied( + { + entry.id: _( + "User lacks permission to create {model}".format_map( + { + "model": full_model, + } + ) + ) + } + ) + importer = Importer(blueprint, {}) applied = importer.apply() response = {"applied": False, "logs": []} response["applied"] = applied diff --git a/authentik/core/api/users.py b/authentik/core/api/users.py index 37656933d5..7280a05881 100644 --- a/authentik/core/api/users.py +++ b/authentik/core/api/users.py @@ -666,7 +666,12 @@ class UserViewSet(UsedByMixin, ModelViewSet): @permission_required("authentik_core.impersonate") @extend_schema( - request=OpenApiTypes.NONE, + request=inline_serializer( + "ImpersonationSerializer", + { + "reason": CharField(required=True), + }, + ), responses={ "204": OpenApiResponse(description="Successfully started impersonation"), "401": OpenApiResponse(description="Access denied"), @@ -679,6 +684,7 @@ class UserViewSet(UsedByMixin, ModelViewSet): LOGGER.debug("User attempted to impersonate", user=request.user) return Response(status=401) user_to_be = self.get_object() + reason = request.data.get("reason", "") # Check both object-level perms and global perms if not request.user.has_perm( "authentik_core.impersonate", user_to_be @@ -688,11 +694,16 @@ class UserViewSet(UsedByMixin, ModelViewSet): if user_to_be.pk == self.request.user.pk: LOGGER.debug("User attempted to impersonate themselves", user=request.user) return Response(status=401) + if not reason and request.tenant.impersonation_require_reason: + LOGGER.debug( + "User attempted to impersonate without providing a reason", user=request.user + ) + return Response(status=401) request.session[SESSION_KEY_IMPERSONATE_ORIGINAL_USER] = request.user request.session[SESSION_KEY_IMPERSONATE_USER] = user_to_be - Event.new(EventAction.IMPERSONATION_STARTED).from_http(request, user_to_be) + Event.new(EventAction.IMPERSONATION_STARTED, reason=reason).from_http(request, user_to_be) return Response(status=201) diff --git a/authentik/core/middleware.py b/authentik/core/middleware.py index f59b9aa6b7..1d20455a1b 100644 --- a/authentik/core/middleware.py +++ b/authentik/core/middleware.py @@ -5,7 +5,7 @@ from contextvars import ContextVar from uuid import uuid4 from django.http import HttpRequest, HttpResponse -from django.utils.translation import activate +from django.utils.translation import override from sentry_sdk.api import set_tag from structlog.contextvars import STRUCTLOG_KEY_PREFIX @@ -31,17 +31,19 @@ class ImpersonateMiddleware: def __call__(self, request: HttpRequest) -> HttpResponse: # No permission checks are done here, they need to be checked before # SESSION_KEY_IMPERSONATE_USER is set. + locale_to_set = None if request.user.is_authenticated: locale = request.user.locale(request) if locale != "": - activate(locale) + locale_to_set = locale if SESSION_KEY_IMPERSONATE_USER in request.session: request.user = request.session[SESSION_KEY_IMPERSONATE_USER] # Ensure that the user is active, otherwise nothing will work request.user.is_active = True - return self.get_response(request) + with override(locale_to_set): + return self.get_response(request) class RequestIDMiddleware: diff --git a/authentik/core/sources/flow_manager.py b/authentik/core/sources/flow_manager.py index 7b1e115e09..3b23ed78f0 100644 --- a/authentik/core/sources/flow_manager.py +++ b/authentik/core/sources/flow_manager.py @@ -129,6 +129,11 @@ class SourceFlowManager: ) new_connection.user = self.request.user new_connection = self.update_user_connection(new_connection, **kwargs) + if existing := self.user_connection_type.objects.filter( + source=self.source, identifier=self.identifier + ).first(): + existing = self.update_user_connection(existing) + return Action.AUTH, existing return Action.LINK, new_connection action, connection = self.matcher.get_user_action(self.identifier, self.user_properties) diff --git a/authentik/core/templates/base/skeleton.html b/authentik/core/templates/base/skeleton.html index 86da52e949..074fcc1556 100644 --- a/authentik/core/templates/base/skeleton.html +++ b/authentik/core/templates/base/skeleton.html @@ -15,8 +15,8 @@ {% endblock %} - {% versioned_script "dist/poly-%v.js" %} - {% versioned_script "dist/standalone/loading/index-%v.js" %} + + {% block head %} {% endblock %} diff --git a/authentik/core/templates/if/admin.html b/authentik/core/templates/if/admin.html index 9a548dfd9d..51d1569dfb 100644 --- a/authentik/core/templates/if/admin.html +++ b/authentik/core/templates/if/admin.html @@ -3,7 +3,7 @@ {% load authentik_core %} {% block head %} -{% versioned_script "dist/admin/AdminInterface-%v.js" %} + {% include "base/header_js.html" %} diff --git a/authentik/core/templates/if/user.html b/authentik/core/templates/if/user.html index 84d88dac3b..7ce1714ac7 100644 --- a/authentik/core/templates/if/user.html +++ b/authentik/core/templates/if/user.html @@ -3,7 +3,7 @@ {% load authentik_core %} {% block head %} -{% versioned_script "dist/user/UserInterface-%v.js" %} + {% include "base/header_js.html" %} diff --git a/authentik/core/templatetags/authentik_core.py b/authentik/core/templatetags/authentik_core.py index 7f8a80a5fa..44ac3a4ffc 100644 --- a/authentik/core/templatetags/authentik_core.py +++ b/authentik/core/templatetags/authentik_core.py @@ -2,7 +2,6 @@ from django import template from django.templatetags.static import static as static_loader -from django.utils.safestring import mark_safe from authentik import get_full_version @@ -12,10 +11,4 @@ register = template.Library() @register.simple_tag() def versioned_script(path: str) -> str: """Wrapper around {% static %} tag that supports setting the version""" - returned_lines = [ - ( - f'' - ), - ] - return mark_safe("".join(returned_lines)) # nosec + return static_loader(path.replace("%v", get_full_version())) diff --git a/authentik/core/tests/test_applications_api.py b/authentik/core/tests/test_applications_api.py index 1244776b2a..192adc458b 100644 --- a/authentik/core/tests/test_applications_api.py +++ b/authentik/core/tests/test_applications_api.py @@ -12,7 +12,7 @@ from authentik.core.tests.utils import create_test_admin_user, create_test_flow from authentik.lib.generators import generate_id from authentik.policies.dummy.models import DummyPolicy from authentik.policies.models import PolicyBinding -from authentik.providers.oauth2.models import OAuth2Provider +from authentik.providers.oauth2.models import OAuth2Provider, RedirectURI, RedirectURIMatchingMode from authentik.providers.proxy.models import ProxyProvider from authentik.providers.saml.models import SAMLProvider @@ -24,7 +24,7 @@ class TestApplicationsAPI(APITestCase): self.user = create_test_admin_user() self.provider = OAuth2Provider.objects.create( name="test", - redirect_uris="http://some-other-domain", + redirect_uris=[RedirectURI(RedirectURIMatchingMode.STRICT, "http://some-other-domain")], authorization_flow=create_test_flow(), ) self.allowed: Application = Application.objects.create( diff --git a/authentik/core/tests/test_impersonation.py b/authentik/core/tests/test_impersonation.py index d877e55c9e..7333971fab 100644 --- a/authentik/core/tests/test_impersonation.py +++ b/authentik/core/tests/test_impersonation.py @@ -29,7 +29,8 @@ class TestImpersonation(APITestCase): reverse( "authentik_api:user-impersonate", kwargs={"pk": self.other_user.pk}, - ) + ), + data={"reason": "some reason"}, ) response = self.client.get(reverse("authentik_api:user-me")) @@ -55,7 +56,8 @@ class TestImpersonation(APITestCase): reverse( "authentik_api:user-impersonate", kwargs={"pk": self.other_user.pk}, - ) + ), + data={"reason": "some reason"}, ) self.assertEqual(response.status_code, 201) @@ -75,7 +77,8 @@ class TestImpersonation(APITestCase): reverse( "authentik_api:user-impersonate", kwargs={"pk": self.other_user.pk}, - ) + ), + data={"reason": "some reason"}, ) self.assertEqual(response.status_code, 201) @@ -89,7 +92,8 @@ class TestImpersonation(APITestCase): self.client.force_login(self.other_user) response = self.client.post( - reverse("authentik_api:user-impersonate", kwargs={"pk": self.user.pk}) + reverse("authentik_api:user-impersonate", kwargs={"pk": self.user.pk}), + data={"reason": "some reason"}, ) self.assertEqual(response.status_code, 403) @@ -105,7 +109,8 @@ class TestImpersonation(APITestCase): self.client.force_login(self.user) response = self.client.post( - reverse("authentik_api:user-impersonate", kwargs={"pk": self.other_user.pk}) + reverse("authentik_api:user-impersonate", kwargs={"pk": self.other_user.pk}), + data={"reason": "some reason"}, ) self.assertEqual(response.status_code, 401) @@ -118,7 +123,22 @@ class TestImpersonation(APITestCase): self.client.force_login(self.user) response = self.client.post( - reverse("authentik_api:user-impersonate", kwargs={"pk": self.user.pk}) + reverse("authentik_api:user-impersonate", kwargs={"pk": self.user.pk}), + data={"reason": "some reason"}, + ) + self.assertEqual(response.status_code, 401) + + response = self.client.get(reverse("authentik_api:user-me")) + response_body = loads(response.content.decode()) + self.assertEqual(response_body["user"]["username"], self.user.username) + + def test_impersonate_reason_required(self): + """test impersonation that user must provide reason""" + self.client.force_login(self.user) + + response = self.client.post( + reverse("authentik_api:user-impersonate", kwargs={"pk": self.user.pk}), + data={"reason": ""}, ) self.assertEqual(response.status_code, 401) diff --git a/authentik/core/tests/test_source_flow_manager.py b/authentik/core/tests/test_source_flow_manager.py index bcd38449c6..c9346fce85 100644 --- a/authentik/core/tests/test_source_flow_manager.py +++ b/authentik/core/tests/test_source_flow_manager.py @@ -81,6 +81,22 @@ class TestSourceFlowManager(TestCase): reverse("authentik_core:if-user") + "#/settings;page-sources", ) + def test_authenticated_auth(self): + """Test authenticated user linking""" + user = User.objects.create(username="foo", email="foo@bar.baz") + UserOAuthSourceConnection.objects.create( + user=user, source=self.source, identifier=self.identifier + ) + request = get_request("/", user=user) + flow_manager = OAuthSourceFlowManager( + self.source, request, self.identifier, {"info": {}}, {} + ) + action, connection = flow_manager.get_action() + self.assertEqual(action, Action.AUTH) + self.assertIsNotNone(connection.pk) + response = flow_manager.get_flow() + self.assertEqual(response.status_code, 302) + def test_unauthenticated_link(self): """Test un-authenticated user linking""" flow_manager = OAuthSourceFlowManager( diff --git a/authentik/core/tests/test_transactional_applications_api.py b/authentik/core/tests/test_transactional_applications_api.py index d0804fb3b6..c6fcfb1946 100644 --- a/authentik/core/tests/test_transactional_applications_api.py +++ b/authentik/core/tests/test_transactional_applications_api.py @@ -1,11 +1,13 @@ """Test Transactional API""" from django.urls import reverse +from guardian.shortcuts import assign_perm 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.core.models import Application, Group +from authentik.core.tests.utils import create_test_flow, create_test_user from authentik.lib.generators import generate_id +from authentik.policies.models import PolicyBinding from authentik.providers.oauth2.models import OAuth2Provider @@ -13,7 +15,9 @@ class TestTransactionalApplicationsAPI(APITestCase): """Test Transactional API""" def setUp(self) -> None: - self.user = create_test_admin_user() + self.user = create_test_user() + assign_perm("authentik_core.add_application", self.user) + assign_perm("authentik_providers_oauth2.add_oauth2provider", self.user) def test_create_transactional(self): """Test transactional Application + provider creation""" @@ -31,6 +35,7 @@ class TestTransactionalApplicationsAPI(APITestCase): "name": uid, "authorization_flow": str(create_test_flow().pk), "invalidation_flow": str(create_test_flow().pk), + "redirect_uris": [], }, }, ) @@ -41,6 +46,66 @@ class TestTransactionalApplicationsAPI(APITestCase): self.assertIsNotNone(app) self.assertEqual(app.provider.pk, provider.pk) + def test_create_transactional_permission_denied(self): + """Test transactional Application + provider creation (missing permissions)""" + self.client.force_login(self.user) + uid = generate_id() + response = self.client.put( + reverse("authentik_api:core-transactional-application"), + data={ + "app": { + "name": uid, + "slug": uid, + }, + "provider_model": "authentik_providers_saml.samlprovider", + "provider": { + "name": uid, + "authorization_flow": str(create_test_flow().pk), + "invalidation_flow": str(create_test_flow().pk), + "acs_url": "https://goauthentik.io", + }, + }, + ) + self.assertJSONEqual( + response.content.decode(), + {"provider": "User lacks permission to create authentik_providers_saml.samlprovider"}, + ) + + def test_create_transactional_bindings(self): + """Test transactional Application + provider creation""" + assign_perm("authentik_policies.add_policybinding", self.user) + self.client.force_login(self.user) + uid = generate_id() + group = Group.objects.create(name=generate_id()) + authorization_flow = create_test_flow() + response = self.client.put( + reverse("authentik_api:core-transactional-application"), + data={ + "app": { + "name": uid, + "slug": uid, + }, + "provider_model": "authentik_providers_oauth2.oauth2provider", + "provider": { + "name": uid, + "authorization_flow": str(authorization_flow.pk), + "invalidation_flow": str(authorization_flow.pk), + "redirect_uris": [], + }, + "policy_bindings": [{"group": group.pk, "order": 0}], + }, + ) + self.assertJSONEqual(response.content.decode(), {"applied": True, "logs": []}) + provider = OAuth2Provider.objects.filter(name=uid).first() + self.assertIsNotNone(provider) + app = Application.objects.filter(slug=uid).first() + self.assertIsNotNone(app) + self.assertEqual(app.provider.pk, provider.pk) + binding = PolicyBinding.objects.filter(target=app).first() + self.assertIsNotNone(binding) + self.assertEqual(binding.target, app) + self.assertEqual(binding.group, group) + def test_create_transactional_invalid(self): """Test transactional Application + provider creation""" self.client.force_login(self.user) @@ -57,6 +122,7 @@ class TestTransactionalApplicationsAPI(APITestCase): "name": uid, "authorization_flow": "", "invalidation_flow": "", + "redirect_uris": [], }, }, ) @@ -69,3 +135,32 @@ class TestTransactionalApplicationsAPI(APITestCase): } }, ) + + def test_create_transactional_duplicate_name_provider(self): + """Test transactional Application + provider creation""" + self.client.force_login(self.user) + uid = generate_id() + OAuth2Provider.objects.create( + name=uid, + authorization_flow=create_test_flow(), + invalidation_flow=create_test_flow(), + ) + response = self.client.put( + reverse("authentik_api:core-transactional-application"), + data={ + "app": { + "name": uid, + "slug": uid, + }, + "provider_model": "authentik_providers_oauth2.oauth2provider", + "provider": { + "name": uid, + "authorization_flow": str(create_test_flow().pk), + "invalidation_flow": str(create_test_flow().pk), + }, + }, + ) + self.assertJSONEqual( + response.content.decode(), + {"provider": {"name": ["State is set to must_created and object exists already"]}}, + ) diff --git a/authentik/crypto/api.py b/authentik/crypto/api.py index 5bd2665347..ed31e82137 100644 --- a/authentik/crypto/api.py +++ b/authentik/crypto/api.py @@ -24,6 +24,7 @@ from rest_framework.fields import ( from rest_framework.filters import OrderingFilter, SearchFilter from rest_framework.request import Request from rest_framework.response import Response +from rest_framework.validators import UniqueValidator from rest_framework.viewsets import ModelViewSet from structlog.stdlib import get_logger @@ -181,7 +182,10 @@ class CertificateDataSerializer(PassiveSerializer): class CertificateGenerationSerializer(PassiveSerializer): """Certificate generation parameters""" - common_name = CharField() + common_name = CharField( + validators=[UniqueValidator(queryset=CertificateKeyPair.objects.all())], + source="name", + ) subject_alt_name = CharField(required=False, allow_blank=True, label=_("Subject-alt name")) validity_days = IntegerField(initial=365) alg = ChoiceField(default=PrivateKeyAlg.RSA, choices=PrivateKeyAlg.choices) @@ -242,11 +246,10 @@ class CertificateKeyPairViewSet(UsedByMixin, ModelViewSet): def generate(self, request: Request) -> Response: """Generate a new, self-signed certificate-key pair""" data = CertificateGenerationSerializer(data=request.data) - if not data.is_valid(): - return Response(data.errors, status=400) + data.is_valid(raise_exception=True) raw_san = data.validated_data.get("subject_alt_name", "") sans = raw_san.split(",") if raw_san != "" else [] - builder = CertificateBuilder(data.validated_data["common_name"]) + builder = CertificateBuilder(data.validated_data["name"]) builder.alg = data.validated_data["alg"] builder.build( subject_alt_names=sans, diff --git a/authentik/crypto/tests.py b/authentik/crypto/tests.py index e2dc755e7c..0e3c886d11 100644 --- a/authentik/crypto/tests.py +++ b/authentik/crypto/tests.py @@ -18,7 +18,7 @@ from authentik.crypto.models import CertificateKeyPair from authentik.crypto.tasks import MANAGED_DISCOVERED, certificate_discovery from authentik.lib.config import CONFIG from authentik.lib.generators import generate_id, generate_key -from authentik.providers.oauth2.models import OAuth2Provider +from authentik.providers.oauth2.models import OAuth2Provider, RedirectURI, RedirectURIMatchingMode class TestCrypto(APITestCase): @@ -89,6 +89,17 @@ class TestCrypto(APITestCase): self.assertIsInstance(ext[1], DNSName) self.assertEqual(ext[1].value, "baz") + def test_builder_api_duplicate(self): + """Test Builder (via API)""" + cert = create_test_cert() + self.client.force_login(create_test_admin_user()) + res = self.client.post( + reverse("authentik_api:certificatekeypair-generate"), + data={"common_name": cert.name, "subject_alt_name": "bar,baz", "validity_days": 3}, + ) + self.assertEqual(res.status_code, 400) + self.assertJSONEqual(res.content, {"common_name": ["This field must be unique."]}) + def test_builder_api_empty_san(self): """Test Builder (via API)""" self.client.force_login(create_test_admin_user()) @@ -263,7 +274,7 @@ class TestCrypto(APITestCase): client_id="test", client_secret=generate_key(), authorization_flow=create_test_flow(), - redirect_uris="http://localhost", + redirect_uris=[RedirectURI(RedirectURIMatchingMode.STRICT, "http://localhost")], signing_key=keypair, ) response = self.client.get( @@ -295,7 +306,7 @@ class TestCrypto(APITestCase): client_id="test", client_secret=generate_key(), authorization_flow=create_test_flow(), - redirect_uris="http://localhost", + redirect_uris=[RedirectURI(RedirectURIMatchingMode.STRICT, "http://localhost")], signing_key=keypair, ) response = self.client.get( diff --git a/authentik/enterprise/providers/rac/api/providers.py b/authentik/enterprise/providers/rac/api/providers.py index 892e081c96..9d0439ee7e 100644 --- a/authentik/enterprise/providers/rac/api/providers.py +++ b/authentik/enterprise/providers/rac/api/providers.py @@ -16,13 +16,28 @@ class RACProviderSerializer(EnterpriseRequiredMixin, ProviderSerializer): class Meta: model = RACProvider - fields = ProviderSerializer.Meta.fields + [ + fields = [ + "pk", + "name", + "authentication_flow", + "authorization_flow", + "property_mappings", + "component", + "assigned_application_slug", + "assigned_application_name", + "assigned_backchannel_application_slug", + "assigned_backchannel_application_name", + "verbose_name", + "verbose_name_plural", + "meta_model_name", "settings", "outpost_set", "connection_expiry", "delete_token_on_disconnect", ] - extra_kwargs = ProviderSerializer.Meta.extra_kwargs + extra_kwargs = { + "authorization_flow": {"required": True, "allow_null": False}, + } class RACProviderViewSet(UsedByMixin, ModelViewSet): diff --git a/authentik/enterprise/providers/rac/templates/if/rac.html b/authentik/enterprise/providers/rac/templates/if/rac.html index ade8bd8b2f..fde3f30ad8 100644 --- a/authentik/enterprise/providers/rac/templates/if/rac.html +++ b/authentik/enterprise/providers/rac/templates/if/rac.html @@ -3,7 +3,7 @@ {% load authentik_core %} {% block head %} -{% versioned_script "dist/enterprise/rac/index-%v.js" %} + diff --git a/authentik/enterprise/providers/rac/tests/test_api.py b/authentik/enterprise/providers/rac/tests/test_api.py new file mode 100644 index 0000000000..da71133e80 --- /dev/null +++ b/authentik/enterprise/providers/rac/tests/test_api.py @@ -0,0 +1,46 @@ +"""Test RAC Provider""" + +from datetime import timedelta +from time import mktime +from unittest.mock import MagicMock, patch + +from django.urls import reverse +from django.utils.timezone import now +from rest_framework.test import APITestCase + +from authentik.core.tests.utils import create_test_admin_user, create_test_flow +from authentik.enterprise.license import LicenseKey +from authentik.enterprise.models import License +from authentik.lib.generators import generate_id + + +class TestAPI(APITestCase): + """Test Provider API""" + + def setUp(self) -> None: + self.user = create_test_admin_user() + + @patch( + "authentik.enterprise.license.LicenseKey.validate", + MagicMock( + return_value=LicenseKey( + aud="", + exp=int(mktime((now() + timedelta(days=3000)).timetuple())), + name=generate_id(), + internal_users=100, + external_users=100, + ) + ), + ) + def test_create(self): + """Test creation of RAC Provider""" + License.objects.create(key=generate_id()) + self.client.force_login(self.user) + response = self.client.post( + reverse("authentik_api:racprovider-list"), + data={ + "name": generate_id(), + "authorization_flow": create_test_flow().pk, + }, + ) + self.assertEqual(response.status_code, 201) diff --git a/authentik/enterprise/providers/rac/tests/test_endpoints_api.py b/authentik/enterprise/providers/rac/tests/test_endpoints_api.py index 4916e74ed5..1ad9b70daf 100644 --- a/authentik/enterprise/providers/rac/tests/test_endpoints_api.py +++ b/authentik/enterprise/providers/rac/tests/test_endpoints_api.py @@ -68,7 +68,6 @@ class TestEndpointsAPI(APITestCase): "name": self.provider.name, "authentication_flow": None, "authorization_flow": None, - "invalidation_flow": None, "property_mappings": [], "connection_expiry": "hours=8", "delete_token_on_disconnect": False, @@ -121,7 +120,6 @@ class TestEndpointsAPI(APITestCase): "name": self.provider.name, "authentication_flow": None, "authorization_flow": None, - "invalidation_flow": None, "property_mappings": [], "component": "ak-provider-rac-form", "assigned_application_slug": self.app.slug, @@ -151,7 +149,6 @@ class TestEndpointsAPI(APITestCase): "name": self.provider.name, "authentication_flow": None, "authorization_flow": None, - "invalidation_flow": None, "property_mappings": [], "component": "ak-provider-rac-form", "assigned_application_slug": self.app.slug, diff --git a/authentik/events/models.py b/authentik/events/models.py index 2f6a5b9d7e..1a21462b2d 100644 --- a/authentik/events/models.py +++ b/authentik/events/models.py @@ -60,7 +60,7 @@ def default_event_duration(): """Default duration an Event is saved. This is used as a fallback when no brand is available""" try: - tenant = get_current_tenant() + tenant = get_current_tenant(only=["event_retention"]) return now() + timedelta_from_string(tenant.event_retention) except Tenant.DoesNotExist: return now() + timedelta(days=365) diff --git a/authentik/flows/templates/if/flow.html b/authentik/flows/templates/if/flow.html index a5b3d7f592..2cf3246db3 100644 --- a/authentik/flows/templates/if/flow.html +++ b/authentik/flows/templates/if/flow.html @@ -18,7 +18,7 @@ window.authentik.flow = { {% endblock %} {% block head %} -{% versioned_script "dist/flow/FlowInterface-%v.js" %} + +
+ ${ + // @ts-expect-error The types for web components are not well-defined } + story() + } +
+
+

Reported value:

+

+                
+ `; + }, + ], +}; + +export default metadata; + +type Story = StoryObj; + +export const Default: Story = { + render: () => + html` `, +}; diff --git a/web/src/admin/admin-settings/stories/AdminSettingsFooterLinks.test.ts b/web/src/admin/admin-settings/stories/AdminSettingsFooterLinks.test.ts new file mode 100644 index 0000000000..8458b77d01 --- /dev/null +++ b/web/src/admin/admin-settings/stories/AdminSettingsFooterLinks.test.ts @@ -0,0 +1,68 @@ +import { render } from "@goauthentik/elements/tests/utils.js"; +import { $, expect } from "@wdio/globals"; + +import { html } from "lit"; + +import "../AdminSettingsFooterLinks.js"; + +describe("ak-admin-settings-footer-link", () => { + afterEach(async () => { + await browser.execute(async () => { + await document.body.querySelector("ak-admin-settings-footer-link")?.remove(); + if (document.body["_$litPart$"]) { + // @ts-expect-error expression of type '"_$litPart$"' is added by Lit + await delete document.body["_$litPart$"]; + } + }); + }); + + it("should render an empty control", async () => { + render(html``); + const link = await $("ak-admin-settings-footer-link"); + await expect(await link.getProperty("isValid")).toStrictEqual(false); + await expect(await link.getProperty("toJson")).toEqual({ name: "", href: "" }); + }); + + it("should not be valid if just a name is filled in", async () => { + render(html``); + const link = await $("ak-admin-settings-footer-link"); + await link.$('input[name="name"]').setValue("foo"); + await expect(await link.getProperty("isValid")).toStrictEqual(false); + await expect(await link.getProperty("toJson")).toEqual({ name: "foo", href: "" }); + }); + + it("should be valid if just a URL is filled in", async () => { + render(html``); + const link = await $("ak-admin-settings-footer-link"); + await link.$('input[name="href"]').setValue("https://foo.com"); + await expect(await link.getProperty("isValid")).toStrictEqual(true); + await expect(await link.getProperty("toJson")).toEqual({ + name: "", + href: "https://foo.com", + }); + }); + + it("should be valid if both are filled in", async () => { + render(html``); + const link = await $("ak-admin-settings-footer-link"); + await link.$('input[name="name"]').setValue("foo"); + await link.$('input[name="href"]').setValue("https://foo.com"); + await expect(await link.getProperty("isValid")).toStrictEqual(true); + await expect(await link.getProperty("toJson")).toEqual({ + name: "foo", + href: "https://foo.com", + }); + }); + + it("should not be valid if the URL is not valid", async () => { + render(html``); + const link = await $("ak-admin-settings-footer-link"); + await link.$('input[name="name"]').setValue("foo"); + await link.$('input[name="href"]').setValue("never://foo.com"); + await expect(await link.getProperty("toJson")).toEqual({ + name: "foo", + href: "never://foo.com", + }); + await expect(await link.getProperty("isValid")).toStrictEqual(false); + }); +}); diff --git a/web/src/admin/applications/ApplicationListPage.ts b/web/src/admin/applications/ApplicationListPage.ts index 5bc688deeb..ad18f185ff 100644 --- a/web/src/admin/applications/ApplicationListPage.ts +++ b/web/src/admin/applications/ApplicationListPage.ts @@ -2,6 +2,7 @@ import "@goauthentik/admin/applications/ApplicationForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import MDApplication from "@goauthentik/docs/add-secure-apps/applications/index.md"; import "@goauthentik/elements/AppIcon.js"; +import { WithBrandConfig } from "@goauthentik/elements/Interface/brandProvider"; import "@goauthentik/elements/Markdown"; import "@goauthentik/elements/buttons/SpinnerButton"; import "@goauthentik/elements/forms/DeleteBulkForm"; @@ -12,7 +13,7 @@ import { TableColumn } from "@goauthentik/elements/table/Table"; import { TablePage } from "@goauthentik/elements/table/TablePage"; import "@patternfly/elements/pf-tooltip/pf-tooltip.js"; -import { msg } from "@lit/localize"; +import { msg, str } from "@lit/localize"; import { CSSResult, TemplateResult, css, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; @@ -40,7 +41,7 @@ export const applicationListStyle = css` `; @customElement("ak-application-list") -export class ApplicationListPage extends TablePage { +export class ApplicationListPage extends WithBrandConfig(TablePage) { searchEnabled(): boolean { return true; } @@ -49,7 +50,7 @@ export class ApplicationListPage extends TablePage { } pageDescription(): string { return msg( - "External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access.", + str`External applications that use ${this.brand.brandingTitle || "authentik"} as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access.`, ); } pageIcon(): string { diff --git a/web/src/admin/applications/wizard/commit/ak-application-wizard-commit-application.ts b/web/src/admin/applications/wizard/commit/ak-application-wizard-commit-application.ts index 9eac8ae988..77fa04d8ff 100644 --- a/web/src/admin/applications/wizard/commit/ak-application-wizard-commit-application.ts +++ b/web/src/admin/applications/wizard/commit/ak-application-wizard-commit-application.ts @@ -28,6 +28,7 @@ import { type TransactionApplicationRequest, type TransactionApplicationResponse, ValidationError, + instanceOfValidationError, } from "@goauthentik/api"; import BasePanel from "../BasePanel"; @@ -77,6 +78,8 @@ const successState: State = { }; type StrictProviderModelEnum = Exclude; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +const isValidationError = (v: any): v is ValidationError => instanceOfValidationError(v); @customElement("ak-application-wizard-commit-application") export class ApplicationWizardCommitApplication extends BasePanel { @@ -152,7 +155,23 @@ export class ApplicationWizardCommitApplication extends BasePanel { }) // eslint-disable-next-line @typescript-eslint/no-explicit-any .catch(async (resolution: any) => { - this.errors = await parseAPIError(resolution); + const errors = await parseAPIError(resolution); + console.log(errors); + + // THIS is a really gross special case; if the user is duplicating the name of an + // existing provider, the error appears on the `app` (!) error object. We have to + // move that to the `provider.name` error field so it shows up in the right place. + if (isValidationError(errors) && Array.isArray(errors?.app?.provider)) { + const providerError = errors.app.provider; + errors.provider = errors.provider ?? {}; + errors.provider.name = providerError; + delete errors.app.provider; + if (Object.keys(errors.app).length === 0) { + delete errors.app; + } + } + + this.errors = errors; this.dispatchWizardUpdate({ update: { ...this.wizard, diff --git a/web/src/admin/groups/RelatedUserList.ts b/web/src/admin/groups/RelatedUserList.ts index 72a9b62a18..ed133ede3d 100644 --- a/web/src/admin/groups/RelatedUserList.ts +++ b/web/src/admin/groups/RelatedUserList.ts @@ -1,9 +1,11 @@ import "@goauthentik/admin/users/ServiceAccountForm"; import "@goauthentik/admin/users/UserActiveForm"; import "@goauthentik/admin/users/UserForm"; +import "@goauthentik/admin/users/UserImpersonateForm"; import "@goauthentik/admin/users/UserPasswordForm"; import "@goauthentik/admin/users/UserResetEmailForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; +import { PFSize } from "@goauthentik/common/enums.js"; import { MessageLevel } from "@goauthentik/common/messages"; import { me } from "@goauthentik/common/users"; import { getRelativeTime } from "@goauthentik/common/utils"; @@ -213,20 +215,22 @@ export class RelatedUserList extends WithBrandConfig(WithCapabilitiesConfig(Tabl ${canImpersonate ? html` - { - return new CoreApi(DEFAULT_CONFIG) - .coreUsersImpersonateCreate({ - id: item.pk, - }) - .then(() => { - window.location.href = "/"; - }); - }} - > - ${msg("Impersonate")} - + + ${msg("Impersonate")} + ${msg("Impersonate")} ${item.username} + + + ` : html``}`, ]; diff --git a/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts b/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts index 61a6ec1843..b2762e7f45 100644 --- a/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts +++ b/web/src/admin/providers/oauth2/OAuth2ProviderForm.ts @@ -1,6 +1,18 @@ import { BaseProviderForm } from "@goauthentik/admin/providers/BaseProviderForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; +import "@goauthentik/components/ak-radio-input"; +import "@goauthentik/components/ak-text-input"; +import "@goauthentik/components/ak-textarea-input"; +import "@goauthentik/elements/ak-array-input.js"; +import "@goauthentik/elements/ak-dual-select/ak-dual-select-dynamic-selected-provider.js"; +import "@goauthentik/elements/ak-dual-select/ak-dual-select-provider.js"; +import "@goauthentik/elements/forms/FormGroup"; +import "@goauthentik/elements/forms/HorizontalFormElement"; +import "@goauthentik/elements/forms/Radio"; +import "@goauthentik/elements/forms/SearchSelect"; +import "@goauthentik/elements/utils/TimeDeltaHelp"; +import { css } from "lit"; import { customElement, state } from "lit/decorators.js"; import { ClientTypeEnum, OAuth2Provider, ProvidersApi } from "@goauthentik/api"; @@ -19,6 +31,14 @@ export class OAuth2ProviderFormPage extends BaseProviderForm { @state() showClientSecret = true; + static get styles() { + return super.styles.concat(css` + ak-array-input { + width: 100%; + } + `); + } + async loadInstance(pk: number): Promise { const provider = await new ProvidersApi(DEFAULT_CONFIG).providersOauth2Retrieve({ id: pk, diff --git a/web/src/admin/providers/oauth2/OAuth2ProviderFormForm.ts b/web/src/admin/providers/oauth2/OAuth2ProviderFormForm.ts index cbe94ce699..2a23390c7d 100644 --- a/web/src/admin/providers/oauth2/OAuth2ProviderFormForm.ts +++ b/web/src/admin/providers/oauth2/OAuth2ProviderFormForm.ts @@ -1,9 +1,14 @@ import "@goauthentik/admin/common/ak-crypto-certificate-search"; import "@goauthentik/admin/common/ak-flow-search/ak-flow-search"; -import { ascii_letters, digits, first, randomString } from "@goauthentik/common/utils"; +import { + IRedirectURIInput, + akOAuthRedirectURIInput, +} from "@goauthentik/admin/providers/oauth2/OAuth2ProviderRedirectURI"; +import { ascii_letters, digits, randomString } from "@goauthentik/common/utils"; import "@goauthentik/components/ak-radio-input"; import "@goauthentik/components/ak-text-input"; import "@goauthentik/components/ak-textarea-input"; +import "@goauthentik/elements/ak-array-input.js"; import "@goauthentik/elements/ak-dual-select/ak-dual-select-dynamic-selected-provider.js"; import "@goauthentik/elements/ak-dual-select/ak-dual-select-provider.js"; import "@goauthentik/elements/forms/FormGroup"; @@ -20,7 +25,9 @@ import { ClientTypeEnum, FlowsInstancesListDesignationEnum, IssuerModeEnum, + MatchingModeEnum, OAuth2Provider, + RedirectURI, SubModeEnum, ValidationError, } from "@goauthentik/api"; @@ -95,13 +102,13 @@ export const issuerModeOptions = [ const redirectUriHelpMessages = [ msg( - "Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows.", + "Valid redirect URIs after a successful authorization flow. Also specify any origins here for Implicit flows.", ), msg( "If no explicit redirect URIs are specified, the first successfully used redirect URI will be saved.", ), msg( - 'To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have.', + 'To allow any redirect URI, set the mode to Regex and the value to ".*". Be aware of the possible security implications this can have.', ), ]; @@ -156,27 +163,36 @@ export function renderForm( - - + ({ matchingMode: MatchingModeEnum.Strict, url: "" })} + .row=${(f?: RedirectURI) => + akOAuthRedirectURIInput({ + ".redirectURI": f, + "style": "width: 100%", + "name": "oauth2-redirect-uri", + } as unknown as IRedirectURIInput)} + > + + ${redirectUriHelp} + @@ -238,7 +254,7 @@ export function renderForm( name="accessCodeValidity" label=${msg("Access code validity")} required - value="${first(provider?.accessCodeValidity, "minutes=1")}" + value="${provider?.accessCodeValidity ?? "minutes=1"}" .bighelp=${html`

${msg("Configure how long access codes are valid for.")}

@@ -248,7 +264,7 @@ export function renderForm( ${msg("Configure how long access tokens are valid for.")} @@ -260,7 +276,7 @@ export function renderForm( ${msg("Configure how long refresh tokens are valid for.")} @@ -296,7 +312,7 @@ export function renderForm( { + static get styles() { + return [ + PFBase, + PFInputGroup, + PFFormControl, + css` + .pf-c-input-group select { + width: 10em; + } + `, + ]; + } + + @property({ type: Object, attribute: false }) + redirectURI: RedirectURI = { + matchingMode: MatchingModeEnum.Strict, + url: "", + }; + + @queryAll(".ak-form-control") + controls?: HTMLInputElement[]; + + json() { + return Object.fromEntries( + Array.from(this.controls ?? []).map((control) => [control.name, control.value]), + ) as unknown as RedirectURI; + } + + get isValid() { + return true; + } + + render() { + const onChange = () => { + this.dispatchEvent(new Event("change", { composed: true, bubbles: true })); + }; + + return html`
+ + +
`; + } +} + +export function akOAuthRedirectURIInput(properties: IRedirectURIInput) { + return html``; +} + +declare global { + interface HTMLElementTagNameMap { + "ak-provider-oauth2-redirect-uri": OAuth2ProviderRedirectURI; + } +} diff --git a/web/src/admin/providers/oauth2/OAuth2ProviderViewPage.ts b/web/src/admin/providers/oauth2/OAuth2ProviderViewPage.ts index 6bba6b3bcc..d1245b4e94 100644 --- a/web/src/admin/providers/oauth2/OAuth2ProviderViewPage.ts +++ b/web/src/admin/providers/oauth2/OAuth2ProviderViewPage.ts @@ -234,7 +234,11 @@ export class OAuth2ProviderViewPage extends AKElement {
- ${this.provider.redirectUris} +
    + ${this.provider.redirectUris.map((ru) => { + return html`
  • ${ru.matchingMode}: ${ru.url}
  • `; + })} +
diff --git a/web/src/admin/providers/proxy/ProxyProviderViewPage.ts b/web/src/admin/providers/proxy/ProxyProviderViewPage.ts index bf68b9ba1b..c7e42a3228 100644 --- a/web/src/admin/providers/proxy/ProxyProviderViewPage.ts +++ b/web/src/admin/providers/proxy/ProxyProviderViewPage.ts @@ -392,9 +392,13 @@ export class ProxyProviderViewPage extends AKElement {
    - ${this.provider.redirectUris.split("\n").map((url) => { - return html`
  • ${url}
  • `; - })} +
      + ${this.provider.redirectUris.map((ru) => { + return html`
    • + ${ru.matchingMode}: ${ru.url} +
    • `; + })} +
diff --git a/web/src/admin/stages/captcha/CaptchaStageForm.ts b/web/src/admin/stages/captcha/CaptchaStageForm.ts index 5bf58079e1..fff23929b6 100644 --- a/web/src/admin/stages/captcha/CaptchaStageForm.ts +++ b/web/src/admin/stages/captcha/CaptchaStageForm.ts @@ -2,6 +2,7 @@ import { BaseStageForm } from "@goauthentik/admin/stages/BaseStageForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; import { first } from "@goauthentik/common/utils"; import "@goauthentik/components/ak-number-input"; +import "@goauthentik/components/ak-switch-input"; import "@goauthentik/elements/forms/FormGroup"; import "@goauthentik/elements/forms/HorizontalFormElement"; @@ -80,6 +81,15 @@ export class CaptchaStageForm extends BaseStageForm { )}

+ + { @property({ attribute: false }) group?: Group; + @property() + defaultPath: string = "users"; + static get defaultUserAttributes(): { [key: string]: unknown } { return {}; } @@ -172,7 +175,7 @@ export class UserForm extends ModelForm { diff --git a/web/src/admin/users/UserImpersonateForm.ts b/web/src/admin/users/UserImpersonateForm.ts new file mode 100644 index 0000000000..756f1ae7ab --- /dev/null +++ b/web/src/admin/users/UserImpersonateForm.ts @@ -0,0 +1,40 @@ +import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; +import "@goauthentik/components/ak-text-input"; +import { Form } from "@goauthentik/elements/forms/Form"; + +import { msg } from "@lit/localize"; +import { TemplateResult, html } from "lit"; +import { customElement, property } from "lit/decorators.js"; + +import { CoreApi, ImpersonationRequest } from "@goauthentik/api"; + +@customElement("ak-user-impersonate-form") +export class UserImpersonateForm extends Form { + @property({ type: Number }) + instancePk?: number; + + async send(data: ImpersonationRequest): Promise { + return new CoreApi(DEFAULT_CONFIG) + .coreUsersImpersonateCreate({ + id: this.instancePk || 0, + impersonationRequest: data, + }) + .then(() => { + window.location.href = "/"; + }); + } + + renderForm(): TemplateResult { + return html``; + } +} + +declare global { + interface HTMLElementTagNameMap { + "ak-user-impersonate-form": UserImpersonateForm; + } +} diff --git a/web/src/admin/users/UserListPage.ts b/web/src/admin/users/UserListPage.ts index 1264c00814..215b8882bc 100644 --- a/web/src/admin/users/UserListPage.ts +++ b/web/src/admin/users/UserListPage.ts @@ -2,6 +2,7 @@ import { AdminInterface } from "@goauthentik/admin/AdminInterface"; import "@goauthentik/admin/users/ServiceAccountForm"; import "@goauthentik/admin/users/UserActiveForm"; import "@goauthentik/admin/users/UserForm"; +import "@goauthentik/admin/users/UserImpersonateForm"; import "@goauthentik/admin/users/UserPasswordForm"; import "@goauthentik/admin/users/UserResetEmailForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; @@ -266,20 +267,22 @@ export class UserListPage extends WithBrandConfig(WithCapabilitiesConfig(TablePa ${canImpersonate ? html` - { - return new CoreApi(DEFAULT_CONFIG) - .coreUsersImpersonateCreate({ - id: item.pk, - }) - .then(() => { - window.location.href = "/"; - }); - }} - > - ${msg("Impersonate")} - + + ${msg("Impersonate")} + ${msg("Impersonate")} ${item.username} + + + ` : html``}`, ]; @@ -392,7 +395,7 @@ export class UserListPage extends WithBrandConfig(WithCapabilitiesConfig(TablePa ${msg("Create")} ${msg("Create User")} - + @@ -414,6 +417,9 @@ export class UserListPage extends WithBrandConfig(WithCapabilitiesConfig(TablePa ) => { + this.activePath = ev.detail.path; + }} > diff --git a/web/src/admin/users/UserViewPage.ts b/web/src/admin/users/UserViewPage.ts index 119ffdb371..80f0ceed17 100644 --- a/web/src/admin/users/UserViewPage.ts +++ b/web/src/admin/users/UserViewPage.ts @@ -5,6 +5,7 @@ import "@goauthentik/admin/users/UserActiveForm"; import "@goauthentik/admin/users/UserApplicationTable"; import "@goauthentik/admin/users/UserChart"; import "@goauthentik/admin/users/UserForm"; +import "@goauthentik/admin/users/UserImpersonateForm"; import { renderRecoveryEmailRequest, requestRecoveryLink, @@ -208,26 +209,22 @@ export class UserViewPage extends WithCapabilitiesConfig(AKElement) { ${canImpersonate ? html` - { - return new CoreApi(DEFAULT_CONFIG) - .coreUsersImpersonateCreate({ - id: user.pk, - }) - .then(() => { - window.location.href = "/"; - }); - }} - > - - ${msg("Impersonate")} - - + + ${msg("Impersonate")} + ${msg("Impersonate")} ${user.username} + + + ` : nothing} `; diff --git a/web/src/common/constants.ts b/web/src/common/constants.ts index 8dd39b249d..6576af3e47 100644 --- a/web/src/common/constants.ts +++ b/web/src/common/constants.ts @@ -3,7 +3,7 @@ export const SUCCESS_CLASS = "pf-m-success"; export const ERROR_CLASS = "pf-m-danger"; export const PROGRESS_CLASS = "pf-m-in-progress"; export const CURRENT_CLASS = "pf-m-current"; -export const VERSION = "2024.10.0"; +export const VERSION = "2024.10.4"; export const TITLE_DEFAULT = "authentik"; export const ROUTE_SEPARATOR = ";"; diff --git a/web/src/common/purify.ts b/web/src/common/purify.ts index 78fcb61b5d..38f13f635b 100644 --- a/web/src/common/purify.ts +++ b/web/src/common/purify.ts @@ -10,10 +10,14 @@ export const DOM_PURIFY_STRICT: DOMPurify.Config = { ALLOWED_TAGS: ["#text"], }; +export async function renderStatic(input: TemplateResult): Promise { + return await collectResult(render(input)); +} + export function purify(input: TemplateResult): TemplateResult { return html`${until( (async () => { - const rendered = await collectResult(render(input)); + const rendered = await renderStatic(input); const purified = DOMPurify.sanitize(rendered); return html`${unsafeHTML(purified)}`; })(), diff --git a/web/src/elements/AkControlElement.ts b/web/src/elements/AkControlElement.ts index 33dc7f2d86..984d5504e8 100644 --- a/web/src/elements/AkControlElement.ts +++ b/web/src/elements/AkControlElement.ts @@ -8,13 +8,21 @@ import { AKElement } from "./Base"; * extracting the value. * */ -export class AkControlElement extends AKElement { +export class AkControlElement extends AKElement { constructor() { super(); this.dataset.akControl = "true"; } - json() { + json(): T { throw new Error("Controllers using this protocol must override this method"); } + + get toJson(): T { + return this.json(); + } + + get isValid(): boolean { + return true; + } } diff --git a/web/src/elements/TreeView.ts b/web/src/elements/TreeView.ts index fc31040d1f..5fff2d8492 100644 --- a/web/src/elements/TreeView.ts +++ b/web/src/elements/TreeView.ts @@ -89,6 +89,9 @@ export class TreeViewNode extends AKElement { new CustomEvent(EVENT_REFRESH, { bubbles: true, composed: true, + detail: { + path: this.fullPath, + }, }), ); }} diff --git a/web/src/elements/ak-array-input.ts b/web/src/elements/ak-array-input.ts new file mode 100644 index 0000000000..86addde310 --- /dev/null +++ b/web/src/elements/ak-array-input.ts @@ -0,0 +1,173 @@ +import { AkControlElement } from "@goauthentik/elements/AkControlElement"; +import { bound } from "@goauthentik/elements/decorators/bound"; +import { type Spread } from "@goauthentik/elements/types"; +import { randomId } from "@goauthentik/elements/utils/randomId.js"; +import { spread } from "@open-wc/lit-helpers"; + +import { msg } from "@lit/localize"; +import { TemplateResult, css, html, nothing } from "lit"; +import { customElement, property, queryAll } from "lit/decorators.js"; +import { repeat } from "lit/directives/repeat.js"; + +import PFButton from "@patternfly/patternfly/components/Button/button.css"; +import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css"; +import PFInputGroup from "@patternfly/patternfly/components/InputGroup/input-group.css"; +import PFBase from "@patternfly/patternfly/patternfly-base.css"; + +type InputCell = (el: T) => TemplateResult | typeof nothing; + +export interface IArrayInput { + row: InputCell; + newItem: () => T; + items: T[]; + validate?: boolean; + validator?: (_: T[]) => boolean; +} + +type Keyed = { key: string; item: T }; + +@customElement("ak-array-input") +export class ArrayInput extends AkControlElement implements IArrayInput { + static get styles() { + return [ + PFBase, + PFButton, + PFInputGroup, + PFFormControl, + css` + select.pf-c-form-control { + width: 100px; + } + .pf-c-input-group { + padding-bottom: 0; + } + .ak-plus-button { + display: flex; + justify-content: flex-end; + flex-direction: row; + } + .ak-input-group { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + } + `, + ]; + } + + @property({ type: Boolean }) + validate = false; + + @property({ type: Object, attribute: false }) + validator?: (_: T[]) => boolean; + + @property({ type: Array, attribute: false }) + row!: InputCell; + + @property({ type: Object, attribute: false }) + newItem!: () => T; + + _items: Keyed[] = []; + + // This magic creates a semi-reliable key on which Lit's `repeat` directive can control its + // interaction. Without it, we get undefined behavior in the re-rendering of the array. + @property({ type: Array, attribute: false }) + set items(items: T[]) { + const olditems = new Map( + (this._items ?? []).map((key, item) => [JSON.stringify(item), key]), + ); + const newitems = items.map((item) => ({ + item, + key: olditems.get(JSON.stringify(item))?.key ?? randomId(), + })); + this._items = newitems; + } + + get items() { + return this._items.map(({ item }) => item); + } + + @queryAll("div.ak-input-group") + inputGroups?: HTMLDivElement[]; + + json() { + if (!this.inputGroups) { + throw new Error("Could not find input group collection in ak-array-input"); + } + return this.items; + } + + get isValid() { + if (!this.validate) { + return true; + } + + const oneIsValid = (g: HTMLDivElement) => + g.querySelector>("[name]")?.isValid ?? true; + const allAreValid = Array.from(this.inputGroups ?? []).every(oneIsValid); + return allAreValid && (this.validator ? this.validator(this.items) : true); + } + + itemsFromDom(): T[] { + return Array.from(this.inputGroups ?? []) + .map( + (group) => + group.querySelector>("[name]")?.json() ?? + null, + ) + .filter((i) => i !== null); + } + + sendChange() { + this.dispatchEvent(new Event("change", { composed: true, bubbles: true })); + } + + @bound + onChange() { + this.items = this.itemsFromDom(); + this.sendChange(); + } + + @bound + addNewGroup() { + this.items = [...this.itemsFromDom(), this.newItem()]; + this.sendChange(); + } + + renderDeleteButton(idx: number) { + const deleteOneGroup = () => { + this.items = [...this.items.slice(0, idx), ...this.items.slice(idx + 1)]; + this.sendChange(); + }; + + return html``; + } + + render() { + return html`
+ ${repeat( + this._items, + (item: Keyed) => item.key, + (item: Keyed, idx) => + html`
this.onChange()}> + ${this.row(item.item)}${this.renderDeleteButton(idx)} +
`, + )} + +
`; + } +} + +export function akArrayInput(properties: IArrayInput) { + return html``; +} + +declare global { + interface HTMLElementTagNameMap { + "ak-array-input": ArrayInput; + } +} diff --git a/web/src/elements/ak-locale-context/definitions.ts b/web/src/elements/ak-locale-context/definitions.ts index 76eafccf6e..8d22a024bc 100644 --- a/web/src/elements/ak-locale-context/definitions.ts +++ b/web/src/elements/ak-locale-context/definitions.ts @@ -42,18 +42,19 @@ const debug: LocaleRow = [ // prettier-ignore const LOCALE_TABLE: LocaleRow[] = [ + ["de", /^de([_-]|$)/i, () => msg("German"), async () => await import("@goauthentik/locales/de")], ["en", /^en([_-]|$)/i, () => msg("English"), async () => await import("@goauthentik/locales/en")], ["es", /^es([_-]|$)/i, () => msg("Spanish"), async () => await import("@goauthentik/locales/es")], - ["de", /^de([_-]|$)/i, () => msg("German"), async () => await import("@goauthentik/locales/de")], ["fr", /^fr([_-]|$)/i, () => msg("French"), async () => await import("@goauthentik/locales/fr")], + ["it", /^it([_-]|$)/i, () => msg("Italian"), async () => await import("@goauthentik/locales/it")], ["ko", /^ko([_-]|$)/i, () => msg("Korean"), async () => await import("@goauthentik/locales/ko")], ["nl", /^nl([_-]|$)/i, () => msg("Dutch"), async () => await import("@goauthentik/locales/nl")], ["pl", /^pl([_-]|$)/i, () => msg("Polish"), async () => await import("@goauthentik/locales/pl")], ["ru", /^ru([_-]|$)/i, () => msg("Russian"), async () => await import("@goauthentik/locales/ru")], ["tr", /^tr([_-]|$)/i, () => msg("Turkish"), async () => await import("@goauthentik/locales/tr")], - ["zh-Hant", /^zh[_-](HK|Hant)/i, () => msg("Chinese (traditional)"), async () => await import("@goauthentik/locales/zh-Hant")], ["zh_TW", /^zh[_-]TW$/i, () => msg("Taiwanese Mandarin"), async () => await import("@goauthentik/locales/zh_TW")], ["zh-Hans", /^zh(\b|_)/i, () => msg("Chinese (simplified)"), async () => await import("@goauthentik/locales/zh-Hans")], + ["zh-Hant", /^zh[_-](HK|Hant)/i, () => msg("Chinese (traditional)"), async () => await import("@goauthentik/locales/zh-Hant")], debug ]; diff --git a/web/src/elements/forms/Form.ts b/web/src/elements/forms/Form.ts index 10609d5208..08ca5c2982 100644 --- a/web/src/elements/forms/Form.ts +++ b/web/src/elements/forms/Form.ts @@ -35,7 +35,7 @@ export interface KeyUnknown { // Literally the only field `assignValue()` cares about. type HTMLNamedElement = Pick; -type AkControlElement = HTMLInputElement & { json: () => string | string[] }; +export type AkControlElement = HTMLInputElement & { json: () => T }; /** * Recursively assign `value` into `json` while interpreting the dot-path of `element.name` diff --git a/web/src/elements/forms/HorizontalFormElement.ts b/web/src/elements/forms/HorizontalFormElement.ts index 5e4b9bcc6e..8d995a48e7 100644 --- a/web/src/elements/forms/HorizontalFormElement.ts +++ b/web/src/elements/forms/HorizontalFormElement.ts @@ -2,7 +2,7 @@ import { convertToSlug } from "@goauthentik/common/utils"; import { AKElement } from "@goauthentik/elements/Base"; import { FormGroup } from "@goauthentik/elements/forms/FormGroup"; -import { msg } from "@lit/localize"; +import { msg, str } from "@lit/localize"; import { CSSResult, css } from "lit"; import { TemplateResult, html } from "lit"; import { customElement, property } from "lit/decorators.js"; @@ -33,7 +33,7 @@ import PFBase from "@patternfly/patternfly/patternfly-base.css"; * where the field isn't available for the user to view unless they explicitly request to be able * to see the content; otherwise, a dead password field is shown. There are 10 uses of this * feature. - * + * */ const isAkControl = (el: unknown): boolean => @@ -86,7 +86,7 @@ export class HorizontalFormElement extends AKElement { writeOnlyActivated = false; @property({ attribute: false }) - errorMessages: string[] = []; + errorMessages: string[] | string[][] = []; @property({ type: Boolean }) slugMode = false; @@ -183,6 +183,16 @@ export class HorizontalFormElement extends AKElement {

` : html``} ${this.errorMessages.map((message) => { + if (message instanceof Object) { + return html`${Object.entries(message).map(([field, errMsg]) => { + return html`

+ ${msg(str`${field}: ${errMsg}`)} +

`; + })}`; + } return html`

${message}

`; diff --git a/web/src/elements/forms/SearchSelect/SearchSelect.ts b/web/src/elements/forms/SearchSelect/SearchSelect.ts index 662e70b0e1..daf292a2f6 100644 --- a/web/src/elements/forms/SearchSelect/SearchSelect.ts +++ b/web/src/elements/forms/SearchSelect/SearchSelect.ts @@ -4,7 +4,6 @@ import { groupBy } from "@goauthentik/common/utils"; import { AkControlElement } from "@goauthentik/elements/AkControlElement.js"; import { PreventFormSubmit } from "@goauthentik/elements/forms/helpers"; import type { GroupedOptions, SelectGroup, SelectOption } from "@goauthentik/elements/types.js"; -import { CustomEmitterElement } from "@goauthentik/elements/utils/eventEmitter"; import { randomId } from "@goauthentik/elements/utils/randomId.js"; import { msg } from "@lit/localize"; @@ -32,10 +31,7 @@ export interface ISearchSelectBase { emptyOption: string; } -export class SearchSelectBase - extends CustomEmitterElement(AkControlElement) - implements ISearchSelectBase -{ +export class SearchSelectBase extends AkControlElement implements ISearchSelectBase { static get styles() { return [PFBase]; } @@ -54,7 +50,7 @@ export class SearchSelectBase // A function which returns the currently selected object's primary key, used for serialization // into forms. - value!: (element: T | undefined) => unknown; + value!: (element: T | undefined) => string; // A function passed to this object that determines an object in the collection under search // should be automatically selected. Only used when the search itself is responsible for @@ -105,7 +101,7 @@ export class SearchSelectBase @state() error?: APIErrorTypes; - public toForm(): unknown { + public toForm(): string { if (!this.objects) { throw new PreventFormSubmit(msg("Loading options...")); } @@ -116,6 +112,16 @@ export class SearchSelectBase return this.toForm(); } + protected dispatchChangeEvent(value: T | undefined) { + this.dispatchEvent( + new CustomEvent("ak-change", { + composed: true, + bubbles: true, + detail: { value }, + }), + ); + } + public async updateData() { if (this.isFetchingData) { return Promise.resolve(); @@ -127,7 +133,7 @@ export class SearchSelectBase objects.forEach((obj) => { if (this.selected && this.selected(obj, objects || [])) { this.selectedObject = obj; - this.dispatchCustomEvent("ak-change", { value: this.selectedObject }); + this.dispatchChangeEvent(this.selectedObject); } }); this.objects = objects; @@ -165,7 +171,7 @@ export class SearchSelectBase this.query = value; this.updateData()?.then(() => { - this.dispatchCustomEvent("ak-change", { value: this.selectedObject }); + this.dispatchChangeEvent(this.selectedObject); }); } @@ -173,7 +179,7 @@ export class SearchSelectBase const value = (event.target as SearchSelectView).value; if (value === undefined) { this.selectedObject = undefined; - this.dispatchCustomEvent("ak-change", { value: undefined }); + this.dispatchChangeEvent(undefined); return; } const selected = (this.objects ?? []).find((obj) => `${this.value(obj)}` === value); @@ -181,7 +187,7 @@ export class SearchSelectBase console.warn(`ak-search-select: No corresponding object found for value (${value}`); } this.selectedObject = selected; - this.dispatchCustomEvent("ak-change", { value: this.selectedObject }); + this.dispatchChangeEvent(this.selectedObject); } private getGroupedItems(): GroupedOptions { diff --git a/web/src/elements/forms/SearchSelect/ak-search-select-ez.ts b/web/src/elements/forms/SearchSelect/ak-search-select-ez.ts index 1f55bb32c8..9d0c5524b5 100644 --- a/web/src/elements/forms/SearchSelect/ak-search-select-ez.ts +++ b/web/src/elements/forms/SearchSelect/ak-search-select-ez.ts @@ -7,7 +7,7 @@ export interface ISearchSelectApi { fetchObjects: (query?: string) => Promise; renderElement: (element: T) => string; renderDescription?: (element: T) => string | TemplateResult; - value: (element: T | undefined) => unknown; + value: (element: T | undefined) => string; selected?: (element: T, elements: T[]) => boolean; groupBy?: (items: T[]) => [string, T[]][]; } diff --git a/web/src/elements/forms/SearchSelect/ak-search-select.ts b/web/src/elements/forms/SearchSelect/ak-search-select.ts index 284ae02098..52af07c266 100644 --- a/web/src/elements/forms/SearchSelect/ak-search-select.ts +++ b/web/src/elements/forms/SearchSelect/ak-search-select.ts @@ -9,7 +9,7 @@ export interface ISearchSelect extends ISearchSelectBase { fetchObjects: (query?: string) => Promise; renderElement: (element: T) => string; renderDescription?: (element: T) => string | TemplateResult; - value: (element: T | undefined) => unknown; + value: (element: T | undefined) => string; selected?: (element: T, elements: T[]) => boolean; groupBy: (items: T[]) => [string, T[]][]; } @@ -69,7 +69,7 @@ export class SearchSelect extends SearchSelectBase implements ISearchSelec // A function which returns the currently selected object's primary key, used for serialization // into forms. @property({ attribute: false }) - value!: (element: T | undefined) => unknown; + value!: (element: T | undefined) => string; // A function passed to this object that determines an object in the collection under search // should be automatically selected. Only used when the search itself is responsible for diff --git a/web/src/elements/forms/SearchSelect/stories/ak-search-select.stories.ts b/web/src/elements/forms/SearchSelect/stories/ak-search-select.stories.ts index bcc3f59a6f..8ff000fb23 100644 --- a/web/src/elements/forms/SearchSelect/stories/ak-search-select.stories.ts +++ b/web/src/elements/forms/SearchSelect/stories/ak-search-select.stories.ts @@ -92,7 +92,7 @@ export const GroupedAndEz = () => { const config: ISearchSelectApi = { fetchObjects: getSamples, renderElement: (sample: Sample) => sample.name, - value: (sample: Sample | undefined) => sample?.pk, + value: (sample: Sample | undefined) => sample?.pk ?? "", groupBy: (samples: Sample[]) => groupBy(samples, (sample: Sample) => sample.season[0] ?? ""), }; diff --git a/web/src/elements/stories/ak-array-input.stories.ts b/web/src/elements/stories/ak-array-input.stories.ts new file mode 100644 index 0000000000..c48d802df9 --- /dev/null +++ b/web/src/elements/stories/ak-array-input.stories.ts @@ -0,0 +1,96 @@ +import "@goauthentik/admin/admin-settings/AdminSettingsFooterLinks.js"; +import { FooterLinkInput } from "@goauthentik/admin/admin-settings/AdminSettingsFooterLinks.js"; +import "@goauthentik/elements/messages/MessageContainer"; +import { Meta, StoryObj, WebComponentsRenderer } from "@storybook/web-components"; +import { DecoratorFunction } from "storybook/internal/types"; + +import { html } from "lit"; + +import { FooterLink } from "@goauthentik/api"; + +import "../ak-array-input.js"; +import { IArrayInput } from "../ak-array-input.js"; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type Decorator = DecoratorFunction; + +const metadata: Meta> = { + title: "Elements / Array Input", + component: "ak-array-input", + parameters: { + docs: { + description: { + component: + "A table input object, in which multiple rows of related inputs can be grouped.", + }, + }, + }, + decorators: [ + (story: Decorator) => { + window.setTimeout(() => { + const menu = document.getElementById("ak-array-input"); + if (!menu) { + throw new Error("Test was not initialized correctly."); + } + const messages = document.getElementById("reported-value"); + menu.addEventListener("change", (event: Event) => { + if (!event?.target) { + return; + } + const target = event.target as FooterLinkInput; + messages!.innerText = `${JSON.stringify(target.json(), null, 2)}\n\nValid: ${target.isValid ? "Yes" : "No"}`; + }); + }, 250); + + return html`
+ +
+

Story:

+ ${ + // @ts-expect-error The types for web components are not well-defined in Storybook yet } + story() + } +
+

Reported value:

+

+                    
+
+
`; + }, + ], +}; + +export default metadata; + +type Story = StoryObj; + +const items: FooterLink[] = [ + { name: "authentik", href: "https://goauthentik.io" }, + { name: "authentik docs", href: "https://docs.goauthentik.io/docs/" }, +]; + +export const Default: Story = { + render: () => + html` ({ name: "", href: "" })} + .row=${(f?: FooterLink) => + html` + `} + validate + >`, +}; diff --git a/web/src/elements/tests/ak-array-input.test.ts b/web/src/elements/tests/ak-array-input.test.ts new file mode 100644 index 0000000000..214178ff87 --- /dev/null +++ b/web/src/elements/tests/ak-array-input.test.ts @@ -0,0 +1,55 @@ +import "@goauthentik/admin/admin-settings/AdminSettingsFooterLinks.js"; +import { render } from "@goauthentik/elements/tests/utils.js"; +import { $, expect } from "@wdio/globals"; + +import { html } from "lit"; + +import { FooterLink } from "@goauthentik/api"; + +import "../ak-array-input.js"; + +const sampleItems: FooterLink[] = [ + { name: "authentik", href: "https://goauthentik.io" }, + { name: "authentik docs", href: "https://docs.goauthentik.io/docs/" }, +]; + +describe("ak-array-input", () => { + afterEach(async () => { + await browser.execute(async () => { + await document.body.querySelector("ak-array-input")?.remove(); + if (document.body["_$litPart$"]) { + // @ts-expect-error expression of type '"_$litPart$"' is added by Lit + await delete document.body["_$litPart$"]; + } + }); + }); + + const component = (items: FooterLink[] = []) => + render( + html` ({ name: "", href: "" })} + .row=${(f?: FooterLink) => + html` + `} + validate + >`, + ); + + it("should render an empty control", async () => { + await component(); + const link = await $("ak-array-input"); + await browser.pause(500); + await expect(await link.getProperty("isValid")).toStrictEqual(true); + await expect(await link.getProperty("toJson")).toEqual([]); + }); + + it("should render a populated component", async () => { + await component(sampleItems); + const link = await $("ak-array-input"); + await browser.pause(500); + await expect(await link.getProperty("isValid")).toStrictEqual(true); + await expect(await link.getProperty("toJson")).toEqual(sampleItems); + }); +}); diff --git a/web/src/flow/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts b/web/src/flow/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts index 3bbb2e9892..5277f45d72 100644 --- a/web/src/flow/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts +++ b/web/src/flow/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts @@ -107,7 +107,7 @@ export class AuthenticatorValidateStageWebAuthn extends BaseDeviceStage< ?loading="${this.authenticating}" header=${this.authenticating ? msg("Authenticating...") - : this.errorMessage || msg("Failed to authenticate")} + : this.errorMessage || msg("Loading")} icon="fa-times" > diff --git a/web/src/flow/stages/captcha/CaptchaStage.stories.ts b/web/src/flow/stages/captcha/CaptchaStage.stories.ts index a6196d9766..bd4eb77916 100644 --- a/web/src/flow/stages/captcha/CaptchaStage.stories.ts +++ b/web/src/flow/stages/captcha/CaptchaStage.stories.ts @@ -10,7 +10,7 @@ import "../../../stories/flow-interface"; import "./CaptchaStage"; export default { - title: "Flow / Stages / CaptchaStage", + title: "Flow / Stages / Captcha", }; export const LoadingNoChallenge = () => { @@ -25,92 +25,60 @@ export const LoadingNoChallenge = () => { `; }; -export const ChallengeGoogleReCaptcha: StoryObj = { - render: ({ theme, challenge }) => { - return html` - `; - }, - args: { - theme: "automatic", - challenge: { - pendingUser: "foo", - pendingUserAvatar: "https://picsum.photos/64", - jsUrl: "https://www.google.com/recaptcha/api.js", - siteKey: "6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhI", - } as CaptchaChallenge, - }, - argTypes: { - theme: { - options: [UiThemeEnum.Automatic, UiThemeEnum.Light, UiThemeEnum.Dark], - control: { - type: "select", +function captchaFactory(challenge: CaptchaChallenge): StoryObj { + return { + render: ({ theme, challenge }) => { + return html` + `; + }, + args: { + theme: "automatic", + challenge: challenge, + }, + argTypes: { + theme: { + options: [UiThemeEnum.Automatic, UiThemeEnum.Light, UiThemeEnum.Dark], + control: { + type: "select", + }, }, }, - }, -}; + }; +} -export const ChallengeHCaptcha: StoryObj = { - render: ({ theme, challenge }) => { - return html` - `; - }, - args: { - theme: "automatic", - challenge: { - pendingUser: "foo", - pendingUserAvatar: "https://picsum.photos/64", - jsUrl: "https://js.hcaptcha.com/1/api.js", - siteKey: "10000000-ffff-ffff-ffff-000000000001", - } as CaptchaChallenge, - }, - argTypes: { - theme: { - options: [UiThemeEnum.Automatic, UiThemeEnum.Light, UiThemeEnum.Dark], - control: { - type: "select", - }, - }, - }, -}; +export const ChallengeHCaptcha = captchaFactory({ + pendingUser: "foo", + pendingUserAvatar: "https://picsum.photos/64", + jsUrl: "https://js.hcaptcha.com/1/api.js", + siteKey: "10000000-ffff-ffff-ffff-000000000001", + interactive: true, +} as CaptchaChallenge); -export const ChallengeTurnstile: StoryObj = { - render: ({ theme, challenge }) => { - return html` - `; - }, - args: { - theme: "automatic", - challenge: { - pendingUser: "foo", - pendingUserAvatar: "https://picsum.photos/64", - jsUrl: "https://challenges.cloudflare.com/turnstile/v0/api.js", - siteKey: "1x00000000000000000000BB", - } as CaptchaChallenge, - }, - argTypes: { - theme: { - options: [UiThemeEnum.Automatic, UiThemeEnum.Light, UiThemeEnum.Dark], - control: { - type: "select", - }, - }, - }, -}; +// https://developers.cloudflare.com/turnstile/troubleshooting/testing/ +export const ChallengeTurnstileVisible = captchaFactory({ + pendingUser: "foo", + pendingUserAvatar: "https://picsum.photos/64", + jsUrl: "https://challenges.cloudflare.com/turnstile/v0/api.js", + siteKey: "1x00000000000000000000AA", + interactive: true, +} as CaptchaChallenge); +export const ChallengeTurnstileInvisible = captchaFactory({ + pendingUser: "foo", + pendingUserAvatar: "https://picsum.photos/64", + jsUrl: "https://challenges.cloudflare.com/turnstile/v0/api.js", + siteKey: "1x00000000000000000000BB", + interactive: true, +} as CaptchaChallenge); +export const ChallengeTurnstileForce = captchaFactory({ + pendingUser: "foo", + pendingUserAvatar: "https://picsum.photos/64", + jsUrl: "https://challenges.cloudflare.com/turnstile/v0/api.js", + siteKey: "3x00000000000000000000FF", + interactive: true, +} as CaptchaChallenge); diff --git a/web/src/flow/stages/captcha/CaptchaStage.ts b/web/src/flow/stages/captcha/CaptchaStage.ts index af37ab383c..24a19a6dab 100644 --- a/web/src/flow/stages/captcha/CaptchaStage.ts +++ b/web/src/flow/stages/captcha/CaptchaStage.ts @@ -1,16 +1,17 @@ /// +import { renderStatic } from "@goauthentik/common/purify"; import "@goauthentik/elements/EmptyState"; import "@goauthentik/elements/forms/FormElement"; +import { randomId } from "@goauthentik/elements/utils/randomId"; import "@goauthentik/flow/FormStatic"; import { BaseStage } from "@goauthentik/flow/stages/base"; import type { TurnstileObject } from "turnstile-types"; import { msg } from "@lit/localize"; -import { CSSResult, PropertyValues, html } from "lit"; +import { CSSResult, PropertyValues, TemplateResult, css, html } from "lit"; import { customElement, property, state } from "lit/decorators.js"; import { ifDefined } from "lit/directives/if-defined.js"; -import PFButton from "@patternfly/patternfly/components/Button/button.css"; import PFForm from "@patternfly/patternfly/components/Form/form.css"; import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css"; import PFLogin from "@patternfly/patternfly/components/Login/login.css"; @@ -24,12 +25,22 @@ interface TurnstileWindow extends Window { } type TokenHandler = (token: string) => void; -const captchaContainerID = "captcha-container"; - @customElement("ak-stage-captcha") export class CaptchaStage extends BaseStage { static get styles(): CSSResult[] { - return [PFBase, PFLogin, PFForm, PFFormControl, PFTitle, PFButton]; + return [ + PFBase, + PFLogin, + PFForm, + PFFormControl, + PFTitle, + css` + iframe { + width: 100%; + height: 73px; /* tmp */ + } + `, + ]; } handlers = [this.handleGReCaptcha, this.handleHCaptcha, this.handleTurnstile]; @@ -38,14 +49,17 @@ export class CaptchaStage extends BaseStage { this.host.submit({ component: "ak-stage-captcha", token }); @@ -53,8 +67,70 @@ export class CaptchaStage extends BaseStage, + ) { + const msg = ev.data; + if (msg.source !== "goauthentik.io" || msg.context !== "flow-executor") { + return; + } + if (msg.message !== "captcha") { + return; + } + this.onTokenChange(msg.token); + } + + async renderFrame(captchaElement: TemplateResult) { + this.captchaFrame.contentWindow?.document.open(); + this.captchaFrame.contentWindow?.document.write( + await renderStatic( + html` + + + ${captchaElement} + + + + `, + ), + ); + this.captchaFrame.contentWindow?.document.close(); } updated(changedProperties: PropertyValues) { @@ -64,15 +140,15 @@ export class CaptchaStage extends BaseStage { + this.scriptElement.onload = async () => { console.debug("authentik/stages/captcha: script loaded"); let found = false; let lastError = undefined; - this.handlers.forEach((handler) => { + this.handlers.forEach(async (handler) => { let handlerFound = false; try { console.debug(`authentik/stages/captcha[${handler.name}]: trying handler`); - handlerFound = handler.apply(this); + handlerFound = await handler.apply(this); if (handlerFound) { console.debug( `authentik/stages/captcha[${handler.name}]: handler succeeded`, @@ -96,51 +172,79 @@ export class CaptchaStage extends BaseStage el.remove()); document.head.appendChild(this.scriptElement); + if (!this.challenge.interactive) { + document.body.appendChild(this.captchaDocumentContainer); + } } } - handleGReCaptcha(): boolean { + async handleGReCaptcha(): Promise { if (!Object.hasOwn(window, "grecaptcha")) { return false; } - this.captchaInteractive = false; - document.body.appendChild(this.captchaContainer); - grecaptcha.ready(() => { - const captchaId = grecaptcha.render(this.captchaContainer, { + if (this.challenge.interactive) { + this.renderFrame( + html`
`, + ); + } else { + grecaptcha.ready(() => { + const captchaId = grecaptcha.render(this.captchaDocumentContainer, { + sitekey: this.challenge.siteKey, + callback: this.onTokenChange, + size: "invisible", + }); + grecaptcha.execute(captchaId); + }); + } + return true; + } + + async handleHCaptcha(): Promise { + if (!Object.hasOwn(window, "hcaptcha")) { + return false; + } + if (this.challenge.interactive) { + this.renderFrame( + html`
`, + ); + } else { + const captchaId = hcaptcha.render(this.captchaDocumentContainer, { sitekey: this.challenge.siteKey, callback: this.onTokenChange, size: "invisible", }); - grecaptcha.execute(captchaId); - }); - return true; - } - - handleHCaptcha(): boolean { - if (!Object.hasOwn(window, "hcaptcha")) { - return false; + hcaptcha.execute(captchaId); } - this.captchaInteractive = false; - document.body.appendChild(this.captchaContainer); - const captchaId = hcaptcha.render(this.captchaContainer, { - sitekey: this.challenge.siteKey, - callback: this.onTokenChange, - size: "invisible", - }); - hcaptcha.execute(captchaId); return true; } - handleTurnstile(): boolean { + async handleTurnstile(): Promise { if (!Object.hasOwn(window, "turnstile")) { return false; } - this.captchaInteractive = false; - document.body.appendChild(this.captchaContainer); - (window as unknown as TurnstileWindow).turnstile.render(`#${captchaContainerID}`, { - sitekey: this.challenge.siteKey, - callback: this.onTokenChange, - }); + if (this.challenge.interactive) { + this.renderFrame( + html`
`, + ); + } else { + (window as unknown as TurnstileWindow).turnstile.render(this.captchaDocumentContainer, { + sitekey: this.challenge.siteKey, + callback: this.onTokenChange, + }); + } return true; } @@ -148,13 +252,19 @@ export class CaptchaStage extends BaseStage `; } - if (this.captchaInteractive) { - return html`${this.captchaContainer}`; + if (this.challenge.interactive) { + return html`${this.captchaFrame}`; } return html``; } render() { + if (this.embedded) { + if (!this.challenge.interactive) { + return html``; + } + return this.renderBody(); + } if (!this.challenge) { return html` `; } diff --git a/web/src/flow/stages/identification/IdentificationStage.stories.ts b/web/src/flow/stages/identification/IdentificationStage.stories.ts new file mode 100644 index 0000000000..af34e5b2ad --- /dev/null +++ b/web/src/flow/stages/identification/IdentificationStage.stories.ts @@ -0,0 +1,87 @@ +import type { StoryObj } from "@storybook/web-components"; + +import { html } from "lit"; + +import "@patternfly/patternfly/components/Login/login.css"; + +import { FlowDesignationEnum, IdentificationChallenge, UiThemeEnum } from "@goauthentik/api"; + +import "../../../stories/flow-interface"; +import "./IdentificationStage"; + +export default { + title: "Flow / Stages / Identification", +}; + +export const LoadingNoChallenge = () => { + return html` + + `; +}; + +function identificationFactory(challenge: IdentificationChallenge): StoryObj { + return { + render: ({ theme, challenge }) => { + return html` + `; + }, + args: { + theme: "automatic", + challenge: challenge, + }, + argTypes: { + theme: { + options: [UiThemeEnum.Automatic, UiThemeEnum.Light, UiThemeEnum.Dark], + control: { + type: "select", + }, + }, + }, + }; +} + +export const ChallengeDefault = identificationFactory({ + userFields: ["username"], + passwordFields: false, + flowDesignation: FlowDesignationEnum.Authentication, + primaryAction: "Login", + showSourceLabels: false, + // jsUrl: "https://js.hcaptcha.com/1/api.js", + // siteKey: "10000000-ffff-ffff-ffff-000000000001", + // interactive: true, +}); + +// https://developers.cloudflare.com/turnstile/troubleshooting/testing/ +export const ChallengeCaptchaTurnstileVisible = identificationFactory({ + userFields: ["username"], + passwordFields: false, + flowDesignation: FlowDesignationEnum.Authentication, + primaryAction: "Login", + showSourceLabels: false, + flowInfo: { + layout: "stacked", + cancelUrl: "", + title: "Foo", + }, + captchaStage: { + pendingUser: "", + pendingUserAvatar: "", + jsUrl: "https://challenges.cloudflare.com/turnstile/v0/api.js", + siteKey: "1x00000000000000000000AA", + interactive: true, + }, +}); diff --git a/web/src/flow/stages/identification/IdentificationStage.ts b/web/src/flow/stages/identification/IdentificationStage.ts index 0983928eaa..8dd5cdaa43 100644 --- a/web/src/flow/stages/identification/IdentificationStage.ts +++ b/web/src/flow/stages/identification/IdentificationStage.ts @@ -282,11 +282,11 @@ export class IdentificationStage extends BaseStage< ? html` { this.captchaToken = token; }} + embedded > ` : nothing} diff --git a/web/src/locale-codes.ts b/web/src/locale-codes.ts index 58fedc38ea..28d514ca1b 100644 --- a/web/src/locale-codes.ts +++ b/web/src/locale-codes.ts @@ -15,6 +15,7 @@ export const targetLocales = [ `en`, `es`, `fr`, + `it`, `ko`, `nl`, `pl`, @@ -36,6 +37,7 @@ export const allLocales = [ `en`, `es`, `fr`, + `it`, `ko`, `nl`, `pl`, diff --git a/web/tests/blueprints/test-admin-user.yaml b/web/tests/blueprints/test-admin-user.yaml new file mode 100644 index 0000000000..1a0e85e173 --- /dev/null +++ b/web/tests/blueprints/test-admin-user.yaml @@ -0,0 +1,16 @@ +version: 1 +entries: + - attrs: + email: test-admin@goauthentik.io + is_active: true + name: authentik Default Admin + password: test-runner + path: users + type: internal + groups: + - !Find [authentik_core.group, [name, "authentik Admins"]] + conditions: [] + identifiers: + username: akadmin + model: authentik_core.user + state: present diff --git a/web/xliff/de.xlf b/web/xliff/de.xlf index 6f14b4b8cf..37208473fd 100644 --- a/web/xliff/de.xlf +++ b/web/xliff/de.xlf @@ -5741,9 +5741,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Deny message @@ -6217,9 +6214,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Last used @@ -7026,6 +7020,39 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/en.xlf b/web/xliff/en.xlf index 4655f5b975..2370065535 100644 --- a/web/xliff/en.xlf +++ b/web/xliff/en.xlf @@ -6006,9 +6006,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Deny message @@ -6482,9 +6479,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Last used @@ -7291,6 +7285,39 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/es.xlf b/web/xliff/es.xlf index 07babf6fbc..bb7c971940 100644 --- a/web/xliff/es.xlf +++ b/web/xliff/es.xlf @@ -5658,9 +5658,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Deny message @@ -6134,9 +6131,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Last used @@ -6943,6 +6937,39 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/fr.xlf b/web/xliff/fr.xlf index 9f0e2d6274..18bbf9b753 100644 --- a/web/xliff/fr.xlf +++ b/web/xliff/fr.xlf @@ -7542,10 +7542,6 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti One hint, 'New Application Wizard', is currently hidden Un indice, l'assistant nouvelle application est actuellement caché - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Applications externes qui utilisent authentik comme fournisseur d'identité, en utilisant des protocoles comme OAuth2 et SAML. Toutes les applications sont affichées ici, même celles auxquelles vous n'avez pas accès. - Deny message Message de refus @@ -8180,10 +8176,6 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Selected Applications Applications sélectionnées - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Cette option configure les liens de pied de page sur les pages de l'exécuteur de flux. Doit être une liste YAML ou JSON valide et peut être utilisée comme suit : - Last used Utilisé pour la dernière fois @@ -9252,6 +9244,39 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/it.xlf b/web/xliff/it.xlf index cc504278c2..53c2b6aa76 100644 --- a/web/xliff/it.xlf +++ b/web/xliff/it.xlf @@ -1,386 +1,386 @@ - + English Inglese - + French Francese - + Turkish Turco - + Spanish Spagnolo - + Polish Polacco - + Taiwanese Mandarin Mandarino Taiwanese - + Chinese (simplified) Cinese (semplificato) - + Chinese (traditional) Cinese (tradizionale) - + German Tedesco - + Loading... Caricamento... - + Application Applicazione - + Logins Logins - + Show less Mostra meno - + Show more Mostra altro - + UID UID - + Name Nome - + App App - + Model Name Nome del modello - + Message Messaggio - + Subject Oggetto - + From Da - + To A - + Context Contesto - + User Utente - + Affected model: Modello interessato: - + Authorized application: Applicazione autorizzata: - + Using flow Utilizzando il flusso - + Email info: Informazioni via e-mail: - + Secret: Segreto: - + Open issue on GitHub... Apri anomalia in Github... - + Exception Eccezione - + Expression Espressione - + Binding Associazione - + Request Richiesta - + Object Oggetto - + Result Risultato - + Passing Passaggio - + Messages Messaggi - + Using source Usando la sorgente - + Attempted to log in as Tentativo di accedere come - + No additional data available. Nessun dato aggiuntivo disponibile. - + Click to change value Clicca per cambiare valore - + Select an object. Seleziona un oggetto. - + Loading options... Caricamento delle opzioni... - + Connection error, reconnecting... Errore di connessione, riconnessione in corso... - + Login Login - + Failed login Accesso fallito - + Logout Logout - + User was written to L'utente è stato scritto in - + Suspicious request Richiesta sospetta - + Password set Password impostata - + Secret was viewed Segreto visualizzato - + Secret was rotated Segreto ruotato - + Invitation used Invito usato - + Application authorized Applicazione autorizzata - + Source linked Sorgente collegata - + Impersonation started Impersonazione iniziata - + Impersonation ended Impersonazione conclusa - + Flow execution Esecuzione flusso - + Policy execution Esecuzione criterio - + Policy exception Eccezione criterio - + Property Mapping exception Eccezione mappatura proprietà - + System task execution Esecuzione attività di sistema - + System task exception Eccezione attività di sistema - + General system exception Eccezione generale di sistema - + Configuration error Errore di configurazione - + Model created Modello creato - + Model updated Modello aggiornato - + Model deleted Modello cancellato - + Email sent Email cancellato - + Update available Aggiornamento disponibile - + Unknown severity Gravità sconosciuta - + Alert Allarme - + Notice Nota - + Warning Attenzione - + no tabs defined nessuna scheda definita - + - of @@ -388,1287 +388,1287 @@ - di - + Go to previous page Torna alla pagina precedente - + Go to next page Vai alla pagina successiva - + Search... Cerca... - + Loading Caricamento - + No objects found. Nessun oggetto trovato. - + Failed to fetch objects. Impossibile recuperare gli oggetti. - + Refresh Ricarica - + Select all rows Seleziona tutte le righe - + Action Azione - + Creation Date Data di creazione - + Client IP Client IP - + Recent events Eventi recenti - + On behalf of Per conto di - + - - - + No Events found. Nessun Evento trovato. - + No matching events could be found. Nessun evento corrispondente è stato trovato. - + Embedded outpost is not configured correctly. Avamposto incorporato non è configurato correttamente. - + Check outposts. Controlla avamposto. - + HTTPS is not detected correctly HTTPS non rilevato correttamente - + Server and client are further than 5 seconds apart. Il server e il client sono distanti più di 5 secondi. - + OK OK - + Everything is ok. Tutto è ok. - + System status Stato del sistema - + Based on Basato su - + is available! è disponibile! - + Up-to-date! Aggiornato! - + Version Versione - + Workers Workers - + No workers connected. Background tasks will not run. Nessun lavoratore connesso. Le attività in background non verranno eseguite. - + Authorizations Autorizzazioni - + Failed Logins Accessi falliti - + Successful Logins Accesso effettuato correttamente - + : : - + Cancel Cancella - + LDAP Source Sorgente LDAP - + SCIM Provider Provider SCIM - + Healthy In salute - + Healthy outposts Avamposti sani - + Admin Admin - + Not found Non trovato - + - The URL "" was not found. - La URL " - " non è stata trovata. - + The URL "" was not found. + La URL " + " non è stata trovata. + Return home Ritorna all'inizio - + General system status Stato generale del sistema - + Welcome, . Benvenuto, . - + Quick actions Azioni rapide - + Create a new application Creare una nuova applicazione - + Check the logs Controlla i log - + Explore integrations Esplora integrazioni - + Manage users Gestire gli utenti - + Outpost status Stato avamposto - + Sync status Stato di sincronizzazione - + Logins and authorizations over the last week (per 8 hours) Login e autorizzazioni nell'ultima settimana (per 8 ore) - + Apps with most usage App con maggior utilizzo - + days ago giorni fa - + Objects created Oggetti creati - + Users created per day in the last month Utenti creati al giorno nell'ultimo mese - + Logins per day in the last month Accessi giornalieri nell'ultimo mese - + Failed Logins per day in the last month Accessi non riusciti al giorno nell'ultimo mese - + Clear search Pulisci ricerca - + System Tasks Attività di sistema - + Long-running operations which authentik executes in the background. Operazioni di lunga durata che authentik esegue in background. - + Identifier Identificatore - + Description Descrizione - + Last run Ultima esecuzione - + Status Stato - + Actions Azioni - + Successful Riuscito - + Error Errore - + Unknown Sconosciuto - + Duration Durata - + seconds secondi - + Authentication Autenticazione - + Authorization Autorizzazione - + Enrollment Iscrizione - + Invalidation Invalidazione - + Recovery Ripristino - + Stage Configuration Configurazione della fase - + Unenrollment Disiscrizione - + Unknown designation Designazione sconosciuta - + Stacked Impilato - + Content left Contenuto a sinistra - + Content right Contenuto a destra - + Sidebar left Sidebar a sinistra - + Sidebar right Sidebar a destra - + Unknown layout Layout sconosciuto - + Successfully updated provider. Provider aggiornato con successo. - + Successfully created provider. Provider creato con successo. - + Bind flow Associazione fase - + Flow used for users to authenticate. Flusso usato per autenticare gli utenti. - + Bind mode Modalità associazione - + Cached binding Asociazione in cache - + Flow is executed and session is cached in memory. Flow is executed when session expires Il flusso viene eseguito e la sessione viene memorizzata nella cache. Il flusso viene eseguito alla scadenza della sessione - + Direct binding Associazione diretta - + Always execute the configured bind flow to authenticate the user Esegui sempre il flusso di collegamento configurato per autenticare l'utente - + Configure how the outpost authenticates requests. Configura come l'avamposto autentica le richieste. - + Search mode Modalità di ricerca - + Cached querying Interrogazione cache - + The outpost holds all users and groups in-memory and will refresh every 5 Minutes L'avamposto tiene tutti gli utenti e i gruppi in memoria e li aggiorna ogni 5 Minuti - + Direct querying Interrogazione diretta - + Always returns the latest data, but slower than cached querying Ritorna sempre i dati più recenti, ma è più lento del cached querying - + Configure how the outpost queries the core authentik server's users. Configura come l'avamposto interroga gli utenti del server core authentik. - + Protocol settings Impostazioni del protocollo - + Base DN Base DN - + LDAP DN under which bind requests and search requests can be made. LDAP DN sotto il quale possono essere effettuate le richieste di bind e di ricerca. - + Certificate Certificato - + UID start number Numero di inizio UID - + The start for uidNumbers, this number is added to the user.Pk to make sure that the numbers aren't too low for POSIX users. Default is 2000 to ensure that we don't collide with local users uidNumber L'inizio di uidNumbers, questo numero viene aggiunto a user.Pk per assicurarsi che i numeri non siano troppo bassi per gli utenti POSIX. Il valore predefinito è 2000 per garantire che non ci si scontri con gli utenti locali. - + GID start number Numero di inizio GID - + The start for gidNumbers, this number is added to a number generated from the group.Pk to make sure that the numbers aren't too low for POSIX groups. Default is 4000 to ensure that we don't collide with local groups or users primary groups gidNumber Il punto di partenza per gidNumbers, questo numero viene aggiunto a un numero generato dal group.pk per assicurarsi che i numeri non siano troppo bassi per i gruppi POSIX. Il valore predefinito è 4000 per garantire che non ci siano collisioni con gruppi locali o gruppi primari di utenti gidNumber. - + (Format: hours=-1;minutes=-2;seconds=-3). (Formato: ore=-1;minuti=-2;secondi=-3). - + (Format: hours=1;minutes=2;seconds=3). (Formato: hours=1;minutes=2;seconds=3). - + The following keywords are supported: I seguenti parole chiave sono supportate: - + Authentication flow Flusso di autenticazione - + Flow used when a user access this provider and is not authenticated. Flusso utilizzato quando un utente accede a questo provider e non è autenticato. - + Authorization flow Flusso di autorizzazione - + Flow used when authorizing this provider. Flusso utilizzato durante l'autorizzazione di questo provider. - + Client type Tipologia client - + Confidential Confidenziale - + Confidential clients are capable of maintaining the confidentiality of their credentials such as client secrets I client confidenziali sono in grado di mantenere la riservatezza delle proprie credenziali, ad esempio i segreti del client - + Public Pubblico - + Public clients are incapable of maintaining the confidentiality and should use methods like PKCE. I clienti pubblici non sono in grado di mantenere la confidenzialità e dovrebbero utilizzare metodi come PKCE. - + Client ID Client ID - + Client Secret Client Secret - + Redirect URIs/Origins (RegEx) Reindirizzamento URI/Origini (RegEx) - + Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows. URL di reindirizzamento validi dopo un flusso di autorizzazione riuscito. Specificare qui anche eventuali origini per i flussi impliciti. - + If no explicit redirect URIs are specified, the first successfully used redirect URI will be saved. Se non vengono specificati URI di reindirizzamento espliciti, verrà salvato il primo URI di reindirizzamento utilizzato correttamente. - + - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - Per consentire qualsiasi URI di reindirizzamento, impostare questo valore su ".*". Sii consapevole delle possibili implicazioni sulla sicurezza che ciò può avere. - + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Per consentire qualsiasi URI di reindirizzamento, impostare questo valore su ".*". Sii consapevole delle possibili implicazioni sulla sicurezza che ciò può avere. + Signing Key Chiave di firma - + Key used to sign the tokens. Chiave utilizzata per firmare i token. - + Advanced protocol settings Impostazioni avanzate del protocollo - + Access code validity Codice di accesso valido - + Configure how long access codes are valid for. Configura per quanto tempo sono validi i codici di accesso. - + Access Token validity Validità del token di accesso - + Configure how long access tokens are valid for. Configura per quanto tempo sono validi i token di accesso. - + Refresh Token validity Validità del token di aggiornamento - + Configure how long refresh tokens are valid for. Configura per quanto tempo sono validi i token di aggiornamento. - + Scopes Ambiti - + Select which scopes can be used by the client. The client still has to specify the scope to access the data. Selezionare quali ambiti possono essere utilizzati dal client. Il client deve ancora specificare l'ambito per accedere ai dati. - + Subject mode Modalità soggetto - + Based on the User's hashed ID In base all'hashed ID dell'utente - + Based on the User's ID In base all'ID dell'utente - + Based on the User's UUID Basato sull'UUID dell'utente - + Based on the User's username In base al nome utente dell'utente - + Based on the User's Email In base all'e-mail dell'utente - + This is recommended over the UPN mode. Questo è consigliato in modalità UPN. - + Based on the User's UPN In base all'UPN dell'utente - + Requires the user to have a 'upn' attribute set, and falls back to hashed user ID. Use this mode only if you have different UPN and Mail domains. - Richiede che l'utente abbia un attributo "upn" impostato e ricorre all'ID utente con hash. Utilizza questa modalità solo se disponi di domini UPN e di posta diversi. - + Richiede che l'utente abbia un attributo "upn" impostato e ricorre all'ID utente con hash. Utilizza questa modalità solo se disponi di domini UPN e di posta diversi. + Configure what data should be used as unique User Identifier. For most cases, the default should be fine. Configura quali dati devono essere utilizzati come identificatore utente univoco. Nella maggior parte dei casi, l'impostazione predefinita dovrebbe andare bene. - + Include claims in id_token Includi attestazioni in id_token - + Include User claims from scopes in the id_token, for applications that don't access the userinfo endpoint. Includere le attestazioni utente dagli ambiti in id_token, per le applicazioni che non accedono all'endpoint userinfo. - + Issuer mode Modalità emittente - + Each provider has a different issuer, based on the application slug Ogni provider ha un emittente diverso, in base allo slug dell'applicazione - + Same identifier is used for all providers Lo stesso identificatore viene utilizzato per tutti i fornitori - + Configure how the issuer field of the ID Token should be filled. Configura come deve essere compilato il campo dell'emittente del token ID. - + Machine-to-Machine authentication settings Impostazioni di autenticazione da macchina a macchina - + Trusted OIDC Sources Sorgenti OIDC affidabili - + JWTs signed by certificates configured in the selected sources can be used to authenticate to this provider. I JWT firmati dai certificati configurati nelle origini selezionate possono essere utilizzati per autenticarsi presso questo provider. - + HTTP-Basic Username Key Chiave del nome utente HTTP-Basic - + User/Group Attribute used for the user part of the HTTP-Basic Header. If not set, the user's Email address is used. Attributo utente/gruppo utilizzato per la parte utente dell'intestazione HTTP-Basic. Se non impostato, viene utilizzato l'indirizzo e-mail dell'utente. - + HTTP-Basic Password Key Chiave password HTTP-Basic - + User/Group Attribute used for the password part of the HTTP-Basic Header. Attributo utente/gruppo utilizzato per la parte password dell'intestazione HTTP-Basic. - + Proxy Proxy - + Forward auth (single application) Autenticazione inoltrata (applicazione singola) - + Forward auth (domain level) Autenticazione inoltrata (a livello di dominio) - + This provider will behave like a transparent reverse-proxy, except requests must be authenticated. If your upstream application uses HTTPS, make sure to connect to the outpost using HTTPS as well. Questo provider si comporterà come un proxy inverso trasparente, tranne per il fatto che le richieste devono essere autenticate. Se la tua applicazione upstream utilizza HTTPS, assicurati di connetterti all'avamposto utilizzando anche HTTPS. - + External host Host esterno - + The external URL you'll access the application at. Include any non-standard port. L'URL esterno da cui accederai all'applicazione. Includere qualsiasi porta non standard. - + Internal host Host interno - + Upstream host that the requests are forwarded to. Host upstream a cui vengono inoltrate le richieste. - + Internal host SSL Validation Convalida SSL host interna - + Validate SSL Certificates of upstream servers. Convalida i certificati SSL dei server upstream. - + Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application. Utilizza questo provider con auth_request di nginx o forwardAuth di traefik. È richiesto un solo provider per dominio root. Non è possibile eseguire l'autorizzazione per applicazione, ma non è necessario creare un provider per ogni applicazione. - + An example setup can look like this: Una configurazione di esempio può assomigliare a questa: - + authentik running on auth.example.com authentik in esecuzione su auth.example.com - + app1 running on app1.example.com app1 in esecuzione su app1.example.com - + In this case, you'd set the Authentication URL to auth.example.com and Cookie domain to example.com. In questo caso, imposteresti l'URL di autenticazione su auth.example.com e il dominio dei cookie su example.com. - + Authentication URL URL di autenticazione - + The external URL you'll authenticate at. The authentik core server should be reachable under this URL. L'URL esterno su cui ti autenticherai. Il server core authentik dovrebbe essere raggiungibile tramite questo URL. - + Cookie domain Dominio dei cookie - + Set this to the domain you wish the authentication to be valid for. Must be a parent domain of the URL above. If you're running applications as app1.domain.tld, app2.domain.tld, set this to 'domain.tld'. - Impostalo sul dominio per il quale desideri che l'autenticazione sia valida. Deve essere un dominio principale dell'URL riportato sopra. Se esegui applicazioni come app1.domain.tld, app2.domain.tld, impostalo su "domain.tld". - + Impostalo sul dominio per il quale desideri che l'autenticazione sia valida. Deve essere un dominio principale dell'URL riportato sopra. Se esegui applicazioni come app1.domain.tld, app2.domain.tld, impostalo su "domain.tld". + Unknown proxy mode Modalità proxy sconosciuta - + Token validity Validità del token - + Configure how long tokens are valid for. Configura per quanto tempo sono validi i token. - + Additional scopes Ambiti aggiuntivi - + Additional scope mappings, which are passed to the proxy. Mapping di ambito aggiuntivi, che vengono passati al proxy. - + Unauthenticated URLs URL non autenticati - + Unauthenticated Paths Percorsi non autenticati - + Regular expressions for which authentication is not required. Each new line is interpreted as a new expression. Espressioni regolari per le quali non è richiesta l'autenticazione. Ogni nuova riga viene interpretata come una nuova espressione. - + When using proxy or forward auth (single application) mode, the requested URL Path is checked against the regular expressions. When using forward auth (domain mode), the full requested URL including scheme and host is matched against the regular expressions. Quando si utilizza la modalità proxy o di autenticazione inoltrata (applicazione singola), il percorso URL richiesto viene confrontato con le espressioni regolari. Quando si utilizza l'autenticazione inoltrata (modalità dominio), l'URL completo richiesto, inclusi schema e host, viene confrontato con le espressioni regolari. - + Authentication settings Impostazioni di autenticazione - + Intercept header authentication Intercetta l'authorization header - + When enabled, authentik will intercept the Authorization header to authenticate the request. Se abilitato, authentik intercetterà la authorization header per autenticare la richiesta. - + Send HTTP-Basic Authentication Invia HTTP-Basic Authentication - + Send a custom HTTP-Basic Authentication header based on values from authentik. Imposta un header personalizzato HTTP-Basic Authentication basato su parametri provenienti da authentik. - + ACS URL ACS URL - + Issuer Emittente - + Also known as EntityID. Conosciuto anche come EntityID - + Service Provider Binding Associazione del fornitore di servizi - + Redirect Redirect - + Post Post - + Determines how authentik sends the response back to the Service Provider. Determina il modo in cui authentik invia la risposta al fornitore di servizi. - + Audience Audience - + Signing Certificate Certificato di firma - + Certificate used to sign outgoing Responses going to the Service Provider. Certificato utilizzato per firmare le risposte in uscita destinate al fornitore di servizi. - + Verification Certificate Certificato di verifica - + When selected, incoming assertion's Signatures will be validated against this certificate. To allow unsigned Requests, leave on default. Se selezionata, le firme dell'asserzione in entrata verranno convalidate rispetto a questo certificato. Per consentire richieste non firmate, lasciare l'impostazione predefinita. - + Property mappings Mapping delle proprietà - + NameID Property Mapping Mappatura proprietà NameID - + Configure how the NameID value will be created. When left empty, the NameIDPolicy of the incoming request will be respected. Configura il modo in cui verrà creato il valore NameID. Se lasciato vuoto, verrà rispettato il NameIDPolicy della richiesta in arrivo. - + Assertion valid not before Asserzione valida non prima - + Configure the maximum allowed time drift for an assertion. Configurare lo scostamento temporale massimo consentito per un'asserzione. - + Assertion valid not on or after Affermazione valida non il o dopo - + Assertion not valid on or after current time + this value. Asserzione non valida a partire dall'ora corrente + questo valore. - + Session valid not on or after Sessione valida non il o dopo - + Session not valid on or after current time + this value. Sessione non valida a partire dall'ora corrente + questo valore. - + Digest algorithm Algoritmo digest - + Signature algorithm Algoritmo firma - + Successfully imported provider. Fornitore importato correttamente. - + Metadata Metadati - + Apply changes Applica modifiche - + Close Chiudi - + Finish Concludi - + Back Indietro - + No form found Nessun modulo trovato - + Form didn't return a promise for submitting Il modulo non ha restituito una promise di invio - + Select type Seleziona il tipo - + Create Crea - + New provider Nuovo provider - + Create a new provider. Crea un nuovo provider. - + Create Crea - + Shared secret Segreto condiviso - + Client Networks Client Networks - + List of CIDRs (comma-seperated) that clients can connect from. A more specific CIDR will match before a looser one. Clients connecting from a non-specified CIDR will be dropped. - Elenco di CIDR (separati da virgola) da cui i client possono connettersi. -Un CIDR più specifico avrà la precedenza su uno meno restrittivo. + Elenco di CIDR (separati da virgola) da cui i client possono connettersi. +Un CIDR più specifico avrà la precedenza su uno meno restrittivo. I client che tentano di connettersi da un CIDR non specificato saranno rifiutati. URL URL - + SCIM base url, usually ends in /v2. URL di base SCIM, in genere termina con /v2. - + Token Token - + Token to authenticate with. Currently only bearer authentication is supported. Token con cui autenticarsi. Attualmente è supportata solo l'autenticazione bearer. - + User filtering Filtraggio utenti - + Exclude service accounts Escludi account di servizio - + Group Gruppo - + Only sync users within the selected group. Sincronizza solo gli utenti all'interno del gruppo selezionato. - + Attribute mapping Mappatura attributi - + User Property Mappings Mappatura proprietà utenti - + Property mappings used to user mapping. Mappature delle proprietà utilizzate per la mappatura degli utenti. - + Group Property Mappings Mappatura proprietà gruppi - + Property mappings used to group creation. Mappature delle proprietà utilizzate per la creazione del gruppo. - + Not used by any other object. Non utilizzato da altri oggetti. - + object will be DELETED l'oggetto sarà CANCELLATO - + connection will be deleted la connessione sarà cancellata - + reference will be reset to default value il riferimento verrà ripristinato al valore predefinito - + reference will be set to an empty value il riferimento verrà impostato su un valore vuoto - + () ( ) - + ID ID - + Successfully deleted @@ -1679,13 +1679,13 @@ I client che tentano di connettersi da un CIDR non specificato saranno rifiutati Impossibile eliminare : - + Delete - Elimina + Elimina - + Are you sure you want to delete ? @@ -1694,858 +1694,858 @@ I client che tentano di connettersi da un CIDR non specificato saranno rifiutati Delete Elimina - + Providers Providers - + Provide support for protocols like SAML and OAuth to assigned applications. Fornire supporto per protocolli come SAML e OAuth alle applicazioni assegnate. - + Type Tipo - + Provider(s) Provider(s) - + Assigned to application Assegnato all'applicazione - + Assigned to application (backchannel) Assegnato all'applicazione (backchannel) - + Warning: Provider not assigned to any application. Attenzione: Provider non assegnato ad alcuna applicazione. - + Update Aggiorna - + Update Aggiorna - + Select providers to add to application Seleziona i provider da aggiungere all'applicazione - + Add Aggiungi - + - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - Inserisci un URL completo, un percorso relativo oppure utilizza "fa://fa-test" per utilizzare l'icona "fa-test" di Font Awesome. - + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + Inserisci un URL completo, un percorso relativo oppure utilizza "fa://fa-test" per utilizzare l'icona "fa-test" di Font Awesome. + Path template for users created. Use placeholders like `%(slug)s` to insert the source slug. Modello di percorso per gli utenti creato. Utilizza segnaposto come `%(slug)s` per inserire lo slug di origine. - + Successfully updated application. Applicazione aggiornata con successo. - + Successfully created application. Applicazione creata con successo. - + Application's display Name. Nome visualizzato dell'applicazione. - + Slug Slug - + Optionally enter a group name. Applications with identical groups are shown grouped together. Facoltativamente, inserisci il nome del gruppo. Le applicazioni con gruppi identici vengono visualizzate raggruppate insieme. - + Provider Provider - + Select a provider that this application should use. Seleziona provider per questa applicazione. - + Select backchannel providers which augment the functionality of the main provider. Seleziona fornitori di backchannel che aumentano la funzionalità del fornitore principale. - + Policy engine mode Modalità motore criteri - + Any policy must match to grant access Qualsiasi criterio deve corrispondere per concedere l'accesso - + All policies must match to grant access Tutte i criteri devono corrispondere per concedere l'accesso - + UI settings Impostazioni dell'interfaccia utente - + Launch URL URL di Avvio - + If left empty, authentik will try to extract the launch URL based on the selected provider. Se lasciato vuoto, authentik proverà ad estrarre l'URL di lancio in base al provider selezionato. - + Open in new tab Apri in una nuova scheda - + If checked, the launch URL will open in a new browser tab or window from the user's application library. Se selezionato, l'URL di avvio si aprirà in una nuova scheda o finestra del browser dalla libreria dell'applicazione dell'utente. - + Icon Icona - + Currently set to: Attualmente impostato su: - + Clear icon Cancella icona - + Publisher Publisher - + Create Application Crea Applicazione - + Overview Panoramica - + Changelog Changelog - + Warning: Provider is not used by any Outpost. Attenzione: il fornitore non è utilizzato da nessun avamposto. - + Assigned to application Assegnato all'applicazione - + Update LDAP Provider Aggiorna Provider LDAP - + Edit Modifica - + How to connect Come connettersi - + Connect to the LDAP Server on port 389: Connettiti al server LDAP sulla porta 389: - + Check the IP of the Kubernetes service, or Controlla l'IP del servizio Kubernetes, oppure - + The Host IP of the docker host L'IP host dell'host docker - + Bind DN Bind DN - + Bind Password Password di Associazione - + Search base Ricerca base - + Preview Anteprima - + Warning: Provider is not used by an Application. Attenzione: il provider non è utilizzato da un'applicazione. - + Redirect URIs URI di reindirizzamento - + Update OAuth2 Provider Aggiorna fornitore OAuth2 - + OpenID Configuration URL URL configurazione OpenID - + OpenID Configuration Issuer Emittente configurazione OpenID - + Authorize URL Autorizzazione URL - + Token URL Token URL - + Userinfo URL Userinfo URL - + Logout URL Logout URL - + JWKS URL JWKS URL - + Forward auth (domain-level) Forward auth (domain-level) - + Nginx (Ingress) Nginx (Ingress) - + Nginx (Proxy Manager) Nginx (Proxy Manager) - + Nginx (standalone) Nginx (standalone) - + Traefik (Ingress) Traefik (Ingress) - + Traefik (Compose) Traefik (Compose) - + Traefik (Standalone) Traefik (Standalone) - + Caddy (Standalone) Caddy (Standalone) - + Internal Host Host Interno - + External Host Host Esterno - + Basic-Auth Basic-Auth - + Yes Si - + Mode Modalità - + Update Proxy Provider Aggiorna Provider Proxy - + Protocol Settings Impostazioni Protocollo - + Allowed Redirect URIs URI di reindirizzamento consentiti - + Setup Impostazione - + No additional setup is required. Non è richiesta configurazione aggiuntiva. - + Update Radius Provider Aggiorna Provider Radius - + Download Scarica - + Copy download URL Copiare URL di download - + Download signing certificate Scarica il certificato di firma - + Related objects Oggetti correlati - + Update SAML Provider Aggiorna il provider SAML - + SAML Configuration Configurazione SAML - + EntityID/Issuer EntityID/Issuer - + SSO URL (Post) SSO URL (Post) - + SSO URL (Redirect) SSO URL (Redirect) - + SSO URL (IdP-initiated Login) SSO URL (IdP-initiated Login) - + SLO URL (Post) SLO URL (Post) - + SLO URL (Redirect) SLO URL (Redirect) - + SAML Metadata Metadati SAML - + Example SAML attributes Esempio attributi SAML - + NameID attribute Attributo NameID - + Warning: Provider is not assigned to an application as backchannel provider. Attenzione: Il provider non è assegnato a un'applicazione come provider di backchannel. - + Update SCIM Provider Aggiorna il provider SCIM - + Run sync again Esegui di nuovo la sincronizzazione - + Modern applications, APIs and Single-page applications. Applicazioni moderne, API e applicazioni a pagina singola. - + LDAP LDAP - + Provide an LDAP interface for applications and users to authenticate against. Fornire un'interfaccia LDAP per l'autenticazione di applicazioni e utenti. - + New application Nuova applicazione - + Applications Applicazioni - + Provider Type Tipo Provider - + Application(s) Applicazione(i) - + Application Icon Icona Applicazione - + Update Application Aggiorna Applicazione - + Successfully sent test-request. Richiesta di prova inviata con successo. - + Log messages Messaggi di log - + No log messages. Nessun messaggio di log. - + Active Attivo - + Last login Ultimo accesso - + Select users to add Seleziona utenti da aggiungere - + Successfully updated group. Gruppo aggiornato con successo. - + Successfully created group. Gruppo creato con successo. - + Is superuser È superutente - + Users added to this group will be superusers. Gli utenti aggiunti a questo gruppo diventeranno superutenti. - + Parent Genitore - + Attributes Attributi - + Set custom attributes using YAML or JSON. Imposta attributi personalizzati utilizzando YAML o JSON. - + Successfully updated binding. Aggiornato criterio con successo. - + Successfully created binding. Creato criterio con successo. - + Policy Criterio - + Group mappings can only be checked if a user is already logged in when trying to access this source. Le mappature dei gruppi possono essere controllate solo se un utente ha già effettuato l'accesso quando tenta di accedere a questa fonte. - + User mappings can only be checked if a user is already logged in when trying to access this source. Le mappature utente possono essere controllate solo se un utente ha già effettuato l'accesso quando tenta di accedere a questa fonte. - + Enabled Abilitato - + Negate result Negare il risultato - + Negates the outcome of the binding. Messages are unaffected. Nega il risultato dell'associazione. I messaggi non vengono influenzati. - + Order Ordine - + Timeout Timeout - + Successfully updated policy. Criterio aggiornato. - + Successfully created policy. Criterio creato. - + A policy used for testing. Always returns the same result as specified below after waiting a random duration. Una policy utilizzata per i test. Restituisce sempre lo stesso risultato specificato di seguito dopo aver atteso una durata casuale. - + Execution logging Registrazione dell'esecuzione - + When this option is enabled, all executions of this policy will be logged. By default, only execution errors are logged. Quando questa opzione è abilitata, tutte le esecuzioni di questa policy verranno registrate. Per impostazione predefinita, vengono registrati solo gli errori di esecuzione. - + Policy-specific settings Impostazioni specifiche del criterio - + Pass policy? Criterio di passaggio? - + Wait (min) Attendi (min) - + The policy takes a random time to execute. This controls the minimum time it will take. L'esecuzione della policy richiede un tempo casuale. Questo controlla il tempo minimo necessario. - + Wait (max) Attendi (max) - + Matches an event against a set of criteria. If any of the configured values match, the policy passes. Corrisponde a un evento rispetto a una serie di criteri. Se uno qualsiasi dei valori configurati corrisponde, il criterio passa. - + Match created events with this action type. When left empty, all action types will be matched. Abbina gli eventi creati a questo tipo di azione. Se lasciato vuoto, verranno abbinati tutti i tipi di azione. - + Match events created by selected application. When left empty, all applications are matched. Abbina gli eventi creati dall'applicazione selezionata. Se lasciato vuoto, tutte le applicazioni vengono abbinate. - + Checks if the request's user's password has been changed in the last x days, and denys based on settings. Verifica se la password dell'utente è stata modificata negli ultimi X giorni e rifiuta in base alle impostazioni. - + Maximum age (in days) Età massima (in giorni) - + Only fail the policy, don't invalidate user's password Fallisci solo il criterio, non invalidare la password dell'utente - + Executes the python snippet to determine whether to allow or deny a request. Esegue il frammento di codice Python per determinare se consentire o negare una richiesta. - + Expression using Python. Espressione in Python. - + See documentation for a list of all variables. Guarda la documentazione per la lista di tutte le variabili. - + Static rules Regole statiche - + Minimum length Lunghezza minima - + Minimum amount of Uppercase Characters Quantità minima di caratteri maiuscoli - + Minimum amount of Lowercase Characters Quantità minima di caratteri minuscoli - + Minimum amount of Digits Quantità minima di cifre - + Minimum amount of Symbols Characters Quantità minima di simboli caratteri - + Error message Messaggio di errore - + Symbol charset Set di caratteri simboli - + Characters which are considered as symbols. Caratteri considerati simboli. - + HaveIBeenPwned settings Impostazioni HaveIBeenPwned - + Allowed count Conteggio consentito - + Allow up to N occurrences in the HIBP database. Consenti fino a N occorrenze nel database HIBP. - + zxcvbn settings Impostazioni zxcvbn - + Score threshold Soglia punteggio - + If the password's score is less than or equal this value, the policy will fail. Se il punteggio della password è inferiore o uguale a questo valore, la policy fallirà. - + Checks the value from the policy request against several rules, mostly used to ensure password strength. Controlla il valore della richiesta di policy rispetto a diverse regole, utilizzate principalmente per garantire la sicurezza della password. - + Password field Campo password - + Field key to check, field keys defined in Prompt stages are available. Chiave di campo da verificare, sono disponibili le chiavi di campo definite nelle fasi Prompt. - + Check static rules Controlla regole statiche - + Check haveibeenpwned.com Controlla haveibeenpwned.com - + For more info see: Per ulteriori informazioni: - + Check zxcvbn Controlla zxcvbn - + Password strength estimator created by Dropbox, see: Strumento per la stima della forza della password creato da Dropbox, vedere: - + Allows/denys requests based on the users and/or the IPs reputation. Consente/nega le richieste in base alla reputazione degli utenti e/o degli IP. - + Invalid login attempts will decrease the score for the client's IP, and the @@ -2561,756 +2561,756 @@ doesn't pass when either or both of the selected options are equal or above the Check IP Controlla IP - + Check Username Controlla Username - + Threshold Soglia - + New policy Nuovo criterio - + Create a new policy. Crea un nuovo criterio - + Create Binding Crea associazione - + Superuser Superutente - + Members Membri - + Select groups to add user to Seleziona i gruppi a cui aggiungere l'utente - + Warning: Adding the user to the selected group(s) will give them superuser permissions. Attenzione: L' utente aggiunto al gruppo(i) selezionato otterrà permessi di superutente. - + Successfully updated user. Aggiornamento utente effettuato con successo. - + Successfully created user. Creato utente con successo. - + Username Username - + User's primary identifier. 150 characters or fewer. L'identificatore principale dell'utente. 150 caratteri o meno. - + User's display name. Nome visualizzato dell'utente. - + Email Email - + Is active È attivo - + Designates whether this user should be treated as active. Unselect this instead of deleting accounts. Designa se questo utente deve essere considerato attivo. Deseleziona questa opzione invece di eliminare gli account. - + Path Percorso - + Policy / User / Group Criterio / Utente / Gruppo - + Policy Criterio - + Group Gruppo - + User Utente - + Edit Policy Modifica Criterio - + Update Group Aggiorna Gruppo - + Edit Group Modifica Gruppo - + Update User Aggiorna Utente - + Edit User Modifica Utente - + Policy binding(s) Associazone(i) criteri - + Update Binding Aggiorna Associazione - + Edit Binding Modifica Associazione - + No Policies bound. Nessun criterio associato. - + No policies are currently bound to this object. Nessun criterio è associato a questo oggetto al momento. - + Warning: Application is not used by any Outpost. Attenzione: l'applicazione non viene utilizzata da nessun avamposto. - + Related Correlato - + Backchannel Providers Fornitori di backchannel - + Check access Verifica l'accesso - + Check Controlla - + Check Application access Controlla l'accesso all'applicazione - + Test Test - + Launch Avvia - + Logins over the last week (per 8 hours) Accessi nell'ultima settimana (per 8 ore) - + Policy / Group / User Bindings Associazione Criterio / Gruppo / Utente - + These policies control which users can access this application. Questi criteri controllano quali utenti possono accedere a questa applicazione. - + Successfully updated source. Sorgente aggiornata. - + Successfully created source. Sorgente creata. - + Sync users Sincronizza utenti - + User password writeback Scrittura della password utente - + Login password is synced from LDAP into authentik automatically. Enable this option only to write password changes in authentik back to LDAP. La password di accesso viene sincronizzata automaticamente da LDAP in authentik. Abilita questa opzione solo per riscrivere le modifiche della password in authentik su LDAP. - + Sync groups Gruppi di sincronizzazione - + Connection settings Impostazioni di connessione - + Server URI Server URI - + Specify multiple server URIs by separating them with a comma. Specificare più URI del server separandoli con una virgola. - + Enable StartTLS Abilita StartTLS - + To use SSL instead, use 'ldaps://' and disable this option. Per usare invece SSL, usa 'ldaps://' e disabilita questa opzione. - + TLS Verification Certificate Certificato di verifica TLS - + When connecting to an LDAP Server with TLS, certificates are not checked by default. Specify a keypair to validate the remote certificate. Quando ci si connette a un server LDAP con TLS, i certificati non vengono controllati per impostazione predefinita. Specificare una coppia di chiavi per convalidare il certificato remoto. - + Bind CN Associa CN - + LDAP Attribute mapping Mappatura attributo LDAP - + Additional settings Impostazioni aggiuntive - + Parent group for all the groups imported from LDAP. Gruppo principale per tutti i gruppi importati da LDAP. - + User path Percorso utente - + Addition User DN Aggiunta DN utente - + Additional user DN, prepended to the Base DN. DN utente aggiuntivo, anteposto al DN di base. - + Addition Group DN Aggiunta DN gruppo - + Additional group DN, prepended to the Base DN. DN di gruppo aggiuntivo, anteposto al DN di base. - + User object filter Filtro oggetto utente - + Consider Objects matching this filter to be Users. Considera gli oggetti che corrispondono a questo filtro come utenti. - + Group object filter Filtro oggetto gruppo - + Consider Objects matching this filter to be Groups. Considera gli oggetti che corrispondono a questo filtro come gruppi. - + Group membership field Campo di appartenenza al gruppo - + - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - Campo che contiene i membri di un gruppo. Tieni presente che se utilizzi il campo "memberUid", si presuppone che il valore contenga un nome distinto relativo. per esempio. 'memberUid=qualche-utente' invece di 'memberUid=cn=qualche-utente,ou=gruppi,...' - + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + Campo che contiene i membri di un gruppo. Tieni presente che se utilizzi il campo "memberUid", si presuppone che il valore contenga un nome distinto relativo. per esempio. 'memberUid=qualche-utente' invece di 'memberUid=cn=qualche-utente,ou=gruppi,...' + Object uniqueness field Campo unicità dell'oggetto - + Field which contains a unique Identifier. Campo che contiene un identificatore univoco. - + Link users on unique identifier Collega gli utenti su un identificatore univoco - + Link to a user with identical email address. Can have security implications when a source doesn't validate email addresses Collegamento a un utente con indirizzo email identico. Può avere implicazioni sulla sicurezza quando una fonte non convalida gli indirizzi e-mail - + Use the user's email address, but deny enrollment when the email address already exists Utilizza l'indirizzo e-mail dell'utente, ma nega la registrazione quando l'indirizzo e-mail esiste già - + Link to a user with identical username. Can have security implications when a username is used with another source Collegamento a un utente con nome utente identico. Può avere implicazioni sulla sicurezza quando un nome utente viene utilizzato con un'altra fonte - + Use the user's username, but deny enrollment when the username already exists Utilizza il nome utente dell'utente, ma nega la registrazione quando il nome utente esiste già - + Unknown user matching mode Modalità di corrispondenza utente sconosciuta - + URL settings Impostazioni URL - + Authorization URL URL autorizzazione - + URL the user is redirect to to consent the authorization. URL a cui l'utente viene reindirizzato per acconsentire all'autorizzazione. - + Access token URL URL token d'accesso - + URL used by authentik to retrieve tokens. URL utilizzato da authentik per recuperare i token. - + Profile URL URL profilo - + URL used by authentik to get user information. URL utilizzato da authentik per ottenere informazioni sull'utente. - + Request token URL URL di richiesta del token - + URL used to request the initial token. This URL is only required for OAuth 1. URL utilizzato per richiedere il token iniziale. Questo URL è richiesto solo per OAuth 1. - + OIDC Well-known URL OIDC Well-known URL - + OIDC well-known configuration URL. Can be used to automatically configure the URLs above. URL di configurazione well-known OIDC. Può essere utilizzato per configurare automaticamente gli URL sopra. - + OIDC JWKS URL OIDC JWKS URL - + JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source. JSON Web Key URL. Le chiavi dell'URL verranno utilizzate per convalidare i JWT da questa fonte. - + OIDC JWKS OIDC JWKS - + Raw JWKS data. Raw JWKS data. - + User matching mode Modalità di corrispondenza utente - + Delete currently set icon. Elimina l'icona attualmente impostata. - + Consumer key Consumer key - + Consumer secret Consumer secret - + Additional scopes to be passed to the OAuth Provider, separated by space. To replace existing scopes, prefix with *. Ulteriori ambiti da passare al fornitore di OAuth, separati da spazio. Per sostituire gli ambiti esistenti, prefissare con *. - + Flow settings Impostazione flusso - + Flow to use when authenticating existing users. Flusso da utilizzare quando si autenticano gli utenti esistenti. - + Enrollment flow Flusso di iscrizione - + Flow to use when enrolling new users. Flusso da utilizzare quando si iscrivono nuovi utenti. - + Load servers Carico server - + Re-authenticate with plex Riautenticarsi con plex - + Allow friends to authenticate via Plex, even if you don't share any servers Consenti agli amici di autenticarsi tramite Plex, anche se non condividi alcun server - + Allowed servers Server permessi - + Select which server a user has to be a member of to be allowed to authenticate. Seleziona il server di cui un utente deve essere membro per potersi autenticare. - + SSO URL URL SSO - + URL that the initial Login request is sent to. URL a cui viene inviata la richiesta di accesso iniziale. - + SLO URL URL SLO - + Optional URL if the IDP supports Single-Logout. URL facoltativo se l'IDP supporta il logout singolo. - + Also known as Entity ID. Defaults the Metadata URL. Noto anche come ID entità. Predefinisce l'URL dei metadati. - + Binding Type Tipo associazione - + Redirect binding Associazione redirect - + Post-auto binding Binding post-auto - + Post binding but the request is automatically sent and the user doesn't have to confirm. POST BINDING Ma la richiesta viene inviata automaticamente e l'utente non deve confermare. - + Post binding Post binding - + Signing keypair Coppia di chiavi di firma - + Keypair which is used to sign outgoing requests. Leave empty to disable signing. Coppia di chiavi utilizzata per firmare le richieste in uscita. Lascia vuoto per disabilitare la firma. - + Allow IDP-initiated logins Consenti accessi iniziati da IDP - + Allows authentication flows initiated by the IdP. This can be a security risk, as no validation of the request ID is done. Consente i flussi di autenticazione avviati dall'IDP. Questo può essere un rischio per la sicurezza, poiché non viene eseguita alcuna convalida dell'ID richiesta. - + NameID Policy Criterio NameID - + Persistent Persistente - + Email address Indirizzo email - + Windows Windows - + X509 Subject Soggetto X509 - + Transient Effimero - + Delete temporary users after Elimina gli utenti temporanei dopo - + Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. - Tempo da attendere quando gli utenti temporanei devono essere eliminati. Questo vale solo se l'IDP utilizza il formato NameID "Transient" e l'utente non si disconnette manualmente. - + Tempo da attendere quando gli utenti temporanei devono essere eliminati. Questo vale solo se l'IDP utilizza il formato NameID "Transient" e l'utente non si disconnette manualmente. + Pre-authentication flow Flusso pre-autenticazione - + Flow used before authentication. Flusso utilizzato prima dell'autenticazione. - + New source Nuova sorgente - + Create a new source. Crea una nuova sorgente - + Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. Fonti di identità, che possono essere sincronizzate nel database di Authentik o possono essere utilizzate dagli utenti per autenticarsi e iscriversi. - + Source(s) Sorgente(i) - + Disabled Disabilitato - + Built-in Built-in - + Update LDAP Source Aggiorna sorgente LDAP - + Not synced yet. Non ancora sincronizzato - + OAuth Source Dorgente OAuth - + Generic OpenID Connect OpenID Connect Generico - + Unknown provider type Tipo provider sconosciuto - + Details Dettagli - + Callback URL Callback URL - + Access Key Access Key - + Update OAuth Source Aggiorna sorgente OAuth - + Diagram Diagramma - + Policy Bindings Associazione Criterio - + These bindings control which users can access this source. @@ -3321,418 +3321,418 @@ doesn't pass when either or both of the selected options are equal or above the Update Plex Source Aggiorna sorgente Plex - + Update SAML Source Aggiorna sorgente SAML - + Successfully updated mapping. Mappatura aggiornata con successo. - + Successfully created mapping. Mappatura creata con successo. - + SAML Attribute Name Attributo nome SAML - + Attribute name used for SAML Assertions. Can be a URN OID, a schema reference, or a any other string. If this property mapping is used for NameID Property, this field is discarded. Nome attributo usato per le asserzioni SAML. Può essere un URN OID, un riferimento allo schema o qualsiasi altra stringa. Se questa mappatura delle proprietà viene utilizzata per la proprietà NameID, questo campo viene scartato. - + Friendly Name Nome amichevole - + Optionally set the 'FriendlyName' value of the Assertion attribute. - Opzionale: imposta il valore "friendlyname" dell'attributo di asserzione. - + Opzionale: imposta il valore "friendlyname" dell'attributo di asserzione. + Scope name Scope name - + Scope which the client can specify to access these properties. Ambito che il client può specificare per accedere a queste proprietà. - + Description shown to the user when consenting. If left empty, the user won't be informed. Descrizione mostrata all'utente quando consenziente. Se lasciato vuoto, l'utente non verrà informato. - + Example context data Dati di contesto di esempio - + Active Directory User Utente Active Directory - + Active Directory Group Gruppo Active Directory - + New property mapping Nuova mappatura proprietà - + Create a new property mapping. Crea una nuova mappatura proprietà - + Property Mappings Mappatura proprietà - + Control how authentik exposes and interprets information. Controlla come authentik espone e interpreta le informazioni. - + Property Mapping(s) Mappatura delle proprietà - + Test Property Mapping Mappatura delle proprietà di test - + Hide managed mappings Nascondere mappature gestite - + Successfully updated token. Token aggiornato correttamente. - + Successfully created token. Token creato correttamente. - + Unique identifier the token is referenced by. Identificatore univoco del token - + Intent Intent - + API Token API Token - + Used to access the API programmatically Utilizzato per accedere all'API in modo programmatico - + App password. App password. - + Used to login using a flow executor Utilizzato per accedere usando un esecutore di flusso - + Expiring In scadenza - + If this is selected, the token will expire. Upon expiration, the token will be rotated. Se questo è selezionato, il token scade. Alla scadenza, il token viene ruotato. - + Expires on Scade il - + API Access Accesso API - + App password App password - + Verification Verifica - + Unknown intent Intent sconosciuto - + Tokens Tokens - + Tokens are used throughout authentik for Email validation stages, Recovery keys and API access. I token vengono utilizzati in Authentik per le fasi di convalida dell'e-mail, le chiavi di ripristino e l'accesso all'API. - + Expires? Scade? - + Expiry date Data di scadenza - + Token(s) Token(s) - + Create Token Crea token - + Token is managed by authentik. Token gestito da Authentik - + Update Token Aggiorna Token - + Domain Dominio - + Matching is done based on domain suffix, so if you enter domain.tld, foo.domain.tld will still match. La corrispondenza viene effettuata in base al suffisso del dominio, quindi se inserisci domain.tld, foo.domain.tld corrisponderà comunque. - + Default Predefinito - + Branding settings Impostazioni branding - + Title Titolo - + Branding shown in page title and several other places. Branding mostrato nel titolo della pagina e in molti altri posti. - + Logo Logo - + Icon shown in sidebar/header and flow executor. Icona mostrata nella barra laterale/intestazione e nell'esecutore del flusso. - + Favicon Favicon - + Icon shown in the browser tab. Icona mostrata nella scheda del browser. - + Default flows Flussi predefiniti - + Flow used to authenticate users. If left empty, the first applicable flow sorted by the slug is used. Flusso utilizzato per autenticare gli utenti. Se lasciato vuoto, viene utilizzato il primo flusso applicabile ordinato in base allo slug. - + Invalidation flow Flusso di invalidazione - + Flow used to logout. If left empty, the first applicable flow sorted by the slug is used. Flusso usato per logout. Se lasciato vuoto, viene utilizzato il primo flusso applicabile ordinato dallo slug. - + Recovery flow Flusso di recupero - + Unenrollment flow Flusso di cancellazione - + If set, users are able to unenroll themselves using this flow. If no flow is set, option is not shown. Se impostato, gli utenti sono in grado di anullare l'iscrizione usando questo flusso. Se non è impostato alcun flusso, l'opzione non viene mostrata. - + User settings flow Flusso impostazioni utente - + If set, users are able to configure details of their profile. Se impostato, gli utenti sono in grado di configurare i dettagli del proprio profilo. - + Device code flow Flusso dispositivo codice - + If set, the OAuth Device Code profile can be used, and the selected flow will be used to enter the code. Se impostato, è possibile utilizzare il OAuth Device Code e il flusso selezionato verrà utilizzato per immettere il codice. - + Other global settings Altre impostazioni globali - + Web Certificate Certificato Web - + Event retention Ritenzione degli eventi - + Duration after which events will be deleted from the database. Tempo dopo il quale gli eventi verranno eliminati dal database. - + - When using an external logging solution for archiving, this can be set to "minutes=5". - Quando si utilizza una soluzione di archiviazione esterna, questo può essere impostato a "minutes=5". - + When using an external logging solution for archiving, this can be set to "minutes=5". + Quando si utilizza una soluzione di archiviazione esterna, questo può essere impostato a "minutes=5". + This setting only affects new Events, as the expiration is saved per-event. Questa impostazione influisce solo sui nuovi eventi, poiché la scadenza viene salvata per evento. - + Configure visual settings and defaults for different domains. Configura le impostazioni visibili e le impostazioni predefinite per domini diversi. - + Default? Predefinito? - + Policies Criteri - + Allow users to use Applications based on properties, enforce Password Criteria and selectively apply Stages. Consenti agli utenti di utilizzare le applicazioni in base alle proprietà, applicare i criteri di password e applicare selettivamente le fasi(stages). - + Assigned to object(s). Assegnato a oggetto(i). - + Warning: Policy is not assigned. Attenzione: il criterio non è assegnato. - + Test Policy Prova criterio - + Policy / Policies Criterio / Criteri - + Successfully cleared policy cache Cancellazione della cache dei criteri con successo - + Failed to delete policy cache Impossibile eliminare la cache della policy - + Clear cache Cancella cache - + Clear Policy cache Cancella cache criteri - + Are you sure you want to clear the policy cache? This will cause all policies to be re-evaluated on their next usage. @@ -3741,93 +3741,93 @@ doesn't pass when either or both of the selected options are equal or above the Reputation scores Punteggi di reputazione - + Reputation for IP and user identifiers. Scores are decreased for each failed login and increased for each successful login. Reputazione per IP e identificatori dell'utente. I punteggi vengono ridotti per ogni accesso non riuscito e aumentati per ogni accesso riuscito. - + IP IP - + Score Punteggio - + Updated Aggiornato - + Reputation Reputazione - + Groups Gruppi - + Group users together and give them permissions based on the membership. Gruppo gli utenti insieme e forniscono loro autorizzazioni in base all'appartenenza. - + Superuser privileges? Privilegi di superutente? - + Group(s) Gruppo(i) - + Create Group Crea Gruppo - + Create group Crea gruppo - + Enabling this toggle will create a group named after the user, with the user as member. Abilitazione di questo interruttore creerà un gruppo che prende il nome dall'utente, con l'utente come membro. - + Use the username and password below to authenticate. The password can be retrieved later on the Tokens page. Utilizzare il nome utente e la password di seguito per autenticare. La password può essere recuperata più avanti nella pagina dei token. - + Password Password - + Valid for 360 days, after which the password will automatically rotate. You can copy the password from the Token List. Valido per 360 giorni, dopo di che la password ruoterà automaticamente. È possibile copiare la password dall'elenco dei token. - + The following objects use Il seguente oggetto usa - + connecting object will be deleted oggetti connessi saranno cancellati - + Successfully updated @@ -3838,617 +3838,612 @@ doesn't pass when either or both of the selected options are equal or above the Impossibile aggiornare : - + - Are you sure you want to update ""? + Are you sure you want to update ""? Sei sicuro di voler aggiornare - " - "? - + " + "? + Successfully updated password. Password aggiornata con successo. - + Successfully sent email. Email inviata con successo. - + Email stage Fase email - + Successfully added user(s). Aggiunto con successo utente(i). - + Users to add Utenti da aggiungere - + User(s) Utente(i) - + Remove Users(s) Rimuovi Utente(i) - + Are you sure you want to remove the selected users from the group ? Vuoi davvero rimuovere gli utenti selezionati dal gruppo ? - + Remove Rimuovi - + Impersonate Impersona - + User status Stato utente - + Change status Cambiare stato - + Deactivate Disattiva - + Update password Aggiorna password - + Set password Imposta password - + Successfully generated recovery link Link di recupero generato con successo - + No recovery flow is configured. Nessun flusso di recupero è configurato. - + Copy recovery link Copia il link di recupero - + Send link Invia link - + Send recovery link to user Invia il link di recupero all'utente - + Email recovery link Link di recupero email - + Recovery link cannot be emailed, user has no email address saved. Impossibile inviare tramite e-mail il collegamento di recupero, l'utente non ha un indirizzo e-mail salvato. - + Add User Aggiungi utente - + Warning: This group is configured with superuser access. Added users will have superuser access. Attenzione: questo gruppo è configurato con accesso come superutente. Gli utenti aggiunti avranno accesso come superutente. - + Add existing user Aggiungi utente esistente - + Create user Creare utente - + Create User Creare utente - + Create Service account Creare account di servizio - + Hide service-accounts Nascondi account di servizio - + Group Info Info Gruppi - + Notes Note - + Edit the notes attribute of this group to add notes here. Modifica l'attributo Note di questo gruppo per aggiungere note qui. - + Users Utenti - + Root Root - + Warning: You're about to delete the user you're logged in as (). Proceed at your own risk. Attenzione: stai per eliminare l'utente con cui hai effettuato l'accesso ( ). Procedete a vostro rischio. - + Hide deactivated user Nascondi utente disattivato - + User folders Cartelle utente - + Successfully added user to group(s). Utente aggiunto ai gruppo(i) con successo. - + Groups to add Gruppi da aggiungere - + Remove from Group(s) Rimuovi dal gruppo(i) - - - - Are you sure you want to remove user from the following groups? - Sei sicuro di voler rimuovere l'utente - dai seguenti gruppi? - + + Add Group Aggiungi Gruppo - + Add to existing group Aggiungi a gruppo esistente - + Add new group Aggiungi nuovo gruppo - + Application authorizations Autorizzazioni applicazione - + Revoked? Revocato? - + Expires Scade - + ID Token ID Token - + Refresh Tokens(s) Tokens(s) di aggiornamento - + Last IP Ultimo IP - + Session(s) Sessione(i) - + Expiry Scadenza - + (Current session) (Current session) - + Permissions Permessi - + Consent(s) Consenso(i) - + Successfully updated device. Dispositivo aggiornato correttamente. - + Static tokens Token statici - + TOTP Device Dispositivo TOTP - + Enroll Iscrivi - + Device(s) Dispositivo(i) - + Update Device Aggiorna Dispositivo - + Confirmed Confermato - + User Info Info Utente - + Actions over the last week (per 8 hours) Azioni nell'ultima settimana (per 8 ore) - + Edit the notes attribute of this user to add notes here. Modifica l'attributo Note di questo utente per aggiungere note qui. - + Sessions Sessioni - + User events Eventi utente - + Explicit Consent Consenso esplicito - + OAuth Refresh Tokens OAuth Refresh Tokens - + MFA Authenticators Autenticatori MFA - + Successfully updated invitation. Invito aggiornato con successo. - + Successfully created invitation. Invito creato con successo. - + Flow Flusso - + When selected, the invite will only be usable with the flow. By default the invite is accepted on all flows with invitation stages. Una volta selezionato, l'invito sarà utilizzabile solo con il flusso. Per impostazione predefinita, l'invito viene accettato su tutti i flussi con fasi di invito. - + Optional data which is loaded into the flow's 'prompt_data' context variable. YAML or JSON. - Dati facoltativi che vengono caricati nella variabile di contesto "prompt_data" del flusso. YAML o JSON. - + Dati facoltativi che vengono caricati nella variabile di contesto "prompt_data" del flusso. YAML o JSON. + Single use Uso singolo - + When enabled, the invitation will be deleted after usage. Se abilitato, l'invito verrà eliminato dopo l'utilizzo. - + Select an enrollment flow Seleziona un flusso di registrazione - + Link to use the invitation. Collegamento per usare l'invito. - + Invitations Inviti - + Create Invitation Links to enroll Users, and optionally force specific attributes of their account. Crea collegamenti di invito per iscrivere gli utenti e, facoltativamente, forza attributi specifici del loro account. - + Created by Creato da - + Invitation(s) Invito/i - + Invitation not limited to any flow, and can be used with any enrollment flow. L'invito non è limitato a nessun flusso e può essere utilizzato con qualsiasi flusso di registrazione. - + Update Invitation Aggiorna Invito - + Create Invitation Crea Invito - + Warning: No invitation stage is bound to any flow. Invitations will not work as expected. Attenzione: nessuna fase di invito è vincolata ad alcun flusso. Gli inviti non funzioneranno come previsto. - + Auto-detect (based on your browser) Rilevamento automatico (in base al browser) - + Required. Richiesto. - + Continue Continua - + Successfully updated prompt. Richiesta aggiornata con successo. - + Successfully created prompt. Richiesta creata con successo. - + Text: Simple Text input Testo: semplice immissione di testo - + Text Area: Multiline text input Area di testo: immissione di testo su più righe - + Text (read-only): Simple Text input, but cannot be edited. Testo (sola lettura): semplice immissione di testo, ma non può essere modificato. - + Text Area (read-only): Multiline text input, but cannot be edited. Area di testo (sola lettura): inserimento di testo su più righe, ma non può essere modificato. - + Username: Same as Text input, but checks for and prevents duplicate usernames. Nome utente: uguale all'immissione di testo, ma controlla e impedisce i nomi utente duplicati. - + Email: Text field with Email type. E-mail: campo di testo con tipo di e-mail. - + Password: Masked input, multiple inputs of this type on the same prompt need to be identical. Password: input mascherato, più input di questo tipo sullo stesso prompt devono essere identici. - + Number Numero - + Checkbox Casella di spunta - + Radio Button Group (fixed choice) Gruppo di pulsanti di opzione (scelta fissa) - + Dropdown (fixed choice) Menu a discesa (scelta fissa) - + Date Data - + Date Time Data Ora - + File File - + Separator: Static Separator Line Separatore: linea di separazione statica - + Hidden: Hidden field, can be used to insert data into form. Nascosto: campo nascosto, può essere utilizzato per inserire i dati in forma. - + Static: Static value, displayed as-is. Statico: valore statico, visualizzato così com'è. - + authentik: Locale: Displays a list of locales authentik supports. Authenk: Locale: visualizza un elenco di supporti di Autenik Locali. - + Preview errors Anteprima errori - + Data preview Anteprima dati - + Unique name of this field, used for selecting fields in prompt stages. Nome univoco di questo campo, utilizzato per selezionare i campi nelle fasi del prompt. - + Field Key Chiave campo - + Name of the form field, also used to store the value. Nome del campo del modulo, utilizzato anche per memorizzare il valore. - + When used in conjunction with a User Write stage, use attributes.foo to write attributes. Se utilizzato insieme a una fase di scrittura dell'utente, utilizzare attributi.foo per scrivere gli attributi. - + Label Etichetta - + Label shown next to/above the prompt. Etichetta mostrata accanto/sopra il prompt. - + Required Richiesto - + Interpret placeholder as expression Interpreta il segnaposto come espressione - + When checked, the placeholder will be evaluated in the same way a property mapping is. @@ -4459,7 +4454,7 @@ doesn't pass when either or both of the selected options are equal or above the Placeholder Segnaposto - + Optionally provide a short hint that describes the expected input value. @@ -4472,7 +4467,7 @@ doesn't pass when either or both of the selected options are equal or above the Interpret initial value as expression Interpretare il valore iniziale come espressione - + When checked, the initial value will be evaluated in the same way a property mapping is. @@ -4483,7 +4478,7 @@ doesn't pass when either or both of the selected options are equal or above the Initial value Valore iniziale - + Optionally pre-fill the input with an initial value. @@ -4496,152 +4491,152 @@ doesn't pass when either or both of the selected options are equal or above the Help text Testo d'aiuto - + Any HTML can be used. È possibile utilizzare qualsiasi codice HTML. - + Prompts Richieste - + Single Prompts that can be used for Prompt Stages. Richieste singole utilizzabili per le fasi delle richieste. - + Field Campo - + Stages Fasi - + Prompt(s) Richiesta(e) - + Update Prompt Richiesta aggiornamento - + Create Prompt Crea richiesta - + Target Bersaglio - + Stage Fase - + Evaluate when flow is planned Valuta quando è pianificato il flusso - + Evaluate policies during the Flow planning process. Valutare le policies durante il processo di pianificazione del flusso. - + Evaluate when stage is run Valutare quando la fase è eseguita - + Evaluate policies before the Stage is present to the user. Valutare le policies prima che la fase sia presente all'utente. - + Invalid response behavior Comportamento risposta non valida - + Returns the error message and a similar challenge to the executor Restituisce il messaggio di errore e una sfida simile all'esecutore - + Restarts the flow from the beginning Riavvia il flusso dall'inizio - + Restarts the flow from the beginning, while keeping the flow context Riavvia il flusso dall'inizio, mantenendo il contesto del flusso - + Configure how the flow executor should handle an invalid response to a challenge given by this bound stage. Configurare il modo in cui l'esecutore del flusso dovrebbe gestire una risposta non valida a una sfida data da questa fase vincolata. - + Successfully updated stage. Fase aggiornata con successo. - + Successfully created stage. Fase creata con successo. - + Stage used to configure a duo-based authenticator. This stage should be used for configuration flows. Fase utilizzata per configurare un autenticatore basato su duo. Questa fase dovrebbe essere utilizzata per i flussi di configurazione. - + Authenticator type name Nome del tipo di autenticatore - + Display name of this authenticator, used by users when they enroll an authenticator. Visualizza il nome di questo autenticatore, utilizzato dagli utenti quando iscrivono un autenticatore. - + API Hostname API Hostname - + Duo Auth API Duo Auth API - + Integration key Chiave di integrazione - + Secret key Chiave segreta - + Duo Admin API (optional) Duo Admin API (opzionale) - + When using a Duo MFA, Access or Beyond plan, an Admin API application can be created. @@ -4652,617 +4647,617 @@ doesn't pass when either or both of the selected options are equal or above the Stage-specific settings Impostazioni specifiche per la fase - + Configuration flow Flusso di configurazione - + Flow used by an authenticated user to configure this Stage. If empty, user will not be able to configure this stage. Flusso utilizzato da un utente autenticato per configurare questa fase. Se vuoto, l'utente non sarà in grado di configurare questa fase. - + Twilio Account SID Twilio Account SID - + Get this value from https://console.twilio.com Ottieni questo valore da https://console.twilio.com - + Twilio Auth Token Twilio Auth Token - + Authentication Type Tipo di autenticazione - + Basic Auth Basic Auth - + Bearer Token Bearer Token - + External API URL External API URL - + This is the full endpoint to send POST requests to. Questo è l'endpoint completo a cui inviare richieste post. - + API Auth Username API Auth Username - + This is the username to be used with basic auth or the token when used with bearer token Questo è il nome utente da utilizzare con l'autenticazione di base o il token quando utilizzato con il bearer token - + API Auth password API Auth password - + This is the password to be used with basic auth Questa è la password da utilizzare con l'autenticazione di base - + Mapping Mappatura - + Modify the payload sent to the custom provider. Modifica il payload inviato al provider personalizzato. - + Stage used to configure an SMS-based TOTP authenticator. Fase utilizzata per configurare un autenticatore TOTP basato su SMS. - + Twilio Twilio - + Generic Generico - + From number Da numero - + Number the SMS will be sent from. Il numero da cui verrà inviato l'SMS. - + Hash phone number Hash numero di telefono - + If enabled, only a hash of the phone number will be saved. This can be done for data-protection reasons. Devices created from a stage with this enabled cannot be used with the authenticator validation stage. Se abilitato, verrà salvato solo un hash del numero di telefono. Questo può essere fatto per motivi di protezione dei dati. I dispositivi creati da una fase con questo abilitato non possono essere utilizzati con la fase di convalida dell'autenticatore. - + Stage used to configure a static authenticator (i.e. static tokens). This stage should be used for configuration flows. Fase utilizzato per configurare un autenticatore statico (ovvero token statici). Questa fase dovrebbe essere utilizzata per i flussi di configurazione. - + Token count Conteggio dei token - + Stage used to configure a TOTP authenticator (i.e. Authy/Google Authenticator). Fase utilizzato per configurare un Autenticatore TOTP (ovvero Authy/Google Authenticator). - + Digits Cifre - + 6 digits, widely compatible 6 cifre, ampia compatibilità - + 8 digits, not compatible with apps like Google Authenticator 8 cifre, non compatibile con app come Google Authenticator - + Stage used to validate any authenticator. This stage should be used during authentication or authorization flows. Stage utilizzato per convalidare qualsiasi autenticatore. Questa fase dovrebbe essere utilizzata durante i flussi di autenticazione o di autorizzazione. - + Device classes Classi dispositivi - + Static Tokens Token statici - + TOTP Authenticators Autenticatori TOTP - + WebAuthn Authenticators Autenticatori WebAuthn - + Duo Authenticators Autenticatori Duo - + SMS-based Authenticators Autenticatori bassati su SMS - + Device classes which can be used to authenticate. Classi di dispositivi che possono essere utilizzati per autenticare. - + Last validation threshold Ultima soglia di convalida - + Not configured action Azione non configurata - + Force the user to configure an authenticator Costringere l'utente a configurare un autenticatore - + Deny the user access Nega l'accesso utente - + WebAuthn User verification Verifica utente WebAuthn - + User verification must occur. È necessario che venga effettuata la verifica dell'utente. - + User verification is preferred if available, but not required. La verifica dell'utente è preferita se disponibile, ma non richiesta. - + User verification should not occur. La verifica dell'utente non dovrebbe verificarsi. - + Configuration stages Configurazione fasi - + Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again. Fase utilizzate per configurare Authenticator quando l'utente non ha dispositivi compatibili. Dopo questa fase di configurazione passa, all'utente non viene nuovamente richiesto. - + When multiple stages are selected, the user can choose which one they want to enroll. Quando vengono selezionate più fasi, l'utente può scegliere quale desidera iscriversi. - + User verification Verifica dell'utente - + Resident key requirement Richesta chiave residente - + Authenticator Attachment Allegato Autenticatore - + No preference is sent Nessuna preferenza viene inviata - + A non-removable authenticator, like TouchID or Windows Hello Un autenticatore non rimovibile, come TouchID o Windows Hello - + - A "roaming" authenticator, like a YubiKey - Un autenticatore "roaming", come un YubiKey - + A "roaming" authenticator, like a YubiKey + Un autenticatore "roaming", come un YubiKey + This stage checks the user's current session against the Google reCaptcha (or compatible) service. Questa fase controlla la sessione corrente dell'utente rispetto al servizio Google Recaptcha (o compatibile). - + Public Key Chiave pubblica - + Public key, acquired from https://www.google.com/recaptcha/intro/v3.html. Chiave pubblica, acquisita da https://www.google.com/recaptcha/intro/v3.html. - + Private Key Chiave privata - + Private key, acquired from https://www.google.com/recaptcha/intro/v3.html. Chiave privata, acquisita da https://www.google.com/recaptcha/intro/v3.html. - + Advanced settings Impostazioni avanzate - + JS URL JS URL - + URL to fetch JavaScript from, defaults to recaptcha. Can be replaced with any compatible alternative. URL per recuperare javascript da, impostazione predefinita per recaptcha. Può essere sostituito con qualsiasi alternativa compatibile. - + API URL API URL - + URL used to validate captcha response, defaults to recaptcha. Can be replaced with any compatible alternative. URL usato per convalidare la risposta di Captcha, i valori predefiniti sono recaptcha. Può essere sostituito con qualsiasi alternativa compatibile. - + Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time. Prompt per il consenso dell'utente. Il consenso può essere permanente o scadere in un periodo di tempo definito. - + Always require consent Richiedi sempre il consenso - + Consent given last indefinitely Consenso dato l'ultimo indefinitamente - + Consent expires. Consenso scade. - + Consent expires in Il consenso scade tra - + Offset after which consent expires. Offset dopo di che il consenso scade. - + Dummy stage used for testing. Shows a simple continue button and always passes. Stage fittizio utilizzato per i test. Mostra un semplice pulsante Continua e passa sempre. - + Throw error? Lanciare errore? - + SMTP Host Host SMTP - + SMTP Port Porta SMTP - + SMTP Username Nome utente SMTP - + SMTP Password Password SMTP - + Use TLS Usa TLS - + Use SSL Usa SSL - + From address Da indirizzo - + Verify the user's email address by sending them a one-time-link. Can also be used for recovery to verify the user's authenticity. Verifica l'indirizzo e-mail dell'utente inviando loro un collegamento una tantum. Può anche essere utilizzato per il recupero per verificare l'autenticità dell'utente. - + Activate pending user on success Attiva l'utente in sospeso sul successo - + When a user returns from the email successfully, their account will be activated. Quando un utente ritorna correttamente dall'e -mail, il loro account verrà attivato. - + Use global settings Usa impostazioni globali - + When enabled, global Email connection settings will be used and connection settings below will be ignored. Se abilitato, verranno utilizzate le impostazioni di connessione e -mail globali e le impostazioni di connessione di seguito verranno ignorate. - + Token expiry Scadenza token - + Time in minutes the token sent is valid. Il tempo in pochi minuti il ​​token inviato è valido. - + Template Modello - + Let the user identify themselves with their username or Email address. Lascia che l'utente si identifichi con il proprio nome utente o indirizzo e -mail. - + User fields Campi utente - + UPN UPN - + Fields a user can identify themselves with. If no fields are selected, the user will only be able to use sources. Campi con cui un utente può identificarsi. Se non vengono selezionati campi, l'utente sarà in grado di utilizzare solo fonti. - + Password stage Fase password - + When selected, a password field is shown on the same page instead of a separate page. This prevents username enumeration attacks. Quando selezionato, un campo password viene mostrato nella stessa pagina anziché una pagina separata. Ciò impedisce gli attacchi di enumerazione del nome utente. - + Case insensitive matching Corrispondenza senza distinzione tra maiuscole e minuscole - + When enabled, user fields are matched regardless of their casing. Se abilitato, i campi utente vengono abbinati indipendentemente dal loro involucro. - + Show matched user Mostra l'utente corrispondente - + When a valid username/email has been entered, and this option is enabled, the user's username and avatar will be shown. Otherwise, the text that the user entered will be shown. Quando è stato inserito un nome utente/e -mail valido e questa opzione è abilitata, verranno visualizzati il ​​nome utente e l'avatar dell'utente. Altrimenti, verrà visualizzato il testo che l'utente immesso. - + Source settings Impostazioni sorgenti - + Sources Sorgenti - + Select sources should be shown for users to authenticate with. This only affects web-based sources, not LDAP. Selezionare le fonti devono essere mostrate per gli utenti con cui l'autenticazione. Ciò influisce solo sulle fonti basate sul Web, non LDAP. - + Show sources' labels Mostra le etichette di fonti - + By default, only icons are shown for sources. Enable this to show their full names. Per impostazione predefinita, vengono mostrate solo le icone per le fonti. Abilita questa opzione per mostrare i loro nomi completi. - + Passwordless flow Flusso passwordless - + Optional passwordless flow, which is linked at the bottom of the page. When configured, users can use this flow to authenticate with a WebAuthn authenticator, without entering any details. Flusso opzionale senza password, che è collegato in fondo alla pagina. Quando configurato, gli utenti possono usare questo flusso per autenticarsi con un autenticatore WebAuthn, senza immettere alcun dettaglio. - + Optional enrollment flow, which is linked at the bottom of the page. Flusso di iscrizione facoltativo, il cui collegamento si trova in fondo alla pagina. - + Optional recovery flow, which is linked at the bottom of the page. Flusso di recupero facoltativo, il cui collegamento si trova in fondo alla pagina. - + This stage can be included in enrollment flows to accept invitations. Questa fase può essere inclusa nei flussi di iscrizione per accettare gli inviti. - + Continue flow without invitation Continua a flusso senza invito - + If this flag is set, this Stage will jump to the next Stage when no Invitation is given. By default this Stage will cancel the Flow when no invitation is given. Se questa bandiera è impostata, questa fase salterà alla fase successiva quando non viene fornito alcun invito. Per impostazione predefinita, questa fase annullerà il flusso quando non viene fornito alcun invito. - + Validate the user's password against the selected backend(s). Convalida la password dell'utente rispetto al backend selezionato. - + Backends Backends - + User database + standard password Database utente + password standard - + User database + app passwords Database utente + password dell'app - + User database + LDAP password Database utente + password LDAP - + Selection of backends to test the password against. Selezione di backend per testare la password contro. - + Flow used by an authenticated user to configure their password. If empty, user will not be able to configure change their password. Flusso utilizzato da un utente autenticato per configurare la propria password. Se vuoto, l'utente non sarà in grado di configurare la modifica della password. - + Failed attempts before cancel Tentativi non riusciti prima dell'annullamento - + How many attempts a user has before the flow is canceled. To lock the user out, use a reputation policy and a user_write stage. Quanti tentativi ha un utente prima che il flusso venga annullato. Per bloccare l'utente, utilizzare una politica di reputazione e una fase User_Write. - + Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. - Mostra campi di input arbitrari all'utente, ad esempio durante l'iscrizione. I dati vengono salvati nel contesto di flusso nell'ambito della variabile "prompt_data". - + Mostra campi di input arbitrari all'utente, ad esempio durante l'iscrizione. I dati vengono salvati nel contesto di flusso nell'ambito della variabile "prompt_data". + Fields Campi - + Validation Policies Criteri di Validazione - + Selected policies are executed when the stage is submitted to validate the data. Le politiche selezionate vengono eseguite quando la fase viene inviata per convalidare i dati. - + Delete the currently pending user. CAUTION, this stage does not ask for confirmation. Use a consent stage to ensure the user is aware of their actions. @@ -5271,364 +5266,364 @@ doesn't pass when either or both of the selected options are equal or above the Log the currently pending user in. Registra l'utente attualmente in sospeso in. - + Session duration Durata della sessione - + Determines how long a session lasts. Default of 0 seconds means that the sessions lasts until the browser is closed. Determina quanto dura una sessione. Predefinito di 0 secondi significa che le sessioni durano fino alla chiusura del browser. - + Different browsers handle session cookies differently, and might not remove them even when the browser is closed. Diversi browser gestiscono i cookie di sessione in modo diverso e potrebbero non rimuoverli anche quando il browser è chiuso. - + See here. Guarda qui. - + Stay signed in offset Resta firmato in composizione - + - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. - Se impostato su una durata superiore a 0, l'utente avrà la possibilità di scegliere di "rimanere firmato", che estenderà la sessione entro il momento specificato qui. - + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + Se impostato su una durata superiore a 0, l'utente avrà la possibilità di scegliere di "rimanere firmato", che estenderà la sessione entro il momento specificato qui. + Terminate other sessions Terminare altre sessioni - + When enabled, all previous sessions of the user will be terminated. Se abilitato, tutte le sessioni precedenti dell'utente verranno terminate. - + Remove the user from the current session. Rimuovere l'utente dalla sessione corrente. - + Write any data from the flow's context's 'prompt_data' to the currently pending user. If no user is pending, a new user is created, and data is written to them. - Scrivi qualsiasi dati dal contesto del flusso "prompt_data" all'utente attualmente in sospeso. Se nessun utente + Scrivi qualsiasi dati dal contesto del flusso "prompt_data" all'utente attualmente in sospeso. Se nessun utente è in sospeso, viene creato un nuovo utente e vengono scritti dati. Never create users Non creare mai utenti - + When no user is present in the flow context, the stage will fail. Quando nessun utente è presente nel contesto del flusso, lo stadio fallirà. - + Create users when required Creare utenti quando richiesto - + When no user is present in the the flow context, a new user is created. Quando non è presente alcun utente nel contesto del flusso, viene creato un nuovo utente. - + Always create new users Creare sempre nuovi utenti - + Create a new user even if a user is in the flow context. Crea un nuovo utente anche se un utente è nel contesto di flusso. - + Create users as inactive Creare utenti come inattivi - + Mark newly created users as inactive. Segna i nuovi utenti come inattivi. - + User path template Modello percorso utente - + Path new users will be created under. If left blank, the default path will be used. Percorso verranno creati nuovi utenti. Se lasciato vuoto, verrà utilizzato il percorso predefinito. - + Newly created users are added to this group, if a group is selected. Gli utenti appena creati vengono aggiunti a questo gruppo, se viene selezionato un gruppo. - + New stage Nuova fase - + Create a new stage. Crea una nuova fase. - + Successfully imported device. Dispositivo importato con successo. - + The user in authentik this device will be assigned to. L'utente in autencik questo dispositivo verrà assegnato. - + Duo User ID Duo User ID - + The user ID in Duo, can be found in the URL after clicking on a user. L'ID utente in duo è disponibile nell'URL dopo aver fatto clic su un utente. - + Automatic import Importazione automatica - + Successfully imported devices. Importati con successo dispositivi. - + Start automatic import Iniziare l'importazione automatica - + Or manually import O importa manualmente - + Stages are single steps of a Flow that a user is guided through. A stage can only be executed from within a flow. Le fasi sono singoli passaggi di un flusso su cui un utente è guidato. Una fase può essere eseguita solo all'interno di un flusso. - + Flows Flussi - + Stage(s) Fase(i) - + Import Importa - + Import Duo device Importa dispositivo Duo - + Successfully updated flow. Aggiornato con successo il flusso. - + Successfully created flow. Creato con successo il flusso. - + Shown as the Title in Flow pages. Mostrato come titolo nelle pagine di flusso. - + Visible in the URL. Visibile nell'URL. - + Designation Designazione - + Decides what this Flow is used for. For example, the Authentication flow is redirect to when an un-authenticated user visits authentik. Decide a cosa serve questo flusso. Ad esempio, il flusso di autenticazione viene reindirizzato a quando un utente non autenticato visita Authenk. - + No requirement Nessun requisito - + Require authentication Richiedere l'autenticazione - + Require no authentication. Richiedere nessuna autenticazione. - + Require superuser. Richiedi superutente. - + Required authentication level for this flow. Livello di autenticazione richiesto per questo flusso. - + Behavior settings Impostazioni del comportamento - + Compatibility mode Modalità di compatibilità - + Increases compatibility with password managers and mobile devices. Aumenta la compatibilità con i gestori di password e i dispositivi mobili. - + Denied action Azione negata - + Will follow the ?next parameter if set, otherwise show a message Seguirà il parametro successivo se impostato, altrimenti mostra un messaggio - + Will either follow the ?next parameter or redirect to the default interface Seguirà il parametro successivo o reindirizza all'interfaccia predefinita - + Will notify the user the flow isn't applicable Notificherà all'utente il flusso non è applicabile - + Decides the response when a policy denies access to this flow for a user. Decide la risposta quando una politica nega l'accesso a questo flusso per un utente. - + Appearance settings Impostazioni di visualizzazione - + Layout Layout - + Background Sfondo - + Background shown during execution. Sfondo mostrato durante l'esecuzione. - + Clear background Pulisci sfondo - + Delete currently set background image. Elimina l'immagine di sfondo attualmente impostata. - + Successfully imported flow. Importazione del flusso riuscita. - + .yaml files, which can be found on goauthentik.io and can be exported by authentik. .yaml Files, che possono essere trovati su goauthentik.io e possono essere esportati da Authenk. - + Flows describe a chain of Stages to authenticate, enroll or recover a user. Stages are chosen based on policies applied to them. I flussi descrivono una catena di fasi per autenticare, iscrivere o recuperare un utente. Le fasi vengono scelte in base alle politiche applicate a loro. - + Flow(s) Flusso(i) - + Update Flow Aggiorna Flusso - + Create Flow Crea Flusso - + Import Flow Importa Flusso - + Successfully cleared flow cache Cache di flusso cancellata con successo - + Failed to delete flow cache Impossibile eliminare la cache di flusso - + Clear Flow cache Pulisci cache flusso - + Are you sure you want to clear the flow cache? @@ -5639,253 +5634,253 @@ doesn't pass when either or both of the selected options are equal or above the Stage binding(s) Associazione(i) fase - + Stage type Tipo fase - + Edit Stage Modifica Fase - + Update Stage binding Aggiorna Associazione fase - + These bindings control if this stage will be applied to the flow. Questi legami controllano se questa fase verrà applicata al flusso. - + No Stages bound Nessuna fase associata - + No stages are currently bound to this flow. Al momento non sono presenti fasi associate a questo flusso. - + Create Stage binding Crea associazione di fase - + Bind existing stage Associa la fase esistente - + Flow Overview Panoramica del flusso - + Related actions Azioni correlate - + Execute flow Esegui flusso - + Normal Normale - + with current user con utente corrente - + with inspector con ispettore - + Export flow Esportazione flusso - + Export Esportazione - + Stage Bindings Associazione Fase - + These bindings control which users can access this flow. Queste associzioni controllano quali utenti possono accedere a questo flusso. - + Event Log Registro eventi - + Event Evento - + Event info Info Evento - + Created Creato - + Successfully updated transport. Aggiornato con successo il trasporto. - + Successfully created transport. Creato con successo il trasporto. - + Local (notifications will be created within authentik) Local (le notifiche verranno create all'interno di authentik) - + Webhook (generic) Webhook (generico) - + Webhook (Slack/Discord) Webhook (Slack/Discord) - + Webhook URL Webhook URL - + Webhook Mapping Webhook Mapping - + Send once Invia una volta - + Only send notification once, for example when sending a webhook into a chat channel. Invia una notifica solo una volta, ad esempio quando si invia un webhook in un canale di chat. - + Notification Transports Notifiche di trasporto - + Define how notifications are sent to users, like Email or Webhook. Definire come vengono inviate le notifiche agli utenti, come e -mail o webhook. - + Notification transport(s) Notifica trasporto(i) - + Update Notification Transport Aggiorna trasporto di notifica - + Create Notification Transport Creare trasporto di notifica - + Successfully updated rule. Aggiornato con successo la regola. - + Successfully created rule. Creato con successo la regola. - + Select the group of users which the alerts are sent to. If no group is selected the rule is disabled. Seleziona il gruppo di utenti a cui vengono inviati gli avvisi. Se non viene selezionato alcun gruppo, la regola è disabilitata. - + Transports Trasporti - + Select which transports should be used to notify the user. If none are selected, the notification will only be shown in the authentik UI. Selezionare quali trasporti dovrebbero essere utilizzati per avvisare l'utente. Se nessuno è selezionato, la notifica verrà mostrata solo nell'interfaccia utente di Authenk. - + Severity Gravità - + Notification Rules Regole di notifica - + Send notifications whenever a specific Event is created and matched by policies. Invia notifiche ogni volta che un evento specifico viene creato e abbinato dalle politiche. - + Sent to group Inviato al gruppo - + Notification rule(s) Regola(e) di notifica - + None (rule disabled) Nessuno (regola disattivata) - + Update Notification Rule Aggiorna regola di notifica - + Create Notification Rule Crea regola di notifica - + These bindings control upon which events this rule triggers. @@ -5896,903 +5891,893 @@ Bindings to groups/users are checked against the user of the event. Outpost Deployment Info Info Deployment Avamposto - + View deployment documentation Visualizza la documentazione di distribuzione - + Click to copy token Clicca per copiare il token - + If your authentik Instance is using a self-signed certificate, set this value. Se l'istanza Authenk sta utilizzando un certificato autofirmato, impostare questo valore. - + If your authentik_host setting does not match the URL you want to login with, add this setting. Se l'impostazione AUTHENK_HOST non corrisponde all'URL con cui si desidera accedere, aggiungi questa impostazione. - + Successfully updated outpost. Avamposto aggiornato con successo. - + Successfully created outpost. Avamposto creato con successo. - + Radius Radius - + Integration Integrazione - + Selecting an integration enables the management of the outpost by authentik. La selezione di un'integrazione consente la gestione dell'autospost di Authenk. - + Configuration Configurazione - + See more here: Vedi di più qui: - + Documentation Documentazione - + Last seen Ultima volta visto - - - - , should be - , dovrebbe essere - + Hostname Hostname - + Not available Non disponibile - + Unknown type Tipo sconosciuto - + Outposts Avamposti - + Outposts are deployments of authentik components to support different environments and protocols, like reverse proxies. Gli avamposti sono distribuzioni di componenti autencik per supportare diversi ambienti e protocolli, come i proxy inversi. - + Health and Version Salute e Versione - + Warning: authentik Domain is not configured, authentication will not work. Attenzione: il dominio authentik non è configurato, l'autenticazione non funzionerà. - + Logging in via . Accesso con . - + No integration active Nessuna integrazione attiva - + Update Outpost Aggiorna avamposto - + View Deployment Info Visualizza info Deployment - + Detailed health (one instance per column, data is cached so may be out of date) Salute dettagliata (un'istanza per colonna, i dati sono memorizzati nella cache, quindi potrebbe essere obsoleto) - + Outpost(s) Avamposto(i) - + Create Outpost Crea avamposto - + Successfully updated integration. Aggiornato con successo l'integrazione. - + Successfully created integration. Creato con successo l'integrazione. - + Local Locale - + If enabled, use the local connection. Required Docker socket/Kubernetes Integration. Se abilitato, utilizzare la connessione locale. Integrazione Docker Cocket Docker/Kubernetes. - + Docker URL Docker URL - + Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. Può essere nel formato 'unix://' quando si connette a un demone Docker locale, utilizzando 'ssh://' per connettersi tramite SSH o 'https://:2376' quando si connette a un sistema remoto. - + CA which the endpoint's Certificate is verified against. Can be left empty for no validation. CA su cui viene verificato il certificato dell'endpoint. Può essere lasciato vuoto per nessuna convalida. - + TLS Authentication Certificate/SSH Keypair Certificato di autenticazione TLS/KEYPAIR SSH - + Certificate/Key used for authentication. Can be left empty for no authentication. Certificato/chiave utilizzato per l'autenticazione. Può essere lasciato vuoto per nessuna autenticazione. - + When connecting via SSH, this keypair is used for authentication. Quando si collega tramite SSH, questa tastiera viene utilizzata per l'autenticazione. - + Kubeconfig Kubeconfig - + Verify Kubernetes API SSL Certificate Verifica certificato SSL API Kubernetes - + New outpost integration Nuova integrazione avamposto - + Create a new outpost integration. Crea una nuova integrazione avamposto. - + State Stato - + Unhealthy Non sano - + Outpost integration(s) Integrazione(i) avamposto - + Successfully generated certificate-key pair. Generato con successo il certificato-chiave. - + Common Name Common Name - + Subject-alt name Subject-alt name - + Optional, comma-separated SubjectAlt Names. Opzionale, nomi SubjectAlt separati da virgola. - + Validity days Giorni di validità - + Successfully updated certificate-key pair. Aggiornata con successo la coppia certificato-chiave. - + Successfully created certificate-key pair. Creato con successo il certificato-chiave. - + PEM-encoded Certificate data. Dati del certificato codificato PEM. - + Optional Private Key. If this is set, you can use this keypair for encryption. Chiave privata opzionale. Se impostata, puoi utilizzare questa coppia di chiavi per la crittografia. - + Certificate-Key Pairs Coppie di certificato-chiave - + Import certificates of external providers or create certificates to sign requests with. Importa certificati di fornitori esterni o crea certificati per firmare le richieste con. - + Private key available? Chiave privata è disponibile? - + Certificate-Key Pair(s) Coppia(e) Certificato-Chiave - + Managed by authentik Gestito da authentik - + Managed by authentik (Discovered) Gestito da authentik (Scoperto) - + Yes () Sì ( ) - + No No - + Update Certificate-Key Pair Aggiorna la coppia Certificato-Chiave - + Certificate Fingerprint (SHA1) Fingerprint Certificato (SHA1) - + Certificate Fingerprint (SHA256) Fingerprint Certificato (SHA256) - + Certificate Subject Soggetto del certificato - + Download Certificate Scarica Certificato - + Download Private key Scarica chiave privata - + Create Certificate-Key Pair Creare coppia certificato-chiave - + Generate Genera - + Generate Certificate-Key Pair Genera coppia certificato-chiave - + Successfully updated instance. Istanza caricata con successo. - + Successfully created instance. Istanza creata con successo. - + Disabled blueprints are never applied. I progetti disabili non vengono mai applicati. - + Local path Percorso locale - + OCI Registry Registro OCI - + Internal Interno - + OCI URL, in the format of oci://registry.domain.tld/path/to/manifest. OCI URL, nel formato di OCI: //registry.domain.tld/path/to/Manifest. - + See more about OCI support here: Vedi di più sul supporto OCI qui: - + Blueprint Progetto - + Configure the blueprint context, used for templating. Configurare il contesto del progetto, utilizzato per il modello. - + Orphaned Orfano - + Blueprints Progetti - + Automate and template configuration within authentik. Configurazione delle automazione e dei modelli all'interno di authentik. - + Last applied Ultima applicazione - + Blueprint(s) Progetto(i) - + Update Blueprint Aggiorna progetto - + Create Blueprint Instance Crea istanza progetto - + API Requests Richieste API - + Open API Browser Aprire il browser API - + Notifications Notifiche - + unread non letto - + Successfully cleared notifications Notifiche ripulite con successo - + Clear all Pulisci tutto - + A newer version of the frontend is available. Una nuova versione del frontend è disponibile. - + You're currently impersonating . Click to stop. Attualemnte stai impersonando . Clicca per interrompere. - + User interface Interfaccia utente - + Dashboards Dashboard - + Events Eventi - + Logs Logs - + Directory Cartella - + System Sistema - + Certificates Certificati - + Outpost Integrations Integrazione avamposto - + API request failed Richiesta API non riuscita - + User's avatar Avatar dell'utente - + Something went wrong! Please try again later. Qualcosa è andato storto! Per favore riprova più tardi. - + Request ID Request ID - + You may close this page now. Puoi chiudere questa pagina ora. - + You're about to be redirect to the following URL. Stai per essere reindirizzato all'URL seguente. - + Follow redirect Segui il reindirizzamento - + Request has been denied. La richiesta è stata negata. - + Not you? Non sei tu? - + Need an account? Hai bisogno di un account? - + Sign up. Registrati. - + Forgot username or password? Hai dimenticato il nome utente o la password? - + Or Oppure - + Use a security key Usa una chiave di sicurezza - + Login to continue to . Accedi per continuare in . - + Please enter your password Per favore inserisci la tua password - + Forgot password? Hai dimenticato la password? - + Application requires following permissions: L'applicazione richiede i seguenti permessi: - + Application already has access to the following permissions: L'applicazione ha già accesso alle seguenti autorizzazioni: - + Application requires following new permissions: L'applicazione richiede le seguenti nuove autorizzazioni: - + Check your Inbox for a verification email. Controlla la tua casella di posta per un'email di verifica. - + Send Email again. Invia di nuovo l'email. - + Successfully copied TOTP Config. Configurazione TOTP copiato correttamente. - + Copy Copia - + Code Codice - + Please enter your TOTP Code Per favore inserisci il tuo codice TOTP - + Duo activation QR code Codice QR di attivazione Duo - + Alternatively, if your current device has Duo installed, click on this link: In alternativa, se il tuo dispositivo corrente è installato duo, fare clic su questo link: - + Duo activation Attivazione Duo - + Check status Verifica stato - + Make sure to keep these tokens in a safe place. Assicurati di tenere questi token in un luogo sicuro. - + Phone number Numero di telefono - + Please enter your Phone number. Per favore, inserisci il tuo numero di telefono. - + Please enter the code you received via SMS Per favore, inserisci il codice che hai ricevuto tramite SMS. - + A code has been sent to you via SMS. Un codice ti è stato inviato tramite SMS. - + Open your two-factor authenticator app to view your authentication code. Apri la tua app di autenticazione a due fattori per visualizzare il tuo codice di autenticazione. - + Static token Token statico - + Authentication code Codice di autenticazione - + Please enter your code Per favore inserisci il tuo codice. - + Retry authentication Riprova autenticazione - + Duo push-notifications Notifiche push Duo - + Receive a push notification on your device. Ricevi una notifica push sul tuo dispositivo. - + Authenticator Autenticatore - + Use a security key to prove your identity. Usa una chiave di sicurezza per dimostrare la tua identità. - + Traditional authenticator Autenticatore tradizionale - + Use a code-based authenticator. Utilizzare un autenticatore basato su codice. - + Recovery keys Chiavi di recupero - + In case you can't access any other method. In caso non riesci ad accedere a nessun altro metodo. - + SMS SMS - + Tokens sent via SMS. Token inviati tramite SMS. - + Select an authentication method. Seleziona un metodo di autenticazione. - + Stay signed in? Rimani connesso? - + Select Yes to reduce the number of times you're asked to sign in. Seleziona Sì per ridurre il numero di volte in cui ti viene chiesto di effettuare l'accesso. - + Authenticating with Plex... Autenticazione con Plex... - + Waiting for authentication... In attesa di autenticazione... - + If no Plex popup opens, click the button below. Se non si apre alcun popup plex, fare clic sul pulsante in basso. - + Open login Aprire login - + Authenticating with Apple... Autenticazione con Apple... - + Retry Riprova - + Enter the code shown on your device. Inserisci il codice mostrato sul tuo dispositivo. - + Please enter your Code Per favore inserisci il tuo Codice - + You've successfully authenticated your device. Hai autenticato correttamente il tuo dispositivo. - + Flow inspector Ispezione del flusso - + Next stage Fase successiva - + Stage name Nome fase - + Stage kind Tipo fase - + Stage object Ogetto fase - + This flow is completed. Questo flusso è completato. - + Plan history Storia del piano - + Current plan context Contesto del piano attuale - + Session ID Session ID - + Powered by authentik Powered by authentik - + Error creating credential: Errore durante la creazione della credenziale: - - - - Server validation of credential failed: - Convalida del server di credenziali non riuscita: - + Refer to documentation @@ -6801,7 +6786,7 @@ Bindings to groups/users are checked against the user of the event. No Applications available. Nessuna applicazione disponibile. - + Either no applications are defined, or you don’t have access to any. @@ -6810,183 +6795,174 @@ Bindings to groups/users are checked against the user of the event. My Applications Le mie Applicazioni - + My applications Le mie applicazioni - + Change your password Cambia la tua password - + Change password Cambia password - + - + Save Salva - + Delete account Elimina account - + Successfully updated details Dettagli aggiornati con successo - + Open settings Aprire impostazioni - + No settings flow configured. Nessun flusso di impostazioni configurato. - + Update details Aggiorna dettagli - + Successfully disconnected source Riuscita disconnessione sorgente - - - - Failed to disconnected source: - Impossibile disconnettere la fonte: - + + Disconnect Disconnetti - + Connect Connetti - - - - Error: unsupported source settings: - Errore: impostazioni di origine non supportate: - + Connect your user account to the services listed below, to allow you to login using the service instead of traditional credentials. Collega il tuo account utente ai servizi elencati di seguito, per consentire di accedere utilizzando il servizio anziché le credenziali tradizionali. - + No services available. Nessun servizio disponibile. - + Create App password Crea password dell'app - + User details Dettagli utente - + Consent Consenso - + MFA Devices Dispositivi MFA - + Connected services Servizi connessi - + Tokens and App passwords Token e password dell'app - + Unread notifications Notifiche non lette - + Admin interface Interfaccia amministrativa - + Stop impersonation Concludi l'impersonificazione - + Avatar image Immagine dell'avatar - + Failed Fallito - + Unsynced / N/A Non sincronizzato / N/A - + Outdated outposts Avamposti obsoleti - + Unhealthy outposts Avamposti degradati - + Next Successivo - + Inactive Inattivo - + Regular user Utente regolare - + Activate Attivare - + Use Server URI for SNI verification @@ -7100,22 +7076,10 @@ Bindings to groups/users are checked against the user of the event. Forecast internal users Previsione utenti interni - - Estimated user count one year from now based on current internal users and forecasted internal users. - Conteggio degli utenti stimato tra un anno in base a - utenti interni attuali e - utenti interni previsti. - Forecast external users Previsione utenti esterni - - Estimated user count one year from now based on current external users and forecasted external users. - Conteggio degli utenti stimato tra un anno in base a - utenti esterni attuali e - utenti esterni previsti. - Install Installa @@ -7381,21 +7345,7 @@ Bindings to groups/users are checked against the user of the event. Method's display Name. Nome visualizzato del metodo. - - Use this provider with nginx's auth_request or traefik's - forwardAuth. Each application/domain needs its own provider. - Additionally, on each domain, /outpost.goauthentik.io must be - routed to the outpost (when using a managed outpost, this is done for you). - Usa questo provider con Nginx - auth_request - o Traefik's - forti - . Ogni applicazione/dominio ha bisogno del proprio fornitore. - Inoltre, su ogni dominio, - /outpost.goauthentik.io - deve essere - Intrailata all'avamposto (quando si utilizza un avamposto gestito, questo viene fatto per te). - + Custom attributes Attributi personalizzati @@ -7546,11 +7496,7 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden - Un suggerimento, "New Application Wizard", è attualmente nascosto - - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Applicazioni esterne che utilizzano Authenk come fornitore di identità tramite protocolli come OAuth2 e SAML. Tutte le applicazioni sono mostrate qui, anche quelle a cui non è possibile accedere. + Un suggerimento, "New Application Wizard", è attualmente nascosto Deny message @@ -7712,15 +7658,6 @@ Bindings to groups/users are checked against the user of the event. 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) 4: Molto difficilmente indovinabile: forte protezione dallo scenario offline con hash lento. (tentativi &gt;= 10^10) - - Successfully created user and added to group - Utente creato correttamente e aggiunto al gruppo - - - This user will be added to the group "". - Questo utente verrà aggiunto al gruppo " - ". - Pretend user exists Fingere che l'utente esista @@ -8053,31 +7990,10 @@ Bindings to groups/users are checked against the user of the event. The user's UPN, if set (otherwise an empty string) L'utente è UPN, se impostato (altrimenti una stringa vuota) - - An attribute path like - attributes.something.avatar, which can be used in - combination with the file field to allow users to upload custom - avatars for themselves. - Un percorso di attributo come - attributi.something.avatar - , che può essere usato in - Combinazione con il campo File per consentire agli utenti di caricare personalizzati - avatar per se stessi. - Multiple values can be set, comma-separated, and authentik will fallback to the next mode when no avatar could be found. È possibile impostare più valori, separati da virgole e Authenk scenderà alla modalità successiva quando non è stato possibile trovare un avatar. - - For example, setting this to gravatar,initials will - attempt to get an avatar from Gravatar, and if the user has not - configured on there, it will fallback to a generated avatar. - Ad esempio, impostarlo su - gravatar, iniziali - Volere - tentare di ottenere un avatar da Gravatar e se l'utente non ha - Configurato lì, ricadrà in un avatar generato. - Allow users to change name Permetti agli utenti di cambiare nome @@ -8190,10 +8106,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications Applicazioni selezionate - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Questa opzione configura i collegamenti a piè di pagina sulle pagine dell'esecutore di flusso. Deve essere un elenco YAML o JSON valido e può essere utilizzato come segue: - Last used Ultimo utilizzo @@ -8940,7 +8852,7 @@ Bindings to groups/users are checked against the user of the event. Provide users with a 'show password' button. - Fornisci agli utenti un pulsante "Mostra password". + Fornisci agli utenti un pulsante "Mostra password". Show password @@ -8958,12 +8870,6 @@ Bindings to groups/users are checked against the user of the event. Russian Russo - - Last seen: () - Ultimo visto: - ( - ) - Sign assertions Segnale @@ -9056,10 +8962,6 @@ Bindings to groups/users are checked against the user of the event. Internal user usage Utilizzo degli utenti interni - - % - % - External user usage Utilizzo dell'utente esterno @@ -9076,12 +8978,6 @@ Bindings to groups/users are checked against the user of the event. Sync Group Gruppo di sincronizzazione - - ("", of type ) - (" - ", di tipo - ) - authentik was unable to save this application: Authenk non è stato in grado di salvare questa applicazione: @@ -9106,23 +9002,10 @@ Bindings to groups/users are checked against the user of the event. Verify SCIM server's certificates Verifica i certificati del server Scim - - You've logged out of . You can go back to the overview to launch another application, or log out of your authentik account. - Hai disconnesso - . Puoi tornare alla panoramica per avviare un'altra applicazione o disconnettersi dal tuo account Authenk. - Go back to overview Torna alla panoramica - - Log out of - Disconnettersi da - - - Log back into - Restituire a - Encryption Key Chiave di crittografia @@ -9131,11 +9014,6 @@ Bindings to groups/users are checked against the user of the event. Key used to encrypt the tokens. Chiave utilizzato per crittografare i token. - - Device type cannot be deleted - Tipo di dispositivo - non può essere eliminato - Stage used to verify users' browsers using Google Chrome Device Trust. This stage can be used in authentication/authorization flows. Fase utilizzata per verificare i browser degli utenti utilizzando la fiducia del dispositivo Google Chrome. Questa fase può essere utilizzata nei flussi di autenticazione/autorizzazione. @@ -9144,11 +9022,6 @@ Bindings to groups/users are checked against the user of the event. Google Verified Access API Google Verified Access API - - Device type cannot be edited - Tipo di dispositivo - non può essere modificato - Advanced flow settings Impostazioni di flusso avanzate @@ -9276,7 +9149,108 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. anteprima dell'Endpoint Google Chrome Device Trust + + + Use this provider with nginx's auth_request or traefik's + forwardAuth. Each application/domain needs its own provider. + Additionally, on each domain, /outpost.goauthentik.io must be + routed to the outpost (when using a managed outpost, this is done for you). + + + Successfully created user and added to group + + + This user will be added to the group "". + + + Italian + + + Are you sure you want to remove user from the following groups? + + + Failed to disconnected source: + + + Error: unsupported source settings: + + + Device type cannot be deleted + + + ("", of type ) + + + , should be + + + Last seen: () + + + An attribute path like + attributes.something.avatar, which can be used in + combination with the file field to allow users to upload custom + avatars for themselves. + + + For example, setting this to gravatar,initials will + attempt to get an avatar from Gravatar, and if the user has not + configured on there, it will fallback to a generated avatar. + + + % + + + Estimated user count one year from now based on current internal users and forecasted internal users. + + + Estimated user count one year from now based on current external users and forecasted external users. + + + You've logged out of . You can go back to the overview to launch another application, or log out of your authentik account. + + + Log out of + + + Log back into + + + Server validation of credential failed: + + + Device type cannot be edited + + + Reason + + + Reason for impersonating the user + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - \ No newline at end of file + diff --git a/web/xliff/ko.xlf b/web/xliff/ko.xlf index 50b913657f..eeff3cd93d 100644 --- a/web/xliff/ko.xlf +++ b/web/xliff/ko.xlf @@ -7512,10 +7512,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden 힌트, '새 애플리케이션 마법사'는 현재, 숨겨져 있습니다. - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - OAuth2 및 SAML과 같은 프로토콜을 통해 인증서를 ID 공급자로 사용하는 외부 애플리케이션. 액세스할 수 없는 애플리케이션을 포함한 모든 애플리케이션이 여기에 표시됩니다. - Deny message 거부 메시지 @@ -8049,9 +8045,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Last used @@ -8858,6 +8851,39 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/nl.xlf b/web/xliff/nl.xlf index 880440b19c..925a2908c5 100644 --- a/web/xliff/nl.xlf +++ b/web/xliff/nl.xlf @@ -7495,9 +7495,6 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Sync currently running. - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Also known as Client ID. @@ -7896,9 +7893,6 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Selected Applications - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Last used @@ -8705,6 +8699,39 @@ Bindingen naar groepen/gebruikers worden gecontroleerd tegen de gebruiker van de Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/pl.xlf b/web/xliff/pl.xlf index 0746b955cf..e90145830c 100644 --- a/web/xliff/pl.xlf +++ b/web/xliff/pl.xlf @@ -7546,10 +7546,6 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz One hint, 'New Application Wizard', is currently hidden Jedna podpowiedź, „Kreator nowej aplikacji”, jest obecnie ukryty - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Aplikacje zewnętrzne, które używają authentik jako dostawcy tożsamości za pośrednictwem protokołów takich jak OAuth2 i SAML. Tutaj wyświetlane są wszystkie aplikacje, nawet te, do których nie masz dostępu. - Deny message Komunikat odmowy @@ -8184,10 +8180,6 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz Selected Applications Wybrane aplikacje - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Ta opcja konfiguruje linki stopki na stronach wykonawców przepływu. Musi to być prawidłowa lista YAML lub JSON i może być używana w następujący sposób: - Last used Ostatnio używany @@ -9122,6 +9114,39 @@ Powiązania z grupami/użytkownikami są sprawdzane względem użytkownika zdarz Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/pseudo-LOCALE.xlf b/web/xliff/pseudo-LOCALE.xlf index cd6e4f48d1..7c23fbcdf3 100644 --- a/web/xliff/pseudo-LOCALE.xlf +++ b/web/xliff/pseudo-LOCALE.xlf @@ -7490,10 +7490,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden Ōńē ĥĩńţ, 'Ńēŵ Àƥƥĺĩćàţĩōń Ŵĩźàŕď', ĩś ćũŕŕēńţĺŷ ĥĩďďēń - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Ēxţēŕńàĺ àƥƥĺĩćàţĩōńś ţĥàţ ũśē àũţĥēńţĩķ àś àń ĩďēńţĩţŷ ƥŕōvĩďēŕ vĩà ƥŕōţōćōĺś ĺĩķē ŌÀũţĥ2 àńď ŚÀḾĹ. Àĺĺ àƥƥĺĩćàţĩōńś àŕē śĥōŵń ĥēŕē, ēvēń ōńēś ŷōũ ćàńńōţ àććēśś. - Deny message Ďēńŷ ḿēśśàĝē @@ -8128,10 +8124,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications Śēĺēćţēď Àƥƥĺĩćàţĩōńś - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Ţĥĩś ōƥţĩōń ćōńƒĩĝũŕēś ţĥē ƒōōţēŕ ĺĩńķś ōń ţĥē ƒĺōŵ ēxēćũţōŕ ƥàĝēś. Ĩţ ḿũśţ ƀē à vàĺĩď ŶÀḾĹ ōŕ ĵŚŌŃ ĺĩśţ àńď ćàń ƀē ũśēď àś ƒōĺĺōŵś: - Last used Ĺàśţ ũśēď @@ -9162,4 +9154,37 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. + diff --git a/web/xliff/ru.xlf b/web/xliff/ru.xlf index 9af013b1aa..e908501995 100644 --- a/web/xliff/ru.xlf +++ b/web/xliff/ru.xlf @@ -7545,10 +7545,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden Одна подсказка, "Мастер создания нового приложения", в настоящее время скрыта - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Внешние приложения, использующие authentik в качестве поставщика идентификационных данных по таким протоколам, как OAuth2 и SAML. Здесь показаны все приложения, даже те, к которым вы не можете получить доступ. - Deny message Запретить сообщение @@ -8183,10 +8179,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications Выбранные приложения - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Этот параметр настраивает ссылки нижнего колонтитула на страницах исполнителей потока. Это должен быть корректный YAML или JSON, который можно использовать следующим образом: - Last used Послед. использование @@ -9185,6 +9177,39 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/tr.xlf b/web/xliff/tr.xlf index 353c972a88..2678b23303 100644 --- a/web/xliff/tr.xlf +++ b/web/xliff/tr.xlf @@ -1,6941 +1,9245 @@ - - + English İngilizce + French Fransızca + Turkish Türkçe + Spanish + İspanyolca + Polish + Lehçe + Taiwanese Mandarin + Tayvan Mandarin + Chinese (simplified) + Çince (basitleştirilmiş) + Chinese (traditional) + Çince (geleneksel) + German + Almanca + Loading... Yükleniyor... + Application Uygulama + Logins Oturum Açma + Show less Daha az göster + Show more Daha fazla göster + UID UID + Name İsim + App Uygulama + Model Name Model Adı + Message Mesaj + Subject Konu + From - itibaren + İtibaren + To Kime + Context Bağlam + User Kullanıcı + Affected model: Etkilenen model: + Authorized application: Yetkili başvuru: + Using flow Akışı kullanma + Email info: E-posta bilgileri: + Secret: Sır: + Open issue on GitHub... GitHub'da açık sorun... + Exception Hata + Expression İfade + Binding Ciltleme + Request Talep + Object Nesne + Result Sonuç + Passing Geçiyor + Messages İletiler + Using source Kaynak kullanma + Attempted to log in as - - olarak oturum açmaya çalışıldı + ile oturum açılmaya çalışıldı + No additional data available. Ek veri yok. + Click to change value Değeri değiştirmek için tıklayın + Select an object. + Bir nesne seçin. + Loading options... + Yükleme seçenekleri... + Connection error, reconnecting... Bağlantı hatası, yeniden bağlanıyor... + Login Giriş + Failed login Başarısız oturum açma + Logout Oturumu Kapa + User was written to Kullanıcı yazıldı + Suspicious request Şüpheli istek + Password set Parola seti + Secret was viewed Sır görüldü + Secret was rotated Sırrı döndürüldü + Invitation used Kullanılan davetiye + Application authorized Başvuru yetkili + Source linked Kaynak bağlantılı + Impersonation started Kimliğe bürünme başladı + Impersonation ended Taklit sona erdi + Flow execution Akış yürütme + Policy execution İlke yürütme + Policy exception İlke hatası + Property Mapping exception Özellik Eşleme hatası + System task execution Sistem görevi yürütme + System task exception Sistem görevi hatası + General system exception Genel sistem hatası + Configuration error Yapılandırma hatası + Model created Model oluşturuldu + Model updated Model güncellendi + Model deleted Model silindi + Email sent E-posta gönderildi + Update available Güncelleme mevcut + Unknown severity + Bilinmeyen önem derecesi + Alert Alarm + Notice Uyarı + Warning Uyarı + no tabs defined tanımlanmış sekme yok + - of - - içinden - - - + - of + Go to previous page Önceki sayfaya git + Go to next page Sonraki sayfaya git + Search... Ara... + Loading Yükleniyor + No objects found. Nesne bulunamadı. + Failed to fetch objects. + Nesneler getirilemedi. + Refresh Yenile + Select all rows Tüm satırları seç + Action Eylem + Creation Date Oluşturma Tarihi + Client IP İstemci IP + Recent events + Son olaylar + On behalf of - - adına + adına + - - + No Events found. Olaylar bulunamadı. + No matching events could be found. Eşleşen olay bulunamadı. + Embedded outpost is not configured correctly. Gömülü üs düzgün yapılandırılmamış. + Check outposts. İleri üsleri kontrol edin. + HTTPS is not detected correctly HTTPS doğru algılanmadı + Server and client are further than 5 seconds apart. Sunucu ve istemci arasında 5 saniyeden daha uzaktır. + OK OK + Everything is ok. Her şey yolunda. + System status Sistem durumu + Based on + göre + is available! - - kullanılabilir! + versiyonu mevcut! + Up-to-date! Güncel! + Version Sürüm + Workers İşçiler + No workers connected. Background tasks will not run. İşçi bağlantısı yok. Arka plan görevleri çalışmaz. + Authorizations Yetkilendirmeler + Failed Logins Başarısız Oturum Açma + Successful Logins Başarılı Oturum Açma + : - - : - + : + Cancel İptal et + LDAP Source LDAP Kaynağı + SCIM Provider + SCIM Sağlayıcısı + Healthy + Sağlıklı + Healthy outposts Sağlıklı üsler + Admin Yönetici + Not found Bulunamadı + The URL "" was not found. - “ - ” URL'si bulunamadı. + URL adresi bulunamadı. + Return home Eve dön + General system status Genel sistem durumu + Welcome, . - Hoş geldiniz, - . + Hoş geldiniz, . + Quick actions Hızlı eylemler + Create a new application Yeni bir uygulama oluştur + Check the logs Günlükleri kontrol et + Explore integrations Entegrasyonları keşfedin + Manage users + Kullanıcıları yönetme + Outpost status Üs durumu + Sync status Durumu senkronize et + Logins and authorizations over the last week (per 8 hours) + Geçen haftaki oturum açma ve yetkilendirme işlemleri (8 saat başına) + Apps with most usage En çok kullanıma sahip uygulamalar + days ago - - gün önce + gün önce + Objects created Oluşturulan nesneler + Users created per day in the last month Son ay içinde günlük oluşturulan kullanıcılar + Logins per day in the last month Son ay içinde günlük oturum açma + Failed Logins per day in the last month Geçtiğimiz ay içinde günlük başarısız oturum açma + Clear search + Aramayı temizle + System Tasks Sistem Görevleri + Long-running operations which authentik executes in the background. - authentik'in arka planda yürüttüğü uzun süreli işlemler. + Authentik'in arka planda yürüttüğü uzun süreli işlemler. + Identifier Tanımlayıcı + Description Açıklama + Last run Son çalıştırma + Status Durum + Actions Eylemler + Successful Başarılı + Error Hata + Unknown - bilinmeyen + Bilinmeyen + Duration + Süre + seconds + saniye + Authentication Kimlik Doğrulama + Authorization Yetkilendirme + Enrollment Kayıt + Invalidation Geçersiz + Recovery Kurtarma + Stage Configuration Aşama Konfigürasyonu + Unenrollment Kayıttan Çıkarma + Unknown designation + Bilinmeyen atama + Stacked + Yığılı + Content left + Kalan içerik + Content right + İçerik hakkı + Sidebar left + Sol kenar çubuğu + Sidebar right + Sağ kenar çubuğu + Unknown layout + Bilinmeyen düzen + Successfully updated provider. Sağlayıcı başarıyla güncellendi. + Successfully created provider. Sağlayıcı başarıyla oluşturuldu. + Bind flow Bağlama akışı + Flow used for users to authenticate. + Kullanıcıların kimlik doğrulaması için kullanılan akış. + Bind mode + Bağlama modu + Cached binding + Önbelleğe alınmış bağlama + Flow is executed and session is cached in memory. Flow is executed when session expires + Akış yürütülür ve oturum bellekte önbelleğe alınır. Akış, oturumun süresi dolduğunda yürütülür + Direct binding + Doğrudan bağlama + Always execute the configured bind flow to authenticate the user + Kullanıcının kimliğini doğrulamak için her zaman yapılandırılan bağlama akışını yürütün + Configure how the outpost authenticates requests. + Karakolun isteklerin kimliğini nasıl doğrulayacağını yapılandırın. + Search mode Arama modu + Cached querying + Önbelleğe alınmış sorgulama + The outpost holds all users and groups in-memory and will refresh every 5 Minutes + Karakol, tüm kullanıcıları ve grupları bellekte tutar ve her 5 Dakikada bir yenilenir + Direct querying + Doğrudan sorgulama + Always returns the latest data, but slower than cached querying + Her zaman en son verileri döndürür, ancak önbelleğe alınmış sorgulamadan daha yavaştır + Configure how the outpost queries the core authentik server's users. Üssün çekirdek authentik sunucusunun kullanıcılarını nasıl sorgulayacağını yapılandırın. + Protocol settings Protokol ayarları + Base DN Taban DN + LDAP DN under which bind requests and search requests can be made. Bağlama istekleri ve arama istekleri altında yapılabilen LDAP DN. + Certificate Sertifika + UID start number UID başlangıç numarası + The start for uidNumbers, this number is added to the user.Pk to make sure that the numbers aren't too low for POSIX users. Default is 2000 to ensure that we don't collide with local users uidNumber UidNumbers'ın başlangıcında, bu sayı, POSIX kullanıcıları için sayıların çok düşük olmadığından emin olmak için user.Pk öğesine eklenir. Varsayılan 2000 yerel kullanıcılarla çarpışmadığımızdan emin olmak için uidNumber + GID start number GID başlangıç numarası + The start for gidNumbers, this number is added to a number generated from the group.Pk to make sure that the numbers aren't too low for POSIX groups. Default is 4000 to ensure that we don't collide with local groups or users primary groups gidNumber gidNumbers'ın başlangıcı, bu sayı group.Pk öğesinden oluşturulan bir sayıya eklenir ve sayıların POSIX grupları için çok düşük olmamasını sağlar. Yerel gruplar veya kullanıcıların birincil grupların gidNumber'ıyla çakışmaması için varsayılan 4000'dir + (Format: hours=-1;minutes=-2;seconds=-3). (Biçim: saat=-1; dakika=-2; ikincil=-3). + (Format: hours=1;minutes=2;seconds=3). (Biçim: saat=1; dakika=2; saniye= 3). + The following keywords are supported: + Aşağıdaki anahtar sözcükler desteklenir: + Authentication flow Kimlik doğrulama akışı + Flow used when a user access this provider and is not authenticated. + Bir kullanıcı bu sağlayıcıya eriştiğinde ve kimliği doğrulanmadığında kullanılan akış. + Authorization flow Yetkilendirme akışı + Flow used when authorizing this provider. Bu sağlayıcıyı yetkilendirirken kullanılan akış. + Client type İstemci türü + Confidential Gizli + Confidential clients are capable of maintaining the confidentiality of their credentials such as client secrets + Gizli istemciler, istemci gizli dizileri gibi kimlik bilgilerinin gizliliğini koruyabilir + Public Kamu + Public clients are incapable of maintaining the confidentiality and should use methods like PKCE. + Kamu müşterileri gizliliği koruyamaz ve PKCE gibi yöntemleri kullanmalıdır. + Client ID Müşteri Kimliği + Client Secret Müşteri Sırrı + Redirect URIs/Origins (RegEx) + Yeniden Yönlendirme URI'leri/Kökenleri (RegEx) + Valid redirect URLs after a successful authorization flow. Also specify any origins here for Implicit flows. Başarılı bir yetkilendirme akışından sonra geçerli yeniden yönlendirme URL'leri. Ayrıca Kapalı akışlar için burada tüm kökenleri belirtin. + If no explicit redirect URIs are specified, the first successfully used redirect URI will be saved. + Açık bir yeniden yönlendirme URI'si belirtilmezse, başarıyla kullanılan ilk yeniden yönlendirme URI'si kaydedilir. + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + Herhangi bir yeniden yönlendirme URI'sine izin vermek için bu değeri ".*" olarak ayarlayın. Bunun sahip olabileceği olası güvenlik etkilerinin farkında olun. + Signing Key İmzalama Anahtarı + Key used to sign the tokens. Anahtar belirteçleri imzalamak için kullanılır. + Advanced protocol settings Gelişmiş protokol ayarları + Access code validity Erişim kodu geçerliliği + Configure how long access codes are valid for. Erişim kodlarının ne kadar süreyle geçerli olduğunu yapılandırın. + Access Token validity + Erişim Belirteci geçerliliği + Configure how long access tokens are valid for. Erişim belirteçlerinin ne kadar süreyle geçerli olduğunu yapılandırın. + Refresh Token validity + Yenileme Belirteci geçerliliği + Configure how long refresh tokens are valid for. + Yenileme belirteçlerinin ne kadar süreyle geçerli olacağını yapılandırın. + Scopes Kapsamlar + Select which scopes can be used by the client. The client still has to specify the scope to access the data. İstemci tarafından hangi kapsamların kullanılabileceğini seçin. İstemci yine de verilere erişmek için kapsamı belirtmelidir. + Subject mode Konu modu + Based on the User's hashed ID + Kullanıcının karma oluşturma işlemine tabi tutulmuş kimliğine göre + Based on the User's ID + Kullanıcının kimliğine göre + Based on the User's UUID + Kullanıcının UUID'sine göre + Based on the User's username + Kullanıcının kullanıcı adına göre + Based on the User's Email + Kullanıcının e-postasına göre + This is recommended over the UPN mode. + Bu, UPN modu üzerinden önerilir. + Based on the User's UPN + Kullanıcının UPN'sine göre + Requires the user to have a 'upn' attribute set, and falls back to hashed user ID. Use this mode only if you have different UPN and Mail domains. + Kullanıcının bir 'upn' özniteliği ayarlanmış olmasını gerektirir ve karma kullanıcı kimliğine geri döner. Bu modu yalnızca farklı UPN ve Posta etki alanlarınız varsa kullanın. + Configure what data should be used as unique User Identifier. For most cases, the default should be fine. Hangi verilerin benzersiz Kullanıcı Tanımlayıcısı olarak kullanılması gerektiğini yapılandırın. Çoğu durumda, varsayılan seçim yeterlidir. + Include claims in id_token İd_token'a hak taleplerini dahil et + Include User claims from scopes in the id_token, for applications that don't access the userinfo endpoint. Userinfo uç noktasına erişmeyen uygulamalar için, id_token'daki kapsamlardan Kullanıcı taleplerini dahil edin. + Issuer mode Yayımcı kipi + Each provider has a different issuer, based on the application slug + Her sağlayıcının, uygulama bilgisine bağlı olarak farklı bir yayıncısı vardır + Same identifier is used for all providers Aynı tanımlayıcı tüm sağlayıcılar için kullanılır + Configure how the issuer field of the ID Token should be filled. Kimlik Belirtecinin yayımcı alanının nasıl doldurulacağını yapılandırın. + Machine-to-Machine authentication settings + Makineden Makineye kimlik doğrulama ayarları + Trusted OIDC Sources + Güvenilir OIDC Kaynakları + JWTs signed by certificates configured in the selected sources can be used to authenticate to this provider. + Seçili kaynaklarda yapılandırılan sertifikalar tarafından imzalanan JWT'ler bu sağlayıcıda kimlik doğrulaması yapmak için kullanılabilir. + HTTP-Basic Username Key HTTP-Basic Kullanıcı Adı Anahtarı + User/Group Attribute used for the user part of the HTTP-Basic Header. If not set, the user's Email address is used. HTTP-Basic Üstbilgisinin kullanıcı bölümü için kullanılan Kullanıcı/Grup Özniteliği. Ayarlanmazsa, kullanıcının E-posta adresi kullanılır. + HTTP-Basic Password Key HTTP-Temel Parola Anahtarı + User/Group Attribute used for the password part of the HTTP-Basic Header. HTTP-Basic Üstbilgisinin parola kısmı için kullanılan Kullanıcı/Grup Özniteliği. + Proxy Vekil Sunucu + Forward auth (single application) İleri kimlik doğrulaması (tek uygulama) + Forward auth (domain level) İleri kimlik doğrulama (etki alanı düzeyi) + This provider will behave like a transparent reverse-proxy, except requests must be authenticated. If your upstream application uses HTTPS, make sure to connect to the outpost using HTTPS as well. Bu sağlayıcı saydam bir ters vekil sunucu gibi davranır, ancak isteklerin kimliğinin doğrulanması gerekir. Yön uygulamanızda HTTPS kullanıyorsa üsse de HTTPS kullanarak bağlandığınızdan emin olun. + External host Harici ana bilgisayar + The external URL you'll access the application at. Include any non-standard port. Uygulamaya erişeceğiniz harici URL. Standart olmayan herhangi bir bağlantı noktasını dahil edin. + Internal host Dahili ana bilgisayar + Upstream host that the requests are forwarded to. İsteklerin iletildiği yukarı ana bilgisayar. + Internal host SSL Validation Dahili ana bilgisayar SSL Doğrulaması + Validate SSL Certificates of upstream servers. Yayın yukarı akış sunucularının SSL Sertifikalarını doğrulayın. + Use this provider with nginx's auth_request or traefik's forwardAuth. Only a single provider is required per root domain. You can't do per-application authorization, but you don't have to create a provider for each application. Bu sağlayıcıyı nginx'in auth_request veya traefik'in forwardAuth ile kullanın. Kök etki alanı başına yalnızca tek bir sağlayıcı gereklidir. Uygulama başına yetkilendirme yapamazsınız, ancak her uygulama için bir sağlayıcı oluşturmanız gerekmez. + An example setup can look like this: Bir örnek kurulum şu şekilde görünebilir: + authentik running on auth.example.com auth.example.com üzerinde çalışan authentik + app1 running on app1.example.com app1 üzerinde çalışan app1.example.com + In this case, you'd set the Authentication URL to auth.example.com and Cookie domain to example.com. Bu durumda, Kimlik Doğrulama URL'sini auth.example.com ve Çerez etki alanı olarak example.com olarak ayarlamalısınız. + Authentication URL Kimlik Doğrulama URL'si + The external URL you'll authenticate at. The authentik core server should be reachable under this URL. Kimlik doğrulayacağınız harici URL. Auentik çekirdek sunucusuna bu URL altında erişilebilir olmalıdır. + Cookie domain Çerez alan adı + Set this to the domain you wish the authentication to be valid for. Must be a parent domain of the URL above. If you're running applications as app1.domain.tld, app2.domain.tld, set this to 'domain.tld'. Bunu kimlik doğrulamasının geçerli olmasını istediğiniz etki alanına ayarlayın. Yukarıdaki URL'nin bir üst etki alanı olmalıdır. Uygulamaları app1.domain.tld, app2.domain.tld olarak çalıştırıyorsanız, bunu 'domain.tld' olarak ayarlayın. + Unknown proxy mode + Bilinmeyen proxy modu + Token validity Belirteç geçerliliği + Configure how long tokens are valid for. Belirteçlerin ne kadar geçerli olduğunu yapılandırın. + Additional scopes + Ek kapsamlar + Additional scope mappings, which are passed to the proxy. Proxy'ye iletilen ek kapsam eşlemeleri. + Unauthenticated URLs Kimliği Doğrulanmamış URL'ler + Unauthenticated Paths Kimliği Doğrulanmamış Yollar + Regular expressions for which authentication is not required. Each new line is interpreted as a new expression. Kimlik doğrulamasının gerekli olmadığı düzenli ifadeler. Her yeni satır yeni bir ifade olarak yorumlanır. + When using proxy or forward auth (single application) mode, the requested URL Path is checked against the regular expressions. When using forward auth (domain mode), the full requested URL including scheme and host is matched against the regular expressions. Proxy veya ileri auth (tek uygulama) modunu kullanırken, istenen URL Yolu düzenli ifadelere karşı denetlenir. İleriye yönlendirme (etki alanı modu) kullanıldığında, şema ve ana bilgisayar da dahil olmak üzere istenen tam URL normal ifadelerle eşleştirilir. + Authentication settings + Kimlik doğrulama ayarları + Intercept header authentication + Kesişme başlığı kimlik doğrulaması + When enabled, authentik will intercept the Authorization header to authenticate the request. + Etkinleştirildiğinde, authentik, isteğin kimliğini doğrulamak için Yetkilendirme üst bilgisini durdurur. + Send HTTP-Basic Authentication + HTTP-Basic Kimlik Doğrulaması Gönder + Send a custom HTTP-Basic Authentication header based on values from authentik. + Authentik'ten alınan değerlere göre özel bir HTTP-Basic Kimlik Doğrulama üst bilgisi gönderin. + ACS URL ACS URL + Issuer Yayımcı + Also known as EntityID. + EntityID olarak da bilinir. + Service Provider Binding Servis Sağlayıcı Bağlama + Redirect Yönlendirme + Post Post + Determines how authentik sends the response back to the Service Provider. - authentik'in yanıtı Servis Sağlayıcıya nasıl geri göndereceğini belirler. + Authentik'in yanıtı Servis Sağlayıcıya nasıl geri göndereceğini belirler. + Audience İzleyici + Signing Certificate İmzalama Serfikası + Certificate used to sign outgoing Responses going to the Service Provider. Sertifika Hizmet Sağlayıcıya giden giden Yanıtları imzalamak için kullanılır. + Verification Certificate Doğrulama Sertifikası + When selected, incoming assertion's Signatures will be validated against this certificate. To allow unsigned Requests, leave on default. Seçildiğinde, gelen onaylama öğesinin İmzaları bu sertifikaya göre doğrulanır. İmzasız İsteklere izin vermek için varsayılan olarak bırakın. + Property mappings Özellik eşlemeleri + NameID Property Mapping NameID Özellik Eşlemesi + Configure how the NameID value will be created. When left empty, the NameIDPolicy of the incoming request will be respected. NameID değerinin nasıl oluşturulacağını yapılandırın. Boş bırakıldığında, gelen isteğin NameIDPolicy değerine saygı gösterilir. + Assertion valid not before Onaylama işlemi daha önce geçerli değil + Configure the maximum allowed time drift for an assertion. Bir onaylama işlemi için izin verilen maksimum zaman kaymasını yapılandırın. + Assertion valid not on or after Onaylama işlemi geçerli değil veya sonrasında + Assertion not valid on or after current time + this value. + Onaylama geçerli saat + bu değer üzerinde veya sonrasında geçerli değil. + Session valid not on or after Oturum geçerli değil veya sonrasında + Session not valid on or after current time + this value. + Geçerli saat + bu değer üzerinde veya sonrasında oturum geçerli değil. + Digest algorithm Digest algoritması + Signature algorithm İmza algoritması + Successfully imported provider. Sağlayıcı başarıyla içe aktarıldı. + Metadata Meta veriler + Apply changes + Değişiklikleri uygula + Close Kapat + Finish + Bitirmek + Back + Geri + No form found Form bulunamadı + Form didn't return a promise for submitting Form göndermek için bir söz vermedi + Select type + Tür seçin + Create Oluştur + New provider + Yeni sağlayıcı + Create a new provider. + Yeni bir sağlayıcı oluşturun. + Create - Oluştur - + Oluştur + Shared secret + Paylaşılan gizli kod dizesi + Client Networks + İstemci Ağları + List of CIDRs (comma-seperated) that clients can connect from. A more specific CIDR will match before a looser one. Clients connecting from a non-specified CIDR will be dropped. + İstemcilerin bağlanabileceği CIDR'lerin (virgülle ayrılmış) listesi. Daha spesifik bir + CIDR daha gevşek olandan önce eşleşecek. Belirtilmemiş bir CIDR'den bağlanan istemciler + bırakılacaktır. URL + URL + SCIM base url, usually ends in /v2. + SCIM temel url'si, genellikle /v2 ile biter. + Token Belirteç + Token to authenticate with. Currently only bearer authentication is supported. + Kimlik doğrulaması için belirteç. Şu anda yalnızca taşıyıcı kimlik doğrulaması desteklenmektedir. + User filtering + Kullanıcı filtreleme + Exclude service accounts + Hizmet hesaplarını hariç tut + Group Grup + Only sync users within the selected group. + Yalnızca seçili gruptaki kullanıcıları senkronize edin. + Attribute mapping + Öznitelik eşlemesi + User Property Mappings Kullanıcı Özellik Eşlemeleri + Property mappings used to user mapping. + Kullanıcı eşlemesi için kullanılan özellik eşlemeleri. + Group Property Mappings Grup Özellik Eşlemeleri + Property mappings used to group creation. Grup oluşturma için kullanılan özellik eşlemeleri. + Not used by any other object. Başka bir nesne tarafından kullanılmaz. + object will be DELETED nesne SILİNECEK + connection will be deleted bağlantı silinecek + reference will be reset to default value referans varsayılan değere sıfırlanır + reference will be set to an empty value referans boş bir değere ayarlanacaktır + () - - ( - ) + () + ID ID + Successfully deleted + Başarıyla silindi Failed to delete : - - silinemedi: - + : Silinemedi + Delete - - Sil + Sil + Are you sure you want to delete ? + Silmek istediğinizden emin misiniz? Delete Sil + Providers Sağlayıcılar + Provide support for protocols like SAML and OAuth to assigned applications. Atanan uygulamalara SAML ve OAuth gibi protokoller için destek sağlayın. + Type Tipi + Provider(s) Sağlayıcı (lar) + Assigned to application - Uygulamaya atanmış + Uygulamaya atanmış + Assigned to application (backchannel) + Uygulamaya atandı (arka kanal) + Warning: Provider not assigned to any application. Uyarı: Sağlayıcı herhangi bir uygulamaya atanmamış. + Update Güncelleme + Update - Güncelleme - + Güncelleştir + Select providers to add to application + Uygulamaya eklenecek sağlayıcıları seçin + Add Ekle + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". Ya tam bir URL, göreli bir yol girin ya da 'fa://fa-test' Yazı Tipi Awesome simgesini “fa-test” kullanmak için kullanın. + Path template for users created. Use placeholders like `%(slug)s` to insert the source slug. + Oluşturulan kullanıcılar için yol şablonu. Kaynak bilgiyi eklemek için '%(slug)s' gibi yer tutucuları kullanın. + Successfully updated application. Uygulama başarıyla güncellendi. + Successfully created application. Uygulama başarıyla oluşturuldu. + Application's display Name. Uygulamanın görünen Adı. + Slug Kısa İsim + Optionally enter a group name. Applications with identical groups are shown grouped together. + İsteğe bağlı olarak bir grup adı girin. Aynı gruplara sahip uygulamalar birlikte gruplandırılmış olarak gösterilir. + Provider Sağlayıcı + Select a provider that this application should use. + Bu uygulamanın kullanması gereken bir sağlayıcı seçin. + Select backchannel providers which augment the functionality of the main provider. + Ana sağlayıcının işlevselliğini artıran arka kanal sağlayıcılarını seçin. + Policy engine mode İlke altyapısı modu + Any policy must match to grant access + Erişim izni vermek için herhangi bir politikanın eşleşmesi gerekir + All policies must match to grant access + Erişim izni vermek için tüm politikaların eşleşmesi gerekir + UI settings UI ayarları + Launch URL URL Başlat + If left empty, authentik will try to extract the launch URL based on the selected provider. Boş bırakılırsa, authentik seçili sağlayıcıya göre başlatma URL'sini ayıklamaya çalışacaktır. + Open in new tab + Yeni sekmede aç + If checked, the launch URL will open in a new browser tab or window from the user's application library. + İşaretlenirse, başlatma URL'si kullanıcının uygulama kitaplığından yeni bir tarayıcı sekmesinde veya penceresinde açılır. + Icon Simge + Currently set to: Şu anda şu şekilde ayarlanmış: + Clear icon Simgeyi temizle + Publisher Yayıncı + Create Application Uygulama Oluştur + Overview Genel Bakış + Changelog Değişiklikler + Warning: Provider is not used by any Outpost. Uyarı: Sağlayıcı herhangi bir Üs tarafından kullanılmaz. + Assigned to application Uygulamaya atanmış + Update LDAP Provider LDAP Sağlayıcısını Güncelle + Edit Düzenle + How to connect Nasıl bağlanır + Connect to the LDAP Server on port 389: Bağlantı noktası 389 LDAP sunucusuna bağlanın: + Check the IP of the Kubernetes service, or Kubernetes hizmetinin IP'lerini kontrol edin veya + The Host IP of the docker host Docker ana bilgisayarının Ana Bilgisayar IP'si + Bind DN Bağlama DN + Bind Password Parola Bağla + Search base Arama tabanı + Preview + Önizleme + Warning: Provider is not used by an Application. Uyarı: Sağlayıcı bir Uygulama tarafından kullanılmaz. + Redirect URIs URI'leri yeniden yönlendirme + Update OAuth2 Provider OAuth2 Sağlayıcısını Güncelleştirme + OpenID Configuration URL OpenID Yapılandırma URL + OpenID Configuration Issuer OpenID Yapılandırması Yayımlayıcı + Authorize URL URL'yi yetkilendirme + Token URL Belirteç URL'si + Userinfo URL Userinfo URL'si + Logout URL Oturum Kapma URL'si + JWKS URL + JWKS URL'si + Forward auth (domain-level) İleri kimlik doğrulama (alan düzeyi) + Nginx (Ingress) Nginx (Giriş) + Nginx (Proxy Manager) Nginx (Proxy Yöneticisi) + Nginx (standalone) Nginx (bağımsız) + Traefik (Ingress) Traefik (Giriş) + Traefik (Compose) Traefik (Beste) + Traefik (Standalone) Traefik (Bağımsız) + Caddy (Standalone) + Caddy (Bağımsız) + Internal Host Dahili Ana Bilgisayar + External Host Harici Ana Bilgisayar + Basic-Auth Basic-Auth + Yes Evet + Mode Mod + Update Proxy Provider Proxy Sağlayıcıyı Güncelle + Protocol Settings Protokol Ayarları + Allowed Redirect URIs İzin Verilen Yeniden Yönlendirme URI'leri + Setup Kurulum + No additional setup is required. Ek kurulum gerekmez. + Update Radius Provider + Yarıçap Sağlayıcısını Güncelleştirme + Download Indir + Copy download URL İndirme URL'sini + Download signing certificate İmzalama sertifikasını indirme + Related objects İlgili nesneler + Update SAML Provider SAML Sağlayıcısını Güncelle + SAML Configuration + SAML Yapılandırması + EntityID/Issuer + EntityID/Veren + SSO URL (Post) + TOA URL'si (Gönderi) + SSO URL (Redirect) + TOA URL'si (Yönlendirme) + SSO URL (IdP-initiated Login) + TOA URL'si (IdP tarafından başlatılan oturum açma) + SLO URL (Post) + SLO URL'si (Gönderi) + SLO URL (Redirect) + SLO URL'si (Yönlendirme) + SAML Metadata SAML Meta Verileri + Example SAML attributes + Örnek SAML özellikleri + NameID attribute + NameID özniteliği + Warning: Provider is not assigned to an application as backchannel provider. + Uyarı: Sağlayıcı bir uygulamaya arka kanal sağlayıcısı olarak atanmamış. + Update SCIM Provider + SCIM Sağlayıcısını Güncelleştirme + Run sync again Eşzamanlamayı tekrar çalıştır + Modern applications, APIs and Single-page applications. + Modern uygulamalar, API'ler ve Tek sayfalı uygulamalar. + LDAP LDAP + Provide an LDAP interface for applications and users to authenticate against. + Uygulamaların ve kullanıcıların kimlik doğrulaması yapması için bir LDAP arabirimi sağlayın. + New application + Yeni uygulama + Applications Uygulamalar + Provider Type Sağlayıcı Türü + Application(s) Uygulama (lar) + Application Icon Uygulama Simgesi + Update Application Uygulamayı Güncelle + Successfully sent test-request. Test isteği başarıyla gönderildi. + Log messages + Günlük iletileri + No log messages. + Günlük mesajı yok. + Active Etkin + Last login Son giriş + Select users to add Eklenecek kullanıcıları seçin + Successfully updated group. Grup başarıyla güncellendi. + Successfully created group. Grup başarıyla oluşturuldu. + Is superuser Süper kullanıcı + Users added to this group will be superusers. Bu gruba eklenen kullanıcılar süper kullanıcılar olacaktır. + Parent Ebeveyn + Attributes Öznitellikler + Set custom attributes using YAML or JSON. YAML veya JSON kullanarak özel nitelikleri ayarlayın. + Successfully updated binding. Ciltleme başarıyla güncellendi. + Successfully created binding. Bağlama başarılı bir şekilde oluşturuldu. + Policy İlke + Group mappings can only be checked if a user is already logged in when trying to access this source. + Grup eşlemeleri, yalnızca bir kullanıcı bu kaynağa erişmeye çalışırken zaten oturum açmışsa kontrol edilebilir. + User mappings can only be checked if a user is already logged in when trying to access this source. + Kullanıcı eşlemeleri, yalnızca bir kullanıcı bu kaynağa erişmeye çalışırken zaten oturum açmışsa kontrol edilebilir. + Enabled Etkin + Negate result Negate sonucu + Negates the outcome of the binding. Messages are unaffected. Bağlamanın sonucunu susturur. Mesajlar etkilenmez. + Order Sıra + Timeout Zaman aşımı + Successfully updated policy. İlke başarıyla güncelleştirildi. + Successfully created policy. İlke başarıyla oluşturuldu. + A policy used for testing. Always returns the same result as specified below after waiting a random duration. Test için kullanılan bir ilke. Her zaman rastgele bir süre bekledikten sonra aşağıda belirtilen sonucu döndürür. + Execution logging Yürütme günlüğü + When this option is enabled, all executions of this policy will be logged. By default, only execution errors are logged. Bu seçenek etkinleştirildiğinde, bu ilkenin tüm yürütmeleri günlüğe kaydedilir. Varsayılan olarak, yalnızca yürütme hataları günlüğe kaydedilir. + Policy-specific settings İlke özel ayarlar + Pass policy? Geçiş ilkesi? + Wait (min) Bekle (dk) + The policy takes a random time to execute. This controls the minimum time it will take. İlke yürütmesi rastgele bir zaman alır. Bu, alacağı minimum süreyi belirler. + Wait (max) Bekleyin (maks.) + Matches an event against a set of criteria. If any of the configured values match, the policy passes. Bir olayı ölçütler kümesine göre eşleştirir. Yapılandırılan değerlerden herhangi biri eşleşirse, ilke geçer. + Match created events with this action type. When left empty, all action types will be matched. Oluşturulan olayları bu eylem türüyle eşleştirin. Boş bırakıldığında tüm eylem türleri eşleştirilir. + Match events created by selected application. When left empty, all applications are matched. Seçilen uygulama tarafından oluşturulan olayları eşleştir. Boş bırakıldığında, tüm uygulamalar eşleştirilir. + Checks if the request's user's password has been changed in the last x days, and denys based on settings. İsteğin kullanıcı parolasının son x gün içinde değiştirilip değiştirilmediğini kontrol eder ve ayarlara göre reddedilir. + Maximum age (in days) Maksimum yaş (gün olarak) + Only fail the policy, don't invalidate user's password + Yalnızca ilkede başarısız olun, kullanıcının parolasını geçersiz kılmayın + Executes the python snippet to determine whether to allow or deny a request. Bir isteğe izin verip reddedilmeyeceğini belirlemek için python parçacığını çalıştırır. + Expression using Python. Python kullanarak ifade. + See documentation for a list of all variables. Tüm değişkenlerin listesi için belgelere bakın. + Static rules + Statik kurallar + Minimum length Minimum uzunluk + Minimum amount of Uppercase Characters Minimum Büyük Harf Karakter Miktarı + Minimum amount of Lowercase Characters Minimum Küçük Harf Karakter Miktarı + Minimum amount of Digits Minimum Rakam sayısı + Minimum amount of Symbols Characters Minimum Semboller Karakter Miktarı + Error message Hata mesajı + Symbol charset Sembol karakter seti + Characters which are considered as symbols. Sembol olarak kabul edilen karakterler. + HaveIBeenPwned settings + HaveIBeenPwned ayarları + Allowed count İzin verilen sayısı + Allow up to N occurrences in the HIBP database. HIBP veritabanında N oluşumuna kadar izin ver. + zxcvbn settings + zxcvbn ayarları + Score threshold + Puan eşiği + If the password's score is less than or equal this value, the policy will fail. + Parolanın puanı bu değerden küçük veya bu değere eşitse, ilke başarısız olur. + Checks the value from the policy request against several rules, mostly used to ensure password strength. İlke isteğindeki değeri, çoğunlukla parola gücünü sağlamak için kullanılan çeşitli kurallara göre denetler. + Password field Parola alanı + Field key to check, field keys defined in Prompt stages are available. Alan tuşu kontrol etmek için, İstem aşamalarında tanımlanan alan tuşları mevcuttur. + Check static rules + Statik kuralları kontrol edin + Check haveibeenpwned.com + haveibeenpwned.com kontrol edin + For more info see: + Daha fazla bilgi için bkz: + Check zxcvbn + zxcvbn'yi kontrol edin + Password strength estimator created by Dropbox, see: + Dropbox tarafından oluşturulan parola gücü tahmincisi, bkz.: + Allows/denys requests based on the users and/or the IPs reputation. Kullanıcıların ve/veya IP'lerin itibarına göre isteklere izin ver/reddeder. + Invalid login attempts will decrease the score for the client's IP, and the username they are attempting to login as, by one. + Geçersiz oturum açma girişimleri, istemcinin IP'sinin puanını düşürür ve +tek tek giriş yapmaya çalıştıkları kullanıcı adı. The policy passes when the reputation score is below the threshold, and doesn't pass when either or both of the selected options are equal or above the threshold. + İtibar puanı eşiğin altına düştüğünde politika geçer ve +Belirlenen seçeneklerden biri veya her ikisi de eşiğe eşit veya eşiğin üzerinde olduğunda geçmez. Check IP IP'yi Kontrol Et + Check Username Kullanıcı Adını Kontrol Et + Threshold Eşik + New policy + Yeni politika + Create a new policy. + Yeni bir ilke oluşturun. + Create Binding Bağlama Oluştur + Superuser Süper kullanıcı + Members Üyeler + Select groups to add user to Kullanıcı eklemek için grupları seçin + Warning: Adding the user to the selected group(s) will give them superuser permissions. + Uyarı: Kullanıcıyı seçili gruplara eklemek, onlara süper kullanıcı izinleri verir. + Successfully updated user. Kullanıcı başarıyla güncellendi. + Successfully created user. Kullanıcı başarıyla oluşturuldu. + Username Kullanıcı Adı + User's primary identifier. 150 characters or fewer. + Kullanıcının birincil tanımlayıcısı. 150 karakter veya daha az. + User's display name. Kullanıcının görünen adı. + Email E-posta + Is active Aktif + Designates whether this user should be treated as active. Unselect this instead of deleting accounts. Bu kullanıcının etkin olarak değerlendirilmesi gerekip gerekmediğini belirtir. Hesapları silmek yerine bunun seçimini kaldırın. + Path + Yol + Policy / User / Group İlke / Kullanıcı / Grup + Policy - İlke - + İlke + Group - Grup - + Grup + User - Kullanıcı - + Kullanıcı + Edit Policy İlkeyi Düzenle + Update Group Güncelleme Grubu + Edit Group Grubu Düzenle + Update User Kullanıcı Güncelle + Edit User Kullanıcı Düzenle + Policy binding(s) İlke bağlama (ler) + Update Binding Ciltlemeyi Güncelle + Edit Binding Bağlamayı Düzenle + No Policies bound. Hiçbir ilke bağlı. + No policies are currently bound to this object. Hiçbir ilke şu anda bu nesneye bağlı değildir. + Warning: Application is not used by any Outpost. Uyarı: Uygulama herhangi bir Üs tarafından kullanılmıyor. + Related İlgili + Backchannel Providers + Arka Kanal Sağlayıcıları + Check access Erişimi kontrol + Check Kontrol + Check Application access Uygulama erişimini denetle + Test Test + Launch Eriş + Logins over the last week (per 8 hours) + Geçen hafta içindeki girişler (8 saatte) + Policy / Group / User Bindings İlke / Grup / Kullanıcı Bağlamaları + These policies control which users can access this application. Bu ilkeler hangi kullanıcıların bu uygulamaya erişebileceğini denetler. + Successfully updated source. Kaynak başarıyla güncellendi. + Successfully created source. Kaynak başarıyla oluşturuldu. + Sync users Kullanıcıları senkronize et + User password writeback Kullanıcı parolasını geri yazma + Login password is synced from LDAP into authentik automatically. Enable this option only to write password changes in authentik back to LDAP. Giriş parolası LDAP'den authentik'e otomatik olarak senkronize edilir. Bu seçeneği yalnızca oentik'te parola değişikliklerini LDAP'ye geri yazmak için etkinleştirin. + Sync groups Grupları eşle + Connection settings Bağlantı ayarları + Server URI Sunucu URI + Specify multiple server URIs by separating them with a comma. Birden çok sunucu URI'lerini virgülle ayırarak belirtin. + Enable StartTLS StartTLS'yi Etkinleştir + To use SSL instead, use 'ldaps://' and disable this option. Bunun yerine SSL kullanmak için 'ldaps: //' kullanın ve bu seçeneği devre dışı bırakın. + TLS Verification Certificate TLS Doğrulama Sertifikası + When connecting to an LDAP Server with TLS, certificates are not checked by default. Specify a keypair to validate the remote certificate. TLS ile bir LDAP Sunucusuna bağlanırken, sertifikalar varsayılan olarak denetlenmez. Uzak sertifikayı doğrulamak için bir anahtar çifti belirtin. + Bind CN Bağlama CN + LDAP Attribute mapping LDAP Öznitelik eşlemesi + Additional settings Ek ayarlar + Parent group for all the groups imported from LDAP. LDAP'den alınan tüm gruplar için ebeveyn grubu. + User path + Kullanıcı yolu + Addition User DN Ekleme Kullanıcı DN + Additional user DN, prepended to the Base DN. Ek kullanıcı DN, temel DN'ye eklenmiş. + Addition Group DN Toplama Grubu DN + Additional group DN, prepended to the Base DN. Ek grup DN, Base DN için eklenmiş. + User object filter Kullanıcı nesne filtresi + Consider Objects matching this filter to be Users. Bu filtreyle eşleşen nesneleri Kullanıcı olarak düşünün. + Group object filter Grup nesnesi filtresi + Consider Objects matching this filter to be Groups. Bu filtreyle eşleşen nesneleri Gruplar olarak düşünün. + Group membership field Grup üyelik alanı + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' Bir grubun üyelerini içeren alan. “memberUid” alanını kullanıyorsanız, değerin göreli bir ayırt edici ad içerdiği varsayılır. örn. 'memberUid=cn=some-user yerine 'memberUid=some-user, ou=groups,...' + Object uniqueness field Nesne benzersizliği alanı + Field which contains a unique Identifier. Benzersiz bir Tanımlayıcı içeren alan. + Link users on unique identifier Kullanıcıları benzersiz tanımlayıcıya bağlama + Link to a user with identical email address. Can have security implications when a source doesn't validate email addresses Aynı e-posta adresine sahip bir kullanıcıya bağlantı verin. Bir kaynak e-posta adreslerini doğrulamadığında güvenlik etkileri olabilir + Use the user's email address, but deny enrollment when the email address already exists + Kullanıcının e-posta adresini kullanın, ancak e-posta adresi zaten mevcutsa kaydı reddedin + Link to a user with identical username. Can have security implications when a username is used with another source + Aynı kullanıcı adına sahip bir kullanıcıya bağlantı verin. Bir kullanıcı adı başka bir kaynakla kullanıldığında güvenlik etkileri olabilir + Use the user's username, but deny enrollment when the username already exists + Kullanıcının kullanıcı adını kullanın, ancak kullanıcı adı zaten mevcutsa kaydı reddedin + Unknown user matching mode + Bilinmeyen kullanıcı eşleştirme modu + URL settings URL ayarları + Authorization URL Yetkilendirme URL'si + URL the user is redirect to to consent the authorization. Kullanıcının yetkilendirmeyi onaylamak için yönlendirdiği URL. + Access token URL Erişim belirteci URL'si + URL used by authentik to retrieve tokens. Auentik tarafından belirteçleri almak için kullanılan URL. + Profile URL Profil URL'si + URL used by authentik to get user information. Kullanıcı bilgilerini almak için authentik tarafından kullanılan URL. + Request token URL Belirteç URL'sini iste + URL used to request the initial token. This URL is only required for OAuth 1. İlk belirteci istemek için kullanılan URL. Bu URL yalnızca OAuth 1 için gereklidir. + OIDC Well-known URL + OIDC İyi Bilinen URL + OIDC well-known configuration URL. Can be used to automatically configure the URLs above. + OIDC iyi bilinen yapılandırma URL'si. Yukarıdaki URL'leri otomatik olarak yapılandırmak için kullanılabilir. + OIDC JWKS URL + OIDC JWKS URL'SI + JSON Web Key URL. Keys from the URL will be used to validate JWTs from this source. + JSON Web Anahtarı URL'si. URL'deki anahtarlar, bu kaynaktan gelen JWT'leri doğrulamak için kullanılacaktır. + OIDC JWKS + OIDC JWKS + Raw JWKS data. + Ham JWKS verileri. + User matching mode Kullanıcı eşleştirme modu + Delete currently set icon. Şu anda ayarlanan simgeyi sil. + Consumer key Tüketici anahtarı + Consumer secret Tüketici sırrı + Additional scopes to be passed to the OAuth Provider, separated by space. To replace existing scopes, prefix with *. + OAuth Sağlayıcısına geçirilecek ek kapsamlar, boşlukla ayrılmış olarak belirlenir. Mevcut kapsamları değiştirmek için, * önekini ekleyin. + Flow settings Akış ayarları + Flow to use when authenticating existing users. Mevcut kullanıcıların kimliğini doğrularken kullanmak için akış. + Enrollment flow Kayıt akışı + Flow to use when enrolling new users. Yeni kullanıcıları kaydettirirken kullanmak için akış. + Load servers Sunucuları yükle + Re-authenticate with plex - plex ile yeniden kimlik doğrulama + Plex ile yeniden kimlik doğrulama + Allow friends to authenticate via Plex, even if you don't share any servers Herhangi bir sunucu paylaşmasan bile arkadaşlarının Plex aracılığıyla kimlik doğrulamasına izin ver + Allowed servers İzin verilen sunucular + Select which server a user has to be a member of to be allowed to authenticate. Bir kullanıcının kimlik doğrulamasına izin verilmesi için üye olması gereken sunucuyu seçin. + SSO URL SSO URL + URL that the initial Login request is sent to. İlk oturum açma isteğinin gönderildiği URL. + SLO URL SLO URL + Optional URL if the IDP supports Single-Logout. IDP Tek Oturumu Kapat'ı destekliyorsa isteğe bağlı URL. + Also known as Entity ID. Defaults the Metadata URL. Entity ID olarak da bilinir. Metadata URL'sine varsayılan olarak ayarlanır. + Binding Type Bağlama Tipi + Redirect binding Yeniden yönlendirme bağlama + Post-auto binding + Otomatik ciltleme sonrası + Post binding but the request is automatically sent and the user doesn't have to confirm. + Bağlama sonrası, ancak istek otomatik olarak gönderilir ve kullanıcının onaylaması gerekmez. + Post binding Post ciltleme + Signing keypair Anahtar çifti imzalama + Keypair which is used to sign outgoing requests. Leave empty to disable signing. Giden istekleri imzalamak için kullanılan anahtar çifti. İmzalamayı devre dışı bırakmak için boş bırakın. + Allow IDP-initiated logins - IDP tarafından başlatılan oturumlara izin ver + IDP tarafından başlatılan oturumlara izin ver + Allows authentication flows initiated by the IdP. This can be a security risk, as no validation of the request ID is done. IdP tarafından başlatılan kimlik doğrulama akışlarına izin verir. İstek kimliğinin doğrulanması yapılmadığından, bu bir güvenlik riski olabilir. + NameID Policy NameID İlkesi + Persistent Kalıcı + Email address E-posta adresi + Windows Windows + X509 Subject X509 Konusu + Transient Geçici + Delete temporary users after Geçici kullanıcıları sonra sil + Time offset when temporary users should be deleted. This only applies if your IDP uses the NameID Format 'transient', and the user doesn't log out manually. + Geçici kullanıcıların silinmesi gereken zaman farkı. Bu, yalnızca IDP'niz 'geçici' NameID Biçimini kullanıyorsa ve kullanıcı manuel olarak oturumu kapatmıyorsa geçerlidir. + Pre-authentication flow Ön kimlik doğrulama akışı + Flow used before authentication. Kimlik doğrulamadan önce kullanılan akış. + New source + Yeni kaynak + Create a new source. + Yeni bir kaynak oluşturun. + Sources of identities, which can either be synced into authentik's database, or can be used by users to authenticate and enroll themselves. Auentik'in veritabanına senkronize edilebilen ya da kullanıcılar tarafından kimlik doğrulaması ve kayıt yaptırmak için kullanılabilen kimliklerin kaynakları. + Source(s) Kaynak (lar) + Disabled Devre Dışı + Built-in Dahili + Update LDAP Source LDAP Kaynağını Güncelle + Not synced yet. Henüz senkronize edilmedi. + OAuth Source + OAuth Kaynağı + Generic OpenID Connect Genel OpenID Connect + Unknown provider type + Bilinmeyen sağlayıcı türü + Details + Şey + Callback URL Geri arama URL'si + Access Key Erişim Anahtarı + Update OAuth Source OAuth Kaynağını Güncelle + Diagram Diyagram + Policy Bindings İlke Bağlamaları + These bindings control which users can access this source. You can only use policies here as access is checked before the user is authenticated. + Bu bağlamalar, hangi kullanıcıların bu kaynağa erişebileceğini denetler. + Kullanıcının kimliği doğrulanmadan önce erişim kontrol edildiğinden, buradaki ilkeleri yalnızca kullanabilirsiniz. Update Plex Source Plex Kaynağını Güncelle + Update SAML Source SAML Kaynağını Güncelle + Successfully updated mapping. Eşleme başarıyla güncellendi. + Successfully created mapping. Eşleme başarıyla oluşturuldu. + SAML Attribute Name SAML Öznitelik Adı + Attribute name used for SAML Assertions. Can be a URN OID, a schema reference, or a any other string. If this property mapping is used for NameID Property, this field is discarded. SAML Onaylamaları için kullanılan öznitelik adı. URN OID, şema referansı veya başka bir dize olabilir. Bu özellik eşlemesi NameID özelliği için kullanılıyorsa, bu alan atılır. + Friendly Name Dostça İsim + Optionally set the 'FriendlyName' value of the Assertion attribute. İsteğe bağlı olarak onaylama özniteliğinin 'FriendlyName' değerini ayarlayın. + Scope name Kapsam adı + Scope which the client can specify to access these properties. İstemcinin bu özelliklere erişmek için belirtebileceği kapsam. + Description shown to the user when consenting. If left empty, the user won't be informed. Açıklama, izin verirken kullanıcıya gösterilir. Boş bırakılırsa kullanıcı bilgilendirilmez. + Example context data + Örnek bağlam verileri + Active Directory User + Active Directory Kullanıcısı + Active Directory Group + Active Directory Grubu + New property mapping + Yeni mülk eşleme + Create a new property mapping. + Yeni bir özellik eşlemesi oluşturun. + Property Mappings Özellik Eşleştirmeleri + Control how authentik exposes and interprets information. Auentik'in bilgiyi nasıl açığa çıkardığını ve yorumlayacağını kontrol edin. + Property Mapping(s) Özellik Eşleme (ler) + Test Property Mapping Sınama Özellik Eşlemesi + Hide managed mappings Yönetilen eşlemeleri gizle + Successfully updated token. Belirteç başarıyla güncellendi. + Successfully created token. Belirteç başarıyla oluşturuldu. + Unique identifier the token is referenced by. Belirteç tarafından başvurulan benzersiz tanımlayıcı. + Intent Niyet + API Token + API Simgesi + Used to access the API programmatically + API'ye programlı olarak erişmek için kullanılır + App password. + Uygulama şifresi. + Used to login using a flow executor + Akış yürütücüsü kullanarak oturum açmak için kullanılır + Expiring Süresi Doluyor + If this is selected, the token will expire. Upon expiration, the token will be rotated. Bu seçilirse, belirteç süresi dolacaktır. Süresi dolduktan sonra, belirteç döndürülür. + Expires on Geçerlilik süresi + API Access API Erişimi + App password Uygulama parolası + Verification Doğrulama + Unknown intent + Bilinmeyen niyet + Tokens Belirteçler + Tokens are used throughout authentik for Email validation stages, Recovery keys and API access. Belirteçler, E-posta doğrulama aşamaları, Kurtarma anahtarları ve API erişimi için authentik boyunca kullanılır. + Expires? Son kullanma tarihi mi? + Expiry date Son kullanma tarihi + Token(s) Belirteç(ler) + Create Token Belirteç Oluştur + Token is managed by authentik. Token authentik tarafından yönetilir. + Update Token Belirteç Güncelle + Domain Alan Adı + Matching is done based on domain suffix, so if you enter domain.tld, foo.domain.tld will still match. Eşleştirme, etki alanı sonekine göre yapılır, bu nedenle domain.tld girerseniz foo.domain.tld yine de eşleşir. + Default Varsayılan + Branding settings Markalama ayarları + Title Başlık + Branding shown in page title and several other places. Markalama sayfa başlığında ve başka yerlerde gösterilir. + Logo Logo + Icon shown in sidebar/header and flow executor. Simge kenar çubuğu/başlık ve akış yürütücüde gösterilir. + Favicon Favicon + Icon shown in the browser tab. Tarayıcı sekmesinde gösterilen simge. + Default flows Varsayılan akışlar + Flow used to authenticate users. If left empty, the first applicable flow sorted by the slug is used. Kullanıcıların kimliğini doğrulamak için kullanılan akış. Boş bırakılırsa, kısa isme göre sıralanan ilk uygulanabilir akış kullanılır. + Invalidation flow Geçersizleştirme akışı + Flow used to logout. If left empty, the first applicable flow sorted by the slug is used. Çıkış yapmak için kullanılan akış. Boş bırakılırsa, kısa isme göre sıralanan ilk uygulanabilir akış kullanılır. + Recovery flow Kurtarma akışı + Unenrollment flow Kayıt dışı akış + If set, users are able to unenroll themselves using this flow. If no flow is set, option is not shown. Ayarlanırsa, kullanıcılar bu akışı kullanarak kendi kayıtlarını kaldırabilir. Akış ayarlanmamışsa seçenek gösterilmez. + User settings flow + Kullanıcı ayarları akışı + If set, users are able to configure details of their profile. + Ayarlanırsa, kullanıcılar profillerinin ayrıntılarını yapılandırabilir. + Device code flow + Cihaz kodu akışı + If set, the OAuth Device Code profile can be used, and the selected flow will be used to enter the code. + Ayarlanırsa, OAuth Cihaz Kodu profili kullanılabilir ve kodu girmek için seçilen akış kullanılır. + Other global settings Diğer genel ayarlar + Web Certificate Web Sertifikası + Event retention Etkinliği saklama + Duration after which events will be deleted from the database. Olayların veritabanından silineceği süre. + When using an external logging solution for archiving, this can be set to "minutes=5". Arşivleme için harici bir günlük çözümü kullanırken, bu “Dakika = 5" olarak ayarlanabilir. + This setting only affects new Events, as the expiration is saved per-event. Bu ayar, süre sonu olay başına kaydedildiğinden, yalnızca yeni Olayları etkiler. + Configure visual settings and defaults for different domains. Farklı etki alanları için görsel ayarları ve varsayılanları yapılandırın. + Default? Varsayılan? + Policies İlkeler + Allow users to use Applications based on properties, enforce Password Criteria and selectively apply Stages. Kullanıcıların özelliklere göre Uygulamaları kullanmasına, Parola Ölçütlerini uygulamasına ve Aşama Alanları'nı seçerek uygulamasına izin verin. + Assigned to object(s). - - nesneye atanır. + Atandığı kişi object(s). + Warning: Policy is not assigned. Uyarı: İlke atanmamış. + Test Policy Test İlkesi + Policy / Policies İlke / İlkeler + Successfully cleared policy cache İlke önbelleği başarıyla temizlendi + Failed to delete policy cache İlke önbelleği silinemedi + Clear cache Önbelleği temizle + Clear Policy cache İlke önbelleği temizle + Are you sure you want to clear the policy cache? This will cause all policies to be re-evaluated on their next usage. + İlke önbelleğini temizlemek istediğinizden emin misiniz? Bu, tüm ilkelerin bir sonraki kullanımlarında yeniden değerlendirilmesine neden olur. Reputation scores İtibar puanları + Reputation for IP and user identifiers. Scores are decreased for each failed login and increased for each successful login. IP ve kullanıcı tanımlayıcıları için itibar. Başarısız olan her giriş için puan azaltılır ve her başarılı oturum açma için artırılır. + IP İP + Score Skor + Updated Güncellendi + Reputation İtibar + Groups Gruplar + Group users together and give them permissions based on the membership. Kullanıcıları birlikte gruplandırın ve üyeliğe bağlı olarak izinler verin. + Superuser privileges? Süper kullanıcı ayrıcalıkları mı? + Group(s) Grup (ler) + Create Group Grup Oluştur + Create group Grup oluştur + Enabling this toggle will create a group named after the user, with the user as member. Bu geçiş özelliğini etkinleştirmek, kullanıcının adını taşıyan ve kullanıcının üye olduğu bir grup oluşturur. + Use the username and password below to authenticate. The password can be retrieved later on the Tokens page. Kimlik doğrulaması için aşağıdaki kullanıcı adı ve parolayı kullanın. Parola daha sonra Belirteçler sayfasından alınabilir. + Password Parola + Valid for 360 days, after which the password will automatically rotate. You can copy the password from the Token List. 360 gün boyunca geçerlidir, bundan sonra parola otomatik olarak dönecektir. Parolayı Token Listesi'nden kopyalayabilirsiniz. + The following objects use - Aşağıdaki nesneler - + Aşağıdaki nesneler kullanır + connecting object will be deleted bağlantılı nesne silinecek + Successfully updated + Başarıyla güncellendi Failed to update : - - güncellenemedi: - + : Güncellemesi başarısız oldu + Are you sure you want to update ""? - - “ - ” güncellemesini istediğinizden emin misiniz? + "" Güncellemek istediğinizden emin misiniz? + Successfully updated password. Parola başarıyla güncellendi. + Successfully sent email. Başarıyla e-posta gönderildi. + Email stage E-posta aşaması + Successfully added user(s). + Başarıyla eklenen kullanıcılar. + Users to add + Eklenecek kullanıcılar + User(s) Kullanıcı (lar) + Remove Users(s) + Kullanıcıları Kaldır + Are you sure you want to remove the selected users from the group ? + Bu kullanıcıları gruptan kaldırmak istediğinizden emin misiniz? + Remove + Kaldırmak + Impersonate Taklit et + User status Kullanıcı durumu + Change status Durumu değiştir + Deactivate Devre dışı bırak + Update password Parolayı güncelle + Set password Parola ayarla + Successfully generated recovery link Kurtarma bağlantısı başarıyla oluşturuldu + No recovery flow is configured. Kurtarma akışı yapılandırılmamış. + Copy recovery link Kurtarma bağlantısı kopyalama + Send link Bağlantıyı gönder + Send recovery link to user Kullanıcıya kurtarma bağlantısını gönder + Email recovery link E-posta kurtarma bağlantısı + Recovery link cannot be emailed, user has no email address saved. Kurtarma bağlantısı e-posta ile gönderilemez, kullanıcının e-posta adresi kaydedilmez. + Add User + Kullanıcı Ekle + Warning: This group is configured with superuser access. Added users will have superuser access. + Uyarı: Bu grup süper kullanıcı erişimiyle yapılandırılmıştır. Eklenen kullanıcılar süper kullanıcı erişimine sahip olur. + Add existing user + Mevcut kullanıcı ekle + Create user + Kullanıcı oluştur + Create User Kullanıcı Oluştur + Create Service account Hizmet hesabı oluştur + Hide service-accounts Hizmet hesaplarını gizle + Group Info + Grup Bilgisi + Notes + Notlar + Edit the notes attribute of this group to add notes here. + Buraya not eklemek için bu grubun notlar özniteliğini düzenleyin. + Users Kullanıcılar + Root + Kök + Warning: You're about to delete the user you're logged in as (). Proceed at your own risk. - Uyarı: Oturum açtığınız kullanıcıyı ( - ) silmek üzeresiniz. Kendi sorumluluğunuzdadır. + Uyarı: Oturum açtığınız kullanıcıyı () silmek üzeresiniz! Riski size ait olmak üzere devam edin. + Hide deactivated user + Devre dışı bırakılan kullanıcıyı gizle + User folders + Kullanıcı klasörleri + Successfully added user to group(s). + Kullanıcı gruplara başarıyla eklendi. + Groups to add + Eklenecek gruplar + Remove from Group(s) + Gruplardan Kaldır + Are you sure you want to remove user from the following groups? + Aşağıdaki gruplardan kullanıcısını kaldırmak istediğinizden emin misiniz? + Add Group + Grup Ekle + Add to existing group + Mevcut gruba ekle + Add new group + Yeni grup ekle + Application authorizations Uygulama yetkilendirmeleri + Revoked? İptal mi edildi? + Expires Süresi Doluyor + ID Token Kimlik Belirteci + Refresh Tokens(s) + Yenileme Jetonları + Last IP Son IP + Session(s) Oturum (lar) + Expiry Son kullanma tarihi + (Current session) + (Mevcut oturum) + Permissions + İzinler + Consent(s) Rıza(lar) + Successfully updated device. Cihaz başarıyla güncellendi. + Static tokens Statik belirteçler + TOTP Device TOTP Cihazı + Enroll Kaydolun + Device(s) Aygıt (ler) + Update Device Cihazı Güncelle + Confirmed + Doğruladı + User Info Kullanıcı Bilgileri + Actions over the last week (per 8 hours) + Geçen haftaki eylemler (8 saat başına) + Edit the notes attribute of this user to add notes here. + Buraya not eklemek için bu kullanıcının notes özelliğini düzenleyin. + Sessions Oturumlar + User events Kullanıcı olayları + Explicit Consent Açık Onayı + OAuth Refresh Tokens + OAuth Yenileme Jetonları + MFA Authenticators + MFA Kimlik Doğrulayıcıları + Successfully updated invitation. Davet başarıyla güncellendi. + Successfully created invitation. Davet başarıyla oluşturuldu. + Flow Akış + When selected, the invite will only be usable with the flow. By default the invite is accepted on all flows with invitation stages. + Seçildiğinde, davet yalnızca akışla birlikte kullanılabilir. Varsayılan olarak davet, davet aşamaları olan tüm akışlarda kabul edilir. + Optional data which is loaded into the flow's 'prompt_data' context variable. YAML or JSON. Akışın 'prompt_data' bağlam değişkenine yüklenen isteğe bağlı veriler. YAML veya JSON. + Single use Tek kullanımlık + When enabled, the invitation will be deleted after usage. Etkinleştirildiğinde, davetiye kullanımdan sonra silinir. + Select an enrollment flow Bir kayıt akışı seçme + Link to use the invitation. Daveti kullanmak için bağlantı. + Invitations Davetiyeler + Create Invitation Links to enroll Users, and optionally force specific attributes of their account. Kullanıcıları kaydetmek için Davet Bağlantıları oluşturun ve isteğe bağlı olarak hesaplarının belirli özniteliklerini zorlayın. + Created by Tarafından yaratıldı + Invitation(s) Davetiye (ler) + Invitation not limited to any flow, and can be used with any enrollment flow. + Davet herhangi bir akışla sınırlı değildir ve herhangi bir kayıt akışıyla kullanılabilir. + Update Invitation + Güncelleme Daveti + Create Invitation Davet Oluştur + Warning: No invitation stage is bound to any flow. Invitations will not work as expected. Uyarı: Hiçbir davetiye aşaması herhangi bir akışa bağlı değildir. Davetiyeler beklendiği gibi çalışmaz. + Auto-detect (based on your browser) Otomatik algıla (tarayıcınıza göre) + Required. Zorunlu. + Continue Devam Et + Successfully updated prompt. İstemi başarıyla güncellendi. + Successfully created prompt. Başarıyla komut istemi oluşturuldu. + Text: Simple Text input Metin: Basit Metin girişi + Text Area: Multiline text input + Metin Alanı: Çok satırlı metin girişi + Text (read-only): Simple Text input, but cannot be edited. Metin (salt okunur): Basit Metin girişi, ancak düzenlenemez. + Text Area (read-only): Multiline text input, but cannot be edited. + Metin Alanı (salt okunur): Çok satırlı metin girişi, ancak düzenlenemez. + Username: Same as Text input, but checks for and prevents duplicate usernames. Kullanıcı adı: Metin girişi ile aynı, ancak yinelenen kullanıcı adlarını denetler ve engeller. + Email: Text field with Email type. E-posta: E-posta türü ile metin alanı. + Password: Masked input, multiple inputs of this type on the same prompt need to be identical. + Şifre: Maskelenmiş giriş, aynı istemdeki bu türden birden çok girişin aynı olması gerekir. + Number Numara + Checkbox Onay Kutusu + Radio Button Group (fixed choice) + Radyo Düğmesi Grubu (sabit seçim) + Dropdown (fixed choice) + Açılır menü (sabit seçim) + Date Tarih + Date Time Tarih Saat + File + Dosya + Separator: Static Separator Line Ayırıcı: Statik Ayırıcı Hattı + Hidden: Hidden field, can be used to insert data into form. Gizli: Gizli alan, form içine veri eklemek için kullanılabilir. + Static: Static value, displayed as-is. Statik: Statik değer, olduğu gibi görüntülenir. + authentik: Locale: Displays a list of locales authentik supports. + authentik: Yerel ayar: authentik'in desteklediği yerel ayarların listesini görüntüler. + Preview errors + Önizleme hataları + Data preview + Veri önizlemesi + Unique name of this field, used for selecting fields in prompt stages. + Bu alanın benzersiz adı, bilgi istemi aşamalarındaki alanları seçmek için kullanılır. + Field Key Alan Anahtarı + Name of the form field, also used to store the value. Değeri depolamak için de kullanılan form alanının adı. + When used in conjunction with a User Write stage, use attributes.foo to write attributes. Kullanıcı Yazma aşaması ile birlikte kullanıldığında, öznitelikleri yazmak için attributes.foo kullanın. + Label Etiket + Label shown next to/above the prompt. Etiket, istemin yanında veya üstünde gösterilir. + Required Zorunlu + Interpret placeholder as expression + Yer tutucuyu ifade olarak yorumlama + When checked, the placeholder will be evaluated in the same way a property mapping is. If the evaluation fails, the placeholder itself is returned. + İşaretlendiğinde, yer tutucu özellik eşlemesiyle aynı şekilde değerlendirilir. + Değerlendirme başarısız olursa, yer tutucunun kendisi döndürülür. Placeholder Yer tutucu + Optionally provide a short hint that describes the expected input value. When creating a fixed choice field, enable interpreting as expression and return a list to return multiple choices. + İsteğe bağlı olarak, beklenen giriş değerini açıklayan kısa bir ipucu sağlayın. + Sabit bir seçim alanı oluştururken, ifade olarak yorumlamayı etkinleştirin ve bir + Birden çok seçenek döndürmek için listeleyin. Interpret initial value as expression + Başlangıç değerini ifade olarak yorumlama + When checked, the initial value will be evaluated in the same way a property mapping is. If the evaluation fails, the initial value itself is returned. + İşaretlendiğinde, başlangıç değeri bir özellik eşlemesi ile aynı şekilde değerlendirilir. + Değerlendirme başarısız olursa, başlangıç değerinin kendisi döndürülür. Initial value + Başlangıç değeri + Optionally pre-fill the input with an initial value. When creating a fixed choice field, enable interpreting as expression and return a list to return multiple default choices. + İsteğe bağlı olarak, girişi bir başlangıç değeriyle önceden doldurun. + Sabit bir seçim alanı oluştururken, ifade olarak yorumlamayı etkinleştirin ve + Birden çok varsayılan seçenek döndürmek için bir liste döndürün. Help text Yardım metni + Any HTML can be used. Herhangi bir HTML kullanılabilir. + Prompts İstemler + Single Prompts that can be used for Prompt Stages. İstemi Aşamaları için kullanılabilecek Tek İstemler. + Field Alan + Stages Aşamalar + Prompt(s) İstemi (ler) + Update Prompt Güncelleme İstemi + Create Prompt İstemi Oluştur + Target Hedef + Stage Aşama + Evaluate when flow is planned + Akışın ne zaman planlandığını değerlendirin + Evaluate policies during the Flow planning process. + Akış planlama sürecinde ilkeleri değerlendirin. + Evaluate when stage is run + Aşamanın ne zaman çalıştırıldığını değerlendirin + Evaluate policies before the Stage is present to the user. Aşama kullanıcıya sunulmadan önce ilkeleri değerlendirin. + Invalid response behavior + Geçersiz yanıt davranışı + Returns the error message and a similar challenge to the executor + Hata iletisini ve benzer bir sorgulamayı yürütücüye döndürür + Restarts the flow from the beginning + Akışı baştan başlatır + Restarts the flow from the beginning, while keeping the flow context + Akış bağlamını korurken akışı baştan başlatır + Configure how the flow executor should handle an invalid response to a challenge given by this bound stage. + Akış yürütücüsünün bu bağlı aşama tarafından verilen bir sınamaya geçersiz bir yanıtı nasıl işlemesi gerektiğini yapılandırın. + Successfully updated stage. Aşama başarıyla güncellendi. + Successfully created stage. Aşama aşaması başarıyla oluşturuldu. + Stage used to configure a duo-based authenticator. This stage should be used for configuration flows. Aşama ikili tabanlı kimlik doğrulayıcısını yapılandırmak için kullanılır. Bu aşama yapılandırma akışları için kullanılmalıdır. + Authenticator type name + Kimlik doğrulayıcı türü adı + Display name of this authenticator, used by users when they enroll an authenticator. + Bu kimlik doğrulayıcının, kullanıcılar tarafından bir kimlik doğrulayıcı kaydederken kullanılan görünen adı. + API Hostname API Ana bilgisayar adı + Duo Auth API + Duo Kimlik Doğrulama API'sı + Integration key Entegrasyon anahtarı + Secret key Gizli anahtar + Duo Admin API (optional) + Duo Admin API (isteğe bağlı) + When using a Duo MFA, Access or Beyond plan, an Admin API application can be created. This will allow authentik to import devices automatically. + Duo MFA, Access veya Beyond planı kullanılırken bir Admin API uygulaması oluşturulabilir. + Bu, authentik'in cihazları otomatik olarak içe aktarmasına izin verecektir. Stage-specific settings Aşama alanına özgü ayarlar + Configuration flow Yapılandırma akışı + Flow used by an authenticated user to configure this Stage. If empty, user will not be able to configure this stage. Bu Aşama'yı yapılandırmak için kimliği doğrulanmış bir kullanıcı tarafından kullanılan akış. Boşsa, kullanıcı bu aşamayı yapılandıramaz. + Twilio Account SID Twilio Hesabı SID + Get this value from https://console.twilio.com Bu değeri https://console.twilio.com adresinden alın + Twilio Auth Token Twilio Auth Belirteci + Authentication Type Kimlik Doğrulama Türü + Basic Auth Temel Auth + Bearer Token Bearer Belirteci + External API URL Harici API URL'si + This is the full endpoint to send POST requests to. Bu, POST istekleri göndermek için tam bitiş noktasıdır. + API Auth Username API Auth Kullanıcı Adı + This is the username to be used with basic auth or the token when used with bearer token Bu, temel kimlik doğrulama veya taşıyıcı belirteci ile kullanıldığında kullanılacak kullanıcı adıdır + API Auth password API Auth parolası + This is the password to be used with basic auth Bu, temel kimlik doğrulama ile kullanılacak paroladır + Mapping + Eşleme + Modify the payload sent to the custom provider. + Özel sağlayıcıya gönderilen yükü değiştirin. + Stage used to configure an SMS-based TOTP authenticator. Aşama, SMS tabanlı bir TOTP kimlik doğrulayıcısını yapılandırmak için kullanılır. + Twilio Twilio + Generic Jenerik + From number Numarasından + Number the SMS will be sent from. Numara SMS gönderilecektir. + Hash phone number + Karma telefon numarası + If enabled, only a hash of the phone number will be saved. This can be done for data-protection reasons. Devices created from a stage with this enabled cannot be used with the authenticator validation stage. + Etkinleştirilirse, telefon numarasının yalnızca bir karması kaydedilir. Bu, veri koruma nedenleriyle yapılabilir. Bu özelliğin etkinleştirildiği bir aşamadan oluşturulan cihazlar, kimlik doğrulayıcı doğrulama aşamasıyla kullanılamaz. + Stage used to configure a static authenticator (i.e. static tokens). This stage should be used for configuration flows. Statik kimlik doğrulayıcısını (yani statik belirteçleri) yapılandırmak için kullanılan aşama. Bu aşama yapılandırma akışları için kullanılmalıdır. + Token count Belirteç sayısı + Stage used to configure a TOTP authenticator (i.e. Authy/Google Authenticator). Bir TOTP kimlik doğrulayıcısını (Authy/Google Authenticator) yapılandırmak için kullanılan aşama. + Digits Rakamlar + 6 digits, widely compatible 6 basamaklı, yaygın olarak uyumlu + 8 digits, not compatible with apps like Google Authenticator Google Authenticator gibi uygulamalarla uyumlu olmayan 8 haneli + Stage used to validate any authenticator. This stage should be used during authentication or authorization flows. Aşama, herhangi bir kimlik doğrulayıcıyı doğrulamak için kullanılır. Bu aşama kimlik doğrulama veya yetkilendirme akışları sırasında kullanılmalıdır. + Device classes Cihaz sınıfları + Static Tokens Statik Belirteçler + TOTP Authenticators TOTP Kimlik Doğrulayıcıları + WebAuthn Authenticators WebAuthn Kimlik Doğrulayıcıları + Duo Authenticators Duo Kimlik Doğrulayıcıları + SMS-based Authenticators SMS Tabanlı Kimlik Doğrulayıcıları + Device classes which can be used to authenticate. Kimlik doğrulaması için kullanılabilecek aygıt sınıfları. + Last validation threshold + Son doğrulama eşiği + Not configured action Yapılandırılmamış eylem + Force the user to configure an authenticator Kullanıcıyı bir kimlik doğrulayıcı yapılandırmaya zorla + Deny the user access Kullanıcı erişimini engelle + WebAuthn User verification + WebAuthn Kullanıcı doğrulaması + User verification must occur. Kullanıcı doğrulaması gerçekleşmelidir. + User verification is preferred if available, but not required. Kullanıcı doğrulaması varsa tercih edilir, ancak gerekli değildir. + User verification should not occur. Kullanıcı doğrulaması gerçekleşmemelidir. + Configuration stages + Yapılandırma aşamaları + Stages used to configure Authenticator when user doesn't have any compatible devices. After this configuration Stage passes, the user is not prompted again. + Kullanıcının uyumlu bir cihazı olmadığında Authenticator'ı yapılandırmak için kullanılan aşamalar. Bu yapılandırma Aşaması geçtikten sonra kullanıcıya yeniden sorulmaz. + When multiple stages are selected, the user can choose which one they want to enroll. + Birden fazla aşama seçildiğinde, kullanıcı hangisini kaydetmek istediğini seçebilir. + User verification Kullanıcı doğrulaması + Resident key requirement + Yerleşik anahtar gereksinimi + Authenticator Attachment + Kimlik Doğrulayıcı Eki + No preference is sent + Tercih gönderilmez + A non-removable authenticator, like TouchID or Windows Hello + TouchID veya Windows Hello gibi çıkarılamayan bir kimlik doğrulayıcı + A "roaming" authenticator, like a YubiKey + YubiKey gibi bir "dolaşımda" kimlik doğrulayıcı + This stage checks the user's current session against the Google reCaptcha (or compatible) service. + Bu aşama, kullanıcının mevcut oturumunu Google reCaptcha (veya uyumlu) hizmetine göre kontrol eder. + Public Key Genel Anahtar + Public key, acquired from https://www.google.com/recaptcha/intro/v3.html. - https://www.google.com/recaptcha/intro/v3.html adresinden edinilen genel anahtar. + https://www.google.com/recaptcha/intro/v3.html adresinden edinilen açık anahtar. + Private Key Özel Anahtar + Private key, acquired from https://www.google.com/recaptcha/intro/v3.html. https://www.google.com/recaptcha/intro/v3.html adresinden edinilen özel anahtar. + Advanced settings Gelişmiş ayarlar + JS URL + JS URL'si + URL to fetch JavaScript from, defaults to recaptcha. Can be replaced with any compatible alternative. + JavaScript'in getirileceği URL, varsayılan olarak recaptcha'dır. Herhangi bir uyumlu alternatifle değiştirilebilir. + API URL + API URL'si + URL used to validate captcha response, defaults to recaptcha. Can be replaced with any compatible alternative. + Captcha yanıtını doğrulamak için kullanılan URL, varsayılan olarak recaptcha'dır. Herhangi bir uyumlu alternatifle değiştirilebilir. + Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time. Kullanıcının rızasını isteme. Onay kalıcı olabilir veya belirli bir süre içinde geçerlilik süresi dolabilir. + Always require consent Her zaman rıza gerektirir + Consent given last indefinitely Süresiz olarak verilen izin + Consent expires. Onayın süresi doluyor. + Consent expires in Onayın süresi + Offset after which consent expires. + Onayın süresi dolduktan sonra ofset. + Dummy stage used for testing. Shows a simple continue button and always passes. Test için kullanılan kukla aşama. Basit bir devam düğmesi gösterir ve her zaman geçer. + Throw error? + Atma hatası? + SMTP Host SMTP Ana Bilgisayarı + SMTP Port SMTP Bağlantı Noktası + SMTP Username SMTP Kullanıcı Adı + SMTP Password SMTP Parolası + Use TLS TLS Kullan + Use SSL SSL kullan + From address Gönderen adres + Verify the user's email address by sending them a one-time-link. Can also be used for recovery to verify the user's authenticity. Kullanıcının e-posta adresini bir kerelik bağlantı göndererek doğrulayın. Kullanıcının orijinalliğini doğrulamak için kurtarma için de kullanılabilir. + Activate pending user on success Bekleyen kullanıcıyı başarı durumunda etkinleştir + When a user returns from the email successfully, their account will be activated. Bir kullanıcı e-postadan başarıyla döndüğünde, hesabı etkinleştirilir. + Use global settings Genel ayarları kullan + When enabled, global Email connection settings will be used and connection settings below will be ignored. Etkinleştirildiğinde, genel E-posta bağlantısı ayarları kullanılır ve aşağıdaki bağlantı ayarları yoksayılır. + Token expiry Belirteç son kullanma tarihi + Time in minutes the token sent is valid. Gönderilen belirtecin dakika cinsinden geçerlilik süresi. + Template Şablon + Let the user identify themselves with their username or Email address. Kullanıcının kullanıcı adı veya E-posta adresi ile kendilerini tanımlamasına izin verin. + User fields Kullanıcı alanları + UPN UPN + Fields a user can identify themselves with. If no fields are selected, the user will only be able to use sources. Kullanıcının kendilerini tanımlayabileceği alanlar. Herhangi bir alan seçilmezse, kullanıcı yalnızca kaynakları kullanabilir. + Password stage Parola aşaması + When selected, a password field is shown on the same page instead of a separate page. This prevents username enumeration attacks. Seçildiğinde, ayrı bir sayfa yerine aynı sayfada bir parola alanı gösterilir. Bu, kullanıcı adı numaralandırma saldırılarını engeller. + Case insensitive matching Harf büyüklüğüne duyarsız eşleştirme + When enabled, user fields are matched regardless of their casing. Etkinleştirildiğinde, kullanıcı alanları muhafazası ne olursa olsun eşleştirilir. + Show matched user Eşleşen kullanıcıyı göster + When a valid username/email has been entered, and this option is enabled, the user's username and avatar will be shown. Otherwise, the text that the user entered will be shown. Geçerli bir kullanıcı adı/e-posta girildiğinde ve bu seçenek etkinleştirildiğinde, kullanıcının kullanıcı adı ve avatarı gösterilir. Aksi takdirde, kullanıcının girdiği metin gösterilir. + Source settings + Kaynak ayarları + Sources Kaynaklar + Select sources should be shown for users to authenticate with. This only affects web-based sources, not LDAP. Kullanıcıların kimlik doğrulaması için belirli kaynaklar gösterilmelidir. Bu, LDAP'yi değil, yalnızca web tabanlı kaynakları etkiler. + Show sources' labels Kaynakların etiketlerini göster + By default, only icons are shown for sources. Enable this to show their full names. Varsayılan olarak, kaynaklar için yalnızca simgeler gösterilir. Tam adlarını göstermek için bunu etkinleştirin. + Passwordless flow Parolasız akış + Optional passwordless flow, which is linked at the bottom of the page. When configured, users can use this flow to authenticate with a WebAuthn authenticator, without entering any details. Sayfanın alt kısmında bağlanan isteğe bağlı parolasız akış. Yapılandırıldığında, kullanıcılar herhangi bir ayrıntı girmeden WebAuthn kimlik doğrulayıcısı ile kimlik doğrulaması için bu akışı kullanabilir. + Optional enrollment flow, which is linked at the bottom of the page. Sayfanın alt kısmında bağlanan isteğe bağlı kayıt akışı. + Optional recovery flow, which is linked at the bottom of the page. Sayfanın alt kısmında bağlı olan isteğe bağlı kurtarma akışı. + This stage can be included in enrollment flows to accept invitations. Bu aşama, davetleri kabul etmek için kayıt akışlarına dahil edilebilir. + Continue flow without invitation Davetsiz akışa devam edin + If this flag is set, this Stage will jump to the next Stage when no Invitation is given. By default this Stage will cancel the Flow when no invitation is given. Bu bayrak ayarlanırsa, Davet verilmediğinde bu Aşama bir sonraki Aşama'ya atlanır. Varsayılan olarak bu Aşama , davet verilmediğinde Akışı iptal eder. + Validate the user's password against the selected backend(s). Kullanıcının parolasını seçili arka uç(lara) göre doğrulayın. + Backends Arka uçlar + User database + standard password Kullanıcı veritabanı+standart parola + User database + app passwords Kullanıcı veritabanı+uygulama parolaları + User database + LDAP password Kullanıcı veritabanı+LDAP parolası + Selection of backends to test the password against. Parolayı test etmek için arka uçların seçimi. + Flow used by an authenticated user to configure their password. If empty, user will not be able to configure change their password. Kimliği doğrulanmış bir kullanıcı tarafından parolasını yapılandırmak için kullanılan akış. Boşsa, kullanıcı parolasını değiştirmeyi yapılandıramaz. + Failed attempts before cancel İptal edilmeden önce başarısız denemeler + How many attempts a user has before the flow is canceled. To lock the user out, use a reputation policy and a user_write stage. Akış iptal edilmeden önce bir kullanıcının kaç denemesi vardır. Kullanıcıyı kilitlemek için itibar ilkesi ve user_write aşamasını kullanın. + Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable. Kullanıcıya rastgele giriş alanlarını göster, örneğin kayıt sırasında. Veriler akış bağlamında 'prompt_data' değişkeni altında kaydedilir. + Fields Alanlar + Validation Policies Doğrulama İlkeleri + Selected policies are executed when the stage is submitted to validate the data. Seçilen ilkeler, verileri doğrulamak için aşama gönderildiğinde yürütülür. + Delete the currently pending user. CAUTION, this stage does not ask for confirmation. Use a consent stage to ensure the user is aware of their actions. + Şu anda beklemede olan kullanıcıyı silin. DİKKAT, bu aşama onay istemez. Kullanıcının eylemlerinin farkında olduğundan emin olmak için bir onay aşaması kullanın. Log the currently pending user in. Şu anda bekleyen kullanıcıya oturum açın. + Session duration Oturum süresi + Determines how long a session lasts. Default of 0 seconds means that the sessions lasts until the browser is closed. Oturumun ne kadar süreceğini belirler. Varsayılan 0 saniye, oturumların tarayıcı kapanana kadar sürdüğü anlamına gelir. + Different browsers handle session cookies differently, and might not remove them even when the browser is closed. + Farklı tarayıcılar oturum çerezlerini farklı şekilde ele alır ve tarayıcı kapalı olsa bile bunları kaldırmayabilir. + See here. + Buraya bakın. + Stay signed in offset + Ofset içinde oturumu açık tut + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + 0'ın üzerinde bir süreye ayarlanırsa, kullanıcı "oturumu açık kalsın" seçeneğini seçebilir ve bu da oturumunu burada belirtilen süre kadar uzatır. + Terminate other sessions + Diğer oturumları sonlandırma + When enabled, all previous sessions of the user will be terminated. + Etkinleştirildiğinde, kullanıcının önceki tüm oturumları sonlandırılacaktır. + Remove the user from the current session. Kullanıcıyı geçerli oturumdan kaldırın. + Write any data from the flow's context's 'prompt_data' to the currently pending user. If no user is pending, a new user is created, and data is written to them. + Akışın bağlamının 'prompt_data' bölümündeki tüm verileri şu anda bekleyen kullanıcıya yazın. Kullanıcı yoksa + beklemedeyse, yeni bir kullanıcı oluşturulur ve bu kullanıcıya veri yazılır. Never create users + Hiçbir zaman kullanıcı oluşturma + When no user is present in the flow context, the stage will fail. + Akış bağlamında hiçbir kullanıcı olmadığında aşama başarısız olur. + Create users when required + Gerektiğinde kullanıcı oluşturma + When no user is present in the the flow context, a new user is created. + Akış bağlamında hiçbir kullanıcı olmadığında yeni bir kullanıcı oluşturulur. + Always create new users + Her zaman yeni kullanıcılar oluşturun + Create a new user even if a user is in the flow context. + Bir kullanıcı akış bağlamında olsa bile yeni bir kullanıcı oluşturun. + Create users as inactive Kullanıcıları etkin olmayan olarak oluşturma + Mark newly created users as inactive. Yeni oluşturulan kullanıcıları etkin değil olarak işaretleyin. + User path template + Kullanıcı yolu şablonu + Path new users will be created under. If left blank, the default path will be used. + Yeni kullanıcıların oluşturulacağı yol. Boş bırakılırsa varsayılan yol kullanılır. + Newly created users are added to this group, if a group is selected. Bir grup seçiliyse, yeni oluşturulan kullanıcılar bu gruba eklenir. + New stage + Yeni aşama + Create a new stage. + Yeni bir aşama oluşturun. + Successfully imported device. + Cihaz başarıyla içe aktarıldı. + The user in authentik this device will be assigned to. + Bu cihazın atanacağı authentik'teki kullanıcı. + Duo User ID + Duo Kullanıcı Kimliği + The user ID in Duo, can be found in the URL after clicking on a user. + Duo'daki kullanıcı kimliği, bir kullanıcıya tıklandıktan sonra URL'de bulunabilir. + Automatic import + Otomatik içe aktarma + Successfully imported devices. + cihaz başarıyla içe aktarıldı. + Start automatic import + Otomatik içe aktarmayı başlatma + Or manually import + Veya manuel olarak içe aktarın + Stages are single steps of a Flow that a user is guided through. A stage can only be executed from within a flow. Aşamalar, bir Akış'ın kullanıcının yönlendirildiği tek adımlardır. Bir aşama yalnızca bir akış içinden yürütülebilir. + Flows Akışlar + Stage(s) Aşama (lar) + Import İçe Aktar + Import Duo device + Duo cihazını içe aktarma + Successfully updated flow. Akış başarıyla güncellendi. + Successfully created flow. Akış başarıyla oluşturuldu. + Shown as the Title in Flow pages. Akış sayfalarında Başlık olarak gösterilir. + Visible in the URL. URL'de görünür. + Designation Tanımlama + Decides what this Flow is used for. For example, the Authentication flow is redirect to when an un-authenticated user visits authentik. Bu Akış'ın ne için kullanıldığına karar verir. Örneğin, kimliği doğrulanmamış bir kullanıcı authentik ziyaret ettiğinde kimlik doğrulama akışı yönlendirir. + No requirement + Gereklilik yok + Require authentication + Kimlik doğrulaması gerektir + Require no authentication. + Kimlik doğrulaması gerektirmez. + Require superuser. + Süper kullanıcı gerektirir. + Required authentication level for this flow. + Bu akış için gerekli kimlik doğrulama düzeyi. + Behavior settings + Davranış ayarları + Compatibility mode Uyumluluk modu + Increases compatibility with password managers and mobile devices. + Parola yöneticileri ve mobil cihazlarla uyumluluğu artırır. + Denied action + Reddedilen eylem + Will follow the ?next parameter if set, otherwise show a message + Ayarlanırsa ?next parametresini takip eder, aksi takdirde bir mesaj gösterir + Will either follow the ?next parameter or redirect to the default interface + Ya ?next parametresini takip edecek ya da varsayılan arayüze yönlendirecektir + Will notify the user the flow isn't applicable + Kullanıcıya akışın geçerli olmadığını bildirir + Decides the response when a policy denies access to this flow for a user. + Bir ilke bir kullanıcı için bu akışa erişimi reddettiğinde verilecek yanıta karar verir. + Appearance settings + Görünüm ayarları + Layout + Düzen + Background Arkaplan + Background shown during execution. Yürütme sırasında arka plan gösterilir. + Clear background + Arka planı temizle + Delete currently set background image. Şu anda ayarlanmış arka plan görüntüsünü sil. + Successfully imported flow. Akış başarıyla aktarıldı. + .yaml files, which can be found on goauthentik.io and can be exported by authentik. .yaml dosyaları, goauthentik.io'da bulunabilir ve authentik tarafından ihraç edilebilir. + Flows describe a chain of Stages to authenticate, enroll or recover a user. Stages are chosen based on policies applied to them. Akışlar, bir kullanıcının kimliğini doğrulamak, kaydetmek veya kurtarmak için Aşama zincirini tanımlar. Aşamalar, bunlara uygulanan ilkelere göre seçilir. + Flow(s) Akış (ler) + Update Flow Akışı Güncelle + Create Flow Akış Oluştur + Import Flow Akışı İçe Aktar + Successfully cleared flow cache Akış önbelleği başarıyla temizlendi + Failed to delete flow cache Akış önbelleği silinemedi + Clear Flow cache Akış önbelleğini temizleme + Are you sure you want to clear the flow cache? This will cause all flows to be re-evaluated on their next usage. + Akış önbelleğini temizlemek istediğinizden emin misiniz? + Bu, tüm akışların bir sonraki kullanımlarında yeniden değerlendirilmesine neden olur. Stage binding(s) Aşama bağlama (ler) + Stage type Aşama türü + Edit Stage Aşama Alanını Düzenle + Update Stage binding Aşama bağlamasını Güncelle + These bindings control if this stage will be applied to the flow. Bu bağlamalar, bu aşama akışa uygulanacak olup olmadığını denetler. + No Stages bound Hiçbir Aşama Bağlı + No stages are currently bound to this flow. Hiçbir aşama şu anda bu akışa bağlı değildir. + Create Stage binding Aşama bağlama oluştur + Bind existing stage + Mevcut aşamayı bağla + Flow Overview Akışa Genel Bakış + Related actions + İlgili eylemler + Execute flow Akışı yürüt + Normal Normal + with current user + mevcut kullanıcı ile + with inspector müfettiş ile + Export flow Akışı aktar + Export İhracat + Stage Bindings Aşama Bağlamaları + These bindings control which users can access this flow. Bu bağlamalar hangi kullanıcıların bu akışa erişebileceğini denetler. + Event Log Olay Günlüğü + Event - Olay - + Olay + Event info Olay bilgileri + Created + Oluşturulan + Successfully updated transport. Aktarıcı başarılı bir şekilde güncellendi. + Successfully created transport. Aktarıcı başarıyla oluşturuldu. + Local (notifications will be created within authentik) + Yerel (bildirimler authentik içinde oluşturulacaktır) + Webhook (generic) Webhook (genel) + Webhook (Slack/Discord) Webhook (Kayak/Uyuşmazlık) + Webhook URL Web Kancası URL'si + Webhook Mapping Web Kancası Haritalama + Send once Bir kez gönder + Only send notification once, for example when sending a webhook into a chat channel. Yalnızca bir kez bildirim gönderin, örneğin bir sohbet kanalına web kancası gönderirken. + Notification Transports Bildirim Aktarıcıları + Define how notifications are sent to users, like Email or Webhook. E-posta veya Webhook gibi kullanıcılara bildirimlerin nasıl gönderileceğini tanımlayın. + Notification transport(s) + Bildirim taşıma(lar)ı + Update Notification Transport Bildirim Aktarıcısını Güncelle + Create Notification Transport Bildirim Aktarıcı Oluştur + Successfully updated rule. Kural başarıyla güncellendi. + Successfully created rule. Kural başarıyla oluşturuldu. + Select the group of users which the alerts are sent to. If no group is selected the rule is disabled. + Uyarıların gönderileceği kullanıcı grubunu seçin. Hiçbir grup seçilmezse kural devre dışı bırakılır. + Transports Aktarıcılar + Select which transports should be used to notify the user. If none are selected, the notification will only be shown in the authentik UI. Kullanıcıyı bilgilendirmek için hangi aktarıcıların kullanılması gerektiğini seçin. Hiçbiri seçilmemişse, bildirim yalnızca authentik kullanıcı arabiriminde gösterilir. + Severity Önem derecesi + Notification Rules Bildirim Kuralları + Send notifications whenever a specific Event is created and matched by policies. Belirli bir Olay oluşturulduğunda ve ilkelerle eşleştirildiğinde bildirim gönderin. + Sent to group Gruba gönderildi + Notification rule(s) Bildirim kuralları + None (rule disabled) Hiçbiri (kural devre dışı) + Update Notification Rule Bildirim Kuralını Güncelle + Create Notification Rule Bildirim Kuralı Oluştur + These bindings control upon which events this rule triggers. Bindings to groups/users are checked against the user of the event. + Bu bağlamalar, bu kuralın hangi olayları tetiklediğini denetler. +Gruplara/kullanıcılara yapılan bağlamalar, etkinliğin kullanıcısına karşı denetlenir. Outpost Deployment Info Üs Dağıtım Bilgileri + View deployment documentation Dağıtım belgelerini görüntüleme + Click to copy token Belirteci kopyalamak için tıklayın + If your authentik Instance is using a self-signed certificate, set this value. Auentik Örneğiniz kendinden imzalı bir sertifika kullanıyorsa, bu değeri ayarlayın. + If your authentik_host setting does not match the URL you want to login with, add this setting. Auentik_host ayarınız oturum açmak istediğiniz URL'yle eşleşmiyorsa, bu ayarı ekleyin. + Successfully updated outpost. İleri üssü başarıyla güncelledi. + Successfully created outpost. Üs başarıyla oluşturdu. + Radius + Yarıçap + Integration Entegrasyon + Selecting an integration enables the management of the outpost by authentik. Bir entegrasyon seçilmesi, oentik tarafından üssün yönetimini sağlar. + Configuration - yapılandırma + Yapılandırma + See more here: + Daha fazlasını burada görün: + Documentation + Belge + Last seen + Son görülen + , should be - - , - olmalıdır + , olmalıdır + Hostname + Ana bilgisayar adı + Not available Mevcut değil + Unknown type + Bilinmeyen tür + Outposts Üsler + Outposts are deployments of authentik components to support different environments and protocols, like reverse proxies. Outposts, ters proxy'ler gibi farklı ortamları ve protokolleri desteklemek için authentik bileşenlerinin dağıtımlarıdır. + Health and Version Sağlık ve Versiyon + Warning: authentik Domain is not configured, authentication will not work. Uyarı: authentik Domain yapılandırılmamış, kimlik doğrulama çalışmaz. + Logging in via . - - üzerinden giriş yapın. + üzerinden giriş yapılıyor. + No integration active Entegrasyon etkin + Update Outpost Üssü Güncelle + View Deployment Info Dağıtım Bilgilerini Görüntüle + Detailed health (one instance per column, data is cached so may be out of date) + Ayrıntılı sistem durumu (sütun başına bir örnek, veriler önbelleğe alınır, bu nedenle güncelliğini yitirmiş olabilir) + Outpost(s) Üs (ler) + Create Outpost Üs Oluştur + Successfully updated integration. Entegrasyon başarıyla güncellendi. + Successfully created integration. Entegrasyon başarıyla oluşturuldu. + Local Yerel + If enabled, use the local connection. Required Docker socket/Kubernetes Integration. Etkinleştirilirse, yerel bağlantıyı kullanın. Gerekli Docker soketi/Kubernetes Entegrasyonu. + Docker URL Docker URL'si + Can be in the format of 'unix://' when connecting to a local docker daemon, using 'ssh://' to connect via SSH, or 'https://:2376' when connecting to a remote system. SSH üzerinden bağlanmak için 'ssh: //' veya uzak bir sisteme bağlanırken 'https://:2376' kullanarak yerel bir docker daemonuna bağlanırken 'unix: //' biçiminde olabilir. + CA which the endpoint's Certificate is verified against. Can be left empty for no validation. Uç noktanın Sertifikası karşı doğrulanan CA. Doğrulama yapılmadan boş bırakılabilir. + TLS Authentication Certificate/SSH Keypair TLS Kimlik Doğrulama Sertifikası/SH Anahtar Eşi + Certificate/Key used for authentication. Can be left empty for no authentication. Kimlik doğrulama için kullanılan sertifika/anahtar. Kimlik doğrulama olmadan boş bırakılabilir. + When connecting via SSH, this keypair is used for authentication. SSH üzerinden bağlanırken, bu anahtar çifti kimlik doğrulama için kullanılır. + Kubeconfig Kubeconfig + Verify Kubernetes API SSL Certificate + Kubernetes API SSL Sertifikasını Doğrulayın + New outpost integration + Yeni gözcü entegrasyonu + Create a new outpost integration. + Yeni bir gözcü entegrasyonu oluşturun. + State Eyalet + Unhealthy Sağlıksız + Outpost integration(s) Üs entegrasyonu + Successfully generated certificate-key pair. Sertifika-anahtar çifti başarıyla oluşturuldu. + Common Name Ortak İsim + Subject-alt name Konu-alt adı + Optional, comma-separated SubjectAlt Names. İsteğe bağlı, virgülle ayrılmış SubjectAlt Adları. + Validity days Geçerlilik günleri + Successfully updated certificate-key pair. Sertifika anahtarı çifti başarıyla güncelleştirildi. + Successfully created certificate-key pair. Sertifika anahtarı çifti başarıyla oluşturuldu. + PEM-encoded Certificate data. PEM kodlu Sertifika verileri. + Optional Private Key. If this is set, you can use this keypair for encryption. İsteğe Bağlı Özel Anahtar. Bu ayarlanırsa, şifreleme için bu anahtar çiftini kullanabilirsiniz. + Certificate-Key Pairs Sertifika Anahtarı Çiftleri + Import certificates of external providers or create certificates to sign requests with. Harici sağlayıcıların sertifikalarını içe aktarın veya istekleri imzalamak için sertifikalar oluşturun. + Private key available? Özel anahtar mevcut mu? + Certificate-Key Pair(s) Sertifika Anahtarı Çiftleri + Managed by authentik Auentik tarafından yönetiliyor + Managed by authentik (Discovered) Auentik tarafından yönetilen (Keşfedildi) - - - Yes () - Evet ( - ) + No Hayır + Update Certificate-Key Pair Sertifika Anahtarı Çiftini Güncelleştir + Certificate Fingerprint (SHA1) Sertifika Parmak İzi (SHA1) + Certificate Fingerprint (SHA256) Sertifika Parmak İzi (SHA256) + Certificate Subject Sertifika Konusu + Download Certificate Sertifikayı İndirin + Download Private key Indir Özel anahtar + Create Certificate-Key Pair Sertifika Anahtarı Çifti Oluştur + Generate Oluştur + Generate Certificate-Key Pair Sertifika Anahtarı Çifti Oluştur + Successfully updated instance. + Örnek başarıyla güncelleştirildi. + Successfully created instance. + Örnek başarıyla oluşturuldu. + Disabled blueprints are never applied. + Devre dışı bırakılan planlar hiçbir zaman uygulanmaz. + Local path + Yerel yol + OCI Registry + OCI Kayıt Defteri + Internal + Dahili + OCI URL, in the format of oci://registry.domain.tld/path/to/manifest. + OCI URL'si, oci://registry.domain.tld/path/to/manifest biçiminde. + See more about OCI support here: + OCI desteği hakkında daha fazla bilgiye buradan ulaşabilirsiniz: + Blueprint + Mavi kopya + Configure the blueprint context, used for templating. + Şablon oluşturma için kullanılan şema bağlamını yapılandırın. + Orphaned + Artık + Blueprints + Plan + Automate and template configuration within authentik. + Kimlik doğrulama içinde yapılandırmayı otomatikleştirin ve şablonlayın. + Last applied + Son uygulanan + Blueprint(s) + Taslak(lar) + Update Blueprint + Blueprint'i güncelleştirme + Create Blueprint Instance + Şema Örneği Oluştur + API Requests API İstekleri + Open API Browser API Tarayıcısını aç + Notifications Bildirimler + unread - - okunmamış + okunmamış + Successfully cleared notifications Bildirimler başarıyla silindi + Clear all Hepsini temizle + A newer version of the frontend is available. Ön yüzün daha yeni bir sürümü mevcuttur. + You're currently impersonating . Click to stop. - Şu anda - kimliğine bürünüyorsunuz. Durdurmak için tıklayın. + Şu anda kimliğe bürünüyorsunuz. Durdurmak için tıklayın. + User interface Kullanıcı arayüzü + Dashboards Gösterge Panoları + Events Olaylar + Logs Günlükler + Directory Rehber + System Sistem + Certificates Sertifikalar + Outpost Integrations Üs Entegrasyonları + API request failed API isteği başarısız + User's avatar Kullanıcının avatarı + Something went wrong! Please try again later. Bir şeyler ters gitti! Lütfen daha sonra tekrar deneyin. + Request ID + İstek Kimliği + You may close this page now. + Bu sayfayı şimdi kapatabilirsiniz. + You're about to be redirect to the following URL. Aşağıdaki URL'ye yönlendirmek üzeresiniz. + Follow redirect Yönlendirmeyi takip et + Request has been denied. İstek reddedildi. + Not you? Sen değil mi? + Need an account? Bir hesaba mı ihtiyacınız var? + Sign up. Kaydolun. + Forgot username or password? Kullanıcı adı veya parolayı mı unuttunuz? + Or + Veya + Use a security key Güvenlik anahtarı kullan + Login to continue to . - - adresine devam etmek için giriş yapın. + Devam etmek için hesabı ile giriş yapın. + Please enter your password Lütfen parolanızı girin + Forgot password? Parolanı mi unuttun? + Application requires following permissions: Uygulama aşağıdaki izinleri gerektirir: + Application already has access to the following permissions: + Uygulamanın zaten aşağıdaki izinlere erişimi var: + Application requires following new permissions: + Uygulama aşağıdaki yeni izinleri gerektirir: + Check your Inbox for a verification email. Doğrulama e-postası için Gelen Kutunuzu kontrol edin. + Send Email again. E-postayı tekrar gönder. + Successfully copied TOTP Config. TOTP Yapılandırması başarıyla kopyalandı. + Copy Kopya + Code Kodu + Please enter your TOTP Code Lütfen TOTP Kodunuzu girin + Duo activation QR code + Duo aktivasyon QR kodu + Alternatively, if your current device has Duo installed, click on this link: Alternatif olarak, mevcut cihazınızda Duo yüklüyse, şu bağlantıya tıklayın: + Duo activation İkili aktivasyon + Check status Durumu kontrol et + Make sure to keep these tokens in a safe place. Bu belirteçleri güvenli bir yerde tuttuğunuzdan emin olun. + Phone number Telefon numarası + Please enter your Phone number. Lütfen Telefon numaranızı girin. + Please enter the code you received via SMS + Lütfen SMS ile aldığınız kodu girin + A code has been sent to you via SMS. SMS ile size bir kod gönderildi. + Open your two-factor authenticator app to view your authentication code. + Kimlik doğrulama kodunuzu görüntülemek için iki faktörlü kimlik doğrulayıcı uygulamanızı açın. + Static token Statik belirteç + Authentication code + Kimlik doğrulama kodu + Please enter your code + Lütfen kodunuzu giriniz + Retry authentication Kimlik doğrulamayı yeniden deneyin + Duo push-notifications Duo push-bildirimleri + Receive a push notification on your device. Cihazınızda anında iletme bildirimi alın. + Authenticator Kimlik Doğrulayıcı + Use a security key to prove your identity. Kimliğinizi kanıtlamak için bir güvenlik anahtarı kullanın. + Traditional authenticator Geleneksel kimlik doğrulayıcı + Use a code-based authenticator. Kod tabanlı kimlik doğrulayıcı kullanın. + Recovery keys Kurtarma tuşları + In case you can't access any other method. Başka bir yönteme erişemiyorsanız. + SMS SMS + Tokens sent via SMS. Belirteçler SMS ile gönderildi. + Select an authentication method. Bir kimlik doğrulama yöntemi seçin. + Stay signed in? + Oturumunuz açık kaldı mı? + Select Yes to reduce the number of times you're asked to sign in. + Oturum açmanızın istenme sayısını azaltmak için Evet'i seçin. + Authenticating with Plex... Plex ile kimlik doğrulaması... + Waiting for authentication... + Kimlik doğrulaması bekleniyor... + If no Plex popup opens, click the button below. + Plex açılır penceresi açılmazsa, aşağıdaki düğmeyi tıklayın. + Open login + Girişi aç + Authenticating with Apple... Apple ile kimlik doğrulaması... + Retry Yeniden dene + Enter the code shown on your device. + Cihazınızda gösterilen kodu girin. + Please enter your Code Lütfen Kodunuzu girin + You've successfully authenticated your device. + Cihazınızın kimliğini başarıyla doğruladınız. + Flow inspector Akış denetçisi + Next stage Sonraki aşama + Stage name Aşama adı + Stage kind Aşama türü + Stage object Aşama nesnesi + This flow is completed. Bu akış tamamlandı. + Plan history Plan geçmişi + Current plan context Mevcut plan bağlamı + Session ID Oturum Kimliği + Powered by authentik Auentik tarafından desteklenmektedir + Error creating credential: - Kimlik bilgisi oluşturulurken hata oluştu: - + Kimlik bilgisi oluşturulurken hata oluştu: + Server validation of credential failed: - Kimlik bilgisi sunucu doğrulaması başarısız oldu: - + Kimlik bilgilerinin sunucu doğrulaması başarısız oldu: + Refer to documentation + Belgelere bakın No Applications available. Kullanılabilir Uygulama yok. + Either no applications are defined, or you don’t have access to any. + Ya hiçbir uygulama tanımlanmamıştır ya da hiçbirine erişiminiz yoktur. My Applications Uygulamalarım + My applications Uygulamalarım + Change your password Parolanızı değiştirin + Change password Parolayı değiştir + + Save Kaydet + Delete account Hesabı sil + Successfully updated details + Ayrıntılar başarıyla güncellendi + Open settings + Ayarları aç + No settings flow configured. + Hiçbir ayar akışı yapılandırılmadı. + Update details Ayrıntıları güncelle + Successfully disconnected source + Kaynağın bağlantısı başarıyla kesildi + Failed to disconnected source: + Bağlantı kesilen kaynak sağlanamadı: + Disconnect Bağlantıyı kes + Connect Bağlan + Error: unsupported source settings: - Hata: desteklenmeyen kaynak ayarları: - + Hata: desteklenmeyen kaynak ayarları: + Connect your user account to the services listed below, to allow you to login using the service instead of traditional credentials. Geleneksel kimlik bilgileri yerine hizmeti kullanarak oturum açmanıza izin vermek için kullanıcı hesabınızı aşağıda listelenen hizmetlere bağlayın. + No services available. Hizmet yok. + Create App password Uygulama parolası oluştur + User details Kullanıcı ayrıntıları + Consent Onaylı + MFA Devices MFA Cihazları + Connected services Bağlı hizmetler + Tokens and App passwords Belirteçler ve Uygulama parolaları + Unread notifications Okunmamış bildirimler + Admin interface Yönetici arayüzü + Stop impersonation Taklitçiliği durdurun + Avatar image Avatar resmi + Failed + Başarısız + Unsynced / N/A + Senkronize Edilmemiş / Yok + Outdated outposts Eski üsler + Unhealthy outposts Sağlıksız üsler + Next + Önümüzdeki + Inactive Etkin değil + Regular user Düzenli kullanıcı + Activate Etkinleştir + Use Server URI for SNI verification + SNI doğrulaması için Sunucu URI'sini kullanma Required for servers using TLS 1.3+ + TLS 1.3+ kullanan sunucular için gereklidir Client certificate keypair to authenticate against the LDAP Server's Certificate. + LDAP Sunucusunun Sertifikasına karşı kimlik doğrulaması yapmak için istemci sertifikası anahtar çifti. The certificate for the above configured Base DN. As a fallback, the provider uses a self-signed certificate. + Yukarıda yapılandırılan Temel DN'nin sertifikası. Geri dönüş olarak, sağlayıcı otomatik olarak imzalanan bir sertifika kullanır. TLS Server name + TLS Sunucusu adı 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. + Yukarıda yapılandırılan sertifikanın kullanılması gereken DNS adı. SSL/TLS anlaşması bu tür veriler değiş tokuş edilmeden önce gerçekleştiğinden, sertifika temel DN'ye göre algılanamaz. TLS Client authentication certificate + TLS İstemcisi kimlik doğrulama sertifikası Model + Model Match events created by selected model. When left empty, all models are matched. + Seçilen model tarafından oluşturulan olayları eşleştirin. Boş bırakıldığında, tüm modeller eşleştirilir. Code-based MFA Support + Kod Tabanlı MFA Desteği When enabled, code-based multi-factor authentication can be used by appending a semicolon and the TOTP code to the password. This should only be enabled if all users that will bind to this provider have a TOTP device configured, as otherwise a password may incorrectly be rejected if it contains a semicolon. + Etkinleştirildiğinde, kod tabanlı çok faktörlü kimlik doğrulaması, parolaya noktalı virgül ve TOTP kodu eklenerek kullanılabilir. Bu, yalnızca bu sağlayıcıya bağlanacak tüm kullanıcıların yapılandırılmış bir TOTP aygıtı varsa etkinleştirilmelidir, aksi takdirde noktalı virgül içeren bir parola yanlışlıkla reddedilebilir. User type + Kullanıcı türü Successfully updated license. + Lisans başarıyla güncellendi. Successfully created license. + Lisans başarıyla oluşturuldu. Install ID + Yükleme Kimliği License key + Lisans anahtarı Licenses + Lisans License(s) + Lisans(lar) Cumulative license expiry + Kümülatif lisans süre sonu Update License + Lisansı Güncelle Warning: The current user count has exceeded the configured licenses. + Uyarı: Geçerli kullanıcı sayısı yapılandırılan lisansları aştı. Click here for more info. + Daha fazla bilgi için buraya tıklayın. Enterprise + Kuruluş Manage enterprise licenses + Kurumsal lisansları yönetme No licenses found. + Lisans bulunamadı. Send us feedback! + Bize geri bildirim gönderin! Go to Customer Portal + Müşteri Portalına Git Forecast internal users + Dahili kullanıcıları tahmin edin Estimated user count one year from now based on current internal users and forecasted internal users. + Bundan bir yıl sonra mevcut dahili kullanıcılar ve tahmini dahili kullanıcılara dayalı tahmini kullanıcı sayısı. Forecast external users + Dış kullanıcıları tahmin etme Estimated user count one year from now based on current external users and forecasted external users. + Şu andaki harici kullanıcılar ve tahmini harici kullanıcılar temel alınarak bir yıl sonraki tahmini kullanıcı sayısı. Install + Yüklemek Install License + Lisansı Yükle Internal users might be users such as company employees, which will get access to the full Enterprise feature set. + Dahili kullanıcılar, şirket çalışanları gibi kullanıcılar olabilir ve bu kullanıcılar Enterprise özellik kümesinin tamamına erişim elde eder. External users might be external consultants or B2C customers. These users don't get access to enterprise features. + Dış kullanıcılar, dış danışmanlar veya B2C müşterileri olabilir. Bu kullanıcılar kurumsal özelliklere erişemez. Service accounts should be used for machine-to-machine authentication or other automations. + Hizmet hesapları, makineler arası kimlik doğrulaması veya diğer otomasyonlar için kullanılmalıdır. Less details + Daha az detay More details + Daha fazla detay Remove item + Öğeyi kaldır Open API drawer + API çekmecesini aç Open Notification drawer + Bildirim çekmecesini aç Restart task + Görevi yeniden başlat Add provider + Sağlayıcı ekle Open + Açık Copy token + Belirteci kopyala Add users + Kullanıcı ekleme Add group + Grup ekle Import devices + Cihazları içe aktarma Execute + Yürütmek Show details + Detayları göster Apply + Uygulamak Settings + Ayarlar Sign out + Oturumu kapat The number of tokens generated whenever this stage is used. Every token generated per stage execution will be attached to a single static device. + Bu aşama her kullanıldığında oluşturulan belirteç sayısı. Aşama yürütmesi başına oluşturulan her belirteç, tek bir statik cihaza eklenecektir. Token length + Belirteç uzunluğu The length of the individual generated tokens. Can be increased to improve security. + Bireysel olarak oluşturulan belirteçlerin uzunluğu. Güvenliği artırmak için artırılabilir. Internal: + Dahili: External: + Harici: Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding. + Akışı statik olarak reddedin. Bu aşamayı etkili bir şekilde kullanmak için, ilgili bağlamada *Akışın ne zaman planlandığını değerlendir* seçeneğini devre dışı bırakın. Create and bind Policy + İlke oluşturma ve bağlama Federation and Social login + Federasyon ve Sosyal oturum açma Create and bind Stage + Sahne Alanı oluşturma ve bağlama Flows and Stages + Akışlar ve Aşamalar New version available + Yeni sürüm mevcut Failure result + Başarısızlık sonucu Pass + Geçmek Don't pass + Geçme Result used when policy execution fails. + İlke yürütme başarısız olduğunda kullanılan sonuç. Required: User verification must occur. + Gerekli: Kullanıcı doğrulaması gerçekleşmelidir. Preferred: User verification is preferred if available, but not required. + Tercih edilir: Varsa kullanıcı doğrulaması tercih edilir, ancak gerekli değildir. Discouraged: User verification should not occur. + Önerilmez: Kullanıcı doğrulaması gerçekleşmemelidir. Required: The authenticator MUST create a dedicated credential. If it cannot, the RP is prepared for an error to occur + Gerekli: Kimlik doğrulayıcının özel bir kimlik bilgisi oluşturması GEREKİR. Yapamazsa, RP bir hatanın oluşması için hazırlıklıdır Preferred: The authenticator can create and store a dedicated credential, but if it doesn't that's alright too + Tercih edilen: Kimlik doğrulayıcı özel bir kimlik bilgisi oluşturabilir ve depolayabilir, ancak oluşturmuyorsa bu da sorun değil Discouraged: The authenticator should not create a dedicated credential + Önerilmez: Kimlik doğrulayıcı özel bir kimlik bilgisi oluşturmamalıdır Lock the user out of this system + Kullanıcıyı bu sistemin dışında kilitle Allow the user to log in and use this system + Kullanıcının oturum açmasına ve bu sistemi kullanmasına izin verin Temporarily assume the identity of this user + Bu kullanıcının kimliğini geçici olarak varsay Enter a new password for this user + Bu kullanıcı için yeni bir parola girin Create a link for this user to reset their password + Bu kullanıcının parolasını sıfırlaması için bir bağlantı oluştur WebAuthn requires this page to be accessed via HTTPS. + WebAuthn, bu sayfaya HTTPS üzerinden erişilmesini gerektirir. WebAuthn not supported by browser. + WebAuthn tarayıcı tarafından desteklenmiyor. Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). + Bu sağlayıcıyı nginx'in auth_request veya traefik'in forwardAuth'u ile kullanın. Her uygulamanın/etki alanının kendi sağlayıcısına ihtiyacı vardır. Ayrıca, her etki alanında, /outpost.goauthentik.io ek gözcüye yönlendirilmelidir (yönetilen bir dış gönderi kullanırken, bu sizin için yapılır). Default relay state + Varsayılan röle durumu When using IDP-initiated logins, the relay state will be set to this value. + IDP tarafından başlatılan oturum açma işlemleri kullanılırken, geçiş durumu bu değere ayarlanır. Flow Info + Akış Bilgisi Stage used to configure a WebAuthn authenticator (i.e. Yubikey, FaceID/Windows Hello). + Bir WebAuthn kimlik doğrulayıcısını yapılandırmak için kullanılan sahne alanı (ör. Yubikey, FaceID/Windows Hello). <<<<<<< HEAD Internal application name used in URLs. + URL'lerde kullanılan iç uygulama adı. Submit + Gönder UI Settings + Kullanıcı Arayüzü Ayarları Transparent Reverse Proxy + Şeffaf Ters Proxy For transparent reverse proxies with required authentication + Gerekli kimlik doğrulamasına sahip şeffaf ters proxy'ler için Configure SAML provider manually + SAML sağlayıcısını manuel olarak yapılandırma Configure RADIUS provider manually + RADIUS sağlayıcısını el ile yapılandırma Configure SCIM provider manually + SCIM sağlayıcısını el ile yapılandırma Saving Application... + Uygulama Kaydediliyor... Your application has been saved + Uygulamanız kaydedildi Method's display Name. + Yöntemin görünen adı. Use this provider with nginx's auth_request or traefik's forwardAuth. Each application/domain needs its own provider. Additionally, on each domain, /outpost.goauthentik.io must be routed to the outpost (when using a managed outpost, this is done for you). + Bu sağlayıcıyı nginx'in auth_request veya traefik'in forwardAuth ile kullanın. + Her uygulama/etki alanı kendi sağlayıcısına ihtiyaç duyar. + Ek olarak, her etki alanında /outpost.goauthentik.io gözcüye yönlendirilmelidir + (yönetilen bir gözcü kullanırken, bu sizin için yapılır). Custom attributes + Özel özellikler Don't show this message again. + Bu mesajı bir daha göstermeyin. Failed to fetch + Getirilemedi Failed to fetch data. + Veriler alınamadı. Successfully assigned permission. + İzin başarıyla atandı. Role + Rol Assign + Atamak Assign permission to role + Role izin atama Assign to new role + Yeni role atama Directly assigned + Doğrudan atanan Assign permission to user + Kullanıcıya izin atama Assign to new user + Yeni kullanıcıya atama User Object Permissions + Kullanıcı Nesnesi İzinleri Role Object Permissions + Rol Nesnesi İzinleri Roles + Rolleri Select roles to grant this groups' users' permissions from the selected roles. + Bu grupların kullanıcılarına seçili rollerden izinler vermek için rolleri seçin. Update Permissions + İzinleri Güncelle Editing is disabled for managed tokens + Yönetilen belirteçler için düzenleme devre dışı bırakıldı Permissions to add + Eklenecek izinler Select permissions + İzinleri seçin Assign permission + İzin atama Permission(s) + İzin(ler) Permission + İzin User doesn't have view permission so description cannot be retrieved. + Kullanıcının görüntüleme izni yok, bu nedenle açıklama alınamıyor. Assigned global permissions + Atanan genel izinler Assigned object permissions + Atanan nesne izinleri Successfully updated role. + Rol başarıyla güncelleştirildi. Successfully created role. + Rol başarıyla oluşturuldu. Manage roles which grant permissions to objects within authentik. + authentik içindeki nesnelere izin veren rolleri yönetin. Role(s) + Rol(ler) Update Role + Rolü Güncelle Create Role + Rol Oluştur Role doesn't have view permission so description cannot be retrieved. + Rolün görüntüleme izni yok, bu nedenle açıklama alınamıyor. Role + Rol Role Info + Rol Bilgisi Pseudolocale (for testing) + Pseudolocale (test için) Create With Wizard + Sihirbazla Oluştur One hint, 'New Application Wizard', is currently hidden - - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. + Bir ipucu, 'Yeni Uygulama Sihirbazı' şu anda gizli Deny message + İletiyi reddet Message shown when this stage is run. + Bu aşama çalıştırıldığında gösterilen mesaj. Open Wizard + Sihirbazı Aç Demo Wizard + Demo Sihirbazı Run the demo wizard + Demo sihirbazını çalıştırın OAuth2/OIDC (Open Authorization/OpenID Connect) + OAuth2/OIDC (Açık Yetkilendirme/OpenID Connect) LDAP (Lightweight Directory Access Protocol) + LDAP (Basit Dizin Erişim Protokolü) Forward Auth (Single Application) + İleri Kimlik Doğrulama (Tek Uygulama) Forward Auth (Domain Level) + İleri Kimlik Doğrulama (Etki Alanı Düzeyi) SAML (Security Assertion Markup Language) + SAML (Güvenlik Onayı Biçimlendirme Dili) RADIUS (Remote Authentication Dial-In User Service) + RADIUS (Arayan Kullanıcının Uzaktan Kimlik Doğrulama Hizmeti) SCIM (System for Cross-domain Identity Management) + SCIM (Etki Alanları Arası Kimlik Yönetimi Sistemi) The token has been copied to your clipboard + Belirteç panonuza kopyalandı The token was displayed because authentik does not have permission to write to the clipboard + Authentik'in panoya yazma izni olmadığı için belirteç görüntülendi A copy of this recovery link has been placed in your clipboard + Bu kurtarma bağlantısının bir kopyası panonuza yerleştirildi Create recovery link + Kurtarma bağlantısı oluştur Create Recovery Link + Kurtarma Bağlantısı Oluştur External + Dış Service account + Hizmet hesabı Service account (internal) + Hizmet hesabı (dahili) Check the release notes + Sürüm notlarını kontrol edin User Statistics + Kullanıcı İstatistikleri <No name set> + <İsim belirlenmedi> For nginx's auth_request or traefik's forwardAuth + nginx'in auth_request veya traefik'in forwardAuth'u için For nginx's auth_request or traefik's forwardAuth per root domain + Kök etki alanı başına nginx'in auth_request veya traefik'in forwardAuth'u için User type used for newly created users. + Yeni oluşturulan kullanıcılar için kullanılan kullanıcı türü. Users created + Oluşturulan kullanıcılar Failed logins + Başarısız girişler Also known as Client ID. + İstemci Kimliği olarak da bilinir. Also known as Client Secret. + İstemci Gizli Anahtarı olarak da bilinir. Global status + Küresel durum Vendor + Satıcı No sync status. + Senkronizasyon durumu yok. Sync currently running. + Senkronizasyon şu anda çalışıyor. Connectivity + Bağlantı 0: Too guessable: risky password. (guesses &lt; 10^3) + 0: Çok tahmin edilebilir: riskli parola. (10^3 &lt; tahminler) 1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6) + 1: Çok tahmin edilebilir: kısıtlanmış çevrimiçi saldırılara karşı koruma. (tahminler 10^6 &lt;) 2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8) + 2: Biraz tahmin edilebilir: kısıtlanmamış çevrimiçi saldırılara karşı koruma. (10^8 &lt; tahminler) 3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10) + 3: Güvenli bir şekilde tahmin edilemez: çevrimdışı yavaş karma senaryosuna karşı orta düzeyde koruma. (10^10 &lt; tahminler) 4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10) + 4: Çok tahmin edilemez: çevrimdışı yavaş karma senaryoya karşı güçlü koruma. (tahminler &gt; = 10^10) Successfully created user and added to group + Kullanıcı başarıyla oluşturuldu ve grubuna eklendi. This user will be added to the group "". + Bu kullanıcı "" grubuna eklenecek. Pretend user exists + Kullanıcı varmış gibi davran When enabled, the stage will always accept the given user identifier and continue. + Etkinleştirildiğinde, aşama her zaman verilen kullanıcı tanımlayıcısını kabul eder ve devam eder. There was an error in the application. + Uygulamada bir hata oluştu. Review the application. + Uygulamayı gözden geçirin. There was an error in the provider. + Sağlayıcıda bir hata oluştu. Review the provider. + Sağlayıcıyı gözden geçirin. There was an error + Bir hata oluştu There was an error creating the application, but no error message was sent. Please review the server logs. + Uygulama oluşturulurken bir hata oluştu, ancak herhangi bir hata iletisi gönderilmedi. Lütfen sunucu günlüklerini gözden geçirin. Configure LDAP Provider + LDAP Sağlayıcısını Yapılandırma Configure OAuth2/OpenId Provider + OAuth2/OpenId Sağlayıcısını Yapılandırma Configure Proxy Provider + Proxy sağlayıcısını yapılandırma Configure Radius Provider + Yarıçap Sağlayıcısını Yapılandırma Configure SAML Provider + SAML Sağlayıcısını Yapılandırma Property mappings used for user mapping. + Kullanıcı eşlemesi için kullanılan özellik eşlemeleri. Configure SCIM Provider + SCIM Sağlayıcısını Yapılandırma Property mappings used for group creation. + Grup oluşturma için kullanılan özellik eşlemeleri. Event volume + Olay hacmi Require Outpost (flow can only be executed from an outpost). + gözcü gerektir (akış yalnızca bir gözcüden yürütülebilir). Connection settings. + Bağlantı ayarları'nı tıklayın. Successfully updated endpoint. + Uç nokta başarıyla güncelleştirildi. Successfully created endpoint. + Uç nokta başarıyla oluşturuldu. Protocol + Protokol RDP + RDP SSH + SSH (SSH) VNC + VNC (Radyo ve Televizyon Hizmetleri Host + Ev sahibi Hostname/IP to connect to. + Bağlanılacak ana bilgisayar adı/IP. Endpoint(s) + Uç Nokta (lar) Update Endpoint + Uç Noktayı Güncelle These bindings control which users will have access to this endpoint. Users must also have access to the application. + Bu bağlamalar, hangi kullanıcıların bu uç noktaya erişimi olacağını denetler. Kullanıcıların uygulamaya da erişimi olmalıdır. Create Endpoint + Uç Nokta Oluştur Update RAC Provider + RAC Sağlayıcısını Güncelleştirme Endpoints + Bitiş noktası General settings + Genel ayarlar RDP settings + RDP ayarları Ignore server certificate + Sunucu sertifikasını yoksayma Enable wallpaper + Duvar kağıdını etkinleştir Enable font-smoothing + Yazı tipi yumuşatmayı etkinleştir Enable full window dragging + Tam pencere sürüklemeyi etkinleştir Network binding + Ağ bağlama No binding + Bağlayıcı değil Bind ASN + ASN'yi Bağla Bind ASN and Network + ASN ve Ağı Bağlayın Bind ASN, Network and IP + ASN, Ağ ve IP'yi Bağlayın Configure if sessions created by this stage should be bound to the Networks they were created in. + Bu aşama tarafından oluşturulan oturumların, oluşturuldukları Ağlara bağlanıp bağlanmayacağını yapılandırın. GeoIP binding + GeoIP bağlama Bind Continent + Kıtayı Bağla Bind Continent and Country + Kıta ve Ülkeyi Bağlayın Bind Continent, Country and City + Kıtayı, Ülkeyi ve Şehri Bağlayın Configure if sessions created by this stage should be bound to their GeoIP-based location + Bu aşama tarafından oluşturulan oturumların GeoIP tabanlı konumlarına bağlı olup olmayacağını yapılandırın RAC + RAC Connection failed after attempts. + Bağlantı deneme sonrasında başarısız oldu. Re-connecting in second(s). + sn içinde yeniden bağlanacak. Connecting... + Bağlanma... Select endpoint to connect to + Bağlanılacak uç noktayı seçin Connection expiry + Bağlantının sona ermesi Determines how long a session lasts before being disconnected and requiring re-authorization. + Bir oturumun bağlantısı kesilmeden ve yeniden yetkilendirme gerektirmeden önce ne kadar süreceğini belirler. Learn more + Daha fazla bilgi edinin Maximum concurrent connections + En fazla eşzamanlı bağlantı sayısı Maximum concurrent allowed connections to this endpoint. Can be set to -1 to disable the limit. + Bu uç noktaya izin verilen en fazla eşzamanlı bağlantı. Sınırı devre dışı bırakmak için -1 olarak ayarlanabilir. Korean + Kore dili Dutch + Hollanda dili Brand + Dağlamak Successfully updated brand. + Marka başarıyla güncellendi. Successfully created brand. + Başarıyla oluşturulan marka. Use this brand for each domain that doesn't have a dedicated brand. + Özel bir markaya sahip olmayan her alan adı için bu markayı kullanın. Set custom attributes using YAML or JSON. Any attributes set here will be inherited by users, if the request is handled by this brand. + YAML veya JSON kullanarak özel öznitelikler ayarlayın. Burada ayarlanan tüm özellikler, isteğin bu marka tarafından ele alınması durumunda kullanıcılar tarafından devralınır. Brands + Marka Brand(s) + Marka(lar) Update Brand + Markayı Güncelle Create Brand + Marka Oluştur To let a user directly reset a their password, configure a recovery flow on the currently active brand. + Bir kullanıcının parolasını doğrudan sıfırlamasına izin vermek için şu anda etkin olan markada bir kurtarma akışı yapılandırın. The current brand must have a recovery flow configured to use a recovery link + Geçerli markanın, kurtarma bağlantısı kullanacak şekilde yapılandırılmış bir kurtarma akışına sahip olması gerekir Successfully updated settings. + Ayarlar başarıyla güncellendi. Avatars + Avatar Configure how authentik should show avatars for users. The following values can be set: + Authentik'in kullanıcılar için avatarları nasıl göstermesi gerektiğini yapılandırın. Aşağıdaki değerler ayarlanabilir: Disables per-user avatars and just shows a 1x1 pixel transparent picture + Kullanıcı başına avatarları devre dışı bırakır ve yalnızca 1x1 piksel şeffaf bir resim gösterir Uses gravatar with the user's email address + Kullanıcının e-posta adresiyle gravatar kullanır Generated avatars based on the user's name + Kullanıcının adına göre oluşturulan avatarlar Any URL: If you want to use images hosted on another server, you can set any URL. Additionally, these placeholders can be used: + Herhangi bir URL: Başka bir sunucuda barındırılan görüntüleri kullanmak istiyorsanız, herhangi bir URL'yi ayarlayabilirsiniz. Ayrıca, şu yer tutucular kullanılabilir: The user's username + Kullanıcının kullanıcı adı The email address, md5 hashed + E-posta adresi, md5 hash edildi The user's UPN, if set (otherwise an empty string) + Ayarlanmışsa kullanıcının UPN'si (aksi takdirde boş bir dize) An attribute path like attributes.something.avatar, which can be used in combination with the file field to allow users to upload custom avatars for themselves. + attributes.something.avatar gibi + bir nitelik yolu, kullanıcıların kendileri için + özel avatarlar yüklemelerine izin vermek için + dosya alanıyla birlikte kullanılabilir. Multiple values can be set, comma-separated, and authentik will fallback to the next mode when no avatar could be found. + Birden çok değer ayarlanabilir, virgülle ayrılabilir ve authentik, avatar bulunamadığında bir sonraki moda geri döner. For example, setting this to gravatar,initials will attempt to get an avatar from Gravatar, and if the user has not configured on there, it will fallback to a generated avatar. + Örneğin, bunu gravatar,initials olarak ayarlamak, + Gravatar'dan bir avatar almaya çalışacak ve kullanıcı orada yapılandırmamışsa, + oluşturulan bir avatara geri dönecektir. Allow users to change name + Kullanıcıların adı değiştirmesine izin ver Enable the ability for users to change their name. + Kullanıcıların adlarını değiştirme özelliğini etkinleştirin. Allow users to change email + Kullanıcıların e-postalarını değiştirmesine izin verme Enable the ability for users to change their email. + Kullanıcıların e-postalarını değiştirme özelliğini etkinleştirin. Allow users to change username + Kullanıcıların kullanıcı adını değiştirmesine izin ver Enable the ability for users to change their username. + Kullanıcıların kullanıcı adlarını değiştirme özelliğini etkinleştirin. Footer links + Altbilgi bağlantıları GDPR compliance + GDPR uyumluluğu When enabled, all the events caused by a user will be deleted upon the user's deletion. + Etkinleştirildiğinde, bir kullanıcının neden olduğu tüm olaylar, kullanıcının silinmesi üzerine silinir. Impersonation + Kim -liğe bürünme Globally enable/disable impersonation. + Kimliğe bürünmeyi genel olarak etkinleştirin/devre dışı bırakın. System settings + Sistem ayarları Changes made: + Yapılan değişiklikler: Key + Anahtar Previous value + Önceki değer New value + Yeni değer Raw event info + Ham etkinlik bilgisi Anonymous user + Anonim kullanıcı Add All Available + Mevcut Tümünü Ekle Remove All Available + Mevcut Olanların Tümünü Kaldır Remove All + Tümünü Kaldır Available options + Mevcut seçenekler Selected options + Seçilen seçenekler item(s) marked to add. + eklemek için işaretlenmiş öğe(ler). item(s) selected. + öğe(ler) seçildi. item(s) marked to remove. + kaldırılmak üzere işaretlenmiş öğe(ler). Available Applications + Mevcut Uygulamalar Selected Applications - - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: + Seçilmiş Uygulamalar Last used + Son kullanılan OAuth Access Tokens + OAuth Erişim Jetonları Credentials / Tokens + Kimlik Bilgileri / Belirteçler Permissions set on users which affect this object. + Bu nesneyi etkileyen kullanıcılar için ayarlanan izinler. Permissions set on roles which affect this object. + Bu nesneyi etkileyen roller üzerinde ayarlanan izinler. Permissions assigned to this user which affect all object instances of a given type. + Bu kullanıcıya atanan ve belirli bir türdeki tüm nesne örneklerini etkileyen izinler. Permissions assigned to this user affecting specific object instances. + Bu kullanıcıya atanan ve belirli nesne örneklerini etkileyen izinler. Permissions assigned to this role which affect all object instances of a given type. + Bu role atanan ve belirli bir türdeki tüm nesne örneklerini etkileyen izinler. JWT payload + JWT yükü Preview for user + Kullanıcı için önizleme Brand name + Markası Remote Access Provider + Uzaktan Erişim Sağlayıcısı Remotely access computers/servers via RDP/SSH/VNC + RDP/SSH/VNC aracılığıyla bilgisayarlara/sunuculara uzaktan erişin Configure Remote Access Provider Provider + Uzaktan Erişim Sağlayıcı Sağlayıcısı'nı yapılandırma Delete authorization on disconnect + Bağlantı kesildiğinde yetkilendirmeyi sil When enabled, connection authorizations will be deleted when a client disconnects. This will force clients with flaky internet connections to re-authorize the endpoint. + Etkinleştirildiğinde, bir istemcinin bağlantısı kesildiğinde bağlantı yetkileri silinir. Bu, kesintili internet bağlantılarına sahip istemcileri uç noktayı yeniden yetkilendirmeye zorlar. Connection Token(s) + Bağlantı Belirteçleri Endpoint + Bitiş noktası Connections + Bağlantı Unconfigured + Yapılandırılmamış This option will not be changed by this mapping. + Bu seçenek, bu eşleme tarafından değiştirilmez. RAC Connections + RAC Bağlantıları Sending Duo push notification... + Duo push bildirimi gönderiliyor... Failed to authenticate + Kimlik doğrulaması yapılamadı Authenticating... + Kimlik doğrulama... Customization + Özelleştirme Authentication failed. Please try again. + Kimlik doğrulaması başarısız oldu. Lütfen tekrar deneyin. Failed to register. Please try again. + Kayıt başarısız oldu. Lütfen tekrar deneyin. Registering... + Kaydediliyor... Failed to register + Kayıt başarısız oldu Retry registration + Kaydı yeniden deneyin Select one of the options below to continue. + Devam etmek için aşağıdaki seçeneklerden birini belirleyin. Latest version unknown + En son sürümü bilinmiyor Timestamp + Zaman damgası Time + Saat Level + Düzey Event + Olay Logger + Günlükçü Update internal password on login + Oturum açarken dahili parolayı güncelleyin When the user logs in to authentik using this source password backend, update their credentials in authentik. + Kullanıcı bu kaynak parola arka ucunu kullanarak authentik'te oturum açtığında, kimlik bilgilerini authentik'te güncelleyin. Source + Kaynak Resume timeout + Özgeçmiş zaman aşımı Amount of time a user can take to return from the source to continue the flow. + Bir kullanıcının akışa devam etmek için kaynaktan geri dönmesi için geçen süre. Your Install ID + Yükleme Kimliğiniz Enter the email associated with your account, and we'll send you a link to reset your password. + Hesabınızla ilişkili e-postayı girin, size şifrenizi sıfırlamanız için bir bağlantı gönderelim. Stage name: + Aşama adı: Please scan the QR code above using the Microsoft Authenticator, Google Authenticator, or other authenticator apps on your device, and enter the code the device displays below to finish setting up the MFA device. + Lütfen cihazınızdaki Microsoft Authenticator, Google Authenticator veya diğer kimlik doğrulama uygulamalarını kullanarak yukarıdaki QR kodunu tarayın ve MFA cihazının kurulumunu tamamlamak için cihazın aşağıda görüntülediği kodu girin. Inject an OAuth or SAML Source into the flow execution. This allows for additional user verification, or to dynamically access different sources for different user identifiers (username, email address, etc). + Akış yürütmesine bir OAuth veya SAML Kaynağı ekleyin. Bu, ek kullanıcı doğrulamasına veya farklı kullanıcı tanımlayıcıları (kullanıcı adı, e-posta adresi vb.) için farklı kaynaklara dinamik olarak erişmeye olanak tanır. A selection is required + Bir seçim gereklidir Device type restrictions + Cihaz türü kısıtlamaları Available Device types + Kullanılabilir Cihaz türleri Selected Device types + Seçilen Cihaz türleri Optionally restrict which WebAuthn device types may be used. When no device types are selected, all devices are allowed. + İsteğe bağlı olarak, hangi WebAuthn cihaz türlerinin kullanılabileceğini kısıtlayın. Hiçbir cihaz türü seçilmediğinde, tüm cihazlara izin verilir. If the user has successfully authenticated with a device in the classes listed above within this configured duration, this stage will be skipped. + Kullanıcı, bu yapılandırılan süre içinde yukarıda listelenen sınıflardaki bir cihazla başarıyla kimlik doğrulaması yaptıysa, bu aşama atlanır. WebAuthn-specific settings + WebAuthn'a özgü ayarlar WebAuthn Device type restrictions + WebAuthn Cihaz türü kısıtlamaları This restriction only applies to devices created in authentik 2024.4 or later. + Bu kısıtlama yalnızca authentik 2024.4 veya sonraki sürümlerde oluşturulan cihazlar için geçerlidir. Default token duration + Varsayılan belirteç süresi Default duration for generated tokens + Oluşturulan belirteçler için varsayılan süre Default token length + Varsayılan belirteç uzunluğu Default length of generated tokens + Oluşturulan belirteçlerin varsayılan uzunluğu deleted + silindi Select permissions to assign + Atanacak izinleri seçme SCIM Source is in preview. + SCIM Kaynağı önizleme aşamasındadır. Update SCIM Source + SCIM Kaynağını Güncelleştirme SCIM Base URL + SCIM Temel URL'si Provisioned Users + Sağlanan Kullanıcılar Provisioned Groups + Sağlanan Gruplar removed + kaldırıldı Verifying... + Doğrulama... Request failed. Please try again later. + İstek başarısız oldu. Lütfen daha sonra tekrar deneyin. Available Roles + Mevcut Roller Selected Roles + Seçilmiş Roller Internal Service accounts are created and managed by authentik and cannot be created manually. + Dahili Hizmet hesapları authentik tarafından oluşturulur ve yönetilir ve manuel olarak oluşturulamaz. Private key Algorithm + Özel anahtar Algoritması RSA + RSA ECDSA + ECDSA Sertifikası Algorithm used to generate the private key. + Özel anahtarı oluşturmak için kullanılan algoritma. Added ID + Kimlik eklendi Removed ID + Kimliği kaldırıldı Cleared + Temizlenmiş Google Workspace Provider + Google Workspace Sağlayıcı Credentials + Kimlik bilgi -leri Delegated Subject + Yetkilendirilen Konu Default group email domain + Varsayılan grup e-posta etki alanı Default domain that is used to generate a group's email address. Can be customized using property mappings. + Bir grubun e-posta adresini oluşturmak için kullanılan varsayılan etki alanı. Özellik eşlemeleri kullanılarak özelleştirilebilir. User deletion action + Kullanıcı silme işlemi User is deleted + Kullanıcı silindi Suspend + Asmak User is suspended, and connection to user in authentik is removed. + Kullanıcı askıya alınır ve authentik'te kullanıcıyla olan bağlantı kaldırılır. Do Nothing + Hiçbir şey yapma The connection is removed but the user is not modified + Bağlantı kaldırılır, ancak kullanıcı değiştirilmez Determines what authentik will do when a User is deleted. + Bir Kullanıcı silindiğinde authentik'in ne yapacağını belirler. Group deletion action + Grup silme işlemi Group is deleted + Grup silindi The connection is removed but the group is not modified + Bağlantı kaldırılır, ancak grup değiştirilmez Determines what authentik will do when a Group is deleted. + Bir Grup silindiğinde authentik'in ne yapacağını belirler. Google Workspace Provider is in preview. + Google Workspace Sağlayıcı önizleme aşamasındadır. Microsoft Entra Provider + Microsoft Entra Sağlayıcısı Google Cloud credentials file. + Google Cloud kimlik bilgileri dosyası. Email address of the user the actions of authentik will be delegated to. + Authentik eylemlerinin devredileceği kullanıcının e-posta adresi. Client ID for the app registration. + Uygulama kaydı için istemci kimliği. Client secret for the app registration. + Uygulama kaydı için istemci gizli anahtarı. Tenant ID + Kiracı Kimliği ID of the tenant accounts will be synced into. + Kiracı hesaplarının kimliği eşitlenir. Microsoft Entra Provider is in preview. + Microsoft Entra Sağlayıcısı önizleme aşamasındadır. Update Microsoft Entra Provider + Microsoft Entra Sağlayıcısını Güncelleştirme Finished successfully + Başarıyla tamamlandı Finished with errors + Hatalarla tamamlandı Finished () + () Tamamlandı Sync currently running + Senkronizasyon şu anda çalışıyor Update Google Workspace Provider + Google Workspace Sağlayıcı'yı güncelleme Enterprise only + Yalnızca kurumsal Icon + Icon (build ) + (build ) (FIPS) + (FIPS) Score minimum threshold + Minimum puan eşiği Minimum required score to allow continuing + Devam etmeye izin vermek için gereken minimum puan Score maximum threshold + Puan üst eşiği Maximum allowed score to allow continuing + Devam etmeye izin vermek için izin verilen maksimum puan Error on invalid score + Geçersiz puanda hata When enabled and the resultant score is outside the threshold, the user will not be able to continue. When disabled, the user will be able to continue and the score can be used in policies to customize further stages. + Etkinleştirildiğinde ve elde edilen puan eşiğin dışında olduğunda, kullanıcı devam edemez. Devre dışı bırakıldığında, kullanıcı devam edebilir ve puan, daha sonraki aşamaları özelleştirmek için ilkelerde kullanılabilir. Microsoft Entra Group(s) + Microsoft Entra Grup(lar)ı Microsoft Entra User(s) + Microsoft Entra Kullanıcıları Google Workspace Group(s) + Google Workspace Grupları Google Workspace User(s) + Google Workspace Kullanıcıları SCIM Group(s) + SCIM Grup(lar)ı SCIM User(s) + SCIM Kullanıcıları FIPS compliance: passing + FIPS uyumluluğu: geçme Unverified + Doğrulanmamış FIPS compliance: unverified + FIPS uyumluluğu: doğrulanmamış FIPS Status + FIPS Durumu Search returned no results. + Arama hiçbir sonuç döndürmedi. Reputation score(s) + İtibar puan(lar)ı See documentation + Belgelere bakın Close dialog + İletişim kutusunu kapat Pagination + Sayfalandırma Application Details + Uygulama Detayları Provider Configuration + Sağlayıcı Yapılandırması Submit Application + Başvuru Gönder Restore Application Wizard Hint + Uygulama Geri Yükleme Sihirbazı İpucu Your authentik password + Authentik şifreniz Internal Service account + Dahili Hizmet hesabı Global + Küresel Outpost integrations + Karakol entegrasyonları Outpost integrations define how authentik connects to external platforms to manage and deploy Outposts. + Outpost entegrasyonları, authentik'in Outposts'u yönetmek ve dağıtmak için harici platformlara nasıl bağlandığını tanımlar. Operation failed to complete + İşlem tamamlanamadı Failed to fetch objects: + Nesneler getirilemedi: Available Scopes + Kullanılabilir Kapsamlar Selected Scopes + Seçilen Kapsamlar Available Property Mappings + Mevcut Mülk Eşlemeleri Selected Property Mappings + Seçili Özellik Eşlemeleri Available User Property Mappings + Kullanılabilir Kullanıcı Özelliği Eşlemeleri Selected User Property Mappings + Seçili Kullanıcı Özelliği Eşlemeleri Available Group Property Mappings + Kullanılabilir Grup Özellik Eşlemeleri Selected Group Property Mappings + Seçili Grup Özellik Eşlemeleri Ensure the user satisfies requirements of geography or network topology, based on IP address. If any of the configured values match, the policy passes. + Kullanıcının IP adresine göre coğrafya veya ağ topolojisi gereksinimlerini karşıladığından emin olun. Yapılandırılan değerlerden herhangi biri eşleşirse, ilke geçer. ASNs + ASN'ler List of autonomous system numbers. Comma separated. E.g. 13335, 15169, 20940 + Otonom sistem numaralarının listesi. Virgülle ayrılmış. Örnek: 13335, 15169, 20940 Countries + Ülke Available Countries + Mevcut Ülkeler Selected Countries + Seçilmiş Ülkeler Bind existing policy/group/user + Mevcut ilkeyi/grubu/kullanıcıyı bağlama Property mappings for user creation. + Kullanıcı oluşturma için özellik eşlemeleri. Property mappings for group creation. + Grup oluşturma için özellik eşlemeleri. Link to a group with identical name. Can have security implications when a group is used with another source + Aynı ada sahip bir gruba bağlanın. Bir grup başka bir kaynakla kullanıldığında güvenlikle ilgili etkileri olabilir Use the group's name, but deny enrollment when the name already exists + Grubun adını kullanın, ancak ad zaten mevcutsa kaydı reddedin Group matching mode + Grup eşleştirme modu OAuth Attribute mapping + OAuth Özellik eşlemesi Plex Attribute mapping + Plex Öznitelik eşlemesi Encryption Certificate + Şifreleme Sertifikası When selected, encrypted assertions will be decrypted using this keypair. + Seçildiğinde, şifrelenmiş onaylamaların şifresi bu anahtar çifti kullanılarak çözülür. SAML Attribute mapping + SAML Öznitelik eşlemesi SCIM Attribute mapping + SCIM Öznitelik eşlemesi External user settings + Harici kullanıcı ayarları Default application + Varsayılan uygulama When configured, external users will automatically be redirected to this application when not attempting to access a different application + Yapılandırıldığında, dış kullanıcılar farklı bir uygulamaya erişmeye çalışmadıklarında otomatik olarak bu uygulamaya yönlendirilir Warning: One or more license(s) have expired. + Uyarı: Bir veya daha fazla lisansın süresi doldu. Warning: One or more license(s) will expire within the next 2 weeks. + Uyarı: Bir veya daha fazla lisansın süresi önümüzdeki 2 hafta içinde sona erecektir. Caution: This authentik instance has entered read-only mode due to expired/exceeded licenses. + Dikkat: Bu authentik örneği, süresi dolmuş/aşılmış lisanslar nedeniyle salt okunur moda girmiştir. This authentik instance uses a Trial license. + Bu authentik örneği bir Deneme lisansı kullanır. This authentik instance uses a Non-production license. + Bu authentik örneği, Üretim dışı lisans kullanır. Access Tokens(s) + Erişim Belirteçleri Created at + Şurada oluşturuldu Last updated at + En son güncelleme tarihi Last used at + En son şu tarihte kullanıldı Provide users with a 'show password' button. + Kullanıcılara bir 'şifreyi göster' düğmesi sağlayın. Show password + Şifreyi göster Hide password + Şifreyi gizle An outpost is on an incorrect version! + Bir gözcü yanlış bir sürümde! Russian + Rusça Last seen: () + Son görülme: () Sign assertions + Onayları imzalama When enabled, the assertion element of the SAML response will be signed. + Etkinleştirildiğinde, SAML yanıtının onaylama işlemi öğesi imzalanır. Sign responses + Yanıtları imzala When selected, assertions will be encrypted using this keypair. + Seçildiğinde, onaylamalar bu anahtar çifti kullanılarak şifrelenir. Available Sources + Mevcut Kaynaklar Selected Sources + Seçilmiş Kaynaklar Successfully triggered sync. + Senkronizasyon başarıyla tetiklendi. Sync + Eşitleme Sync User + Kullanıcıyı Senkronize Et Available Stages + Mevcut Aşamalar Selected Stages + Seçilmiş Aşamalar Available Fields + Kullanılabilir Alanlar Selected Fields + Seçili Alanlar Available Transports + Mevcut Taşımalar Selected Transports + Seçilmiş Taşımalar Expired + Süresi dolmuş Expiring soon + Yakında sona eriyor Unlicensed + Lisanssız Read Only + Salt Okunur Valid + Geçerli Current license status + Mevcut lisans durumu Overall license status + Genel lisans durumu Internal user usage + Dahili kullanıcı kullanımı % + % External user usage + Dış kullanıcı kullanımı Matches Event's Client IP (strict matching, for network matching use an Expression Policy). + Olayın İstemci IP'si ile eşleşir (katı eşleştirme, ağ eşleştirmesi için bir İfade Politikası kullanın). Invalid update request. + Geçersiz güncelleme isteği. Sync Group + Grubu Eşitle ("", of type ) + ("", of type ) authentik was unable to save this application: + auhentik bu uygulamayı kaydedemedi: Parent Group + Ebeveyn Grubu Flow used when logging out of this provider. + Bu sağlayıcıdan çıkış yapılırken kullanılan akış. Unbind flow + Akışı çöz Flow used for unbinding users. + Kullanıcıların bağlantısını kaldırmak için kullanılan akış. Verify SCIM server's certificates + SCIM sunucusunun sertifikalarını doğrulama You've logged out of . You can go back to the overview to launch another application, or log out of your authentik account. + ourumunu kapattınız. Başka bir uygulama başlatmak için genel bakışa geri dönebilir veya authentik hesabınızdan çıkış yapabilirsiniz. Go back to overview + Genel bakışa geri dön Log out of + oturumunu kapatın Log back into + oturumuna tekrar giriş yapın Encryption Key + Şifreleme Anahtarı Key used to encrypt the tokens. + Belirteçleri şifrelemek için kullanılan anahtar. Device type cannot be deleted + Cihaz türü silinemez Stage used to verify users' browsers using Google Chrome Device Trust. This stage can be used in authentication/authorization flows. + Google Chrome Device Trust'ı kullanarak kullanıcıların tarayıcılarını doğrulamak için kullanılan aşama. Bu aşama kimlik doğrulama/yetkilendirme akışlarında kullanılabilir. Google Verified Access API + Google Doğrulanmış Erişim API'sı Device type cannot be edited + Cihaz türü değiştirilemez Advanced flow settings + Gelişmiş akış ayarları Enable this option to write password changes made in authentik back to Kerberos. Ignored if sync is disabled. + Authentik'te yapılan parola değişikliklerini Kerberos'a geri yazmak için bu seçeneği etkinleştirin. Senkronizasyon devre dışı bırakılmışsa yoksayılır. Realm settings + Bölge ayarları Realm + Bölge Kerberos 5 configuration + Kerberos 5 yapılandırması Kerberos 5 configuration. See man krb5.conf(5) for configuration format. If left empty, a default krb5.conf will be used. + Kerberos 5 yapılandırması. Yapılandırma formatı için man krb5.conf(5) adresine bakın. Boş bırakılırsa, varsayılan bir krb5.conf kullanılacaktır. Sync connection settings + Bağlantı ayarlarını senkronize et Sync principal + Eşitleme sorumlusu Principal used to authenticate to the KDC for syncing. + Sorumlu, eşitleme için KDC'de kimlik doğrulaması yapmak için kullanılır. Sync password + Senkronizasyon şifresi Password used to authenticate to the KDC for syncing. Optional if Sync keytab or Sync credentials cache is provided. + Eşitleme için KDC'de kimlik doğrulaması yapmak için kullanılan parola. Senkronizasyon anahtar sekmesi veya Senkronizasyon kimlik bilgileri önbelleği sağlanmışsa isteğe bağlıdır. Sync keytab + Senkronizasyon tuşu sekmesi Keytab used to authenticate to the KDC for syncing. Optional if Sync password or Sync credentials cache is provided. Must be base64 encoded or in the form TYPE:residual. + Eşitleme için KDC'de kimlik doğrulaması yapmak için kullanılan tuş sekmesi. Senkronizasyon şifresi veya Senkronizasyon kimlik bilgileri önbelleği sağlanmışsa isteğe bağlıdır. Base64 kodlu veya TYPE:residual biçiminde olmalıdır. Sync credentials cache + Kimlik bilgileri önbelleğini eşitleme Credentials cache used to authenticate to the KDC for syncing. Optional if Sync password or Sync keytab is provided. Must be in the form TYPE:residual. + Eşitleme için KDC'de kimlik doğrulaması yapmak için kullanılan kimlik bilgileri önbelleği. Senkronizasyon şifresi veya Senkronizasyon tuşu sekmesi sağlanmışsa isteğe bağlıdır. TYPE:residual" şeklinde olmalıdır. SPNEGO settings + SPNEGO ayarları SPNEGO server name + SPNEGO sunucu adı Force the use of a specific server name for SPNEGO. Must be in the form HTTP@domain + SPNEGO için belirli bir sunucu adının kullanılmasını zorlayın. şeklinde olmalı HTTP@domain SPNEGO keytab + SPNEGO tuş sekmesi Keytab used for SPNEGO. Optional if SPNEGO credentials cache is provided. Must be base64 encoded or in the form TYPE:residual. + SPNEGO için kullanılan tuş sekmesi. SPNEGO kimlik bilgileri önbelleği sağlanmışsa isteğe bağlıdır. Base64 kodlu veya TYPE:residual biçiminde olmalıdır. SPNEGO credentials cache + SPNEGO kimlik bilgileri önbelleği Credentials cache used for SPNEGO. Optional if SPNEGO keytab is provided. Must be in the form TYPE:residual. + SPNEGO için kullanılan kimlik bilgileri önbelleği. SPNEGO tuş sekmesi sağlanmışsa isteğe bağlıdır. TYPE:residual" şeklinde olmalıdır. Kerberos Attribute mapping + Kerberos Öznitelik eşlemesi Update Kerberos Source + Kerberos Kaynağını Güncelleştirme User database + Kerberos password + Kullanıcı veritabanı + Kerberos parolası Select another authentication method + Başka bir kimlik doğrulama yöntemi seçin Enter a one-time recovery code for this user. + Bu kullanıcı için tek seferlik bir kurtarma kodu girin. Enter the code from your authenticator device. + Kimlik doğrulama cihazınızdaki kodu girin. Kerberos Source is in preview. + Kerberos Kaynağı önizleme aşamasındadır. Captcha stage + Captcha aşaması When set, adds functionality exactly like a Captcha stage, but baked into the Identification stage. + Ayarlandığında, tam olarak bir Captcha aşaması gibi işlevsellik ekler, ancak Kimlik aşamasına eklenir. Endpoint Google Chrome Device Trust is in preview. + Uç nokta Google Chrome Cihaz Güvenilirliği önizleme aşamasındadır. + + + Yes () + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/zh-CN.xlf b/web/xliff/zh-CN.xlf index 2898bea017..ab014442eb 100644 --- a/web/xliff/zh-CN.xlf +++ b/web/xliff/zh-CN.xlf @@ -1989,9 +1989,6 @@ doesn't pass when either or both of the selected options are equal or above the Applications - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Provider Type @@ -5065,9 +5062,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Last used @@ -5875,6 +5869,39 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. + diff --git a/web/xliff/zh-Hans.xlf b/web/xliff/zh-Hans.xlf index de693043ab..287d3b62cd 100644 --- a/web/xliff/zh-Hans.xlf +++ b/web/xliff/zh-Hans.xlf @@ -1,4 +1,4 @@ - + @@ -596,9 +596,9 @@ - The URL "" was not found. - 未找到 URL " - "。 + The URL "" was not found. + 未找到 URL " + "。 @@ -1030,8 +1030,8 @@ - To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. - 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 + To allow any redirect URI, set this value to ".*". Be aware of the possible security implications this can have. + 要允许任何重定向 URI,请将此值设置为 ".*"。请注意这可能带来的安全影响。 @@ -1752,8 +1752,8 @@ - Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". - 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 + Either input a full URL, a relative path, or use 'fa://fa-test' to use the Font Awesome icon "fa-test". + 输入完整 URL、相对路径,或者使用 'fa://fa-test' 来使用 Font Awesome 图标 "fa-test"。 @@ -2916,8 +2916,8 @@ doesn't pass when either or both of the selected options are equal or above the - Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' - 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' + Field which contains members of a group. Note that if using the "memberUid" field, the value is assumed to contain a relative distinguished name. e.g. 'memberUid=some-user' instead of 'memberUid=cn=some-user,ou=groups,...' + 包含组成员的字段。请注意,如果使用 "memberUid" 字段,则假定该值包含相对可分辨名称。例如,'memberUid=some-user' 而不是 'memberUid=cn=some-user,ou=groups,...' @@ -3663,8 +3663,8 @@ doesn't pass when either or both of the selected options are equal or above the - When using an external logging solution for archiving, this can be set to "minutes=5". - 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 + When using an external logging solution for archiving, this can be set to "minutes=5". + 使用外部日志记录解决方案进行存档时,可以将其设置为 "minutes=5"。 @@ -3840,10 +3840,10 @@ doesn't pass when either or both of the selected options are equal or above the - Are you sure you want to update ""? + Are you sure you want to update ""? 您确定要更新 - " - " 吗? + " + " 吗? @@ -4919,7 +4919,7 @@ doesn't pass when either or both of the selected options are equal or above the - A "roaming" authenticator, like a YubiKey + A "roaming" authenticator, like a YubiKey 像 YubiKey 这样的“漫游”身份验证器 @@ -5298,7 +5298,7 @@ doesn't pass when either or both of the selected options are equal or above the - If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. + If set to a duration above 0, the user will have the option to choose to "stay signed in", which will extend their session by the time specified here. 如果设置时长大于 0,用户可以选择“保持登录”选项,这将使用户的会话延长此处设置的时间。 @@ -7544,10 +7544,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden “新应用程序向导”提示目前已隐藏 - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - 通过 OAuth2 和 SAML 等协议,使用 authentik 作为身份提供程序的外部应用程序。此处显示了所有应用程序,即使您无法访问的也包括在内。 - Deny message 拒绝消息 @@ -7713,7 +7709,7 @@ Bindings to groups/users are checked against the user of the event. 成功创建用户并添加到组 - This user will be added to the group "". + This user will be added to the group "". 此用户将会被添加到组 &quot;&quot;。 @@ -8182,10 +8178,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications 已选应用 - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - 此选项配置流程执行器页面上的页脚链接。必须为有效的 YAML 或 JSON 列表,可以使用以下值: - Last used 上次使用 @@ -9067,7 +9059,7 @@ Bindings to groups/users are checked against the user of the event. 同步组 - ("", of type ) + ("", of type ) (&quot;&quot;,类型为 @@ -9261,7 +9253,51 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. 端点 Google Chrome 设备信任处于预览状态。 + + + Interactive + 交互式 + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + 如果配置的验证码需要用户交互则启用此选项。reCAPTCHA v2、hCaptcha 和 Cloudflare Turnstile 需要启用。 + + + Reason + 原因 + + + Reason for impersonating the user + 模拟此用户的原因 + + + Require reason for impersonation + 需要模拟原因 + + + Require administrators to provide a reason for impersonating a user. + 需要管理员提供模拟用户的原因。 + + + Italian + 意大利语 + + + Add entry + 添加条目 + + + Link Title + 链接标题 + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + 此选项配置流程执行器页面上的页脚链接。URL 限为 Web 和电子邮件地址。如果名称留空,则显示 URL 自身。 + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. + 通过 OAuth2 和 SAML 等协议,使用 作为身份提供程序的外部应用程序。此处显示了所有应用程序,即使您无法访问的也包括在内。 - + \ No newline at end of file diff --git a/web/xliff/zh-Hant.xlf b/web/xliff/zh-Hant.xlf index e3a719aa34..5a272c4765 100644 --- a/web/xliff/zh-Hant.xlf +++ b/web/xliff/zh-Hant.xlf @@ -5699,9 +5699,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - Deny message @@ -6175,9 +6172,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Last used @@ -6984,6 +6978,39 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/web/xliff/zh_CN.xlf b/web/xliff/zh_CN.xlf index bf4a2750ce..a598336822 100644 --- a/web/xliff/zh_CN.xlf +++ b/web/xliff/zh_CN.xlf @@ -7544,10 +7544,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden “新应用程序向导”提示目前已隐藏 - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - 通过 OAuth2 和 SAML 等协议,使用 authentik 作为身份提供程序的外部应用程序。此处显示了所有应用程序,即使您无法访问的也包括在内。 - Deny message 拒绝消息 @@ -8182,10 +8178,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications 已选应用 - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - 此选项配置流程执行器页面上的页脚链接。必须为有效的 YAML 或 JSON 列表,可以使用以下值: - Last used 上次使用 @@ -9261,6 +9253,50 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. 端点 Google Chrome 设备信任处于预览状态。 + + + Interactive + 交互式 + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + 如果配置的验证码需要用户交互则启用此选项。reCAPTCHA v2、hCaptcha 和 Cloudflare Turnstile 需要启用。 + + + Reason + 原因 + + + Reason for impersonating the user + 模拟此用户的原因 + + + Require reason for impersonation + 需要模拟原因 + + + Require administrators to provide a reason for impersonating a user. + 需要管理员提供模拟用户的原因。 + + + Italian + 意大利语 + + + Add entry + 添加条目 + + + Link Title + 链接标题 + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + 此选项配置流程执行器页面上的页脚链接。URL 限为 Web 和电子邮件地址。如果名称留空,则显示 URL 自身。 + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. + 通过 OAuth2 和 SAML 等协议,使用 作为身份提供程序的外部应用程序。此处显示了所有应用程序,即使您无法访问的也包括在内。 diff --git a/web/xliff/zh_TW.xlf b/web/xliff/zh_TW.xlf index 9b0ecbbc54..d020a2ba0f 100644 --- a/web/xliff/zh_TW.xlf +++ b/web/xliff/zh_TW.xlf @@ -7486,10 +7486,6 @@ Bindings to groups/users are checked against the user of the event. One hint, 'New Application Wizard', is currently hidden 提示:「新增應用程式設定精靈」目前處於隱藏中 - - External applications that use authentik as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. - 使用 authentik 作為身份供應商的外部應用程式,透過像 OAuth2 和 SAML 這樣的協議。此處顯示所有應用程式,即使是您無法存取的應用程式也包括在內。 - Deny message 拒絕的訊息 @@ -8010,9 +8006,6 @@ Bindings to groups/users are checked against the user of the event. Selected Applications - - This option configures the footer links on the flow executor pages. It must be a valid YAML or JSON list and can be used as follows: - Last used @@ -8819,6 +8812,39 @@ Bindings to groups/users are checked against the user of the event. Endpoint Google Chrome Device Trust is in preview. + + + Interactive + + + Enable this flag if the configured captcha requires User-interaction. Required for reCAPTCHA v2, hCaptcha and Cloudflare Turnstile. + + + Reason + + + Reason for impersonating the user + + + Require reason for impersonation + + + Require administrators to provide a reason for impersonating a user. + + + Italian + + + Add entry + + + Link Title + + + This option configures the footer links on the flow executor pages. The URL is limited to web and mail addresses. If the name is left blank, the URL will be shown. + + + External applications that use as an identity provider via protocols like OAuth2 and SAML. All applications are shown here, even ones you cannot access. diff --git a/website/docs/add-secure-apps/applications/index.md b/website/docs/add-secure-apps/applications/index.md index d67cf8206c..7de817f6a7 100644 --- a/website/docs/add-secure-apps/applications/index.md +++ b/website/docs/add-secure-apps/applications/index.md @@ -1,6 +1,5 @@ --- title: Applications -slug: /applications --- Applications, as defined in authentik, are used to configure and separate the authorization/access control and the appearance of a specific software application in the **My applications** page. @@ -35,7 +34,7 @@ The following options can be configured: If the authentik server does not have a volume mounted under `/media`, you'll get a text input. This accepts absolute URLs. If you've mounted single files into the container, you can reference them using `https://authentik.company/media/my-file.png`. - If there is a mount under `/media` or if [S3 storage](../../install-config/storage-s3.md) is configured, you'll instead see a field to upload a file. + If there is a mount under `/media` or if [S3 storage](../../sys-mgmt/ops/storage-s3.md) is configured, you'll instead see a field to upload a file. - _Publisher_: Text shown below the application - _Description_: Subtext shown on the application card below the publisher diff --git a/website/docs/add-secure-apps/flows-stages/stages/captcha/index.md b/website/docs/add-secure-apps/flows-stages/stages/captcha/index.md index ed75f91198..acc3d1755d 100644 --- a/website/docs/add-secure-apps/flows-stages/stages/captcha/index.md +++ b/website/docs/add-secure-apps/flows-stages/stages/captcha/index.md @@ -2,15 +2,17 @@ title: Captcha stage --- -This stage adds a form of verification using [Google's ReCaptcha](https://www.google.com/recaptcha/intro/v3.html) or compatible services. Currently supported implementations: +This stage adds a form of verification using [Google's reCAPTCHA](https://www.google.com/recaptcha/intro/v3.html) or compatible services. -- ReCaptcha -- hCaptcha -- Turnstile +Currently supported implementations: + +- [Google reCAPTCHA](#google-recaptcha) +- [hCaptcha](#hcaptcha) +- [Cloudflare Turnstile](#cloudflare-turnstile) ## Captcha provider configuration -### Google ReCaptcha +### Google reCAPTCHA This stage has two required fields: Public key and private key. These can both be acquired at https://www.google.com/recaptcha/admin. @@ -18,10 +20,11 @@ This stage has two required fields: Public key and private key. These can both b #### Configuration options -- JS URL: `https://www.recaptcha.net/recaptcha/api.js` -- API URL: `https://www.recaptcha.net/recaptcha/api/siteverify` +- Interactive: Enabled when using reCAPTCHA v3 - Score minimum threshold: `0.5` - Score maximum threshold: `1` +- JS URL: `https://www.recaptcha.net/recaptcha/api.js` +- API URL: `https://www.recaptcha.net/recaptcha/api/siteverify` ### hCaptcha @@ -29,6 +32,7 @@ See https://docs.hcaptcha.com/switch #### Configuration options +- Interactive: Enabled - JS URL: `https://js.hcaptcha.com/1/api.js` - API URL: `https://api.hcaptcha.com/siteverify` @@ -37,16 +41,13 @@ See https://docs.hcaptcha.com/switch - Score minimum threshold: `0` - Score maximum threshold: `0.5` -### Turnstile +### Cloudflare Turnstile See https://developers.cloudflare.com/turnstile/get-started/migrating-from-recaptcha -:::warning -To use Cloudflare Turnstile, the site must be configured to use the "Invisible" mode, otherwise the widget will be rendered incorrectly. -::: - #### Configuration options +- Interactive: Enabled if the Turnstile instance is configured as visible or managed - JS URL: `https://challenges.cloudflare.com/turnstile/v0/api.js` - API URL: `https://challenges.cloudflare.com/turnstile/v0/siteverify` diff --git a/website/docs/add-secure-apps/providers/proxy/_traefik_ingress.md b/website/docs/add-secure-apps/providers/proxy/_traefik_ingress.md index b3f54c5422..cbf3014b5b 100644 --- a/website/docs/add-secure-apps/providers/proxy/_traefik_ingress.md +++ b/website/docs/add-secure-apps/providers/proxy/_traefik_ingress.md @@ -7,6 +7,7 @@ metadata: name: authentik spec: forwardAuth: + # This address should point to the cluster endpoint provided by the kubernetes service, not the Ingress. address: http://outpost.company:9000/outpost.goauthentik.io/auth/traefik trustForwardHeader: true authResponseHeaders: diff --git a/website/docs/customize/policies/index.md b/website/docs/customize/policies/index.md index 95ecff8ef3..39169ba9c6 100644 --- a/website/docs/customize/policies/index.md +++ b/website/docs/customize/policies/index.md @@ -32,6 +32,10 @@ This policy can enforce regular password rotation by expiring set passwords afte ### Password Policy +:::warning +By default, authentik's Password policy is compliant with [NIST's recommendations](https://pages.nist.gov/800-63-4/sp800-63b.html#password) for passwords. To remain compliant with NIST, be cautious when editing the default values. For additional hardening configuration settings, refer to [Hardening authentik](../../security/security-hardening.md#password-policy). +::: + This policy allows you to specify password rules, such as length and required characters. The following rules can be set: diff --git a/website/docs/developer-docs/releases/index.md b/website/docs/developer-docs/releases/index.md index 7cf300e51d..8d076af56a 100644 --- a/website/docs/developer-docs/releases/index.md +++ b/website/docs/developer-docs/releases/index.md @@ -78,7 +78,7 @@ Short summary of the issue ### Patches -authentik x, y and z fix this issue, for other versions the workaround can be used. +authentik x, y and z fix this issue, for other versions the workaround below can be used. ### Impact @@ -96,7 +96,7 @@ Describe a workaround if possible If you have any questions or comments about this advisory: -- Email us at [security@goauthentik.io](mailto:security@goauthentik.io) +- Email us at [security@goauthentik.io](mailto:security@goauthentik.io). ``` diff --git a/website/docs/install-config/index.mdx b/website/docs/install-config/index.mdx index d413f9f095..7a457a127f 100644 --- a/website/docs/install-config/index.mdx +++ b/website/docs/install-config/index.mdx @@ -1,13 +1,13 @@ --- -title: Installation +title: Installation and Configuration --- Everything you need to get authentik up and running! -For information about upgrading to a new version, refer to the Upgrade section in the relevant [Release Notes](../releases) and to our [Upgrade authentik](./upgrade.mdx) documentation. - The installation process for our free open source version and our [Enterprise](../enterprise/index.md) version are exactly the same. For information about obtaining an Enterprise license, refer to [License management](../enterprise/manage-enterprise.md#license-management) documentation. +For information about upgrading to a new version, refer to the Upgrade section in the relevant [Release Notes](../releases) and to our [Upgrade authentik](./upgrade.mdx) documentation. + import DocCardList from "@theme/DocCardList"; diff --git a/website/docs/releases/2022/v2022.12.md b/website/docs/releases/2022/v2022.12.md index 3e6145e211..1527115c9b 100644 --- a/website/docs/releases/2022/v2022.12.md +++ b/website/docs/releases/2022/v2022.12.md @@ -13,7 +13,7 @@ slug: "/releases/2022.12" - Bundled GeoIP City database - authentik now comes with a bundled MaxMind GeoLite2 City database. This allows everyone to take advantage of the extra data provided by GeoIP. The default docker-compose file removes the GeoIP update container as it is no longer needed. See more [here](../../install-config/geoip.mdx). + authentik now comes with a bundled MaxMind GeoLite2 City database. This allows everyone to take advantage of the extra data provided by GeoIP. The default docker-compose file removes the GeoIP update container as it is no longer needed. See more [here](../../sys-mgmt/ops/geoip.mdx). - Improved UX for user & group management and stage/policy binding diff --git a/website/docs/releases/2024/v2024.10.md b/website/docs/releases/2024/v2024.10.md index d3aa0654e5..e7f3a8190b 100644 --- a/website/docs/releases/2024/v2024.10.md +++ b/website/docs/releases/2024/v2024.10.md @@ -6,9 +6,9 @@ slug: "/releases/2024.10" ## Highlights - **Chrome Device Trust** Enterprise Preview: Verify that your users are logging in from managed devices and validate the devices' compliance with company policies. -- **FIPS/FAL3 for FedRAMP "very high" compliance** Enterprise+: with support for SAML encryption and now JWE (JSON Web Encryption) support, authentik can now be configured for FIPS compliance at Federal Assurance Level (FAL) 3. +- **FIPS/FAL3 for FedRAMP "very high" compliance** Enterprise+: with support for SAML encryption and now JWE (JSON Web Encryption) support, authentik can now be configured for FIPS compliance at Federation Assurance Level (FAL) 3. - **Captcha on Identification stage**: Run a CAPTCHA process in the background while the user is entering their identification. -- **Kerberos source**: authentik can now integrate with existing Kerberos environments by allowing users to log in with their Kerberos credentials, SPNEGO or syncing users into authentik. +- **Kerberos source**: authentik can now integrate with existing Kerberos environments by allowing users to log in with their Kerberos credentials, SPNEGO, or syncing users into authentik. ## Breaking changes @@ -34,7 +34,7 @@ We have no breaking changes this release! - **Autoselect 2FA device** - Users who configure multiple 2FA devices will now land on their last used device's prompt, skipping the device picker. This will hopefually result in lower total average time per flow for the end user. + Users who configure multiple 2FA devices will now land on their last used device's prompt, skipping the device picker. This should result in lower total average time per flow for the end user. - **New structure for authentik's technical documentation** @@ -113,10 +113,6 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2024.10 - sources/ldap: fix ms_ad userAccountControl not checking for lockout (#11532) - sources/saml: fix NameIDFormat descriptor in metadata generation (#11614) - stages/authenticator: use RBAC for devices API (#11482) -- stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#11138) -- stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#11383) -- stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#11578) -- stages/authenticator_webauthn: Update FIDO MDS3 & Passkey aaguid blobs (#11683) - stages/identification: dynamically find login challenges (#11571) - stages/password: add error message when exceeding maximum tries (#11679) - tests/e2e: add forward auth e2e test (#11374) @@ -143,15 +139,147 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2024.10 - web: revert lockfile lint, re-add integrity (#11380) - web: small fixes for elements and forms (#11546) +## Fixed in 2024.10.1 + +- core: add `None` check to a device's `extra_description` (cherry-pick #11904) (#11906) +- enterprise/rac: fix API Schema for invalidation_flow (cherry-pick #11907) (#11908) +- providers/oauth2: fix size limited index for tokens (cherry-pick #11879) (#11905) +- web: fix missing status code on failed build (#11903) + +## Fixed in 2024.10.2 + +- blueprints: add default Password policy (cherry-pick #11793) (#11993) +- core: use versioned_script for path only (cherry-pick #12003) (#12023) +- crypto: validate that generated certificate's name is unique (cherry-pick #12015) (#12016) +- providers/oauth2: fix manual device code entry (cherry-pick #12017) (#12019) +- providers/proxy: fix Issuer when AUTHENTIK_HOST_BROWSER is set (cherry-pick #11968) (#12005) +- stages/captcha: Run interactive captcha in Frame (cherry-pick #11857) (#11991) +- stages/password: use recovery flow from brand (cherry-pick #11953) (#11969) +- web: bump API Client version (#11992) + +## Fixed in 2024.10.3 + +- core: fix source_flow_manager throwing error when authenticated user attempts to re-authenticate with existing link (cherry-pick #12080) (#12081) +- internal: add CSP header to files in `/media` (cherry-pick #12092) (#12108) +- providers/ldap: fix global search_full_directory permission not being sufficient (cherry-pick #12028) (#12030) +- providers/scim: accept string and int for SCIM IDs (cherry-pick #12093) (#12095) +- rbac: fix incorrect object_description for object-level permissions (cherry-pick #12029) (#12043) +- root: check remote IP for proxy protocol same as HTTP/etc (cherry-pick #12094) (#12097) +- root: fix activation of locale not being scoped (cherry-pick #12091) (#12096) +- security: fix [CVE-2024-52287](../../security/cves/CVE-2024-52287.md), reported by [@matt1097](https://github.com/matt1097) (#12117) +- security: fix [CVE-2024-52289](../../security/cves/CVE-2024-52289.md), reported by [@PontusHanssen](https://github.com/PontusHanssen) (#12113) +- security: fix [CVE-2024-52307](../../security/cves/CVE-2024-52307.md), reported by [@mgerstner](https://github.com/mgerstner) (#12115) +- web/admin: better footer links (#12004) +- web/flows: fix invisible captcha call (cherry-pick #12048) (#12049) +- website/docs: add CSP to hardening (cherry-pick #11970) (#12116) + +## Fixed in 2024.10.4 + +- providers/oauth2: fix migration (cherry-pick #12138) (#12139) +- providers/oauth2: fix migration dependencies (cherry-pick #12123) (#12132) +- providers/oauth2: fix redirect uri input (cherry-pick #12122) (#12127) +- providers/proxy: fix redirect_uri (cherry-pick #12121) (#12125) +- web: bump API Client version (cherry-pick #12129) (#12130) + ## API Changes +### API Changes in 2024.10.0 + #### What's New --- ##### `GET` /admin/version/history/ -##### `GET` /admin/version/history/{#123;id}#125;/ +##### `GET` /admin/version/history/{id}/ + +##### `GET` /authenticators/admin/endpoint/ + +##### `POST` /authenticators/admin/endpoint/ + +##### `GET` /authenticators/admin/endpoint/{uuid}/ + +##### `PUT` /authenticators/admin/endpoint/{uuid}/ + +##### `DELETE` /authenticators/admin/endpoint/{uuid}/ + +##### `PATCH` /authenticators/admin/endpoint/{uuid}/ + +##### `GET` /authenticators/endpoint/ + +##### `GET` /authenticators/endpoint/{uuid}/ + +##### `GET` /authenticators/endpoint/{uuid}/used_by/ + +##### `GET` /propertymappings/source/kerberos/ + +##### `POST` /propertymappings/source/kerberos/ + +##### `GET` /propertymappings/source/kerberos/{pm_uuid}/ + +##### `PUT` /propertymappings/source/kerberos/{pm_uuid}/ + +##### `DELETE` /propertymappings/source/kerberos/{pm_uuid}/ + +##### `PATCH` /propertymappings/source/kerberos/{pm_uuid}/ + +##### `GET` /propertymappings/source/kerberos/{pm_uuid}/used_by/ + +##### `GET` /sources/group_connections/kerberos/ + +##### `GET` /sources/group_connections/kerberos/{id}/ + +##### `PUT` /sources/group_connections/kerberos/{id}/ + +##### `DELETE` /sources/group_connections/kerberos/{id}/ + +##### `PATCH` /sources/group_connections/kerberos/{id}/ + +##### `GET` /sources/group_connections/kerberos/{id}/used_by/ + +##### `GET` /sources/kerberos/ + +##### `POST` /sources/kerberos/ + +##### `GET` /sources/kerberos/{slug}/ + +##### `PUT` /sources/kerberos/{slug}/ + +##### `DELETE` /sources/kerberos/{slug}/ + +##### `PATCH` /sources/kerberos/{slug}/ + +##### `GET` /sources/kerberos/{slug}/sync/status/ + +##### `GET` /sources/kerberos/{slug}/used_by/ + +##### `GET` /sources/user_connections/kerberos/ + +##### `POST` /sources/user_connections/kerberos/ + +##### `GET` /sources/user_connections/kerberos/{id}/ + +##### `PUT` /sources/user_connections/kerberos/{id}/ + +##### `DELETE` /sources/user_connections/kerberos/{id}/ + +##### `PATCH` /sources/user_connections/kerberos/{id}/ + +##### `GET` /sources/user_connections/kerberos/{id}/used_by/ + +##### `GET` /stages/authenticator/endpoint_gdtc/ + +##### `POST` /stages/authenticator/endpoint_gdtc/ + +##### `GET` /stages/authenticator/endpoint_gdtc/{stage_uuid}/ + +##### `PUT` /stages/authenticator/endpoint_gdtc/{stage_uuid}/ + +##### `DELETE` /stages/authenticator/endpoint_gdtc/{stage_uuid}/ + +##### `PATCH` /stages/authenticator/endpoint_gdtc/{stage_uuid}/ + +##### `GET` /stages/authenticator/endpoint_gdtc/{stage_uuid}/used_by/ #### What's Changed @@ -172,8 +300,11 @@ Changed response : **200 OK** - `extra_description` * Added property `extra_description` (string) + > Get extra description + * Changed property `pk` (integer -> string) + ##### `GET` /authenticators/all/ ###### Return Type: @@ -189,9 +320,149 @@ Changed response : **200 OK** - `extra_description` * Added property `extra_description` (string) + > Get extra description -##### `GET` /providers/all/{#123;id}#125;/ + * Changed property `pk` (integer -> string) + +##### `GET` /policies/event_matcher/{policy_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `app` (string) + + > Match events created by selected application. When left empty, all applications are matched. + + Added enum values: + + - `authentik.sources.kerberos` + - `authentik.enterprise.stages.authenticator_endpoint_gdtc` + + - Changed property `model` (string) + + > Match events created by selected model. When left empty, all models are matched. When an app is selected, all the application's models are matched. + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +##### `PUT` /policies/event_matcher/{policy_uuid}/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `app` (string) + + > Match events created by selected application. When left empty, all applications are matched. + + Added enum values: + + - `authentik.sources.kerberos` + - `authentik.enterprise.stages.authenticator_endpoint_gdtc` + +- Changed property `model` (string) + + > Match events created by selected model. When left empty, all models are matched. When an app is selected, all the application's models are matched. + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `app` (string) + + > Match events created by selected application. When left empty, all applications are matched. + + Added enum values: + + - `authentik.sources.kerberos` + - `authentik.enterprise.stages.authenticator_endpoint_gdtc` + + - Changed property `model` (string) + + > Match events created by selected model. When left empty, all models are matched. When an app is selected, all the application's models are matched. + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +##### `PATCH` /policies/event_matcher/{policy_uuid}/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `app` (string) + + > Match events created by selected application. When left empty, all applications are matched. + + Added enum values: + + - `authentik.sources.kerberos` + - `authentik.enterprise.stages.authenticator_endpoint_gdtc` + +- Changed property `model` (string) + + > Match events created by selected model. When left empty, all models are matched. When an app is selected, all the application's models are matched. + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `app` (string) + + > Match events created by selected application. When left empty, all applications are matched. + + Added enum values: + + - `authentik.sources.kerberos` + - `authentik.enterprise.stages.authenticator_endpoint_gdtc` + + - Changed property `model` (string) + + > Match events created by selected model. When left empty, all models are matched. When an app is selected, all the application's models are matched. + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +##### `GET` /providers/all/{id}/ ###### Return Type: @@ -206,7 +477,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /providers/oauth2/{#123;id}#125;/ +##### `GET` /providers/oauth2/{id}/ ###### Return Type: @@ -229,7 +500,7 @@ Changed response : **200 OK** * Changed property `signing_key` (string) > Key used to sign the tokens. -##### `PUT` /providers/oauth2/{#123;id}#125;/ +##### `PUT` /providers/oauth2/{id}/ ###### Request: @@ -271,7 +542,7 @@ Changed response : **200 OK** * Changed property `signing_key` (string) > Key used to sign the tokens. -##### `PATCH` /providers/oauth2/{#123;id}#125;/ +##### `PATCH` /providers/oauth2/{id}/ ###### Request: @@ -309,7 +580,7 @@ Changed response : **200 OK** * Changed property `signing_key` (string) > Key used to sign the tokens. -##### `GET` /providers/proxy/{#123;id}#125;/ +##### `GET` /providers/proxy/{id}/ ###### Return Type: @@ -324,7 +595,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PUT` /providers/proxy/{#123;id}#125;/ +##### `PUT` /providers/proxy/{id}/ ###### Request: @@ -350,7 +621,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PATCH` /providers/proxy/{#123;id}#125;/ +##### `PATCH` /providers/proxy/{id}/ ###### Request: @@ -372,7 +643,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /providers/rac/{#123;id}#125;/ +##### `GET` /providers/rac/{id}/ ###### Return Type: @@ -387,7 +658,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PUT` /providers/rac/{#123;id}#125;/ +##### `PUT` /providers/rac/{id}/ ###### Request: @@ -413,7 +684,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PATCH` /providers/rac/{#123;id}#125;/ +##### `PATCH` /providers/rac/{id}/ ###### Request: @@ -435,7 +706,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /providers/radius/{#123;id}#125;/ +##### `GET` /providers/radius/{id}/ ###### Return Type: @@ -450,7 +721,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PUT` /providers/radius/{#123;id}#125;/ +##### `PUT` /providers/radius/{id}/ ###### Request: @@ -476,7 +747,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PATCH` /providers/radius/{#123;id}#125;/ +##### `PATCH` /providers/radius/{id}/ ###### Request: @@ -510,7 +781,7 @@ New required properties: * Added property `invalidation_flow` (string) -##### `GET` /providers/scim/{#123;id}#125;/ +##### `GET` /providers/scim/{id}/ ###### Return Type: @@ -520,7 +791,7 @@ Changed response : **200 OK** - Added property `verify_certificates` (boolean) -##### `PUT` /providers/scim/{#123;id}#125;/ +##### `PUT` /providers/scim/{id}/ ###### Request: @@ -536,7 +807,7 @@ Changed response : **200 OK** - Added property `verify_certificates` (boolean) -##### `PATCH` /providers/scim/{#123;id}#125;/ +##### `PATCH` /providers/scim/{id}/ ###### Request: @@ -552,7 +823,7 @@ Changed response : **200 OK** - Added property `verify_certificates` (boolean) -##### `GET` /core/applications/{#123;slug}#125;/ +##### `GET` /core/applications/{slug}/ ###### Return Type: @@ -582,7 +853,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PUT` /core/applications/{#123;slug}#125;/ +##### `PUT` /core/applications/{slug}/ ###### Return Type: @@ -612,7 +883,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PATCH` /core/applications/{#123;slug}#125;/ +##### `PATCH` /core/applications/{slug}/ ###### Return Type: @@ -642,7 +913,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /outposts/instances/{#123;uuid}#125;/ +##### `GET` /outposts/instances/{uuid}/ ###### Return Type: @@ -661,7 +932,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PUT` /outposts/instances/{#123;uuid}#125;/ +##### `PUT` /outposts/instances/{uuid}/ ###### Return Type: @@ -680,7 +951,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PATCH` /outposts/instances/{#123;uuid}#125;/ +##### `PATCH` /outposts/instances/{uuid}/ ###### Return Type: @@ -699,6 +970,93 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. +##### `POST` /policies/event_matcher/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `app` (string) + + > Match events created by selected application. When left empty, all applications are matched. + + Added enum values: + + - `authentik.sources.kerberos` + - `authentik.enterprise.stages.authenticator_endpoint_gdtc` + +- Changed property `model` (string) + + > Match events created by selected model. When left empty, all models are matched. When an app is selected, all the application's models are matched. + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `app` (string) + + > Match events created by selected application. When left empty, all applications are matched. + + Added enum values: + + - `authentik.sources.kerberos` + - `authentik.enterprise.stages.authenticator_endpoint_gdtc` + + - Changed property `model` (string) + + > Match events created by selected model. When left empty, all models are matched. When an app is selected, all the application's models are matched. + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +##### `GET` /policies/event_matcher/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Event Matcher Policy Serializer + + - Changed property `app` (string) + + > Match events created by selected application. When left empty, all applications are matched. + + Added enum values: + + - `authentik.sources.kerberos` + - `authentik.enterprise.stages.authenticator_endpoint_gdtc` + + - Changed property `model` (string) + + > Match events created by selected model. When left empty, all models are matched. When an app is selected, all the application's models are matched. + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + ##### `GET` /providers/all/ ###### Return Type: @@ -718,7 +1076,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /providers/ldap/{#123;id}#125;/ +##### `GET` /providers/ldap/{id}/ ###### Return Type: @@ -733,7 +1091,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PUT` /providers/ldap/{#123;id}#125;/ +##### `PUT` /providers/ldap/{id}/ ###### Request: @@ -759,7 +1117,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PATCH` /providers/ldap/{#123;id}#125;/ +##### `PATCH` /providers/ldap/{id}/ ###### Request: @@ -985,7 +1343,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /providers/saml/{#123;id}#125;/ +##### `GET` /providers/saml/{id}/ ###### Return Type: @@ -1000,7 +1358,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PUT` /providers/saml/{#123;id}#125;/ +##### `PUT` /providers/saml/{id}/ ###### Request: @@ -1026,7 +1384,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PATCH` /providers/saml/{#123;id}#125;/ +##### `PATCH` /providers/saml/{id}/ ###### Request: @@ -1078,7 +1436,7 @@ Changed response : **200 OK** - Added property `verify_certificates` (boolean) -##### `GET` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ +##### `GET` /rac/connection_tokens/{connection_token_uuid}/ ###### Return Type: @@ -1112,7 +1470,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PUT` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ +##### `PUT` /rac/connection_tokens/{connection_token_uuid}/ ###### Return Type: @@ -1146,7 +1504,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PATCH` /rac/connection_tokens/{#123;connection_token_uuid}#125;/ +##### `PATCH` /rac/connection_tokens/{connection_token_uuid}/ ###### Return Type: @@ -1180,7 +1538,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /rac/endpoints/{#123;pbm_uuid}#125;/ +##### `GET` /rac/endpoints/{pbm_uuid}/ ###### Return Type: @@ -1199,7 +1557,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PUT` /rac/endpoints/{#123;pbm_uuid}#125;/ +##### `PUT` /rac/endpoints/{pbm_uuid}/ ###### Return Type: @@ -1218,7 +1576,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `PATCH` /rac/endpoints/{#123;pbm_uuid}#125;/ +##### `PATCH` /rac/endpoints/{pbm_uuid}/ ###### Return Type: @@ -1237,7 +1595,71 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /sources/saml/{#123;slug}#125;/ +##### `POST` /rbac/permissions/assigned_by_roles/{uuid}/assign/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `model` (string) + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +##### `PATCH` /rbac/permissions/assigned_by_roles/{uuid}/unassign/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `model` (string) + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +##### `POST` /rbac/permissions/assigned_by_users/{id}/assign/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `model` (string) + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +##### `PATCH` /rbac/permissions/assigned_by_users/{id}/unassign/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `model` (string) + + Added enum values: + + - `authentik_sources_kerberos.kerberossource` + - `authentik_sources_kerberos.kerberossourcepropertymapping` + - `authentik_sources_kerberos.userkerberossourceconnection` + - `authentik_sources_kerberos.groupkerberossourceconnection` + - `authentik_stages_authenticator_endpoint_gdtc.authenticatorendpointgdtcstage` + +##### `GET` /sources/saml/{slug}/ ###### Return Type: @@ -1256,7 +1678,7 @@ Changed response : **200 OK** - `urn:oasis:names:tc:SAML:2.0:nameid-format:X509SubjectName` -##### `PUT` /sources/saml/{#123;slug}#125;/ +##### `PUT` /sources/saml/{slug}/ ###### Request: @@ -1290,7 +1712,7 @@ Changed response : **200 OK** - `urn:oasis:names:tc:SAML:2.0:nameid-format:X509SubjectName` -##### `PATCH` /sources/saml/{#123;slug}#125;/ +##### `PATCH` /sources/saml/{slug}/ ###### Request: @@ -1388,7 +1810,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /core/user_consent/{#123;id}#125;/ +##### `GET` /core/user_consent/{id}/ ###### Return Type: @@ -1422,7 +1844,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /oauth2/access_tokens/{#123;id}#125;/ +##### `GET` /oauth2/access_tokens/{id}/ ###### Return Type: @@ -1449,7 +1871,7 @@ Changed response : **200 OK** * Changed property `signing_key` (string) > Key used to sign the tokens. -##### `GET` /oauth2/authorization_codes/{#123;id}#125;/ +##### `GET` /oauth2/authorization_codes/{id}/ ###### Return Type: @@ -1476,7 +1898,7 @@ Changed response : **200 OK** * Changed property `signing_key` (string) > Key used to sign the tokens. -##### `GET` /oauth2/refresh_tokens/{#123;id}#125;/ +##### `GET` /oauth2/refresh_tokens/{id}/ ###### Return Type: @@ -1738,6 +2160,18 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. +##### `GET` /rbac/permissions/assigned_by_roles/ + +###### Parameters: + +Changed: `model` in `query` + +##### `GET` /rbac/permissions/assigned_by_users/ + +###### Parameters: + +Changed: `model` in `query` + ##### `POST` /sources/saml/ ###### Request: @@ -1801,6 +2235,135 @@ Changed response : **200 OK** - `urn:oasis:names:tc:SAML:2.0:nameid-format:X509SubjectName` +##### `GET` /stages/identification/{stage_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `captcha_stage` (string) + > When set, adds functionality exactly like a Captcha stage, but baked into the Identification stage. + +##### `PUT` /stages/identification/{stage_uuid}/ + +###### Request: + +Changed content type : `application/json` + +- Added property `captcha_stage` (string) + > When set, adds functionality exactly like a Captcha stage, but baked into the Identification stage. + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `captcha_stage` (string) + > When set, adds functionality exactly like a Captcha stage, but baked into the Identification stage. + +##### `PATCH` /stages/identification/{stage_uuid}/ + +###### Request: + +Changed content type : `application/json` + +- Added property `captcha_stage` (string) + > When set, adds functionality exactly like a Captcha stage, but baked into the Identification stage. + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `captcha_stage` (string) + > When set, adds functionality exactly like a Captcha stage, but baked into the Identification stage. + +##### `GET` /stages/password/{stage_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `backends` (array) + + > Selection of backends to test the password against. + + Changed items (string): + + Added enum value: + + - `authentik.sources.kerberos.auth.KerberosBackend` + +##### `PUT` /stages/password/{stage_uuid}/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `backends` (array) + + > Selection of backends to test the password against. + + Changed items (string): + + Added enum value: + + - `authentik.sources.kerberos.auth.KerberosBackend` + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `backends` (array) + + > Selection of backends to test the password against. + + Changed items (string): + + Added enum value: + + - `authentik.sources.kerberos.auth.KerberosBackend` + +##### `PATCH` /stages/password/{stage_uuid}/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `backends` (array) + + > Selection of backends to test the password against. + + Changed items (string): + + Added enum value: + + - `authentik.sources.kerberos.auth.KerberosBackend` + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `backends` (array) + + > Selection of backends to test the password against. + + Changed items (string): + + Added enum value: + + - `authentik.sources.kerberos.auth.KerberosBackend` + ##### `PUT` /core/transactional/applications/ ###### Request: @@ -1907,7 +2470,7 @@ Changed response : **200 OK** * Added property `invalidation_flow` (string) > Flow used ending the session from a provider. -##### `GET` /flows/executor/{#123;flow_slug}#125;/ +##### `GET` /flows/executor/{flow_slug}/ ###### Return Type: @@ -1953,7 +2516,81 @@ Changed response : **200 OK** - Property `brand_name` (string) -##### `POST` /flows/executor/{#123;flow_slug}#125;/ + Added 'xak-flow-frame' component: + + - Property `flow_info` (object) + + > Contextual flow information for a challenge + + - Property `component` (string) + + - Property `response_errors` (object) + + - Property `url` (string) + + - Property `loading_overlay` (boolean) + + - Property `loading_text` (string) + + Updated `ak-stage-authenticator-validate` component: + + - Changed property `device_challenges` (array) + + Changed items (object): > Single device challenge + + New required properties: + + - `last_used` + + * Added property `last_used` (string) + + Updated `ak-stage-identification` component: + + - Added property `captcha_stage` (object) + + > Site public key + + - Property `flow_info` (object) + + > Contextual flow information for a challenge + + - Property `component` (string) + + - Property `response_errors` (object) + + - Property `pending_user` (string) + + - Property `pending_user_avatar` (string) + + - Property `site_key` (string) + + - Property `js_url` (string) + +##### `POST` /flows/executor/{flow_slug}/ + +###### Request: + +Changed content type : `application/json` + +Added 'xak-flow-frame' component: + +- Property `component` (string) + +Updated `ak-stage-identification` component: + +- Added property `captcha_token` (string) + +Updated `ak-stage-authenticator-validate` component: + +- Changed property `selected_challenge` (object) + + > Single device challenge + + New required properties: + + - `last_used` + + * Added property `last_used` (string) ###### Return Type: @@ -1962,6 +2599,23 @@ Changed response : **200 OK** - Changed content type : `application/json` Added 'ak-stage-session-end' component: + Added 'xak-flow-frame' component: + Updated `ak-stage-authenticator-validate` component: + + - Changed property `device_challenges` (array) + + Changed items (object): > Single device challenge + + New required properties: + + - `last_used` + + * Added property `last_used` (string) + + Updated `ak-stage-identification` component: + + - Added property `captcha_stage` (object) + > Site public key ##### `GET` /oauth2/access_tokens/ @@ -2055,3 +2709,659 @@ Changed response : **200 OK** * Changed property `signing_key` (string) > Key used to sign the tokens. + +##### `POST` /stages/identification/ + +###### Request: + +Changed content type : `application/json` + +- Added property `captcha_stage` (string) + > When set, adds functionality exactly like a Captcha stage, but baked into the Identification stage. + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Added property `captcha_stage` (string) + > When set, adds functionality exactly like a Captcha stage, but baked into the Identification stage. + +##### `GET` /stages/identification/ + +###### Parameters: + +Added: `captcha_stage` in `query` + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > IdentificationStage Serializer + + - Added property `captcha_stage` (string) + > When set, adds functionality exactly like a Captcha stage, but baked into the Identification stage. + +##### `POST` /stages/password/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `backends` (array) + + > Selection of backends to test the password against. + + Changed items (string): + + Added enum value: + + - `authentik.sources.kerberos.auth.KerberosBackend` + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `backends` (array) + + > Selection of backends to test the password against. + + Changed items (string): + + Added enum value: + + - `authentik.sources.kerberos.auth.KerberosBackend` + +##### `GET` /stages/password/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > PasswordStage Serializer + + - Changed property `backends` (array) + + > Selection of backends to test the password against. + + Changed items (string): + + Added enum value: + + - `authentik.sources.kerberos.auth.KerberosBackend` + +### API Changes in 2024.10.1 + +#### What's Changed + +--- + +##### `GET` /providers/rac/{id}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `PUT` /providers/rac/{id}/ + +###### Request: + +Changed content type : `application/json` + +New optional properties: + +- `invalidation_flow` + +* Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `PATCH` /providers/rac/{id}/ + +###### Request: + +Changed content type : `application/json` + +- Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `POST` /providers/rac/ + +###### Request: + +Changed content type : `application/json` + +New optional properties: + +- `invalidation_flow` + +* Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `GET` /providers/rac/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `GET` /rac/connection_tokens/{connection_token_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + + - Changed property `endpoint_obj` (object) + + > Endpoint Serializer + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `PUT` /rac/connection_tokens/{connection_token_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + + - Changed property `endpoint_obj` (object) + + > Endpoint Serializer + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `PATCH` /rac/connection_tokens/{connection_token_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + + - Changed property `endpoint_obj` (object) + + > Endpoint Serializer + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `GET` /rac/endpoints/{pbm_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `PUT` /rac/endpoints/{pbm_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `PATCH` /rac/endpoints/{pbm_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `GET` /sources/kerberos/{slug}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `spnego_server_name` (string) + > Force the use of a specific server name for SPNEGO. Must be in the form HTTP@hostname + +##### `PUT` /sources/kerberos/{slug}/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `spnego_server_name` (string) + > Force the use of a specific server name for SPNEGO. Must be in the form HTTP@hostname + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `spnego_server_name` (string) + > Force the use of a specific server name for SPNEGO. Must be in the form HTTP@hostname + +##### `PATCH` /sources/kerberos/{slug}/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `spnego_server_name` (string) + > Force the use of a specific server name for SPNEGO. Must be in the form HTTP@hostname + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `spnego_server_name` (string) + > Force the use of a specific server name for SPNEGO. Must be in the form HTTP@hostname + +##### `GET` /rac/connection_tokens/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > ConnectionToken Serializer + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + + - Changed property `endpoint_obj` (object) + + > Endpoint Serializer + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `POST` /rac/endpoints/ + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `GET` /rac/endpoints/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Endpoint Serializer + + - Changed property `provider_obj` (object) + + > RACProvider Serializer + + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +##### `POST` /sources/kerberos/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `spnego_server_name` (string) + > Force the use of a specific server name for SPNEGO. Must be in the form HTTP@hostname + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Changed property `spnego_server_name` (string) + > Force the use of a specific server name for SPNEGO. Must be in the form HTTP@hostname + +##### `GET` /sources/kerberos/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > Kerberos Source Serializer + + - Changed property `spnego_server_name` (string) + > Force the use of a specific server name for SPNEGO. Must be in the form HTTP@hostname + +##### `PUT` /core/transactional/applications/ + +###### Request: + +Changed content type : `application/json` + +- Changed property `provider` (object) + + Updated `authentik_providers_rac.racprovider` provider_model: + New optional properties: + + - `invalidation_flow` + + * Deleted property `invalidation_flow` (string) + > Flow used ending the session from a provider. + +### API Changes in 2024.10.2 + +#### What's Changed + +--- + +##### `GET` /stages/captcha/{stage_uuid}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `interactive` (boolean) + +##### `PUT` /stages/captcha/{stage_uuid}/ + +###### Request: + +Changed content type : `application/json` + +- Added property `interactive` (boolean) + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `interactive` (boolean) + +##### `PATCH` /stages/captcha/{stage_uuid}/ + +###### Request: + +Changed content type : `application/json` + +- Added property `interactive` (boolean) + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Added property `interactive` (boolean) + +##### `GET` /flows/executor/{flow_slug}/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Updated `ak-stage-captcha` component: + New required properties: + + - `interactive` + + * Added property `interactive` (boolean) + +##### `POST` /flows/executor/{flow_slug}/ + +###### Request: + +Changed content type : `application/json` + +Updated `ak-provider-oauth2-device-code` component: + +- Changed property `code` (integer -> string) + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + Updated `ak-stage-captcha` component: + New required properties: + + - `interactive` + + * Added property `interactive` (boolean) + +##### `POST` /stages/captcha/ + +###### Request: + +Changed content type : `application/json` + +- Added property `interactive` (boolean) + +###### Return Type: + +Changed response : **201 Created** + +- Changed content type : `application/json` + + - Added property `interactive` (boolean) + +##### `GET` /stages/captcha/ + +###### Return Type: + +Changed response : **200 OK** + +- Changed content type : `application/json` + + - Changed property `results` (array) + + Changed items (object): > CaptchaStage Serializer + + - Added property `interactive` (boolean) diff --git a/website/docs/releases/2024/v2024.2.md b/website/docs/releases/2024/v2024.2.md index ce6830423e..f9ab3595a4 100644 --- a/website/docs/releases/2024/v2024.2.md +++ b/website/docs/releases/2024/v2024.2.md @@ -118,7 +118,7 @@ slug: /releases/2024.2 - **S3 file storage** - Media files can now be stored on S3. Follow the [setup guide](../../install-config/storage-s3.md) to get started. + Media files can now be stored on S3. Follow the [setup guide](../../sys-mgmt/ops/storage-s3.md) to get started. - **_Pretend user exists_ option for Identification stage** diff --git a/website/docs/releases/2024/v2024.8.md b/website/docs/releases/2024/v2024.8.md index 2544f8da07..1e51d2f0af 100644 --- a/website/docs/releases/2024/v2024.8.md +++ b/website/docs/releases/2024/v2024.8.md @@ -300,6 +300,21 @@ helm upgrade authentik authentik/authentik -f values.yaml --version ^2024.8 - web/admin: fix invalid create date shown for MFA registered before date was saved (cherry-pick #11728) (#11729) - web/admin: fix sync single button throwing error (cherry-pick #11727) (#11730) +## Fixed in 2024.8.5 + +- security: fix [CVE-2024-52287](../../security/cves/CVE-2024-52287.md), reported by [@matt1097](https://github.com/matt1097) (#12114) +- security: fix [CVE-2024-52289](../../security/cves/CVE-2024-52289.md), reported by [@PontusHanssen](https://github.com/PontusHanssen) (#12113) +- security: fix [CVE-2024-52307](../../security/cves/CVE-2024-52307.md), reported by [@mgerstner](https://github.com/mgerstner) (#12115) +- web/admin: better footer links (#12004) +- web: bump API Client version (#12118) + +## Fixed in 2024.8.6 + +- providers/oauth2: fix migration (cherry-pick #12138) (#12140) +- providers/oauth2: fix redirect uri input (cherry-pick #12122) (#12128) +- providers/proxy: fix redirect_uri (cherry-pick #12121) (#12126) +- web: bump API Client version (cherry-pick #12129) (#12131) + ## API Changes #### What's New diff --git a/website/docs/security/cves/CVE-2024-52287.md b/website/docs/security/cves/CVE-2024-52287.md new file mode 100644 index 0000000000..05852e9f76 --- /dev/null +++ b/website/docs/security/cves/CVE-2024-52287.md @@ -0,0 +1,27 @@ +# CVE-2024-52287 + +_Reported by [@matt1097](https://github.com/matt1097)_ + +## Insufficient validation of OAuth scopes for client_credentials and device_code grants + +### Summary + +When using the `client_credentials` or `device_code` OAuth grants, it was possible for an attacker to get a token from authentik with scopes that haven't been configured in authentik. + +### Details + +With the `device_code` grant, it was possible to have a user authorize a set of permitted scopes, and then acquire a token with a different set of scopes, including scopes not configured. This token could potentially be used to send requests to another system which trusts tokens signed by authentik and execute malicious actions on behalf of the user. + +With the `client_credentials` grant, because there is no user authorization process, authentik would not validate the scopes requested for the token, allowing tokens to be issued with scopes not configured in authentik. These could similarly be used to execute malicious actions in other systems. + +There is no workaround for this issue; however this issue could only be exploited if an attacker possesses a valid set of OAuth2 `client_id` and `client_secret` credentials, and has the knowledge of another system that trusts tokens issued by authentik and what scopes it checks for. + +### Patches + +authentik 2024.8.5 and 2024.10.3 fix this issue. + +### For more information + +If you have any questions or comments about this advisory: + +- Email us at [security@goauthentik.io](mailto:security@goauthentik.io) diff --git a/website/docs/security/cves/CVE-2024-52289.md b/website/docs/security/cves/CVE-2024-52289.md new file mode 100644 index 0000000000..c9443d64c9 --- /dev/null +++ b/website/docs/security/cves/CVE-2024-52289.md @@ -0,0 +1,30 @@ +# CVE-2024-52289 + +_Reported by [@PontusHanssen](https://github.com/PontusHanssen)_ + +## Insecure default configuration for OAuth2 Redirect URIs + +### Summary + +Redirect URIs in the OAuth2 provider in authentik are checked by RegEx comparison. +When no Redirect URIs are configured in a provider, authentik will automatically use the first `redirect_uri` value received as an allowed redirect URI, without escaping characters that have a special meaning in RegEx. Similarly, the documentation did not take this into consideration either. + +Given a provider with the Redirect URIs set to `https://foo.example.com`, an attacker can register a domain `fooaexample.com`, and it will correctly pass validation. + +### Patches + +authentik 2024.8.5 and 2024.10.3 fix this issue. + +The patched versions remedy this issue by changing the format that the Redirect URIs are saved in, allowing for the explicit configuration if the URL should be checked strictly or as a RegEx. This means that these patches include a backwards-incompatible database change and API change. + +Manual action _is required_ if any provider is intended to use RegEx for Redirect URIs because the migration will set the comparison type to strict for every Redirect URI. + +### Workarounds + +When configuring OAuth2 providers, make sure to escape any wildcard characters that are not intended to function as a wildcard, for example replace `.` with `\.`. + +### For more information + +If you have any questions or comments about this advisory: + +- Email us at [security@goauthentik.io](mailto:security@goauthentik.io) diff --git a/website/docs/security/cves/CVE-2024-52307.md b/website/docs/security/cves/CVE-2024-52307.md new file mode 100644 index 0000000000..978d7cc015 --- /dev/null +++ b/website/docs/security/cves/CVE-2024-52307.md @@ -0,0 +1,36 @@ +# CVE-2024-52307 + +_Reported by [@mgerstner](https://github.com/mgerstner)_ + +## Timing attack due to a lack of constant time comparison for metrics view + +### Summary + +Due to the usage of a non-constant time comparison for the `/-/metrics/` endpoint it was possible to brute-force the `SECRET_KEY`, which is used to authenticate the endpoint. The `/-/metrics/` endpoint returns Prometheus metrics and is not intended to be accessed directly, as the Go proxy running in the authentik server container fetches data from this endpoint and serves it on a separate port (9300 by default), which can be scraped by Prometheus without being exposed publicly. + +### Patches + +authentik 2024.8.5 and 2024.10.3 fix this issue, for other versions the workaround below can be used. + +### Impact + +With enough attempts the `SECRET_KEY` of the authentik installation can be brute-forced, which can be used to sign new or modify existing cookies. + +### Workarounds + +Since the `/-/metrics/` endpoint is not intended to be accessed publicly, requests to the endpoint can be blocked by the reverse proxy/load balancer used in conjunction with authentik. + +For example for nginx: + +``` +location /-/metrics/ { + deny all; + return 404; +} +``` + +### For more information + +If you have any questions or comments about this advisory: + +- Email us at [security@goauthentik.io](mailto:security@goauthentik.io). diff --git a/website/docs/security/security-hardening.md b/website/docs/security/security-hardening.md index 0c6bc18ee8..6279c4f563 100644 --- a/website/docs/security/security-hardening.md +++ b/website/docs/security/security-hardening.md @@ -4,6 +4,17 @@ title: Hardening authentik While authentik is secure out of the box, you can take steps to further increase the security of an authentik instance. As everyone knows, there is a consequential tradeoff between security and convenience. All of these hardening practices have an impact on the user experience and should only be applied knowing this tradeoff. +### Password policy + +authentik's default Password policy complies with the [NIST SP 800-63 Digital Identity Guidelines](https://pages.nist.gov/800-63-4/sp800-63b.html#password). + +However, for further hardening compliant to the NIST Guidelines, consider + +- setting the length of the password to a minimum of 15 characters, and +- enabling the "Check haveibeenpwned.com" blocklist comparison (note that this cannot be used on Air-gapped instances) + +For further options, see [Password policy](../customize/policies/index.md#password-policy). + ### Expressions [Expressions](../customize/policies/expression.mdx) allow super-users and other highly privileged users to create custom logic within authentik to modify its behaviour. Editing/creating these expressions is, by default, limited to super-users and any related events are fully logged. @@ -36,3 +47,32 @@ To prevent any user from creating/editing CAPTCHA stages block API requests to t - `/api/v3/managed/blueprints*` With these restrictions in place, CAPTCHA stages can only be edited using [Blueprints on the file system](../customize/blueprints/index.md#storage---file). + +### Content Security Policy (CSP) + +:::caution +Setting up CSP incorrectly might result in the client not loading necessary third-party code. +::: + +:::caution +In some cases, a CSP header will already be set by authentik (for example, in [user uploaded content](https://github.com/goauthentik/authentik/pull/12092/)). Do not overwrite an already existing header as doing so might result in vulnerabilities. Instead, add a new CSP header. +::: + +Content Security Policy (CSP) is a security standard that mitigates the risk of content injection vulnerabilities. authentik doesn't currently support CSP natively, so setting it up depends on your installation. We recommend using a [reverse proxy](../install-config/reverse-proxy.md) to set a CSP header. + +authentik requires at least the following allowed locations: + +``` +default-src 'self'; +img-src 'https:' 'http:' 'data:'; +object-src 'none'; +style-src 'self' 'unsafe-inline'; # Required due to Lit/ShadowDOM +script-src 'self' 'unsafe-inline'; # Required for generated scripts +``` + +Your use case might require more allowed locations for various directives, e.g. + +- when using a CAPTCHA service +- when using Sentry +- when using any custom JavaScript in a prompt stage +- when using Spotlight Sidecar for development diff --git a/website/docs/install-config/geoip.mdx b/website/docs/sys-mgmt/ops/geoip.mdx similarity index 96% rename from website/docs/install-config/geoip.mdx rename to website/docs/sys-mgmt/ops/geoip.mdx index 79ad9b9a5f..51af7304f3 100644 --- a/website/docs/install-config/geoip.mdx +++ b/website/docs/sys-mgmt/ops/geoip.mdx @@ -1,6 +1,6 @@ # GeoIP -authentik supports GeoIP to add additional information to login/authorization/enrollment requests. Additionally, a [GeoIP policy](../customize/policies/index.md#geoip-policy) can be used to make policy decisions based on the lookup result. +authentik supports GeoIP to add additional information to login/authorization/enrollment requests. Additionally, a [GeoIP policy](../../customize/policies/index.md#geoip-policy) can be used to make policy decisions based on the lookup result. ### Configuration diff --git a/website/docs/install-config/storage-s3.md b/website/docs/sys-mgmt/ops/storage-s3.md similarity index 97% rename from website/docs/install-config/storage-s3.md rename to website/docs/sys-mgmt/ops/storage-s3.md index f346a0a750..abef1597a4 100644 --- a/website/docs/install-config/storage-s3.md +++ b/website/docs/sys-mgmt/ops/storage-s3.md @@ -83,7 +83,7 @@ The `ENDPOINT` setting specifies how authentik talks to the S3 provider. The `CUSTOM_DOMAIN` setting specifies how URLs are constructed to be shown on the web interface. For example, an object stored at `application-icons/application.png` with a `CUSTOM__DOMAIN` setting of `s3.provider/authentik-media` will result in a URL of `https://s3.provider/authentik-media/application-icons/application.png`. You can also use subdomains for your buckets depending on what your S3 provider offers: `authentik-media.s3.provider`. Whether HTTPS is used is controlled by `AUTHENTIK_STORAGE__MEDIA__S3__SECURE_URLS`, which defaults to true. -For more control over settings, refer to the [configuration reference](./configuration/configuration.mdx#media-storage-settings) +For more control over settings, refer to the [configuration reference](../../install-config/configuration/configuration.mdx#media-storage-settings) ### Migrating between storage backends diff --git a/website/docs/sys-mgmt/settings.md b/website/docs/sys-mgmt/settings.md index 0c79459095..5173cfe11f 100644 --- a/website/docs/sys-mgmt/settings.md +++ b/website/docs/sys-mgmt/settings.md @@ -35,7 +35,7 @@ Enable the ability for users to change their Email address, defaults to `false`. ### Allow users to change username -Enable the ability for users to change their Usernames, defaults to `false`. +Enable the ability for users to change their usernames, defaults to `false`. ### Event retention @@ -43,15 +43,11 @@ Configure how long [Events](./events/index.md) are retained for within authentik ### Footer links -This option configures the footer links on the flow executor pages. +This option allows you to add linked text (footer links) on the bottom of flow pages. You can also use this setting to display additional static text to the flow pages, even if no URL is provided. -The setting can be used as follows: +The URL is limited to web and email addresses. If the name is left blank, the URL will be shown. -```json -[{ "name": "Link Name", "href": "https://goauthentik.io" }] -``` - -Starting with authentik 2024.6.1, the `href` attribute is optional, and this option can be used to add additional text to the flow executor pages. +This is a global setting. All flow pages that are rendered by the [Flow Executor](../add-secure-apps/flows-stages/flow/executors/if-flow.md) will display the footer links. ### GDPR compliance diff --git a/website/integrations/services/jellyfin/index.md b/website/integrations/services/jellyfin/index.md index 387ddf3c83..a93972b53c 100644 --- a/website/integrations/services/jellyfin/index.md +++ b/website/integrations/services/jellyfin/index.md @@ -121,9 +121,9 @@ Set the launch URL to `https://jellyfin.company/sso/OID/start/authentik` ### Jellyfin Configuration -1. Navigate to your Jellyfin installation and log in with the admin account or currently configured local admin. -2. Open the **Administrator dashboard** and go to the **Plugins** section. -3. Then click the **Repositories** section at the top and add the below repository with the name of SSO-Auth +1. Log in to Jellyfin with an admin account and navigate to the **Admin Dashboard** by selecting your profile icon in the top right, then clicking **Dashboard**. +2. Go to **Dashboard > Plugins > Catalog**. +3. Click the gear icon in the top left, then click **+** to add a new repository. Use the following URL and name it "SSO-Auth": ``` https://raw.githubusercontent.com/9p4/jellyfin-plugin-sso/manifest-release/manifest.json diff --git a/website/integrations/services/nextcloud/index.md b/website/integrations/services/nextcloud/index.md index 4e333e2166..57493ea599 100644 --- a/website/integrations/services/nextcloud/index.md +++ b/website/integrations/services/nextcloud/index.md @@ -14,7 +14,11 @@ sidebar_label: Nextcloud > -- https://en.wikipedia.org/wiki/Nextcloud :::caution -This setup only works, when Nextcloud is running with HTTPS enabled. See [here](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/reverse_proxy_configuration.html?highlight=overwriteprotocol#overwrite-parameters) on how to configure this. +If you require [Server Side Encryption](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/encryption_configuration.html), you must use LDAP. OpenID and SAML will cause **irrevocable data loss**. Nextcloud Server-Side Encryption requires access to the user's cleartext password, which Nextcloud only has access to when using LDAP as the user enters their password directly into Nextcloud. +::: + +:::caution +This setup only works when Nextcloud is running with HTTPS enabled. See [here](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/reverse_proxy_configuration.html?highlight=overwriteprotocol#overwrite-parameters) on how to configure this. ::: :::info @@ -23,10 +27,11 @@ In case something goes wrong with the configuration, you can use the URL `http:/ ## Authentication -There are 2 ways to setup single sign on (SSO) for Nextcloud: +There are 3 ways to setup single sign on (SSO) for Nextcloud: - [via OIDC Connect (OAuth)](#openid-connect-auth) - [via SAML](#saml-auth) +- via LDAP outpost (required for SSE, not covered in this documentation) ### OpenID Connect auth diff --git a/website/integrations/services/vmware-vcenter/authentik_setup.png b/website/integrations/services/vmware-vcenter/authentik_setup.png deleted file mode 100644 index cd5f4ff0d1..0000000000 Binary files a/website/integrations/services/vmware-vcenter/authentik_setup.png and /dev/null differ diff --git a/website/integrations/services/vmware-vcenter/index.md b/website/integrations/services/vmware-vcenter/index.md index 8095fc2962..f5afede3c8 100644 --- a/website/integrations/services/vmware-vcenter/index.md +++ b/website/integrations/services/vmware-vcenter/index.md @@ -14,96 +14,83 @@ sidebar_label: VMware vCenter > -- https://en.wikipedia.org/wiki/VCenter :::caution -This requires authentik 0.10.3 or newer. +Integration with authentik requires VMware vCenter 8.03 or newer. ::: -:::caution -This requires VMware vCenter 7.0.0 or newer. -::: - -:::note -It seems that the vCenter still needs to be joined to the Active Directory Domain, otherwise group membership does not work correctly. We're working on a fix for this, for the meantime your vCenter should be part of your Domain. -::: - -## Preparation - -The following placeholders will be used: +The following placeholders will be used in the examples below: - `vcenter.company` is the FQDN of the vCenter server. - `authentik.company` is the FQDN of the authentik install. -Since vCenter only allows OpenID-Connect in combination with Active Directory/LDAP, it is recommended to have authentik sync with the same Active Directory. You also have the option of connecting to an authentik managed LDAP outpost for user management. +## authentik configuration -### Step 1 +Create an application and an OAuth2/OpenID provider, using the authentik Wizard. -Under _Customization_ -> _Property Mappings_, create a _Scope Mapping_. Give it a name like "OIDC-Scope-VMware-vCenter". Set the scope name to `openid` and the expression to the following +1. Log into authentik as an admin, and navigate to **Applications --> Applications**, and then click **Create with Wizard**. -```python -return { - "domain": "", -} -``` +2. In the Wizard, follow the prompts to create an application and its provider. -If you are using an authentik managed LDAP outpost you can use the following expression in your property mapping. This will correctly return the `groups` claim as a list of LDAP DNs instead of their names. + Create the application with these settings: -```python -ldap_base_dn = "DC=ldap,DC=goauthentik,DC=io" -groups = [] -for group in request.user.ak_groups.all(): - group_dn = f"CN={group.name},dc=groups,{ldap_base_dn}" - groups.append(group_dn) -return { - "name": request.user.name, - "email": request.user.email, - "given_name": request.user.name, - "preferred_username": request.user.username, - "nickname": request.user.username, - "groups": groups, - "domain": "ldap.goauthentik.io" -} -``` + - Select OIDC as the provider type. + - Ensure that the **Redirect URI Setting** is left empty. -### Step 2 + Create the provider with these settings: -:::note -If your Active Directory Schema is the same as your Email address schema, skip to Step 3. -::: + - Redirect URI: `https://vcenter.company/ui/login/oauth2/authcode` + - Ensure that a signing key is selected, for example the Self-signed Certificate. -Under _Sources_, click _Edit_ and ensure that "authentik default Active Directory Mapping: userPrincipalName" has been added to your source. +3. Click **Submit** to create the application and provider, and then click **Close** to close the Wizard. -### Step 3 +Optionally, you can use a policy to apply access restrictions to the application. -Under _Providers_, create an OAuth2/OpenID provider with these settings: +## vCenter configuration -- Redirect URI: `https://vcenter.company/ui/login/oauth2/authcode` -- Sub Mode: If your Email address Schema matches your UPN, select "Based on the User's Email...", otherwise select "Based on the User's UPN...". If you are using authentik's managed LDAP outpost, chose "Based on the User's username" -- Scopes: Select the Scope Mapping you've created in Step 1 -- Signing Key: Select any available key +1. Log in to vCenter with your local Administrator account. Using the menu in the left navigation bar, navigate to **Administration -> Single Sign-on -> Configuration**. -![](./authentik_setup.png) +2. Click **Change Provider** in the top-right corner, and then select **Okta** from the drop-down list. -### Step 4 +3. In the wizard, click **Run Prechecks**, select the confirmation box, and then click **Next** -Create an application which uses this provider. Optionally apply access restrictions to the application. + - Enter the **Directory Name**. For example `authentik` or any other name. + - Add a **Domain Name**. For example `authentik.company`. + - Click on the Plus (+) sign to show the default domain name. -Set the Launch URL to `https://vcenter.company/ui/login/oauth2`. This will skip vCenter's User Prompt and directly log you in. +4. Click **Next**. -:::caution -This Launch URL only works for vCenter < 7.0u2. If you're running 7.0u2 or later, set the launch URL to `https://vcenter.company/ui/login` -::: +5. On the OpenID Connect page, enter the following values: -## vCenter Setup + - Set **Identity Provider Name** to `authentik`. + - Set **Client Identifier** to the client ID from authentik. + - Set **Shared secret** to the client secret from authentik. + - Set **OpenID Address** to the _OpenID Configuration URL_ from authentik. -Login as local Administrator account (most likely ends with vsphere.local). Using the Menu in the Navigation bar, navigate to _Administration -> Single Sing-on -> Configuration_. +6. Click **Next**, and then **Finish**. -Click on _Change Identity Provider_ in the top-right corner. +7. On the **Single Sign On -> Configuration** page, in the **User Provisioning** area, take the following steps: -In the wizard, select "Microsoft ADFS" and click Next. + - Copy the **Tenant URL** and save to a safe place. + - Click on **Generate** to generate a SCIM token. + - Click **Generate** in the newly opened modal box. + - Copy the token and save to a safe place. -Fill in the Client Identifier and Shared Secret from the Provider in authentik. For the OpenID Address, click on _View Setup URLs_ in authentik, and copy the OpenID Configuration URL. +8. Return to the authentik Admin interface. -On the next page, fill in your Active Directory Connection Details. These should be similar to what you have set in authentik. + - Create a SCIM provider with the name `vcenter-scim`. + - Paste the Tenant URL into **URL** field for the provider. + - Paste the token you saved into the **Token** field. + - If your vCenter certificate is self-signed (which is the default), toggle **Verify SCIM server's certificates** to be off. + - Configure options under `User filtering` to your needs. + - Save the provider. + - Edit the application that you created earlier and select this newly created SCIM provider as the backchannel provider. + - Navigate to the provider and trigger a sync. -![](./vcenter_post_setup.png) +9. Return to vCenter. -If your vCenter was already setup with LDAP beforehand, your Role assignments will continue to work. + - Navigate to **Administration -> Access Control -> Global Permissions**. + - Click **Add**. + - Select the Domain created above from the dropdown. + - Enter the name of the group to which you want to assign permissions. + - Select the role. + +10. Click **Save**. diff --git a/website/integrations/services/vmware-vcenter/vcenter_post_setup.png b/website/integrations/services/vmware-vcenter/vcenter_post_setup.png deleted file mode 100644 index 91536815ab..0000000000 Binary files a/website/integrations/services/vmware-vcenter/vcenter_post_setup.png and /dev/null differ diff --git a/website/netlify.toml b/website/netlify.toml index de729ecb93..dd410c9fc2 100644 --- a/website/netlify.toml +++ b/website/netlify.toml @@ -1073,3 +1073,19 @@ to = "/docs/developer-docs/translation" status = 302 force = true + + +# Moved GeoIP and S3 under System Management/user_basic_operations + +[[redirects]] + from = "/docs/install-config/storage-s3" + to = "/docs/sys-mgmt/ops/storage-s3" + status = 302 + force = true + + +[[redirects]] + from = "/docs/install-config/geoip" + to = "/docs/sys-mgmt/ops/geoip" + status = 302 + force = true diff --git a/website/package-lock.json b/website/package-lock.json index f5e293db97..c56f7ba18e 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -9,18 +9,18 @@ "version": "0.0.0", "license": "MIT", "dependencies": { - "@docusaurus/core": "^3.5.2", - "@docusaurus/plugin-client-redirects": "^3.5.2", - "@docusaurus/plugin-content-docs": "^3.5.2", - "@docusaurus/preset-classic": "^3.5.2", - "@docusaurus/theme-common": "^3.5.2", - "@docusaurus/theme-mermaid": "^3.5.2", + "@docusaurus/core": "^3.6.2", + "@docusaurus/plugin-client-redirects": "^3.6.2", + "@docusaurus/plugin-content-docs": "^3.6.2", + "@docusaurus/preset-classic": "^3.6.2", + "@docusaurus/theme-common": "^3.6.2", + "@docusaurus/theme-mermaid": "^3.6.2", "@mdx-js/react": "^3.1.0", "clsx": "^2.1.1", "disqus-react": "^1.1.5", - "docusaurus-plugin-openapi-docs": "^4.1.0", - "docusaurus-theme-openapi-docs": "^4.1.0", - "postcss": "^8.4.47", + "docusaurus-plugin-openapi-docs": "^4.2.0", + "docusaurus-theme-openapi-docs": "^4.2.0", + "postcss": "^8.4.49", "prism-react-renderer": "^2.4.0", "react": "^18.3.1", "react-before-after-slider-component": "^1.1.8", @@ -32,7 +32,7 @@ }, "devDependencies": { "@docusaurus/module-type-aliases": "^3.3.2", - "@docusaurus/tsconfig": "^3.5.2", + "@docusaurus/tsconfig": "^3.6.2", "@docusaurus/types": "^3.3.2", "@types/react": "^18.3.12", "cross-env": "^7.0.3", @@ -45,31 +45,31 @@ } }, "node_modules/@algolia/autocomplete-core": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", - "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz", + "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", + "@algolia/autocomplete-shared": "1.17.7" } }, "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", - "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz", + "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==", "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-shared": "1.17.7" }, "peerDependencies": { "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", - "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz", + "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==", "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-shared": "1.17.7" }, "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", @@ -77,9 +77,9 @@ } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", - "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz", + "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" @@ -106,6 +106,20 @@ "@algolia/cache-common": "4.24.0" } }, + "node_modules/@algolia/client-abtesting": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.15.0.tgz", + "integrity": "sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/client-account": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", @@ -166,10 +180,23 @@ } }, "node_modules/@algolia/client-common": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.0.2.tgz", - "integrity": "sha512-wXZn4Ne+oFr1vaJuT2El5cbobm4sUgYqWiiWyy4QDr8AIoUfROtCkV7YhwZLzmZRBfn6ptPB5MB8ely7iFZXnw==", - "peer": true, + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.15.0.tgz", + "integrity": "sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-insights": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.15.0.tgz", + "integrity": "sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, "engines": { "node": ">= 14.0.0" } @@ -193,15 +220,29 @@ "@algolia/transporter": "4.24.0" } }, - "node_modules/@algolia/client-search": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.0.2.tgz", - "integrity": "sha512-dOAekvG7S85n1x3Nibc1UUADQCZpFXP7m/bYoxzIQe2+bGKAPa2zQ4s9E1H+qIDiWa7EzhVfwGlSxRi9S2SeVg==", - "peer": true, + "node_modules/@algolia/client-query-suggestions": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.15.0.tgz", + "integrity": "sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==", "dependencies": { - "@algolia/client-common": "5.0.2", - "@algolia/requester-browser-xhr": "5.0.2", - "@algolia/requester-node-http": "5.0.2" + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/client-search": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.15.0.tgz", + "integrity": "sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" }, "engines": { "node": ">= 14.0.0" @@ -212,6 +253,20 @@ "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, + "node_modules/@algolia/ingestion": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.15.0.tgz", + "integrity": "sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/logger-common": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", @@ -225,6 +280,20 @@ "@algolia/logger-common": "4.24.0" } }, + "node_modules/@algolia/monitoring": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.15.0.tgz", + "integrity": "sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, "node_modules/@algolia/recommend": { "version": "4.24.0", "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", @@ -279,12 +348,11 @@ } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.0.2.tgz", - "integrity": "sha512-GrLWa9jo+tqnieXtpdUMM6NHZV/bDbAJ8uBgyDF5PpaKtk44/3vQk8LVcKQsT3/nnVb/5T+AprNbJmIjsVaRqA==", - "peer": true, + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.15.0.tgz", + "integrity": "sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==", "dependencies": { - "@algolia/client-common": "5.0.2" + "@algolia/client-common": "5.15.0" }, "engines": { "node": ">= 14.0.0" @@ -295,13 +363,23 @@ "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz", "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==" }, - "node_modules/@algolia/requester-node-http": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.0.2.tgz", - "integrity": "sha512-6Kt1MQcdCyefs//ie3JtcDo/73QRwHoA1JX4J5t1yZp0W3J3o1QPb6mueFswJ+nHg+cVbSpbsL2xamtZ/rjj7w==", - "peer": true, + "node_modules/@algolia/requester-fetch": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.15.0.tgz", + "integrity": "sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==", "dependencies": { - "@algolia/client-common": "5.0.2" + "@algolia/client-common": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@algolia/requester-node-http": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.15.0.tgz", + "integrity": "sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==", + "dependencies": { + "@algolia/client-common": "5.15.0" }, "engines": { "node": ">= 14.0.0" @@ -348,12 +426,12 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "license": "MIT", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -361,30 +439,28 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz", - "integrity": "sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==", - "license": "MIT", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.5.tgz", - "integrity": "sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.5", - "@babel/parser": "^7.23.5", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.5", - "@babel/types": "^7.23.5", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -409,53 +485,51 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.5.tgz", - "integrity": "sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==", - "license": "MIT", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dependencies": { - "@babel/types": "^7.24.5", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -467,25 +541,21 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dependencies": { - "@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.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", "semver": "^6.3.1" }, "engines": { @@ -499,19 +569,17 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", "semver": "^6.3.1" }, "engines": { @@ -531,10 +599,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "license": "MIT", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", @@ -546,75 +613,38 @@ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dependencies": { - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dependencies": { - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.5.tgz", - "integrity": "sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-simple-access": "^7.24.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/helper-validator-identifier": "^7.24.5" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -624,35 +654,32 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.5.tgz", - "integrity": "sha512-xjNLDopRzW2o6ba0gKbkZq5YWEBaK3PCyTOY1K2P/O07LGMhMqlMXPxwN4S5/RhWuCobT8z0jrlKGlYmeR1OhQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -662,14 +689,13 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -679,187 +705,85 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.5.tgz", - "integrity": "sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", "dependencies": { - "@babel/types": "^7.24.5" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.5.tgz", - "integrity": "sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==", - "license": "MIT", - "dependencies": { - "@babel/types": "^7.24.5" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.5.tgz", - "integrity": "sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", - "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.5", - "@babel/types": "^7.24.5" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.5.tgz", - "integrity": "sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.5", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/@babel/parser": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.5.tgz", - "integrity": "sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==", - "license": "MIT", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "dependencies": { + "@babel/types": "^7.26.0" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -867,13 +791,41 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "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.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", - "license": "MIT", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "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.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -883,14 +835,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -899,6 +850,21 @@ "@babel/core": "^7.13.0" } }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "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", @@ -911,50 +877,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -962,25 +888,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-import-assertions": { - "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==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -990,12 +903,11 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "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==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1004,139 +916,12 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-jsx": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", + "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1146,12 +931,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", + "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1177,12 +961,11 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1192,15 +975,13 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz", - "integrity": "sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1210,14 +991,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1227,12 +1007,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1242,12 +1021,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.0.tgz", - "integrity": "sha512-cOsrbmIOXmf+5YbL99/S49Y3j46k/T16b9ml8bm9lP6N9US5iQ2yBK7gpui1pg0V/WMcXdkfKbTb7HXq9u+v4g==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1257,13 +1035,12 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1273,14 +1050,12 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1290,19 +1065,15 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@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.9", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", "globals": "^11.1.0" }, "engines": { @@ -1313,13 +1084,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1329,12 +1099,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz", - "integrity": "sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1344,13 +1113,12 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1360,12 +1128,11 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1374,14 +1141,27 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", - "license": "MIT", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1391,13 +1171,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1407,13 +1186,11 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1423,12 +1200,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1438,14 +1215,13 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1455,13 +1231,11 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1471,12 +1245,11 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1486,13 +1259,11 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1502,12 +1273,11 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1517,13 +1287,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.0.tgz", - "integrity": "sha512-xWT5gefv2HGSm4QHtgc1sYPbseOyf+FFDo2JbpE25GWl5BqTGO9IMwTYJRoIdjsF85GE+VegHxSCUt5EvoYTAw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1533,14 +1302,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1550,15 +1318,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.0.tgz", - "integrity": "sha512-qBej6ctXZD2f+DhlOC9yO47yEYgUh5CZNz/aBoH4j/3NOlRfJXJbY7xDQCqQVf9KbrqGzIWER1f23doHGrIHFg==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1568,13 +1335,12 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1584,13 +1350,12 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1600,12 +1365,11 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1615,13 +1379,11 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1631,13 +1393,11 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1647,16 +1407,13 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1666,13 +1423,12 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1682,13 +1438,11 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1698,14 +1452,12 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.0.tgz", - "integrity": "sha512-sBBGXbLJjxTzLBF5rFWaikMnOGOk/BmK6vVByIdEggZ7Vn6CvWXZyRkkLFK6WE0IF8jSliyOkUN6SScFgzCM0g==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1715,12 +1467,11 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1730,13 +1481,12 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1746,15 +1496,13 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1764,12 +1512,11 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1794,12 +1541,11 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.22.5.tgz", - "integrity": "sha512-PVk3WPYudRF5z4GKMEYUrLjPl38fJSKNaEOkFuoprioowGuWN6w2RKznuFNSlJx7pzzXXStPUnNSOEO0jL5EVw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", + "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1809,16 +1555,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.22.15.tgz", - "integrity": "sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", + "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/types": "^7.22.15" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1828,12 +1573,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", + "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" + "@babel/plugin-transform-react-jsx": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1843,13 +1587,12 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.22.5.tgz", - "integrity": "sha512-gP4k85wx09q+brArVinTXhWiyzLl9UpmGva0+mWyKxk6JZequ05x3eUcIUE+FyttPKJFRRVtAvQaJ6YF9h1ZpA==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", + "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1859,12 +1602,11 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.25.9", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1874,13 +1616,27 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-reserved-words": { - "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==", - "license": "MIT", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1890,16 +1646,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz", - "integrity": "sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "engines": { @@ -1913,18 +1668,16 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1934,13 +1687,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1950,12 +1702,11 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1965,12 +1716,11 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1980,12 +1730,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1995,15 +1744,15 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", - "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", + "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-syntax-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2013,12 +1762,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2028,13 +1776,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2044,13 +1791,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2060,13 +1806,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "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==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2076,90 +1821,78 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.2.tgz", - "integrity": "sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", "dependencies": { - "@babel/compat-data": "^7.23.2", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", "@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.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", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@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.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@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.10", - "@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/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.23.0", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "engines": { @@ -2193,17 +1926,16 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.22.15.tgz", - "integrity": "sha512-Csy1IJ2uEh/PecCBXXoZGAZBeCATTuePzCSB7dLYWS0vOEj6CNpjxIhW4duWwZodBNueH7QO14WbGn8YyeuN9w==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz", + "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.22.5", - "@babel/plugin-transform-react-jsx": "^7.22.15", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.22.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-transform-react-display-name": "^7.25.9", + "@babel/plugin-transform-react-jsx": "^7.25.9", + "@babel/plugin-transform-react-jsx-development": "^7.25.9", + "@babel/plugin-transform-react-pure-annotations": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2213,16 +1945,15 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.2.tgz", - "integrity": "sha512-u4UJc1XsS1GhIGteM8rnGiIvf9rJpiVgMEeCnwlLA7WJPC+jcXWJAGxYmeqs5hOZD8BbAfnV5ezBOxQbb4OUxA==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", + "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-typescript": "^7.22.15" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-syntax-jsx": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-typescript": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2231,17 +1962,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "license": "MIT" - }, "node_modules/@babel/runtime": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", - "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -2250,10 +1974,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.2.tgz", - "integrity": "sha512-54cIh74Z1rp4oIjsHjqN+WM4fMyCBYe+LpZ9jWm51CZ1fbH3SkAzQD/3XLoNkjbJ7YEmjobLXyvQrFypRHOrXw==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz", + "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==", "dependencies": { "core-js-pure": "^3.30.2", "regenerator-runtime": "^0.14.0" @@ -2263,33 +1986,28 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.5.tgz", - "integrity": "sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==", - "license": "MIT", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "dependencies": { - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.24.5", - "@babel/parser": "^7.24.5", - "@babel/types": "^7.24.5", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2298,14 +2016,12 @@ } }, "node_modules/@babel/types": { - "version": "7.24.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.5.tgz", - "integrity": "sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==", - "license": "MIT", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dependencies": { - "@babel/helper-string-parser": "^7.24.1", - "@babel/helper-validator-identifier": "^7.24.5", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -2327,29 +2043,1084 @@ "node": ">=0.1.90" } }, + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz", + "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz", + "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.0.tgz", + "integrity": "sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.6.tgz", + "integrity": "sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/color-helpers": "^5.0.1", + "@csstools/css-calc": "^2.1.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", + "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz", + "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.6.tgz", + "integrity": "sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-function": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.6.tgz", + "integrity": "sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz", + "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.5.tgz", + "integrity": "sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.6.tgz", + "integrity": "sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gradients-interpolation-method": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.6.tgz", + "integrity": "sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.6.tgz", + "integrity": "sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz", + "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-initial": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz", + "integrity": "sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz", + "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-light-dark-function": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz", + "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-float-and-clear": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", + "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overflow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", + "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overscroll-behavior": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", + "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-resize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", + "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-viewport-units": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz", + "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-minmax": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.5.tgz", + "integrity": "sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz", + "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", + "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz", + "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.6.tgz", + "integrity": "sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz", + "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-random-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.1.tgz", + "integrity": "sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-relative-color-syntax": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.6.tgz", + "integrity": "sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", + "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-sign-functions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.0.tgz", + "integrity": "sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.5.tgz", + "integrity": "sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz", + "integrity": "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/color-helpers": "^5.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.5.tgz", + "integrity": "sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-calc": "^2.1.0", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", + "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/@docsearch/css": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.1.tgz", - "integrity": "sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg==" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.0.tgz", + "integrity": "sha512-pieeipSOW4sQ0+bE5UFC51AOZp9NGxg89wAlZ1BAQFaiRAGK1IKUaPQ0UGZeNctJXyqZ1UvBtOQh2HH+U5GtmA==" }, "node_modules/@docsearch/react": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.1.tgz", - "integrity": "sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw==", + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.0.tgz", + "integrity": "sha512-WnFK720+iwTVt94CxY3u+FgX6exb3BfN5kE9xUY6uuAH/9W/UFboBZFLlrw/zxFRHoHZCOXRtOylsXF+6LHI+Q==", "dependencies": { - "@algolia/autocomplete-core": "1.9.3", - "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.6.1", - "algoliasearch": "^4.19.1" + "@algolia/autocomplete-core": "1.17.7", + "@algolia/autocomplete-preset-algolia": "1.17.7", + "@docsearch/css": "3.8.0", + "algoliasearch": "^5.12.0" }, "peerDependencies": { "@types/react": ">= 16.8.0 < 19.0.0", @@ -2372,58 +3143,169 @@ } } }, - "node_modules/@docusaurus/core": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.5.2.tgz", - "integrity": "sha512-4Z1WkhCSkX4KO0Fw5m/Vuc7Q3NxBG53NE5u59Rs96fWkMPZVSrzEPP16/Nk6cWb/shK7xXPndTmalJtw7twL/w==", + "node_modules/@docsearch/react/node_modules/@algolia/client-analytics": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.15.0.tgz", + "integrity": "sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==", "dependencies": { - "@babel/core": "^7.23.3", - "@babel/generator": "^7.23.3", + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/client-personalization": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.15.0.tgz", + "integrity": "sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/recommend": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.15.0.tgz", + "integrity": "sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==", + "dependencies": { + "@algolia/client-common": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@docsearch/react/node_modules/algoliasearch": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.15.0.tgz", + "integrity": "sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==", + "dependencies": { + "@algolia/client-abtesting": "5.15.0", + "@algolia/client-analytics": "5.15.0", + "@algolia/client-common": "5.15.0", + "@algolia/client-insights": "5.15.0", + "@algolia/client-personalization": "5.15.0", + "@algolia/client-query-suggestions": "5.15.0", + "@algolia/client-search": "5.15.0", + "@algolia/ingestion": "1.15.0", + "@algolia/monitoring": "1.15.0", + "@algolia/recommend": "5.15.0", + "@algolia/requester-browser-xhr": "5.15.0", + "@algolia/requester-fetch": "5.15.0", + "@algolia/requester-node-http": "5.15.0" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/@docusaurus/babel": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.6.2.tgz", + "integrity": "sha512-v8N8TWGXDsb5sxQC3Rcqb1CZr0LlU1OgqqVBUchN6cpIUr7EJuVJs5eHcIu5Ag8mwO/hWN3f7FE9uaHTMapAbg==", + "dependencies": { + "@babel/core": "^7.25.9", + "@babel/generator": "^7.25.9", "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.5", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@babel/runtime-corejs3": "^7.22.6", - "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "autoprefixer": "^10.4.14", - "babel-loader": "^9.1.3", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.25.9", + "@babel/preset-react": "^7.25.9", + "@babel/preset-typescript": "^7.25.9", + "@babel/runtime": "^7.25.9", + "@babel/runtime-corejs3": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@docusaurus/logger": "3.6.2", + "@docusaurus/utils": "3.6.2", "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/bundler": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.6.2.tgz", + "integrity": "sha512-YkEifEVs4lV931SrHBB4n6WqRowMw+aM/QPH3z8aU+5t1dWa+1p2OPqARS+tSbh3la9ns+L1zIfSbd8RHi2/PQ==", + "dependencies": { + "@babel/core": "^7.25.9", + "@docusaurus/babel": "3.6.2", + "@docusaurus/cssnano-preset": "3.6.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils": "3.6.2", + "babel-loader": "^9.2.1", "clean-css": "^5.3.2", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.31.1", "css-loader": "^6.8.1", "css-minimizer-webpack-plugin": "^5.0.1", "cssnano": "^6.1.2", + "file-loader": "^6.2.0", + "html-minifier-terser": "^7.2.0", + "mini-css-extract-plugin": "^2.9.1", + "null-loader": "^4.0.1", + "postcss": "^8.4.26", + "postcss-loader": "^7.3.3", + "postcss-preset-env": "^10.1.0", + "react-dev-utils": "^12.0.1", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "webpack": "^5.95.0", + "webpackbar": "^6.0.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "@docusaurus/faster": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/faster": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.2.tgz", + "integrity": "sha512-irMts/mGLZv8dWcy0WUtbY/U6b5qIfHgQd1/kXMyAxUJo99fL0wFSqhMI+tcxjk0HYy427MXerLMqFJj+Arg1w==", + "dependencies": { + "@docusaurus/babel": "3.6.2", + "@docusaurus/bundler": "3.6.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/mdx-loader": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-common": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "core-js": "^3.31.1", "del": "^6.1.1", "detect-port": "^1.5.1", "escape-html": "^1.0.3", "eta": "^2.2.0", "eval": "^0.1.8", - "file-loader": "^6.2.0", "fs-extra": "^11.1.1", - "html-minifier-terser": "^7.2.0", "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.5.3", + "html-webpack-plugin": "^5.6.0", "leven": "^3.1.0", "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.7.6", "p-map": "^4.0.0", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", "prompts": "^2.4.2", "react-dev-utils": "^12.0.1", "react-helmet-async": "^1.3.0", @@ -2434,17 +3316,14 @@ "react-router-dom": "^5.3.4", "rtl-detect": "^1.0.4", "semver": "^7.5.4", - "serve-handler": "^6.1.5", + "serve-handler": "^6.1.6", "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.9", "tslib": "^2.6.0", "update-notifier": "^6.0.2", - "url-loader": "^4.1.1", - "webpack": "^5.88.1", - "webpack-bundle-analyzer": "^4.9.0", - "webpack-dev-server": "^4.15.1", - "webpack-merge": "^5.9.0", - "webpackbar": "^5.0.2" + "webpack": "^5.95.0", + "webpack-bundle-analyzer": "^4.10.2", + "webpack-dev-server": "^4.15.2", + "webpack-merge": "^6.0.1" }, "bin": { "docusaurus": "bin/docusaurus.mjs" @@ -2458,14 +3337,53 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/core/node_modules/@docusaurus/mdx-loader": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.5.2.tgz", - "integrity": "sha512-ku3xO9vZdwpiMIVd8BzWV0DCqGEbCP5zs1iHfKX50vw6jX8vQo0ylYo1YJMZyz6e+JFJ17HYHT5FzVidz2IflA==", + "node_modules/@docusaurus/core/node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.6.2.tgz", + "integrity": "sha512-mBkVa4QMHRwCFCVLYdBlOZuAT1iVVsS7GGSgliSVAeTOagP/AbtlBsCVrBs+keEuDuRF1w/6QEcqDoZe9fa5pw==", + "dependencies": { + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.4.38", + "postcss-sort-media-queries": "^5.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/logger": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.2.tgz", + "integrity": "sha512-1p4IQhhgLyIfsey4UAdAIW69aUE1Ei6O91Nsw30ryZeDWSG5dh4o3zaRGOLxfAX69Ac/yDm6YCwJOafUxL6Vxg==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.6.2.tgz", + "integrity": "sha512-7fbRmNgF3CR96Ja82Ya0/Cdu1OL9UJ/22llNMY8lr5gAbw718Y5ryXMVRIYn0JNLTiSxzgtvW4DIsUWEB8NMpw==", + "dependencies": { + "@docusaurus/logger": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -2496,38 +3414,12 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.5.2.tgz", - "integrity": "sha512-D3KiQXOMA8+O0tqORBrTOEQyQxNIfPm9jEaJoALjjSjc2M/ZAWcUfPQEnwr2JB2TadHw2gqWgpZckQmrVWkytA==", - "dependencies": { - "cssnano-preset-advanced": "^6.1.2", - "postcss": "^8.4.38", - "postcss-sort-media-queries": "^5.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, - "node_modules/@docusaurus/logger": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.5.2.tgz", - "integrity": "sha512-LHC540SGkeLfyT3RHK3gAMK6aS5TRqOD4R72BEU/DE2M/TY8WwEUAMY576UUc/oNJXv8pGhBmQB6N9p3pt8LQw==", - "dependencies": { - "chalk": "^4.1.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - } - }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.5.2.tgz", - "integrity": "sha512-Z+Xu3+2rvKef/YKTMxZHsEXp1y92ac0ngjDiExRdqGTmEKtCUpkbNYH8v5eXo5Ls+dnW88n6WTa+Q54kLOkwPg==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.2.tgz", + "integrity": "sha512-NrJkL2rLTCjHtWOqUvWzwqvJrsKLj0gVJeV6q5yeKdKKgItietcTf2fTRkM9LHKSUN8CBDXxwHABeQvTahvmXQ==", "dependencies": { - "@docusaurus/types": "3.5.2", + "@docusaurus/types": "3.6.2", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2541,15 +3433,15 @@ } }, "node_modules/@docusaurus/plugin-client-redirects": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.5.2.tgz", - "integrity": "sha512-GMU0ZNoVG1DEsZlBbwLPdh0iwibrVZiRfmdppvX17SnByCVP74mb/Nne7Ss7ALgxQLtM4IHbXi8ij90VVjAJ+Q==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.6.2.tgz", + "integrity": "sha512-rzRq20NKQZr5kgeMGt2DA993UfhXWEAiZk9j+ttikFnFpgc/EOrpDoWDukd8Xfw4ObQ2h8TexWgABStKNKCocg==", "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", + "@docusaurus/core": "3.6.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-common": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", "eta": "^2.2.0", "fs-extra": "^11.1.1", "lodash": "^4.17.21", @@ -2563,251 +3455,19 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.5.2.tgz", - "integrity": "sha512-Bt+OXn/CPtVqM3Di44vHjE7rPCEsRCB/DMo2qoOuozB9f7+lsdrHvD0QCHdBs0uhz6deYJDppAr2VgqybKPlVQ==", + "node_modules/@docusaurus/plugin-content-blog": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.6.2.tgz", + "integrity": "sha512-6bJxr6Or4NslEVH3BJuPH30kUWiqUjDRdGPhvxpHmt9W/RY2/6u72WICG3bW3dLFxJ/2uDLBU92lHnatpvo7Ew==", "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@types/react-router-config": "^5.0.7", - "combine-promises": "^1.1.0", - "fs-extra": "^11.1.1", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-content-docs/node_modules/@docusaurus/mdx-loader": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.5.2.tgz", - "integrity": "sha512-ku3xO9vZdwpiMIVd8BzWV0DCqGEbCP5zs1iHfKX50vw6jX8vQo0ylYo1YJMZyz6e+JFJ17HYHT5FzVidz2IflA==", - "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-debug": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.5.2.tgz", - "integrity": "sha512-kBK6GlN0itCkrmHuCS6aX1wmoWc5wpd5KJlqQ1FyrF0cLDnvsYSnh7+ftdwzt7G6lGBho8lrVwkkL9/iQvaSOA==", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "fs-extra": "^11.1.1", - "react-json-view-lite": "^1.2.0", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.5.2.tgz", - "integrity": "sha512-rjEkJH/tJ8OXRE9bwhV2mb/WP93V441rD6XnM6MIluu7rk8qg38iSxS43ga2V2Q/2ib53PcqbDEJDG/yWQRJhQ==", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.5.2.tgz", - "integrity": "sha512-lm8XL3xLkTPHFKKjLjEEAHUrW0SZBSHBE1I+i/tmYMBsjCcUB5UJ52geS5PSiOCFVR74tbPGcPHEV/gaaxFeSA==", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@types/gtag.js": "^0.0.12", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.5.2.tgz", - "integrity": "sha512-QkpX68PMOMu10Mvgvr5CfZAzZQFx8WLlOiUQ/Qmmcl6mjGK6H21WLT5x7xDmcpCoKA/3CegsqIqBR+nA137lQg==", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.5.2.tgz", - "integrity": "sha512-DnlqYyRAdQ4NHY28TfHuVk414ft2uruP4QWCH//jzpHjqvKyXjj2fmDtI8RPUBh9K8iZKFMHRnLtzJKySPWvFA==", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "fs-extra": "^11.1.1", - "sitemap": "^7.1.1", - "tslib": "^2.6.0" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.5.2.tgz", - "integrity": "sha512-3ihfXQ95aOHiLB5uCu+9PRy2gZCeSZoDcqpnDvf3B+sTrMvMTr8qRUzBvWkoIqc82yG5prCboRjk1SVILKx6sg==", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/plugin-content-blog": "3.5.2", - "@docusaurus/plugin-content-docs": "3.5.2", - "@docusaurus/plugin-content-pages": "3.5.2", - "@docusaurus/plugin-debug": "3.5.2", - "@docusaurus/plugin-google-analytics": "3.5.2", - "@docusaurus/plugin-google-gtag": "3.5.2", - "@docusaurus/plugin-google-tag-manager": "3.5.2", - "@docusaurus/plugin-sitemap": "3.5.2", - "@docusaurus/theme-classic": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/theme-search-algolia": "3.5.2", - "@docusaurus/types": "3.5.2" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/mdx-loader": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.5.2.tgz", - "integrity": "sha512-ku3xO9vZdwpiMIVd8BzWV0DCqGEbCP5zs1iHfKX50vw6jX8vQo0ylYo1YJMZyz6e+JFJ17HYHT5FzVidz2IflA==", - "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-content-blog": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.5.2.tgz", - "integrity": "sha512-R7ghWnMvjSf+aeNDH0K4fjyQnt5L0KzUEnUhmf1e3jZrv3wogeytZNN6n7X8yHcMsuZHPOrctQhXWnmxu+IRRg==", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", + "@docusaurus/core": "3.6.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/mdx-loader": "3.6.2", + "@docusaurus/theme-common": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-common": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", "cheerio": "1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", @@ -2828,16 +3488,47 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/preset-classic/node_modules/@docusaurus/plugin-content-pages": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.5.2.tgz", - "integrity": "sha512-WzhHjNpoQAUz/ueO10cnundRz+VUtkjFhhaQ9jApyv1a46FPURO4cef89pyNIOMny1fjDz/NUN2z6Yi+5WUrCw==", + "node_modules/@docusaurus/plugin-content-docs": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.2.tgz", + "integrity": "sha512-e6WW1g10RIXXLN/rrtqTi/FyJ1Hj3X9Mmgz4V11/0pDCxIGGI8m4ocbAglUlLtgvbLD5viNLefl/NwbOW3JXiQ==", "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", + "@docusaurus/core": "3.6.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/mdx-loader": "3.6.2", + "@docusaurus/module-type-aliases": "3.6.2", + "@docusaurus/theme-common": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-common": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", + "@types/react-router-config": "^5.0.7", + "combine-promises": "^1.1.0", + "fs-extra": "^11.1.1", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0", + "utility-types": "^3.10.0", + "webpack": "^5.88.1" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.6.2.tgz", + "integrity": "sha512-fo4NyGkw10lYHyHaTxE6TZLYnxNtCfRHeZkNK1N9pBYqe7TT2dBUNAEeVW2U3ed9m6YuB7JKSQsa++GGmcP+6g==", + "dependencies": { + "@docusaurus/core": "3.6.2", + "@docusaurus/mdx-loader": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" @@ -2850,27 +3541,153 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-classic": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.5.2.tgz", - "integrity": "sha512-XRpinSix3NBv95Rk7xeMF9k4safMkwnpSgThn0UNQNumKvmcIYjfkwfh2BhwYh/BxMXQHJ/PdmNh22TQFpIaYg==", + "node_modules/@docusaurus/plugin-debug": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.6.2.tgz", + "integrity": "sha512-T/eS3VvHElpeV5S8uwp7Si4ujEynmgFtJLvA2CSa5pzQuOF1EEghF9nekAIj0cWtDHsqNUDZNr8hK1brivFXSg==", "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/plugin-content-blog": "3.5.2", - "@docusaurus/plugin-content-docs": "3.5.2", - "@docusaurus/plugin-content-pages": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/theme-translations": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", + "@docusaurus/core": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils": "3.6.2", + "fs-extra": "^11.1.1", + "react-json-view-lite": "^1.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.6.2.tgz", + "integrity": "sha512-B7ihrr3wz8e4XqW+dIAtq844u3Z83u5CeiL1xrCqzFH+vDCjUZHTamS3zKXNcgi6YVVe6hUQXPG15ltaqQaVPQ==", + "dependencies": { + "@docusaurus/core": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.6.2.tgz", + "integrity": "sha512-V8ijI6qddAAkJ0vd8sjZ7S/apRTLJn9dAwvj/rSMd93witGdKINemL+9TyfLkhcXKTxyqRT8zKdu8ewjPXqKHg==", + "dependencies": { + "@docusaurus/core": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", + "@types/gtag.js": "^0.0.12", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-tag-manager": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.6.2.tgz", + "integrity": "sha512-fnWQ5FdN9f8c8VTgjaQ98208Y+d/JjHhD506rWIIL9rt1cJOf29XElxvOeKpMJadfkgY5KLZSAiHkGt+4qgN4g==", + "dependencies": { + "@docusaurus/core": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.6.2.tgz", + "integrity": "sha512-qcAQAP1Ot0dZpeRoJ0L/Zck5FVDkll2IleVZQLzxeRVDZIw1P9/TK7/Aw1w2pmH7dmw/Cwk/cLSVRvLAmp9k7A==", + "dependencies": { + "@docusaurus/core": "3.6.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-common": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", + "fs-extra": "^11.1.1", + "sitemap": "^7.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.6.2.tgz", + "integrity": "sha512-r2n5eHdhiNSrJGsrrYcw+WsyStmXxe0ZG3RdA9LVyK5+jBHM8blrUWJEDugnzCNbyhUzhdtcmgCC9fhdAvKuQw==", + "dependencies": { + "@docusaurus/core": "3.6.2", + "@docusaurus/plugin-content-blog": "3.6.2", + "@docusaurus/plugin-content-docs": "3.6.2", + "@docusaurus/plugin-content-pages": "3.6.2", + "@docusaurus/plugin-debug": "3.6.2", + "@docusaurus/plugin-google-analytics": "3.6.2", + "@docusaurus/plugin-google-gtag": "3.6.2", + "@docusaurus/plugin-google-tag-manager": "3.6.2", + "@docusaurus/plugin-sitemap": "3.6.2", + "@docusaurus/theme-classic": "3.6.2", + "@docusaurus/theme-common": "3.6.2", + "@docusaurus/theme-search-algolia": "3.6.2", + "@docusaurus/types": "3.6.2" + }, + "engines": { + "node": ">=18.0" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.6.2.tgz", + "integrity": "sha512-bCdOPqPNezhLx+hgNVO2Cf+8/1AHa9uHDOqTx/CKAx2I0J/jV9G+6JiMtpSRKGNfBoLT1O+56/7+WtkOf54xTw==", + "dependencies": { + "@docusaurus/core": "3.6.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/mdx-loader": "3.6.2", + "@docusaurus/module-type-aliases": "3.6.2", + "@docusaurus/plugin-content-blog": "3.6.2", + "@docusaurus/plugin-content-docs": "3.6.2", + "@docusaurus/plugin-content-pages": "3.6.2", + "@docusaurus/theme-common": "3.6.2", + "@docusaurus/theme-translations": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-common": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", - "infima": "0.2.0-alpha.44", + "infima": "0.2.0-alpha.45", "lodash": "^4.17.21", "nprogress": "^0.2.0", "postcss": "^8.4.26", @@ -2889,108 +3706,15 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/mdx-loader": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.5.2.tgz", - "integrity": "sha512-ku3xO9vZdwpiMIVd8BzWV0DCqGEbCP5zs1iHfKX50vw6jX8vQo0ylYo1YJMZyz6e+JFJ17HYHT5FzVidz2IflA==", - "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/plugin-content-blog": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.5.2.tgz", - "integrity": "sha512-R7ghWnMvjSf+aeNDH0K4fjyQnt5L0KzUEnUhmf1e3jZrv3wogeytZNN6n7X8yHcMsuZHPOrctQhXWnmxu+IRRg==", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "cheerio": "1.0.0-rc.12", - "feed": "^4.2.2", - "fs-extra": "^11.1.1", - "lodash": "^4.17.21", - "reading-time": "^1.5.0", - "srcset": "^4.0.0", - "tslib": "^2.6.0", - "unist-util-visit": "^5.0.0", - "utility-types": "^3.10.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/plugin-content-docs": "*", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, - "node_modules/@docusaurus/theme-classic/node_modules/@docusaurus/plugin-content-pages": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.5.2.tgz", - "integrity": "sha512-WzhHjNpoQAUz/ueO10cnundRz+VUtkjFhhaQ9jApyv1a46FPURO4cef89pyNIOMny1fjDz/NUN2z6Yi+5WUrCw==", - "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "fs-extra": "^11.1.1", - "tslib": "^2.6.0", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, "node_modules/@docusaurus/theme-common": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.5.2.tgz", - "integrity": "sha512-QXqlm9S6x9Ibwjs7I2yEDgsCocp708DrCrgHgKwg2n2AY0YQ6IjU0gAK35lHRLOvAoJUfCKpQAwUykB0R7+Eew==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.6.2.tgz", + "integrity": "sha512-lfgsL064KEHpCkgGUc0OYoUPCpYfzggp6Hof8sz59UuKiLvb/Z7raewE9/NfocrJ2HZI17rLgMX3SQlRDh/5gg==", "dependencies": { - "@docusaurus/mdx-loader": "3.5.2", - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", + "@docusaurus/mdx-loader": "3.6.2", + "@docusaurus/module-type-aliases": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-common": "3.6.2", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -3009,55 +3733,17 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/theme-common/node_modules/@docusaurus/mdx-loader": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.5.2.tgz", - "integrity": "sha512-ku3xO9vZdwpiMIVd8BzWV0DCqGEbCP5zs1iHfKX50vw6jX8vQo0ylYo1YJMZyz6e+JFJ17HYHT5FzVidz2IflA==", - "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "@mdx-js/mdx": "^3.0.0", - "@slorber/remark-comment": "^1.0.0", - "escape-html": "^1.0.3", - "estree-util-value-to-estree": "^3.0.1", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "image-size": "^1.0.2", - "mdast-util-mdx": "^3.0.0", - "mdast-util-to-string": "^4.0.0", - "rehype-raw": "^7.0.0", - "remark-directive": "^3.0.0", - "remark-emoji": "^4.0.0", - "remark-frontmatter": "^5.0.0", - "remark-gfm": "^4.0.0", - "stringify-object": "^3.3.0", - "tslib": "^2.6.0", - "unified": "^11.0.3", - "unist-util-visit": "^5.0.0", - "url-loader": "^4.1.1", - "vfile": "^6.0.1", - "webpack": "^5.88.1" - }, - "engines": { - "node": ">=18.0" - }, - "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" - } - }, "node_modules/@docusaurus/theme-mermaid": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.5.2.tgz", - "integrity": "sha512-7vWCnIe/KoyTN1Dc55FIyqO5hJ3YaV08Mr63Zej0L0mX1iGzt+qKSmeVUAJ9/aOalUhF0typV0RmNUSy5FAmCg==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.6.2.tgz", + "integrity": "sha512-Ui+rBtqMPKj3RCOxNlY04i1tEjNg+fZg4URTvkHmYR07hcKaJw+vkw+wlaYjd0HFZk+3Er9vUAcwsCWuea4cVQ==", "dependencies": { - "@docusaurus/core": "3.5.2", - "@docusaurus/module-type-aliases": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/types": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", - "mermaid": "^10.4.0", + "@docusaurus/core": "3.6.2", + "@docusaurus/module-type-aliases": "3.6.2", + "@docusaurus/theme-common": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", + "mermaid": ">=10.4", "tslib": "^2.6.0" }, "engines": { @@ -3069,18 +3755,18 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.5.2.tgz", - "integrity": "sha512-qW53kp3VzMnEqZGjakaV90sst3iN1o32PH+nawv1uepROO8aEGxptcq2R5rsv7aBShSRbZwIobdvSYKsZ5pqvA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.6.2.tgz", + "integrity": "sha512-SFLS+Rq8Cg2yepnHucA9sRpIR97yHvZWlCgMzBLunV3KHbB6hD2h5HPhFV39wYHYCjJUAOH1lX9poJ1qKYuSvg==", "dependencies": { "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.5.2", - "@docusaurus/logger": "3.5.2", - "@docusaurus/plugin-content-docs": "3.5.2", - "@docusaurus/theme-common": "3.5.2", - "@docusaurus/theme-translations": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-validation": "3.5.2", + "@docusaurus/core": "3.6.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/plugin-content-docs": "3.6.2", + "@docusaurus/theme-common": "3.6.2", + "@docusaurus/theme-translations": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-validation": "3.6.2", "algoliasearch": "^4.18.0", "algoliasearch-helper": "^3.13.3", "clsx": "^2.0.0", @@ -3099,9 +3785,9 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.5.2.tgz", - "integrity": "sha512-GPZLcu4aT1EmqSTmbdpVrDENGR2yObFEX8ssEFYTCiAIVc0EihNSdOIBTazUvgNqwvnoU1A8vIs1xyzc3LITTw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.6.2.tgz", + "integrity": "sha512-LIWrYoDUsOTKmb0c7IQzawiPUTAaczBs5IOx6srxOWoTHVUMLzJCkl5Y6whfuRrnul8G05qv2vk238bN5Ko62g==", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -3111,15 +3797,15 @@ } }, "node_modules/@docusaurus/tsconfig": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.5.2.tgz", - "integrity": "sha512-rQ7toURCFnWAIn8ubcquDs0ewhPwviMzxh6WpRjBW7sJVCXb6yzwUaY3HMNa0VXCFw+qkIbFywrMTf+Pb4uHWQ==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.6.2.tgz", + "integrity": "sha512-TWLkyYHBYhIJNcXCEc3D1M9R8UFV4IZ82rGef5U9mE1ZrcgDUlZxYaYdoSuHrPrzPRIl3orjmpscO2FAk2gdZw==", "dev": true }, "node_modules/@docusaurus/types": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.5.2.tgz", - "integrity": "sha512-N6GntLXoLVUwkZw7zCxwy9QiuEXIcTVzA9AkmNw16oc0AP3SXLrMmDMMBIfgqwuKWa6Ox6epHol9kMtJqekACw==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.2.tgz", + "integrity": "sha512-117Wsk6xXrWEAsCYCXS3TGJv5tkdIZDcd7T/V0UJvKYmY0gyVPPcEQChy8yTdjbIkbB2q4fa7Jpox72Qv86mqQ==", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", @@ -3128,7 +3814,7 @@ "joi": "^17.9.2", "react-helmet-async": "^1.3.0", "utility-types": "^3.10.0", - "webpack": "^5.88.1", + "webpack": "^5.95.0", "webpack-merge": "^5.9.0" }, "peerDependencies": { @@ -3137,12 +3823,13 @@ } }, "node_modules/@docusaurus/utils": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.5.2.tgz", - "integrity": "sha512-33QvcNFh+Gv+C2dP9Y9xWEzMgf3JzrpL2nW9PopidiohS1nDcyknKRx2DWaFvyVTTYIkkABVSr073VTj/NITNA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.2.tgz", + "integrity": "sha512-oxnpUcFZGE3uPCDoXr8GJriB3VWM9sFjPedFidX3Fsz87l1NZNc1wtbKPfQ7GYFDMYo2IGlAv5+47Me9RkM6lg==", "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils-common": "3.5.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/types": "3.6.2", + "@docusaurus/utils-common": "3.6.2", "@svgr/webpack": "^8.1.0", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", @@ -3164,43 +3851,28 @@ }, "engines": { "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } } }, "node_modules/@docusaurus/utils-common": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.5.2.tgz", - "integrity": "sha512-i0AZjHiRgJU6d7faQngIhuHKNrszpL/SHQPgF1zH4H+Ij6E9NBYGy6pkcGWToIv7IVPbs+pQLh1P3whn0gWXVg==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.2.tgz", + "integrity": "sha512-dr5wK+OyU2QAWxG7S5siD2bPgS7+ZeqWHfgLNHZ5yalaZf8TbeNNLqydfngukAY56BGZN0NbMkX6jGIr7ZF0sA==", "dependencies": { + "@docusaurus/types": "3.6.2", "tslib": "^2.6.0" }, "engines": { "node": ">=18.0" - }, - "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.5.2.tgz", - "integrity": "sha512-m+Foq7augzXqB6HufdS139PFxDC5d5q2QKZy8q0qYYvGdI6nnlNsGH4cIGsgBnV7smz+mopl3g4asbSDvMV0jA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.2.tgz", + "integrity": "sha512-Y3EwblDz72KOcobb5t2zlhHSmrfE8EaHusPJ96Kx2JYtNXL2omqCoOb6FpaXWhES75wvjUpkFLYfiNqAqEov8g==", "dependencies": { - "@docusaurus/logger": "3.5.2", - "@docusaurus/utils": "3.5.2", - "@docusaurus/utils-common": "3.5.2", + "@docusaurus/logger": "3.6.2", + "@docusaurus/utils": "3.6.2", + "@docusaurus/utils-common": "3.6.2", "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", @@ -3322,7 +3994,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -3334,7 +4005,6 @@ "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -3412,10 +4082,9 @@ "license": "MIT" }, "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "license": "MIT" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" }, "node_modules/@mdx-js/mdx": { "version": "3.0.0", @@ -3503,6 +4172,288 @@ "node": ">= 8" } }, + "node_modules/@parcel/watcher": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -3555,10 +4506,9 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.23", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", - "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", - "license": "MIT" + "version": "1.0.0-next.28", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz", + "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==" }, "node_modules/@redocly/ajv": { "version": "8.11.0", @@ -3630,8 +4580,7 @@ "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "license": "MIT" + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" }, "node_modules/@sindresorhus/is": { "version": "4.6.0", @@ -3944,38 +4893,34 @@ } }, "node_modules/@types/body-parser": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.4.tgz", - "integrity": "sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==", - "license": "MIT", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "node_modules/@types/bonjour": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.12.tgz", - "integrity": "sha512-ky0kWSqXVxSqgqJvPIkgFkcn4C8MnRog308Ou8xBBIVo39OmUFy+jqNe0nPwLCDFxUpmT9EvT91YzOJgkDRcFg==", - "license": "MIT", + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect": { - "version": "3.4.37", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.37.tgz", - "integrity": "sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==", - "license": "MIT", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/connect-history-api-fallback": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.2.tgz", - "integrity": "sha512-gX2j9x+NzSh4zOhnRPSdPPmTepS4DfxES0AvIFv3jGv5QyeAJf6u6dY5/BAoAJU9Qq1uTvwOku8SSC2GnCRl6Q==", - "license": "MIT", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -4011,10 +4956,28 @@ "@types/ms": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/estree-jsx": { "version": "1.0.3", @@ -4026,10 +4989,9 @@ } }, "node_modules/@types/express": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.20.tgz", - "integrity": "sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==", - "license": "MIT", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -4038,10 +5000,20 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.39", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz", - "integrity": "sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==", - "license": "MIT", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.1.tgz", + "integrity": "sha512-CRICJIl0N5cXDONAdlTv5ShATZ4HEwk6kDDIW2/w9qOWKg+NU/5F8wYRWCrONad0/UKkloNSmmyN/wX4rtpbVA==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -4082,8 +5054,7 @@ "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "license": "MIT" + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" }, "node_modules/@types/http-cache-semantics": { "version": "4.0.3", @@ -4092,16 +5063,14 @@ "license": "MIT" }, "node_modules/@types/http-errors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.3.tgz", - "integrity": "sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==", - "license": "MIT" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" }, "node_modules/@types/http-proxy": { - "version": "1.17.13", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.13.tgz", - "integrity": "sha512-GkhdWcMNiR5QSQRYnJ+/oXzu0+7JJEPC8vkWXK351BkhjraZF+1W13CUYARUvX9+NqIU2n6YHA4iwywsc/M6Sw==", - "license": "MIT", + "version": "1.17.15", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz", + "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==", "dependencies": { "@types/node": "*" } @@ -4109,14 +5078,12 @@ "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "license": "MIT" + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -4125,7 +5092,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } @@ -4152,10 +5118,9 @@ "license": "MIT" }, "node_modules/@types/mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.4.tgz", - "integrity": "sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==", - "license": "MIT" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, "node_modules/@types/ms": { "version": "0.7.33", @@ -4173,19 +5138,17 @@ } }, "node_modules/@types/node-forge": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.8.tgz", - "integrity": "sha512-vGXshY9vim9CJjrpcS5raqSjEfKlJcWy2HNdgUasR66fAnVEYarrf1ULV4nfvpC1nZq/moA9qyqBcu83x+Jlrg==", - "license": "MIT", + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/parse-json": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.1.tgz", - "integrity": "sha512-3YmXzzPAdOTVljVMkTMBdBEvlOLg2cDQaDhnnhT3nT9uDbnJzjWhKlzb+desT12Y7tGqaN6d+AbozcKzyL36Ng==", - "license": "MIT" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" }, "node_modules/@types/parse5": { "version": "6.0.3", @@ -4206,16 +5169,14 @@ "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.9", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz", - "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==", - "license": "MIT" + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", + "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==" }, "node_modules/@types/range-parser": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.6.tgz", - "integrity": "sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==", - "license": "MIT" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, "node_modules/@types/react": { "version": "18.3.12", @@ -4273,8 +5234,7 @@ "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", - "license": "MIT" + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, "node_modules/@types/sax": { "version": "1.2.7", @@ -4285,40 +5245,36 @@ } }, "node_modules/@types/send": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.3.tgz", - "integrity": "sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==", - "license": "MIT", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-index": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.3.tgz", - "integrity": "sha512-4KG+yMEuvDPRrYq5fyVm/I2uqAJSAwZK9VSa+Zf+zUq9/oxSSvy3kkIqyL+jjStv6UCVi8/Aho0NHtB1Fwosrg==", - "license": "MIT", + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.4.tgz", - "integrity": "sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==", - "license": "MIT", + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, "node_modules/@types/sockjs": { - "version": "0.3.35", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.35.tgz", - "integrity": "sha512-tIF57KB+ZvOBpAQwSaACfEu7htponHXaFzP7RfKYgsOS0NoYnn+9+jzp7bbq4fWerizI3dTB4NfAZoyeQKWJLw==", - "license": "MIT", + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dependencies": { "@types/node": "*" } @@ -4330,19 +5286,17 @@ "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.8.tgz", - "integrity": "sha512-flUksGIQCnJd6sZ1l5dqCEG/ksaoAg/eUwiLAGTJQcfgvZJKF++Ta4bJA6A5aPSJmsr+xlseHn4KLgVlNnvPTg==", - "license": "MIT", + "version": "8.5.13", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", + "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "license": "MIT", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dependencies": { "@types/yargs-parser": "*" } @@ -4350,8 +5304,7 @@ "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "license": "MIT" + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", @@ -4516,7 +5469,6 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -4529,7 +5481,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -4538,7 +5489,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -4546,11 +5496,18 @@ "node": ">= 0.6" } }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "license": "MIT", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "bin": { "acorn": "bin/acorn" }, @@ -4558,14 +5515,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -4576,10 +5525,12 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", - "license": "MIT", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -4657,7 +5608,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -4688,9 +5638,9 @@ } }, "node_modules/algoliasearch-helper": { - "version": "3.22.3", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.3.tgz", - "integrity": "sha512-2eoEz8mG4KHE+DzfrBTrCmDPxVXv7aZZWPojAJFtARpxxMO6lkos1dJ+XDCXdPvq7q3tpYWRi6xXmVQikejtpA==", + "version": "3.22.5", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.5.tgz", + "integrity": "sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -4733,6 +5683,14 @@ "@algolia/requester-common": "4.24.0" } }, + "node_modules/allof-merge": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/allof-merge/-/allof-merge-0.6.6.tgz", + "integrity": "sha512-116eZBf2he0/J4Tl7EYMz96I5Anaeio+VL0j/H2yxW9CoYQAMMv8gYcwkVRoO7XfIOv/qzSTfVzDVGAYxKFi3g==", + "dependencies": { + "json-crawl": "^0.5.3" + } + }, "node_modules/ansi-align": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", @@ -4762,6 +5720,31 @@ "node": ">=8" } }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", @@ -4769,7 +5752,6 @@ "engines": [ "node >= 0.8.0" ], - "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -4829,10 +5811,9 @@ "license": "Python-2.0" }, "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "license": "MIT" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/array-union": { "version": "2.1.0", @@ -4949,10 +5930,9 @@ } }, "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", - "license": "MIT", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -4969,19 +5949,17 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "license": "MIT", "dependencies": { "object.assign": "^4.1.0" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "license": "MIT", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, "peerDependencies": { @@ -4992,31 +5970,28 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", - "license": "MIT", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "license": "MIT", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -5061,8 +6036,7 @@ "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "license": "MIT" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" }, "node_modules/big.js": { "version": "5.2.2", @@ -5143,28 +6117,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", - "license": "MIT", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" } @@ -5345,9 +6302,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -5363,10 +6320,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -5421,7 +6378,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5515,7 +6471,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -5537,7 +6492,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "license": "MIT", "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -5546,9 +6500,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001651", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", - "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "version": "1.0.30001677", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz", + "integrity": "sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog==", "funding": [ { "type": "opencollective", @@ -5652,7 +6606,6 @@ "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -5673,7 +6626,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -5754,10 +6706,9 @@ "license": "MIT" }, "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", - "license": "MIT", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dependencies": { "source-map": "~0.6.0" }, @@ -5769,7 +6720,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -5947,14 +6897,12 @@ "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "license": "MIT" + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "license": "MIT" + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, "node_modules/combine-promises": { "version": "1.2.0", @@ -5987,14 +6935,12 @@ "node_modules/common-path-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", - "license": "ISC" + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -6003,37 +6949,42 @@ } }, "node_modules/compressible/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz", + "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==", "engines": { "node": ">= 0.6" } }, "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "license": "MIT", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==", "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", + "bytes": "3.1.2", + "compressible": "~2.0.18", "debug": "2.6.9", + "negotiator": "~0.6.4", "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", + "safe-buffer": "5.2.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/compression/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6041,14 +6992,7 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/compute-gcd": { "version": "1.2.1", @@ -6110,16 +7054,17 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "license": "MIT" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } }, "node_modules/console-browserify": { "version": "1.2.0", @@ -6136,7 +7081,6 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6156,10 +7100,9 @@ "license": "MIT" }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "license": "MIT", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "engines": { "node": ">= 0.6" } @@ -6167,8 +7110,7 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/copy-text-to-clipboard": { "version": "3.2.0", @@ -6186,7 +7128,6 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "license": "MIT", "dependencies": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", @@ -6210,7 +7151,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -6222,7 +7162,6 @@ "version": "13.2.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", - "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -6241,7 +7180,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "license": "MIT", "engines": { "node": ">=12" }, @@ -6261,12 +7199,11 @@ } }, "node_modules/core-js-compat": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.2.tgz", - "integrity": "sha512-axfo+wxFVxnqf8RvxTzoAlzW4gRoacrHeoFlc9n0x50+7BEyZL/Rt3hicaED1/CEd7I6tPCPVUYcJwCMO5XUYw==", - "license": "MIT", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "dependencies": { - "browserslist": "^4.22.1" + "browserslist": "^4.24.2" }, "funding": { "type": "opencollective", @@ -6274,11 +7211,10 @@ } }, "node_modules/core-js-pure": { - "version": "3.33.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.2.tgz", - "integrity": "sha512-a8zeCdyVk7uF2elKIGz67AjcXOxjRbwOLz8SbklEso1V+2DoW4OkAMZN9S9GBgvZIaqQi/OemFX4OiSoQEmg1Q==", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz", + "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==", "hasInstallScript": true, - "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -6388,10 +7324,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "license": "MIT", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.5.tgz", + "integrity": "sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -6456,11 +7391,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/css-blank-pseudo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", + "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/css-declaration-sorter": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", - "license": "ISC", "engines": { "node": "^14 || ^16 || >=18" }, @@ -6468,20 +7438,78 @@ "postcss": "^8.0.9" } }, + "node_modules/css-has-pseudo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.1.tgz", + "integrity": "sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", - "license": "MIT", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "engines": { "node": ">= 12.13.0" @@ -6491,14 +7519,22 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/css-minimizer-webpack-plugin": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", - "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "cssnano": "^6.0.1", @@ -6538,6 +7574,27 @@ } } }, + "node_modules/css-prefers-color-scheme": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", + "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -6579,11 +7636,25 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/cssdb": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.1.tgz", + "integrity": "sha512-KwEPys7lNsC8OjASI8RrmwOYYDcm0JOW9zQhcV83ejYcQkirTEyeAGui8aO2F5PiS6SLpxuTzl6qlMElIdsgIg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -6595,7 +7666,6 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", - "license": "MIT", "dependencies": { "cssnano-preset-default": "^6.1.2", "lilconfig": "^3.1.1" @@ -6635,7 +7705,6 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "css-declaration-sorter": "^7.2.0", @@ -6679,7 +7748,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -7212,6 +8280,11 @@ "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", "license": "MIT" }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -7279,7 +8352,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "license": "BSD-2-Clause", "dependencies": { "execa": "^5.0.0" }, @@ -7406,11 +8478,22 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "optional": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "license": "MIT" + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, "node_modules/detect-port": { "version": "1.5.1", @@ -7430,7 +8513,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "^2.6.0" @@ -7447,7 +8529,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -7455,8 +8536,7 @@ "node_modules/detect-port-alt/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/devlop": { "version": "1.1.0", @@ -7519,17 +8599,10 @@ "react-dom": "^15.6.1 || ^16.0.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "license": "MIT" - }, "node_modules/dns-packet": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", - "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -7538,20 +8611,20 @@ } }, "node_modules/docusaurus-plugin-openapi-docs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.1.0.tgz", - "integrity": "sha512-QBoRDFlRGJBKNyHi+4+wuSUlVPF4KrFR5sNyEr/s4eoPPVpaViB/Fwh8DmWbVXvWopNZ0UR1nk1r3Kwls6Qg2Q==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.2.0.tgz", + "integrity": "sha512-6G8LtpQlb4nCTyDnjkRwxg/oq3WIZ05GCFQFfTqbdiI5D8d9Glya0vp6TF9InEyXtAkc8ozi1HP8It2zEUwNGw==", "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.5.4", "@docusaurus/plugin-content-docs": "^3.5.0", "@docusaurus/utils": "^3.5.0", "@docusaurus/utils-validation": "^3.5.0", "@redocly/openapi-core": "^1.10.5", + "allof-merge": "^0.6.6", "chalk": "^4.1.2", "clsx": "^1.1.1", "fs-extra": "^9.0.1", "json-pointer": "^0.6.2", - "json-schema-merge-allof": "^0.8.1", "json5": "^2.2.3", "lodash": "^4.17.20", "mustache": "^4.2.0", @@ -7750,17 +8823,18 @@ } }, "node_modules/docusaurus-theme-openapi-docs": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.1.0.tgz", - "integrity": "sha512-KQ7zs82fTeGrK55VqPvHF9suPYecPhcpoTi0y68/HlCMjMnSl6RN+Q0eLbJr8WwM5r5o96QXObqAx8ot+Dc4BA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.2.0.tgz", + "integrity": "sha512-TTvrF3mOt9VjDJHu5Ga7jPZyPxhu6//FKTLXJrcGrQ/OOMnojCZZX0KX7zSUL96yF8VlRjwSeM9D90m+dZ9gHw==", "dependencies": { "@docusaurus/theme-common": "^3.5.0", "@hookform/error-message": "^2.0.1", "@reduxjs/toolkit": "^1.7.1", + "allof-merge": "^0.6.6", "clsx": "^1.1.1", "copy-text-to-clipboard": "^3.1.0", "crypto-js": "^4.1.1", - "docusaurus-plugin-openapi-docs": "^4.1.0", + "docusaurus-plugin-openapi-docs": "^4.2.0", "docusaurus-plugin-sass": "^0.2.3", "file-saver": "^2.0.5", "lodash": "^4.17.20", @@ -7776,8 +8850,8 @@ "react-redux": "^7.2.0", "rehype-raw": "^6.1.1", "remark-gfm": "3.0.1", - "sass": "^1.58.1", - "sass-loader": "^13.3.2", + "sass": "^1.80.4", + "sass-loader": "^16.0.2", "webpack": "^5.61.0", "xml-formatter": "^2.6.1" }, @@ -8755,7 +9829,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "license": "MIT", "dependencies": { "utila": "~0.4" } @@ -8881,13 +9954,12 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.11.tgz", - "integrity": "sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==" + "version": "1.5.51", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.51.tgz", + "integrity": "sha512-kKeWV57KSS8jH4alKt/jKnvHPmJgBxXzGUSbMd4eQF+iOsVPl7bz2KUmu6eo80eMP8wVioTfTyTzdMgM15WXNg==" }, "node_modules/elkjs": { "version": "0.9.3", @@ -8946,10 +10018,9 @@ } }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -9021,9 +10092,9 @@ "license": "MIT" }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "engines": { "node": ">=6" } @@ -9257,8 +10328,7 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "node_modules/events": { "version": "3.3.0", @@ -9283,7 +10353,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -9309,23 +10378,23 @@ "license": "BSD-3-Clause" }, "node_modules/express": { - "version": "4.20.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.20.0.tgz", - "integrity": "sha512-pLdae7I6QqShF5PnNTCVn4hI91Dx0Grkn2+IAsMTgMIKuQVte2dN9PeGSSAME2FR8anOhVA62QDIUaWVfEXVLw==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", "merge-descriptors": "1.0.3", @@ -9334,11 +10403,11 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.19.0", - "serve-static": "1.16.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -9349,17 +10418,10 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, "node_modules/express/node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -9371,24 +10433,14 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } }, - "node_modules/express/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/express/node_modules/path-to-regexp": { "version": "0.1.10", @@ -9399,7 +10451,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -9462,15 +10513,6 @@ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "license": "MIT" }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "license": "MIT", - "dependencies": { - "punycode": "^1.3.2" - } - }, "node_modules/fastq": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", @@ -9497,7 +10539,6 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -9509,7 +10550,6 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", - "license": "MIT", "dependencies": { "xml-js": "^1.6.11" }, @@ -9517,6 +10557,28 @@ "node": ">=0.4.0" } }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/file-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", @@ -9605,7 +10667,6 @@ "version": "8.0.7", "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "license": "BSD-3-Clause", "engines": { "node": ">= 0.4.0" } @@ -9632,13 +10693,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "license": "MIT", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -9653,7 +10713,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -9661,14 +10720,12 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/find-cache-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", - "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -9684,7 +10741,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", - "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -9706,16 +10762,15 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], - "license": "MIT", "engines": { "node": ">=4.0" }, @@ -9772,7 +10827,6 @@ "version": "6.5.3", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.8.3", "@types/json-schema": "^7.0.5", @@ -9811,7 +10865,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -9827,7 +10880,6 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -9836,7 +10888,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", @@ -9852,7 +10903,6 @@ "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -9866,14 +10916,12 @@ "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.4", "ajv": "^6.12.2", @@ -9891,7 +10939,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "license": "MIT", "engines": { "node": ">=6" } @@ -9917,7 +10964,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10116,7 +11162,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "license": "MIT", "dependencies": { "global-prefix": "^3.0.0" }, @@ -10128,7 +11173,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "license": "MIT", "dependencies": { "ini": "^1.3.5", "kind-of": "^6.0.2", @@ -10142,7 +11186,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -10154,7 +11197,6 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "license": "MIT", "engines": { "node": ">=4" } @@ -10298,8 +11340,7 @@ "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "license": "MIT" + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, "node_modules/has-flag": { "version": "4.0.0", @@ -10589,7 +11630,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "license": "MIT", "bin": { "he": "bin/he" } @@ -10632,7 +11672,6 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -10643,14 +11682,12 @@ "node_modules/hpack.js/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -10664,22 +11701,20 @@ "node_modules/hpack.js/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", "funding": [ { "type": "github", @@ -10689,14 +11724,17 @@ "type": "patreon", "url": "https://patreon.com/mdevils" } - ], - "license": "MIT" + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" }, "node_modules/html-minifier-terser": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", - "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "clean-css": "~5.3.2", @@ -10717,7 +11755,6 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "license": "MIT", "engines": { "node": ">=14" } @@ -10745,10 +11782,9 @@ } }, "node_modules/html-webpack-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", - "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", - "license": "MIT", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -10764,14 +11800,22 @@ "url": "https://opencollective.com/html-webpack-plugin" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/html-webpack-plugin/node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "license": "MIT", "engines": { "node": ">= 12" } @@ -10780,7 +11824,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", @@ -10808,7 +11851,6 @@ "url": "https://github.com/sponsors/fb55" } ], - "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -10825,8 +11867,7 @@ "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "license": "MIT" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" }, "node_modules/http-errors": { "version": "2.0.0", @@ -10846,14 +11887,12 @@ "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "license": "MIT" + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -10890,7 +11929,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -10933,7 +11971,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } @@ -10954,7 +11991,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -11066,9 +12102,9 @@ } }, "node_modules/infima": { - "version": "0.2.0-alpha.44", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.44.tgz", - "integrity": "sha512-tuRkUSO/lB3rEhLJk25atwAjgLuzq070+pOW8XcvpHky/YbENnRRdPd85IBkyeTgttmOy5ah+yHYsK1HhUd4lQ==", + "version": "0.2.0-alpha.45", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", + "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", "engines": { "node": ">=12" } @@ -11129,10 +12165,9 @@ } }, "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "license": "MIT", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "engines": { "node": ">= 10" } @@ -11435,15 +12470,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-reference": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", @@ -11466,7 +12492,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "license": "MIT", "engines": { "node": ">=6" } @@ -11475,7 +12500,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", "engines": { "node": ">=8" }, @@ -11568,7 +12592,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -11585,7 +12608,6 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -11600,7 +12622,6 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -11661,15 +12682,14 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "license": "MIT", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -11678,6 +12698,14 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "license": "MIT" }, + "node_modules/json-crawl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/json-crawl/-/json-crawl-0.5.3.tgz", + "integrity": "sha512-BEjjCw8c7SxzNK4orhlWD5cXQh8vCk2LqDr4WgQq4CV+5dvopeYwt1Tskg67SuSLKvoFH5g0yuYtg7rcfKV6YA==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -11833,10 +12861,9 @@ } }, "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", - "license": "MIT", + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" @@ -11858,10 +12885,9 @@ } }, "node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "license": "MIT", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "engines": { "node": ">=14" }, @@ -11911,7 +12937,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -11937,26 +12962,7 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "license": "MIT" - }, - "node_modules/lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", - "license": "MIT" - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", - "license": "MIT" - }, - "node_modules/lodash.invokemap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.invokemap/-/lodash.invokemap-4.6.0.tgz", - "integrity": "sha512-CfkycNtMqgUlfjfdh2BhKO/ZXrP8ePOX5lEU/g0R3ItJcnuxWDwokMGKx1hWcfOikmyOVx6X9IwWnDGlgKl61w==", - "license": "MIT" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "node_modules/lodash.isequal": { "version": "4.5.0", @@ -11967,26 +12973,12 @@ "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "license": "MIT" - }, - "node_modules/lodash.pullall": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.pullall/-/lodash.pullall-4.2.0.tgz", - "integrity": "sha512-VhqxBKH0ZxPpLhiu68YD1KnHmbhQJQctcipvmFnqIBDYzcIHzf3Zpu0tpeOKtR4x76p9yohc506eGdOjTmyIBg==", - "license": "MIT" + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, - "node_modules/lodash.uniqby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", - "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", - "license": "MIT" + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, "node_modules/longest-streak": { "version": "3.1.0", @@ -12035,7 +13027,6 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -13077,7 +14068,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -14892,7 +15882,6 @@ "version": "1.33.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -14910,7 +15899,6 @@ "version": "2.1.18", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", - "license": "MIT", "dependencies": { "mime-db": "~1.33.0" }, @@ -14922,7 +15910,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "license": "MIT", "engines": { "node": ">=6" } @@ -14940,12 +15927,12 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", - "license": "MIT", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz", + "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==", "dependencies": { - "schema-utils": "^4.0.0" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { "node": ">= 12.13.0" @@ -15010,10 +15997,9 @@ } }, "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "license": "MIT", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", "engines": { "node": ">=10" } @@ -15028,7 +16014,6 @@ "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "license": "MIT", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -15076,10 +16061,9 @@ } }, "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", "engines": { "node": ">= 0.6" } @@ -15100,6 +16084,12 @@ "tslib": "^2.0.3" } }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "optional": true + }, "node_modules/node-emoji": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", @@ -15151,7 +16141,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { "node": ">= 6.13.0" } @@ -15261,7 +16250,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -15286,6 +16274,70 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/null-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", + "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/null-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/null-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/null-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/null-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/oas-kit-common": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz", @@ -15449,14 +16501,12 @@ "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "license": "MIT" + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -15468,7 +16518,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -15486,7 +16535,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -15622,7 +16670,6 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "license": "(WTFPL OR MIT)", "bin": { "opener": "bin/opener-bin.js" } @@ -15646,7 +16693,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -15661,7 +16707,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -15691,7 +16736,6 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "license": "MIT", "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" @@ -15704,7 +16748,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "license": "MIT", "engines": { "node": ">=6" } @@ -15737,7 +16780,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -15835,12 +16877,11 @@ } }, "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "license": "MIT", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", "dependencies": { - "domhandler": "^5.0.2", + "domhandler": "^5.0.3", "parse5": "^7.0.0" }, "funding": { @@ -15851,7 +16892,6 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -15860,7 +16900,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -15886,7 +16925,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } @@ -15903,8 +16941,7 @@ "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "license": "(WTFPL OR MIT)" + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" }, "node_modules/path-key": { "version": "3.1.1", @@ -15947,10 +16984,9 @@ } }, "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "license": "MIT", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "dependencies": { "isarray": "0.0.1" } @@ -16007,9 +17043,9 @@ } }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -16036,7 +17072,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "license": "MIT", "dependencies": { "find-up": "^6.3.0" }, @@ -16051,7 +17086,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "license": "MIT", "dependencies": { "find-up": "^3.0.0" }, @@ -16063,7 +17097,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "license": "MIT", "dependencies": { "locate-path": "^3.0.0" }, @@ -16075,7 +17108,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "license": "MIT", "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" @@ -16088,7 +17120,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "license": "MIT", "dependencies": { "p-try": "^2.0.0" }, @@ -16103,7 +17134,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "license": "MIT", "dependencies": { "p-limit": "^2.0.0" }, @@ -16115,7 +17145,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "license": "MIT", "engines": { "node": ">=4" } @@ -16139,9 +17168,9 @@ } }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -16158,18 +17187,53 @@ ], "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", + "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-calc": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", - "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" @@ -16181,11 +17245,102 @@ "postcss": "^8.2.2" } }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.6.tgz", + "integrity": "sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", + "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", + "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/postcss-colormin": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -16203,7 +17358,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -16215,11 +17369,140 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-custom-media": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz", + "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/media-query-list-parser": "^4.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-properties": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz", + "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz", + "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.4", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", + "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-discard-comments": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -16231,7 +17514,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -16243,7 +17525,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -16255,7 +17536,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -16277,15 +17557,194 @@ "postcss": "^8.4.31" } }, - "node_modules/postcss-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", - "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", - "license": "MIT", + "node_modules/postcss-double-position-gradients": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz", + "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], "dependencies": { - "cosmiconfig": "^8.2.0", - "jiti": "^1.18.2", - "semver": "^7.3.8" + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", + "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", + "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", + "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", + "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-lab-function": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.6.tgz", + "integrity": "sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/css-color-parser": "^3.0.6", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "dependencies": { + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" }, "engines": { "node": ">= 14.15.0" @@ -16299,6 +17758,30 @@ "webpack": "^5.0.0" } }, + "node_modules/postcss-logical": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz", + "integrity": "sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/postcss-merge-idents": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", @@ -16318,7 +17801,6 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^6.1.1" @@ -16334,7 +17816,6 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -16352,7 +17833,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16367,7 +17847,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", - "license": "MIT", "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^4.0.2", @@ -16384,7 +17863,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "cssnano-utils": "^4.0.2", @@ -16401,7 +17879,6 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", - "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -16413,10 +17890,9 @@ } }, "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "license": "ISC", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -16425,13 +17901,12 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", - "license": "MIT", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz", + "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -16441,13 +17916,24 @@ "postcss": "^8.1.0" } }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "license": "ISC", + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "dependencies": { + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" @@ -16456,11 +17942,22 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" }, @@ -16471,11 +17968,90 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-nesting": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz", + "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/selector-resolve-nested": "^3.0.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz", + "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-normalize-charset": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", - "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -16487,7 +18063,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16502,7 +18077,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16517,7 +18091,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16532,7 +18105,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16547,7 +18119,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16562,7 +18133,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -16578,7 +18148,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16593,7 +18162,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16604,11 +18172,31 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-opacity-percentage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", + "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/postcss-ordered-values": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", - "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -16620,6 +18208,184 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-overflow-shorthand": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", + "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", + "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.1.tgz", + "integrity": "sha512-wqqsnBFD6VIwcHHRbhjTOcOi4qRVlB26RwSr0ordPj7OubRRxdWebv/aLjKLRR8zkZrbxZyuus03nOIgC5elMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/postcss-cascade-layers": "^5.0.1", + "@csstools/postcss-color-function": "^4.0.6", + "@csstools/postcss-color-mix-function": "^3.0.6", + "@csstools/postcss-content-alt-text": "^2.0.4", + "@csstools/postcss-exponential-functions": "^2.0.5", + "@csstools/postcss-font-format-keywords": "^4.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.6", + "@csstools/postcss-gradients-interpolation-method": "^5.0.6", + "@csstools/postcss-hwb-function": "^4.0.6", + "@csstools/postcss-ic-unit": "^4.0.0", + "@csstools/postcss-initial": "^2.0.0", + "@csstools/postcss-is-pseudo-class": "^5.0.1", + "@csstools/postcss-light-dark-function": "^2.0.7", + "@csstools/postcss-logical-float-and-clear": "^3.0.0", + "@csstools/postcss-logical-overflow": "^2.0.0", + "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", + "@csstools/postcss-logical-resize": "^3.0.0", + "@csstools/postcss-logical-viewport-units": "^3.0.3", + "@csstools/postcss-media-minmax": "^2.0.5", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4", + "@csstools/postcss-nested-calc": "^4.0.0", + "@csstools/postcss-normalize-display-values": "^4.0.0", + "@csstools/postcss-oklab-function": "^4.0.6", + "@csstools/postcss-progressive-custom-properties": "^4.0.0", + "@csstools/postcss-random-function": "^1.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.6", + "@csstools/postcss-scope-pseudo-class": "^4.0.1", + "@csstools/postcss-sign-functions": "^1.1.0", + "@csstools/postcss-stepped-value-functions": "^4.0.5", + "@csstools/postcss-text-decoration-shorthand": "^4.0.1", + "@csstools/postcss-trigonometric-functions": "^4.0.5", + "@csstools/postcss-unset-value": "^4.0.0", + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.1", + "css-blank-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.1", + "css-prefers-color-scheme": "^10.0.0", + "cssdb": "^8.2.1", + "postcss-attribute-case-insensitive": "^7.0.1", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^7.0.6", + "postcss-color-hex-alpha": "^10.0.0", + "postcss-color-rebeccapurple": "^10.0.0", + "postcss-custom-media": "^11.0.5", + "postcss-custom-properties": "^14.0.4", + "postcss-custom-selectors": "^8.0.4", + "postcss-dir-pseudo-class": "^9.0.1", + "postcss-double-position-gradients": "^6.0.0", + "postcss-focus-visible": "^10.0.1", + "postcss-focus-within": "^9.0.1", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^6.0.0", + "postcss-image-set-function": "^7.0.0", + "postcss-lab-function": "^7.0.6", + "postcss-logical": "^8.0.0", + "postcss-nesting": "^13.0.1", + "postcss-opacity-percentage": "^3.0.0", + "postcss-overflow-shorthand": "^6.0.0", + "postcss-page-break": "^3.0.4", + "postcss-place": "^10.0.0", + "postcss-pseudo-class-any-link": "^10.0.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^8.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", + "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-reduce-idents": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", @@ -16638,7 +18404,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" @@ -16654,7 +18419,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -16665,11 +18429,54 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", + "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", + "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", - "license": "MIT", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -16696,7 +18503,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", - "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" @@ -16712,7 +18518,6 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", - "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -16726,8 +18531,7 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "license": "MIT" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/postcss-zindex": { "version": "6.0.2", @@ -16961,7 +18765,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "license": "MIT", "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" @@ -16971,7 +18774,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", - "license": "MIT", "engines": { "node": ">=4" } @@ -17077,7 +18879,6 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -17090,7 +18891,6 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", "engines": { "node": ">= 0.10" } @@ -17137,11 +18937,11 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -17222,7 +19022,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -17310,7 +19109,6 @@ "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "license": "MIT", "dependencies": { "@babel/code-frame": "^7.16.0", "address": "^1.1.2", @@ -17345,7 +19143,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -17358,10 +19155,9 @@ } }, "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "license": "MIT", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", "engines": { "node": ">= 12.13.0" } @@ -17370,7 +19166,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -17385,7 +19180,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -17400,7 +19194,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -17415,7 +19208,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "license": "MIT", "engines": { "node": ">=8" } @@ -17424,7 +19216,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -17448,8 +19239,7 @@ "node_modules/react-error-overlay": { "version": "6.0.11", "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==", - "license": "MIT" + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, "node_modules/react-fast-compare": { "version": "3.2.2", @@ -17509,9 +19299,9 @@ "license": "MIT" }, "node_modules/react-json-view-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.4.0.tgz", - "integrity": "sha512-wh6F6uJyYAmQ4fK0e8dSQMEWuvTs2Wr3el3sLD9bambX1+pSWUVXIz1RFaoy3TI1mZ0FqdpKq9YgbgTTgyrmXA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz", + "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==", "engines": { "node": ">=14" }, @@ -18398,8 +20188,7 @@ "node_modules/reading-time": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==", - "license": "MIT" + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" }, "node_modules/rechoir": { "version": "0.6.2", @@ -18416,7 +20205,6 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", - "license": "MIT", "dependencies": { "minimatch": "^3.0.5" }, @@ -18454,14 +20242,12 @@ "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "license": "MIT" + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "license": "MIT", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dependencies": { "regenerate": "^1.4.2" }, @@ -18479,21 +20265,19 @@ "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "license": "MIT", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -18528,26 +20312,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "license": "BSD-2-Clause", + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", + "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/rehype-raw": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", @@ -18567,7 +20347,6 @@ "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "license": "MIT", "engines": { "node": ">= 0.10" } @@ -18722,7 +20501,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "license": "MIT", "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -18735,7 +20513,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", @@ -18751,7 +20528,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -18765,7 +20541,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -18780,7 +20555,6 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -18794,7 +20568,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -18810,7 +20583,6 @@ "url": "https://github.com/sponsors/fb55" } ], - "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", @@ -18818,6 +20590,14 @@ "entities": "^2.0.0" } }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -18847,8 +20627,7 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "license": "MIT" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/reselect": { "version": "4.1.8", @@ -18913,7 +20692,6 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "license": "MIT", "engines": { "node": ">= 4" } @@ -18966,9 +20744,9 @@ "license": "BSD-3-Clause" }, "node_modules/rtlcss": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.2.0.tgz", - "integrity": "sha512-AV+V3oOVvCrqyH5Q/6RuT1IDH1Xy5kJTkEWTWZPN5rdQ3HCFOd8SrbC7c6N5Y8bPpCfZSR6yYbUATXslvfvu5g==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", + "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0", @@ -19050,12 +20828,11 @@ "license": "MIT" }, "node_modules/sass": { - "version": "1.76.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.76.0.tgz", - "integrity": "sha512-nc3LeqvF2FNW5xGF1zxZifdW3ffIz5aBb7I7tSvOoNu7z1RQ6pFt9MBuiPtjgaI62YWrM/txjWlOCFiGtf2xpw==", - "license": "MIT", + "version": "1.80.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.6.tgz", + "integrity": "sha512-ccZgdHNiBF1NHBsWvacvT5rju3y1d/Eu+8Ex6c21nHp2lZGLBEtuwc415QfiI1PJa1TpCo3iXwwSRjRpn2Ckjg==", "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", + "chokidar": "^4.0.0", "immutable": "^4.0.0", "source-map-js": ">=0.6.2 <2.0.0" }, @@ -19064,32 +20841,34 @@ }, "engines": { "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "node_modules/sass-loader": { - "version": "13.3.3", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.3.3.tgz", - "integrity": "sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA==", - "license": "MIT", + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.3.tgz", + "integrity": "sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA==", "dependencies": { "neo-async": "^2.6.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "fibers": ">= 3.1.0", + "@rspack/core": "0.x || 1.x", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" }, "peerDependenciesMeta": { - "fibers": { + "@rspack/core": { "optional": true }, "node-sass": { @@ -19100,14 +20879,42 @@ }, "sass-embedded": { "optional": true + }, + "webpack": { + "optional": true } } }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/sax": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" }, "node_modules/scheduler": { "version": "0.23.2", @@ -19122,7 +20929,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -19138,9 +20944,9 @@ } }, "node_modules/search-insights": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.16.3.tgz", - "integrity": "sha512-hSHy/s4Zk2xibhj9XTCACB+1PqS+CaJxepGNBhKc/OsHRpqvHAUAm5+uZ6kJJbGXn0pb3XqekHjg6JAqPExzqg==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", "peer": true }, "node_modules/section-matter": { @@ -19159,14 +20965,12 @@ "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "license": "MIT" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" }, "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "license": "MIT", "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -19259,6 +21063,14 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -19282,32 +21094,28 @@ } }, "node_modules/serve-handler": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", - "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", - "license": "MIT", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz", + "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==", "dependencies": { "bytes": "3.0.0", "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", "mime-types": "2.1.18", "minimatch": "3.1.2", "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", + "path-to-regexp": "3.3.0", "range-parser": "1.2.0" } }, "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==", - "license": "MIT" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==" }, "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "license": "MIT", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -19325,7 +21133,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -19334,7 +21141,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -19343,7 +21149,6 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "license": "MIT", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -19357,88 +21162,35 @@ "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "license": "ISC" + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "license": "ISC" + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/serve-static": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.0.tgz", - "integrity": "sha512-pDLK8zwl2eKaYrs8mrPZBJua4hMplRWJ1tIFksVC3FtBEBnl8dxgeHtsaMS8DhS9i4fLObaon6ABoc4/hQGdPA==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-static/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-static/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/serve-static/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static/node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static/node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -19629,13 +21381,12 @@ "license": "ISC" }, "node_modules/sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", - "license": "MIT", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", "totalist": "^3.0.0" }, "engines": { @@ -19706,7 +21457,6 @@ "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -19717,7 +21467,6 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -19780,7 +21529,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -19796,7 +21544,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -19816,7 +21563,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", - "license": "MIT", "engines": { "node": ">=12" }, @@ -19828,16 +21574,14 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/std-env": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.4.3.tgz", - "integrity": "sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==", - "license": "MIT" + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", + "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==" }, "node_modules/stream-browserify": { "version": "3.0.0", @@ -20001,7 +21745,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "license": "MIT", "engines": { "node": ">=6" } @@ -20030,7 +21773,6 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", - "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.16" @@ -20362,8 +22104,7 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "node_modules/thenify": { "version": "3.3.1", @@ -20389,8 +22130,7 @@ "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "license": "MIT" + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" }, "node_modules/timers-browserify": { "version": "2.0.12", @@ -20416,15 +22156,6 @@ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", "license": "MIT" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -20462,7 +22193,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", - "license": "MIT", "engines": { "node": ">=6" } @@ -20597,10 +22327,9 @@ "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "license": "MIT", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "engines": { "node": ">=4" } @@ -20618,7 +22347,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -20628,10 +22356,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "license": "MIT", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "engines": { "node": ">=4" } @@ -20640,7 +22367,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "license": "MIT", "engines": { "node": ">=4" } @@ -20797,15 +22523,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -20821,8 +22546,8 @@ } ], "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -21030,21 +22755,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/url/node_modules/qs": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.12.1.tgz", - "integrity": "sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/use-editable": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/use-editable/-/use-editable-2.3.3.tgz", @@ -21076,8 +22786,7 @@ "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "license": "MIT" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" }, "node_modules/utility-types": { "version": "3.10.0", @@ -21092,7 +22801,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -21180,7 +22888,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", "engines": { "node": ">= 0.8" } @@ -21259,7 +22966,6 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -21287,17 +22993,17 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "dependencies": { - "@types/estree": "^1.0.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", @@ -21332,24 +23038,18 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.9.1.tgz", - "integrity": "sha512-jnd6EoYrf9yMxCyYDPj8eutJvtjQNp8PHmni/e/ulydHBWhT5J3menXt3HEkScsu9YqMAcG4CfFjs3rj5pVU1w==", - "license": "MIT", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", "commander": "^7.2.0", + "debounce": "^1.2.1", "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", - "is-plain-object": "^5.0.0", - "lodash.debounce": "^4.0.8", - "lodash.escape": "^4.0.1", - "lodash.flatten": "^4.4.0", - "lodash.invokemap": "^4.6.0", - "lodash.pullall": "^4.2.0", - "lodash.uniqby": "^4.7.0", + "html-escaper": "^2.0.2", "opener": "^1.5.2", "picocolors": "^1.0.0", "sirv": "^2.0.3", @@ -21366,7 +23066,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "license": "MIT", "engines": { "node": ">= 10" } @@ -21375,7 +23074,6 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", - "license": "MIT", "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", @@ -21398,7 +23096,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", "engines": { "node": ">= 0.6" } @@ -21407,7 +23104,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -21419,16 +23115,14 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "license": "MIT", + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", @@ -21458,7 +23152,7 @@ "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", + "webpack-dev-middleware": "^5.3.4", "ws": "^8.13.0" }, "bin": { @@ -21484,10 +23178,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "license": "MIT", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "engines": { "node": ">=10.0.0" }, @@ -21598,28 +23291,76 @@ } }, "node_modules/webpackbar": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", - "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", - "license": "MIT", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz", + "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==", "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.3", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "consola": "^3.2.3", + "figures": "^3.2.0", + "markdown-table": "^2.0.0", "pretty-time": "^1.1.0", - "std-env": "^3.0.1" + "std-env": "^3.7.0", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.21.3" }, "peerDependencies": { "webpack": "3 || 4 || 5" } }, + "node_modules/webpackbar/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/webpackbar/node_modules/markdown-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", + "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", + "dependencies": { + "repeat-string": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webpackbar/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpackbar/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -21633,7 +23374,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } @@ -21863,10 +23603,9 @@ } }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "license": "MIT", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "engines": { "node": ">=8.3.0" }, @@ -21911,7 +23650,6 @@ "version": "1.6.11", "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", - "license": "MIT", "dependencies": { "sax": "^1.2.4" }, @@ -21949,8 +23687,7 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "license": "ISC" + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { "version": "1.10.2", @@ -22015,10 +23752,9 @@ } }, "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", - "license": "MIT", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", "engines": { "node": ">=12.20" }, diff --git a/website/package.json b/website/package.json index 397b142987..d38d8bda66 100644 --- a/website/package.json +++ b/website/package.json @@ -17,18 +17,18 @@ "watch": "docusaurus gen-api-docs all && docusaurus start" }, "dependencies": { - "@docusaurus/core": "^3.5.2", - "@docusaurus/plugin-client-redirects": "^3.5.2", - "@docusaurus/plugin-content-docs": "^3.5.2", - "@docusaurus/preset-classic": "^3.5.2", - "@docusaurus/theme-common": "^3.5.2", - "@docusaurus/theme-mermaid": "^3.5.2", + "@docusaurus/core": "^3.6.2", + "@docusaurus/plugin-client-redirects": "^3.6.2", + "@docusaurus/plugin-content-docs": "^3.6.2", + "@docusaurus/preset-classic": "^3.6.2", + "@docusaurus/theme-common": "^3.6.2", + "@docusaurus/theme-mermaid": "^3.6.2", "@mdx-js/react": "^3.1.0", "clsx": "^2.1.1", "disqus-react": "^1.1.5", - "docusaurus-plugin-openapi-docs": "^4.1.0", - "docusaurus-theme-openapi-docs": "^4.1.0", - "postcss": "^8.4.47", + "docusaurus-plugin-openapi-docs": "^4.2.0", + "docusaurus-theme-openapi-docs": "^4.2.0", + "postcss": "^8.4.49", "prism-react-renderer": "^2.4.0", "react": "^18.3.1", "react-before-after-slider-component": "^1.1.8", @@ -52,7 +52,7 @@ }, "devDependencies": { "@docusaurus/module-type-aliases": "^3.3.2", - "@docusaurus/tsconfig": "^3.5.2", + "@docusaurus/tsconfig": "^3.6.2", "@docusaurus/types": "^3.3.2", "@types/react": "^18.3.12", "cross-env": "^7.0.3", diff --git a/website/sidebars.js b/website/sidebars.js index d7ae2be133..7a3f51adc5 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -111,10 +111,8 @@ export default { "install-config/upgrade", "install-config/beta", "install-config/reverse-proxy", - "install-config/geoip", "install-config/automated-install", "install-config/air-gapped", - "install-config/storage-s3", ], }, { @@ -543,7 +541,11 @@ export default { type: "category", label: "Operations", collapsed: true, - items: ["sys-mgmt/ops/monitoring"], + items: [ + "sys-mgmt/ops/monitoring", + "sys-mgmt/ops/storage-s3", + "sys-mgmt/ops/geoip", + ], }, { type: "category", @@ -652,20 +654,41 @@ export default { type: "category", label: "CVEs", items: [ - "security/cves/CVE-2024-47077", - "security/cves/CVE-2024-47070", - "security/cves/CVE-2024-38371", - "security/cves/CVE-2024-37905", - "security/cves/CVE-2024-23647", - "security/cves/CVE-2024-21637", - "security/cves/CVE-2023-48228", - "security/cves/GHSA-rjvp-29xq-f62w", - "security/cves/CVE-2023-39522", - "security/cves/CVE-2023-36456", - "security/cves/CVE-2023-26481", - "security/cves/CVE-2022-23555", - "security/cves/CVE-2022-46145", - "security/cves/CVE-2022-46172", + { + type: "category", + label: "2024", + items: [ + "security/cves/CVE-2024-52307", + "security/cves/CVE-2024-52289", + "security/cves/CVE-2024-52287", + "security/cves/CVE-2024-47077", + "security/cves/CVE-2024-47070", + "security/cves/CVE-2024-38371", + "security/cves/CVE-2024-37905", + "security/cves/CVE-2024-23647", + "security/cves/CVE-2024-21637", + ], + }, + { + type: "category", + label: "2023", + items: [ + "security/cves/CVE-2023-48228", + "security/cves/GHSA-rjvp-29xq-f62w", + "security/cves/CVE-2023-39522", + "security/cves/CVE-2023-36456", + "security/cves/CVE-2023-26481", + ], + }, + { + type: "category", + label: "2022", + items: [ + "security/cves/CVE-2022-23555", + "security/cves/CVE-2022-46145", + "security/cves/CVE-2022-46172", + ], + }, ], }, ],