diff --git a/authentik/blueprints/v1/importer.py b/authentik/blueprints/v1/importer.py index aa937fae1..058b05b29 100644 --- a/authentik/blueprints/v1/importer.py +++ b/authentik/blueprints/v1/importer.py @@ -35,7 +35,7 @@ from authentik.core.models import ( Source, UserSourceConnection, ) -from authentik.enterprise.models import LicenseUsage +from authentik.enterprise.models import LicenseKey, LicenseUsage from authentik.events.utils import cleanse_dict from authentik.flows.models import FlowToken, Stage from authentik.lib.models import SerializerModel @@ -110,12 +110,16 @@ class Importer: self.__pk_map: dict[Any, Model] = {} self._import = blueprint self.logger = get_logger() - ctx = {} + ctx = self.default_context() always_merger.merge(ctx, self._import.context) if context: always_merger.merge(ctx, context) self._import.context = ctx + def default_context(self): + """Default context""" + return {"goauthentik.io/enterprise/licensed": LicenseKey.get_total().is_valid()} + @staticmethod def from_string(yaml_input: str, context: dict | None = None) -> "Importer": """Parse YAML string and create blueprint importer from it""" diff --git a/authentik/enterprise/providers/rac/api/property_mappings.py b/authentik/enterprise/providers/rac/api/property_mappings.py index 4afef68bb..360ad978a 100644 --- a/authentik/enterprise/providers/rac/api/property_mappings.py +++ b/authentik/enterprise/providers/rac/api/property_mappings.py @@ -1,15 +1,18 @@ """RAC Provider API Views""" +from django_filters.filters import AllValuesMultipleFilter +from django_filters.filterset import FilterSet +from drf_spectacular.types import OpenApiTypes +from drf_spectacular.utils import extend_schema_field from rest_framework.fields import CharField from rest_framework.viewsets import ModelViewSet from authentik.core.api.propertymappings import PropertyMappingSerializer from authentik.core.api.used_by import UsedByMixin from authentik.core.api.utils import JSONDictField -from authentik.enterprise.api import EnterpriseRequiredMixin from authentik.enterprise.providers.rac.models import RACPropertyMapping -class RACPropertyMappingSerializer(EnterpriseRequiredMixin, PropertyMappingSerializer): +class RACPropertyMappingSerializer(PropertyMappingSerializer): """RACPropertyMapping Serializer""" static_settings = JSONDictField() @@ -26,6 +29,16 @@ class RACPropertyMappingSerializer(EnterpriseRequiredMixin, PropertyMappingSeria fields = PropertyMappingSerializer.Meta.fields + ["static_settings"] +class RACPropertyMappingFilter(FilterSet): + """Filter for RACPropertyMapping""" + + managed = extend_schema_field(OpenApiTypes.STR)(AllValuesMultipleFilter(field_name="managed")) + + class Meta: + model = RACPropertyMapping + fields = ["name", "managed"] + + class RACPropertyMappingViewSet(UsedByMixin, ModelViewSet): """RACPropertyMapping Viewset""" @@ -33,4 +46,4 @@ class RACPropertyMappingViewSet(UsedByMixin, ModelViewSet): serializer_class = RACPropertyMappingSerializer search_fields = ["name"] ordering = ["name"] - filterset_fields = ["name", "managed"] + filterset_class = RACPropertyMappingFilter diff --git a/authentik/enterprise/providers/rac/views.py b/authentik/enterprise/providers/rac/views.py index 4b93aee76..c1dc2c667 100644 --- a/authentik/enterprise/providers/rac/views.py +++ b/authentik/enterprise/providers/rac/views.py @@ -15,7 +15,7 @@ from authentik.events.models import Event, EventAction from authentik.flows.challenge import RedirectChallenge from authentik.flows.exceptions import FlowNonApplicableException from authentik.flows.models import in_memory_stage -from authentik.flows.planner import FlowPlanner +from authentik.flows.planner import PLAN_CONTEXT_APPLICATION, FlowPlanner from authentik.flows.stage import RedirectStage from authentik.flows.views.executor import SESSION_KEY_PLAN from authentik.lib.utils.time import timedelta_from_string @@ -39,7 +39,12 @@ class RACStartView(EnterprisePolicyAccessView): planner = FlowPlanner(self.provider.authorization_flow) planner.allow_empty_flows = True try: - plan = planner.plan(self.request) + plan = planner.plan( + self.request, + { + PLAN_CONTEXT_APPLICATION: self.application, + }, + ) except FlowNonApplicableException: raise Http404 plan.insert_stage( diff --git a/authentik/sources/oauth/api/source.py b/authentik/sources/oauth/api/source.py index a67dc1802..398ce9671 100644 --- a/authentik/sources/oauth/api/source.py +++ b/authentik/sources/oauth/api/source.py @@ -56,6 +56,7 @@ class OAuthSourceSerializer(SourceSerializer): """Get source's type configuration""" return SourceTypeSerializer(instance.source_type).data + # pylint: disable=too-many-locals def validate(self, attrs: dict) -> dict: session = get_http_session() source_type = registry.find_type(attrs["provider_type"]) @@ -73,9 +74,17 @@ class OAuthSourceSerializer(SourceSerializer): config = well_known_config.json() if "issuer" not in config: raise ValidationError({"oidc_well_known_url": "Invalid well-known configuration"}) - attrs["authorization_url"] = config.get("authorization_endpoint", "") - attrs["access_token_url"] = config.get("token_endpoint", "") - attrs["profile_url"] = config.get("userinfo_endpoint", "") + field_map = { + # authentik field to oidc field + "authorization_url": "authorization_endpoint", + "access_token_url": "token_endpoint", + "profile_url": "userinfo_endpoint", + } + for ak_key, oidc_key in field_map.items(): + # Don't overwrite user-set values + if ak_key in attrs and attrs[ak_key]: + continue + attrs[ak_key] = config.get(oidc_key, "") inferred_oidc_jwks_url = config.get("jwks_uri", "") # Prefer user-entered URL to inferred URL to default URL diff --git a/authentik/sources/oauth/tests/test_type_azure_ad.py b/authentik/sources/oauth/tests/test_type_azure_ad.py index ff9b078f9..2f1e1731e 100644 --- a/authentik/sources/oauth/tests/test_type_azure_ad.py +++ b/authentik/sources/oauth/tests/test_type_azure_ad.py @@ -44,3 +44,7 @@ class TestTypeAzureAD(TestCase): self.assertEqual(ak_context["username"], AAD_USER["userPrincipalName"]) self.assertEqual(ak_context["email"], AAD_USER["mail"]) self.assertEqual(ak_context["name"], AAD_USER["displayName"]) + + def test_user_id(self): + """Test azure AD user ID""" + self.assertEqual(AzureADOAuthCallback().get_user_id(AAD_USER), AAD_USER["id"]) diff --git a/authentik/sources/oauth/tests/test_views.py b/authentik/sources/oauth/tests/test_views.py index 46f0584d3..2a849d0a9 100644 --- a/authentik/sources/oauth/tests/test_views.py +++ b/authentik/sources/oauth/tests/test_views.py @@ -83,9 +83,6 @@ class TestOAuthSource(APITestCase): "provider_type": "openidconnect", "consumer_key": "foo", "consumer_secret": "foo", - "authorization_url": "http://foo", - "access_token_url": "http://foo", - "profile_url": "http://foo", "oidc_well_known_url": url, "oidc_jwks_url": "", }, diff --git a/authentik/sources/oauth/types/azure_ad.py b/authentik/sources/oauth/types/azure_ad.py index 3ed0496a6..80c92141b 100644 --- a/authentik/sources/oauth/types/azure_ad.py +++ b/authentik/sources/oauth/types/azure_ad.py @@ -25,6 +25,11 @@ class AzureADOAuthCallback(OpenIDConnectOAuth2Callback): client_class = UserprofileHeaderAuthClient + def get_user_id(self, info: dict[str, str]) -> str: + # Default try to get `id` for the Graph API endpoint + # fallback to OpenID logic in case the profile URL was changed + return info.get("id", super().get_user_id(info)) + def get_user_enroll_context( self, info: dict[str, Any], diff --git a/go.mod b/go.mod index 85015c845..31376999e 100644 --- a/go.mod +++ b/go.mod @@ -28,7 +28,7 @@ require ( github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.8.4 github.com/wwt/guac v1.3.2 - goauthentik.io/api/v3 v3.2023106.1 + goauthentik.io/api/v3 v3.2023106.3 golang.org/x/exp v0.0.0-20230210204819-062eb4c674ab golang.org/x/oauth2 v0.16.0 golang.org/x/sync v0.6.0 diff --git a/go.sum b/go.sum index 560fa2ce7..e08af9e15 100644 --- a/go.sum +++ b/go.sum @@ -316,8 +316,8 @@ go.opentelemetry.io/otel/trace v1.17.0 h1:/SWhSRHmDPOImIAetP1QAeMnZYiQXrTy4fMMYO go.opentelemetry.io/otel/trace v1.17.0/go.mod h1:I/4vKTgFclIsXRVucpH25X0mpFSczM7aHeaz0ZBLWjY= go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= -goauthentik.io/api/v3 v3.2023106.1 h1:HHXiw11tZzhHq5kLf43/ZhsOj+BqaHzwqWYiEOF/UpE= -goauthentik.io/api/v3 v3.2023106.1/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= +goauthentik.io/api/v3 v3.2023106.3 h1:/ROBnDg6HBNOEyINKdI8pnwiu+ETQfB3MMdjgAoxJ/I= +goauthentik.io/api/v3 v3.2023106.3/go.mod h1:zz+mEZg8rY/7eEjkMGWJ2DnGqk+zqxuybGCGrR2O4Kw= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= diff --git a/poetry.lock b/poetry.lock index 3ae864d77..977420592 100644 --- a/poetry.lock +++ b/poetry.lock @@ -707,20 +707,20 @@ tests = ["async-timeout", "coverage (>=4.5,<5.0)", "pytest", "pytest-asyncio", " [[package]] name = "channels-redis" -version = "4.1.0" +version = "4.2.0" description = "Redis-backed ASGI channel layer implementation" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "channels_redis-4.1.0-py3-none-any.whl", hash = "sha256:3696f5b9fe367ea495d402ba83d7c3c99e8ca0e1354ff8d913535976ed0abf73"}, - {file = "channels_redis-4.1.0.tar.gz", hash = "sha256:6bd4f75f4ab4a7db17cee495593ace886d7e914c66f8214a1f247ff6659c073a"}, + {file = "channels_redis-4.2.0-py3-none-any.whl", hash = "sha256:2c5b944a39bd984b72aa8005a3ae11637bf29b5092adeb91c9aad4ab819a8ac4"}, + {file = "channels_redis-4.2.0.tar.gz", hash = "sha256:01c26c4d5d3a203f104bba9e5585c0305a70df390d21792386586068162027fd"}, ] [package.dependencies] asgiref = ">=3.2.10,<4" channels = "*" msgpack = ">=1.0,<2.0" -redis = ">=4.5.3" +redis = ">=4.6" [package.extras] cryptography = ["cryptography (>=1.3.0)"] @@ -3657,28 +3657,28 @@ pyasn1 = ">=0.1.3" [[package]] name = "ruff" -version = "0.1.12" +version = "0.1.13" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.1.12-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:544038693543c11edc56bb94a9875df2dc249e3616f90c15964c720dcccf0745"}, - {file = "ruff-0.1.12-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:8a0e3ef6299c4eab75a7740730e4b4bd4a36e0bd8102ded01553403cad088fd4"}, - {file = "ruff-0.1.12-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47f6d939461e3273f10f4cd059fd0b83c249d73f1736032fffbac83a62939395"}, - {file = "ruff-0.1.12-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25be18abc1fc3f3d3fb55855c41ed5d52063316defde202f413493bb3888218c"}, - {file = "ruff-0.1.12-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d41e9f100b50526d80b076fc9c103c729387ff3f10f63606ed1038c30a372a40"}, - {file = "ruff-0.1.12-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:472a0548738d4711549c7874b43fab61aacafb1fede29c5232d4cfb8e2d13f69"}, - {file = "ruff-0.1.12-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46685ef2f106b827705df876d38617741ed4f858bbdbc0817f94476c45ab6669"}, - {file = "ruff-0.1.12-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cf6073749c70b616d7929897b14824ec6713a6c3a8195dfd2ffdcc66594d880c"}, - {file = "ruff-0.1.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bdf26e5a2efab4c3aaf6b61648ea47a525dc12775810a85c285dc9ca03e5ac0"}, - {file = "ruff-0.1.12-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b631c6a95e4b6d5c4299e599067b5a89f5b18e2f2d9a6c22b879b3c4b077c96e"}, - {file = "ruff-0.1.12-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f193f460e231e63af5fc7516897cf5ab257cbda72ae83cf9a654f1c80c3b758a"}, - {file = "ruff-0.1.12-py3-none-musllinux_1_2_i686.whl", hash = "sha256:718523c3a0b787590511f212d30cc9b194228ef369c8bdd72acd1282cc27c468"}, - {file = "ruff-0.1.12-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1c49e826de55d81a6ef93808b760925e492bad7cc470aaa114a3be158b2c7f99"}, - {file = "ruff-0.1.12-py3-none-win32.whl", hash = "sha256:fbb1c002eeacb60161e51d77b2274c968656599477a1c8c65066953276e8ee2b"}, - {file = "ruff-0.1.12-py3-none-win_amd64.whl", hash = "sha256:7fe06ba77e5b7b78db1d058478c47176810f69bb5be7c1b0d06876af59198203"}, - {file = "ruff-0.1.12-py3-none-win_arm64.whl", hash = "sha256:bb29f8e3e6c95024902eaec5a9ce1fd5ac4e77f4594f4554e67fbb0f6d9a2f37"}, - {file = "ruff-0.1.12.tar.gz", hash = "sha256:97189f38c655e573f6bea0d12e9f18aad5539fd08ab50651449450999f45383a"}, + {file = "ruff-0.1.13-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:e3fd36e0d48aeac672aa850045e784673449ce619afc12823ea7868fcc41d8ba"}, + {file = "ruff-0.1.13-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9fb6b3b86450d4ec6a6732f9f60c4406061b6851c4b29f944f8c9d91c3611c7a"}, + {file = "ruff-0.1.13-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b13ba5d7156daaf3fd08b6b993360a96060500aca7e307d95ecbc5bb47a69296"}, + {file = "ruff-0.1.13-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9ebb40442f7b531e136d334ef0851412410061e65d61ca8ce90d894a094feb22"}, + {file = "ruff-0.1.13-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226b517f42d59a543d6383cfe03cccf0091e3e0ed1b856c6824be03d2a75d3b6"}, + {file = "ruff-0.1.13-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5f0312ba1061e9b8c724e9a702d3c8621e3c6e6c2c9bd862550ab2951ac75c16"}, + {file = "ruff-0.1.13-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2f59bcf5217c661254bd6bc42d65a6fd1a8b80c48763cb5c2293295babd945dd"}, + {file = "ruff-0.1.13-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6894b00495e00c27b6ba61af1fc666f17de6140345e5ef27dd6e08fb987259d"}, + {file = "ruff-0.1.13-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a1600942485c6e66119da294c6294856b5c86fd6df591ce293e4a4cc8e72989"}, + {file = "ruff-0.1.13-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ee3febce7863e231a467f90e681d3d89210b900d49ce88723ce052c8761be8c7"}, + {file = "ruff-0.1.13-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:dcaab50e278ff497ee4d1fe69b29ca0a9a47cd954bb17963628fa417933c6eb1"}, + {file = "ruff-0.1.13-py3-none-musllinux_1_2_i686.whl", hash = "sha256:f57de973de4edef3ad3044d6a50c02ad9fc2dff0d88587f25f1a48e3f72edf5e"}, + {file = "ruff-0.1.13-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:7a36fa90eb12208272a858475ec43ac811ac37e91ef868759770b71bdabe27b6"}, + {file = "ruff-0.1.13-py3-none-win32.whl", hash = "sha256:a623349a505ff768dad6bd57087e2461be8db58305ebd5577bd0e98631f9ae69"}, + {file = "ruff-0.1.13-py3-none-win_amd64.whl", hash = "sha256:f988746e3c3982bea7f824c8fa318ce7f538c4dfefec99cd09c8770bd33e6539"}, + {file = "ruff-0.1.13-py3-none-win_arm64.whl", hash = "sha256:6bbbc3042075871ec17f28864808540a26f0f79a4478c357d3e3d2284e832998"}, + {file = "ruff-0.1.13.tar.gz", hash = "sha256:e261f1baed6291f434ffb1d5c6bd8051d1c2a26958072d38dfbec39b3dda7352"}, ] [[package]] @@ -3762,13 +3762,13 @@ tornado = ["tornado (>=5)"] [[package]] name = "service-identity" -version = "23.1.0" +version = "24.1.0" description = "Service identity verification for pyOpenSSL & cryptography." optional = false python-versions = ">=3.8" files = [ - {file = "service_identity-23.1.0-py3-none-any.whl", hash = "sha256:87415a691d52fcad954a500cb81f424d0273f8e7e3ee7d766128f4575080f383"}, - {file = "service_identity-23.1.0.tar.gz", hash = "sha256:ecb33cd96307755041e978ab14f8b14e13b40f1fbd525a4dc78f46d2b986431d"}, + {file = "service_identity-24.1.0-py3-none-any.whl", hash = "sha256:a28caf8130c8a5c1c7a6f5293faaf239bbfb7751e4862436920ee6f2616f568a"}, + {file = "service_identity-24.1.0.tar.gz", hash = "sha256:6829c9d62fb832c2e1c435629b0a8c476e1929881f28bee4d20bc24161009221"}, ] [package.dependencies] @@ -3778,7 +3778,7 @@ pyasn1 = "*" pyasn1-modules = "*" [package.extras] -dev = ["pyopenssl", "service-identity[docs,idna,mypy,tests]"] +dev = ["pyopenssl", "service-identity[idna,mypy,tests]"] docs = ["furo", "myst-parser", "pyopenssl", "sphinx", "sphinx-notfound-page"] idna = ["idna"] mypy = ["idna", "mypy", "types-pyopenssl"] @@ -3987,13 +3987,13 @@ wsproto = ">=0.14" [[package]] name = "twilio" -version = "8.11.0" +version = "8.11.1" description = "Twilio API client and TwiML generator" optional = false python-versions = ">=3.7.0" files = [ - {file = "twilio-8.11.0-py2.py3-none-any.whl", hash = "sha256:90fd47f220e597163020d3755a81aed76fd217e116ab36fd241d9bf48d1a0a18"}, - {file = "twilio-8.11.0.tar.gz", hash = "sha256:792509da936c4f47d9fa7071d5f1f3bdc9314aaf96225bac4f0ef28f8688a95b"}, + {file = "twilio-8.11.1-py2.py3-none-any.whl", hash = "sha256:0c079601b972cca25dbe0e259d5c4a01c94795842f6b9f1d02c82269019d7cbb"}, + {file = "twilio-8.11.1.tar.gz", hash = "sha256:6dfafb60e7a89ad19d2fc4055ce2b86215d30fc68d88452fa588897de8608c71"}, ] [package.dependencies] diff --git a/schema.yml b/schema.yml index d2075d0c8..2394b86e7 100644 --- a/schema.yml +++ b/schema.yml @@ -14046,7 +14046,11 @@ paths: - in: query name: managed schema: - type: string + type: array + items: + type: string + explode: true + style: form - in: query name: name schema: diff --git a/tests/wdio/package-lock.json b/tests/wdio/package-lock.json index 33d2a2a6c..a216a4363 100644 --- a/tests/wdio/package-lock.json +++ b/tests/wdio/package-lock.json @@ -17,7 +17,7 @@ "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", "npm-run-all": "^4.1.5", - "prettier": "^3.1.1", + "prettier": "^3.2.2", "ts-node": "^10.9.2", "typescript": "^5.3.3", "wdio-wait-for": "^3.0.10" @@ -6508,9 +6508,9 @@ } }, "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.2.tgz", + "integrity": "sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/tests/wdio/package.json b/tests/wdio/package.json index ffa6c3d7b..f65e25940 100644 --- a/tests/wdio/package.json +++ b/tests/wdio/package.json @@ -14,7 +14,7 @@ "eslint-config-google": "^0.14.0", "eslint-plugin-sonarjs": "^0.23.0", "npm-run-all": "^4.1.5", - "prettier": "^3.1.1", + "prettier": "^3.2.2", "ts-node": "^10.9.2", "typescript": "^5.3.3", "wdio-wait-for": "^3.0.10" diff --git a/web/.babelrc b/web/.babelrc index c6ea78f62..eec1d31f4 100644 --- a/web/.babelrc +++ b/web/.babelrc @@ -6,27 +6,27 @@ [ "@babel/plugin-proposal-decorators", { - "decoratorsBeforeExport": true - } + "decoratorsBeforeExport": true, + }, ], [ "@babel/plugin-transform-class-properties", { - "loose": true - } + "loose": true, + }, ], [ "@babel/plugin-transform-runtime", { - "regenerator": true - } + "regenerator": true, + }, ], "macros", [ "@babel/plugin-transform-private-property-in-object", { - "loose": true - } - ] - ] + "loose": true, + }, + ], + ], } diff --git a/web/package-lock.json b/web/package-lock.json index 742eae1a9..c49670b11 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -17,7 +17,7 @@ "@codemirror/theme-one-dark": "^6.1.2", "@formatjs/intl-listformat": "^7.5.3", "@fortawesome/fontawesome-free": "^6.5.1", - "@goauthentik/api": "^2023.10.6-1705072854", + "@goauthentik/api": "^2023.10.6-1705263684", "@lit-labs/context": "^0.4.0", "@lit-labs/task": "^3.1.0", "@lit/localize": "^0.11.4", @@ -63,13 +63,13 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@spotlightjs/spotlight": "^1.2.6", - "@storybook/addon-essentials": "^7.6.7", - "@storybook/addon-links": "^7.6.7", - "@storybook/api": "^7.6.7", + "@storybook/addon-essentials": "^7.6.8", + "@storybook/addon-links": "^7.6.8", + "@storybook/api": "^7.6.8", "@storybook/blocks": "^7.6.4", - "@storybook/manager-api": "^7.6.7", - "@storybook/web-components": "^7.6.7", - "@storybook/web-components-vite": "^7.6.7", + "@storybook/manager-api": "^7.6.8", + "@storybook/web-components": "^7.6.8", + "@storybook/web-components-vite": "^7.6.8", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/chart.js": "^2.9.41", "@types/codemirror": "5.60.15", @@ -88,17 +88,17 @@ "eslint-plugin-storybook": "^0.6.15", "lit-analyzer": "^2.0.3", "npm-run-all": "^4.1.5", - "prettier": "^3.1.1", + "prettier": "^3.2.2", "pseudolocale": "^2.0.0", "pyright": "=1.1.338", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^4.9.4", + "rollup": "^4.9.5", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.6.7", + "storybook": "^7.6.8", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^2.0.2", "tslib": "^2.6.2", @@ -2913,9 +2913,9 @@ } }, "node_modules/@goauthentik/api": { - "version": "2023.10.6-1705072854", - "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.10.6-1705072854.tgz", - "integrity": "sha512-6JD95OqARjlkOhI3pxHY2NYLambQ0vb8cQNH/7Vk+hGoO50VPufkpYK40JNJS7uLisrBsVJ+XhOC1J4Td1Xv8g==" + "version": "2023.10.6-1705263684", + "resolved": "https://registry.npmjs.org/@goauthentik/api/-/api-2023.10.6-1705263684.tgz", + "integrity": "sha512-a8ymAauR3B4YvuV9iP0P/pQ6VkaM7CrfPL6QVaJWgPNrylmEfSqhgCBXzC5UoUcTVR2XWDZoFq6YY0g7dVNW3g==" }, "node_modules/@hcaptcha/types": { "version": "1.0.3", @@ -4582,9 +4582,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.4.tgz", - "integrity": "sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.5.tgz", + "integrity": "sha512-idWaG8xeSRCfRq9KpRysDHJ/rEHBEXcHuJ82XY0yYFIWnLMjZv9vF/7DOq8djQ2n3Lk6+3qfSH8AqlmHlmi1MA==", "cpu": [ "arm" ], @@ -4595,9 +4595,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.4.tgz", - "integrity": "sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.5.tgz", + "integrity": "sha512-f14d7uhAMtsCGjAYwZGv6TwuS3IFaM4ZnGMUn3aCBgkcHAYErhV1Ad97WzBvS2o0aaDv4mVz+syiN0ElMyfBPg==", "cpu": [ "arm64" ], @@ -4608,9 +4608,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.4.tgz", - "integrity": "sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.5.tgz", + "integrity": "sha512-ndoXeLx455FffL68OIUrVr89Xu1WLzAG4n65R8roDlCoYiQcGGg6MALvs2Ap9zs7AHg8mpHtMpwC8jBBjZrT/w==", "cpu": [ "arm64" ], @@ -4621,9 +4621,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.4.tgz", - "integrity": "sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.5.tgz", + "integrity": "sha512-UmElV1OY2m/1KEEqTlIjieKfVwRg0Zwg4PLgNf0s3glAHXBN99KLpw5A5lrSYCa1Kp63czTpVll2MAqbZYIHoA==", "cpu": [ "x64" ], @@ -4634,9 +4634,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.4.tgz", - "integrity": "sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.5.tgz", + "integrity": "sha512-Q0LcU61v92tQB6ae+udZvOyZ0wfpGojtAKrrpAaIqmJ7+psq4cMIhT/9lfV6UQIpeItnq/2QDROhNLo00lOD1g==", "cpu": [ "arm" ], @@ -4647,9 +4647,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.4.tgz", - "integrity": "sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.5.tgz", + "integrity": "sha512-dkRscpM+RrR2Ee3eOQmRWFjmV/payHEOrjyq1VZegRUa5OrZJ2MAxBNs05bZuY0YCtpqETDy1Ix4i/hRqX98cA==", "cpu": [ "arm64" ], @@ -4660,9 +4660,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.4.tgz", - "integrity": "sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.5.tgz", + "integrity": "sha512-QaKFVOzzST2xzY4MAmiDmURagWLFh+zZtttuEnuNn19AiZ0T3fhPyjPPGwLNdiDT82ZE91hnfJsUiDwF9DClIQ==", "cpu": [ "arm64" ], @@ -4673,9 +4673,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.4.tgz", - "integrity": "sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.5.tgz", + "integrity": "sha512-HeGqmRJuyVg6/X6MpE2ur7GbymBPS8Np0S/vQFHDmocfORT+Zt76qu+69NUoxXzGqVP1pzaY6QIi0FJWLC3OPA==", "cpu": [ "riscv64" ], @@ -4686,9 +4686,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.4.tgz", - "integrity": "sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.5.tgz", + "integrity": "sha512-Dq1bqBdLaZ1Gb/l2e5/+o3B18+8TI9ANlA1SkejZqDgdU/jK/ThYaMPMJpVMMXy2uRHvGKbkz9vheVGdq3cJfA==", "cpu": [ "x64" ], @@ -4699,9 +4699,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.4.tgz", - "integrity": "sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.5.tgz", + "integrity": "sha512-ezyFUOwldYpj7AbkwyW9AJ203peub81CaAIVvckdkyH8EvhEIoKzaMFJj0G4qYJ5sw3BpqhFrsCc30t54HV8vg==", "cpu": [ "x64" ], @@ -4712,9 +4712,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.4.tgz", - "integrity": "sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.5.tgz", + "integrity": "sha512-aHSsMnUw+0UETB0Hlv7B/ZHOGY5bQdwMKJSzGfDfvyhnpmVxLMGnQPGNE9wgqkLUs3+gbG1Qx02S2LLfJ5GaRQ==", "cpu": [ "arm64" ], @@ -4725,9 +4725,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.4.tgz", - "integrity": "sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.5.tgz", + "integrity": "sha512-AiqiLkb9KSf7Lj/o1U3SEP9Zn+5NuVKgFdRIZkvd4N0+bYrTOovVd0+LmYCPQGbocT4kvFyK+LXCDiXPBF3fyA==", "cpu": [ "ia32" ], @@ -4738,9 +4738,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.4.tgz", - "integrity": "sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.5.tgz", + "integrity": "sha512-1q+mykKE3Vot1kaFJIDoUFv5TuW+QQVaf2FmTT9krg86pQrGStOSJJ0Zil7CFagyxDuouTepzt5Y5TVzyajOdQ==", "cpu": [ "x64" ], @@ -4883,12 +4883,12 @@ } }, "node_modules/@storybook/addon-actions": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.7.tgz", - "integrity": "sha512-+6EZvhIeKEqG/RNsU3R5DxOrd60BL5GEvmzE2w60s2eKaNNxtyilDjiO1g4z2s2zDNyr7JL/Ft03pJ0Jgo0lew==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.6.8.tgz", + "integrity": "sha512-/KQlr/nLsAazJuSVUoMjQdwAeeXkKEtElKdqXrqI1LVOi5a7kMgB+bmn9aKX+7VBQLfQ36Btyty+FaY7bRtehQ==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.7", + "@storybook/core-events": "7.6.8", "@storybook/global": "^5.0.0", "@types/uuid": "^9.0.1", "dequal": "^2.0.2", @@ -4901,9 +4901,9 @@ } }, "node_modules/@storybook/addon-backgrounds": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.7.tgz", - "integrity": "sha512-55sBy1YUqponAVe+qL16qtWxdf63vHEnIoqFyHEwGpk7K9IhFA1BmdSpFr5VnWEwXeJXKj30db78frh2LUdk3Q==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.6.8.tgz", + "integrity": "sha512-b+Oj41z2W/Pv6oCXmcjGdNkOStbVItrlDoIeUGyDKrngzH9Kpv5u2XZTHkZWGWusLhOVq8ENBDqj6ENRL6kDtw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -4916,12 +4916,12 @@ } }, "node_modules/@storybook/addon-controls": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.7.tgz", - "integrity": "sha512-DJ3gfvcdCgqi7AQxu83vx0AEUKiuJrNcSATfWV3Jqi8dH6fYO2yqpemHEeWOEy+DAHxIOaqLKwb1QjIBj+vSRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.6.8.tgz", + "integrity": "sha512-vjBwO1KbjB3l74qOVvLvks4LJjAIStr2n4j7Grdhqf2eeQvj122gT51dXstndtMNFqNHD4y3eImwNAbuaYrrnw==", "dev": true, "dependencies": { - "@storybook/blocks": "7.6.7", + "@storybook/blocks": "7.6.8", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" }, @@ -4931,26 +4931,26 @@ } }, "node_modules/@storybook/addon-docs": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.7.tgz", - "integrity": "sha512-2dfajNhweofJ3LxjGO83UE5sBMvKtJB0Agj7q8mMtK/9PUCUcbvsFSyZnO/s6X1zAjSn5ZrirbSoTXU4IqxwSA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.6.8.tgz", + "integrity": "sha512-vl7jNKT8x8Hnwn38l5cUr6TQZFCmx09VxarGUrMEO4mwTOoVRL2ofoh9JKFXhCiCHlMI9R0lnupGB/LAplWgPg==", "dev": true, "dependencies": { "@jest/transform": "^29.3.1", "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/components": "7.6.7", - "@storybook/csf-plugin": "7.6.7", - "@storybook/csf-tools": "7.6.7", + "@storybook/blocks": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/components": "7.6.8", + "@storybook/csf-plugin": "7.6.8", + "@storybook/csf-tools": "7.6.8", "@storybook/global": "^5.0.0", "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.6.7", - "@storybook/postinstall": "7.6.7", - "@storybook/preview-api": "7.6.7", - "@storybook/react-dom-shim": "7.6.7", - "@storybook/theming": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/node-logger": "7.6.8", + "@storybook/postinstall": "7.6.8", + "@storybook/preview-api": "7.6.8", + "@storybook/react-dom-shim": "7.6.8", + "@storybook/theming": "7.6.8", + "@storybook/types": "7.6.8", "fs-extra": "^11.1.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", @@ -4966,17 +4966,17 @@ } }, "node_modules/@storybook/addon-docs/node_modules/@storybook/preview-api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", - "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.8.tgz", + "integrity": "sha512-rtP9Yo8ZV1NWhtA3xCOAb1vU70KCV3D2U4E3rOb2prqJ2CEQ/MQbrB7KUTDRSQdT7VFbjsLQWVCTUcNo29U8JQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.7", + "@storybook/types": "7.6.8", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5006,24 +5006,24 @@ } }, "node_modules/@storybook/addon-essentials": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.7.tgz", - "integrity": "sha512-nNLMrpIvc04z4XCA+kval/44eKAFJlUJeeL2pxwP7F/PSzjWe5BXv1bQHOiw8inRO5II0PzqwWnVCI9jsj7K5A==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.6.8.tgz", + "integrity": "sha512-UoRZWPkDYL/UWsfAJk4q4nn5nayYdOvPApVsF/ZDnGsiv1zB2RpqbkiD1bfxPlGEVCoB+NQIN2s867gEpf+DjA==", "dev": true, "dependencies": { - "@storybook/addon-actions": "7.6.7", - "@storybook/addon-backgrounds": "7.6.7", - "@storybook/addon-controls": "7.6.7", - "@storybook/addon-docs": "7.6.7", - "@storybook/addon-highlight": "7.6.7", - "@storybook/addon-measure": "7.6.7", - "@storybook/addon-outline": "7.6.7", - "@storybook/addon-toolbars": "7.6.7", - "@storybook/addon-viewport": "7.6.7", - "@storybook/core-common": "7.6.7", - "@storybook/manager-api": "7.6.7", - "@storybook/node-logger": "7.6.7", - "@storybook/preview-api": "7.6.7", + "@storybook/addon-actions": "7.6.8", + "@storybook/addon-backgrounds": "7.6.8", + "@storybook/addon-controls": "7.6.8", + "@storybook/addon-docs": "7.6.8", + "@storybook/addon-highlight": "7.6.8", + "@storybook/addon-measure": "7.6.8", + "@storybook/addon-outline": "7.6.8", + "@storybook/addon-toolbars": "7.6.8", + "@storybook/addon-viewport": "7.6.8", + "@storybook/core-common": "7.6.8", + "@storybook/manager-api": "7.6.8", + "@storybook/node-logger": "7.6.8", + "@storybook/preview-api": "7.6.8", "ts-dedent": "^2.0.0" }, "funding": { @@ -5036,17 +5036,17 @@ } }, "node_modules/@storybook/addon-essentials/node_modules/@storybook/preview-api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", - "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.8.tgz", + "integrity": "sha512-rtP9Yo8ZV1NWhtA3xCOAb1vU70KCV3D2U4E3rOb2prqJ2CEQ/MQbrB7KUTDRSQdT7VFbjsLQWVCTUcNo29U8JQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.7", + "@storybook/types": "7.6.8", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5062,9 +5062,9 @@ } }, "node_modules/@storybook/addon-highlight": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.7.tgz", - "integrity": "sha512-2F/tJdn45d4zrvf/cmE1vsczl99wK8+I+kkj0G7jLsrJR0w1zTgbgjy6T9j86HBTBvWcnysNFNIRWPAOh5Wdbw==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.6.8.tgz", + "integrity": "sha512-3mUfdLxaegCKWSm0i245RhnmEgkE+uLnOkE7h2kiztrWGqYuzGBKjgfZuVrftqsEWWc7LlJ1xdDZsIgs5Z06gA==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5075,9 +5075,9 @@ } }, "node_modules/@storybook/addon-links": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.7.tgz", - "integrity": "sha512-O5LekPslkAIDtXC/TCIyg/3c0htBxDYwb/s+NrZUPTNWJsngxvTAwp6aIk6aVSeSCFUMWvBFcVsuV3hv+ndK6w==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.6.8.tgz", + "integrity": "sha512-lw+xMvzfhyOR5I5792rGCf31OfVsiNG+uCc6CEewjKdC+e4GZDXzAkLIrLVUvbf6iUvHzERD63Y5nKz2bt5yZA==", "dev": true, "dependencies": { "@storybook/csf": "^0.1.2", @@ -5098,9 +5098,9 @@ } }, "node_modules/@storybook/addon-measure": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.7.tgz", - "integrity": "sha512-t1RnnNO4Xzgnsxu63FlZwsCTF0+9jKxr44NiJAUOxW9ppbCvs/JfSDOOvcDRtPWyjgnyzexNUUctMfxvLrU01A==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.6.8.tgz", + "integrity": "sha512-76ItcwATq3BRPEtGV5Apby3E+7tOn6d5dtNpBYBZOdjUsj6E+uFtdmfHrc1Bt1ersJ7hRDCgsHArqOGXeLuDrw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5112,9 +5112,9 @@ } }, "node_modules/@storybook/addon-outline": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.7.tgz", - "integrity": "sha512-gu2y46ijjMkXlxy1f8Cctgjw5b5y8vSIqNAYlrs5/Qy+hJAWyU6lj2PFGOCCUG4L+F45fAjwWAin6qz43+WnRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.6.8.tgz", + "integrity": "sha512-eTHreyvxYLIPt5AbMyDO3CEgGClQFt+CtA/RgSjpyv9MgYXPsZp/h1ZHpYYhSPRYnRE4//YnPMuk7eLf4udaag==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0", @@ -5126,9 +5126,9 @@ } }, "node_modules/@storybook/addon-toolbars": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.7.tgz", - "integrity": "sha512-vT+YMzw8yVwndhJglI0XtELfXWq1M0HEy5ST3XPzbjmsJ54LgTf1b29UMkh0E/05qBQNFCcbT9B/tLxqWezxlg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.6.8.tgz", + "integrity": "sha512-Akr9Pfw+AzQBRPVdo8yjcdS4IiOyEIBPVn/OAcbLi6a2zLYBdn99yKi21P0o03TJjNy32A254iAQQ7zyjIwEtA==", "dev": true, "funding": { "type": "opencollective", @@ -5136,9 +5136,9 @@ } }, "node_modules/@storybook/addon-viewport": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.7.tgz", - "integrity": "sha512-Q/BKjJaKzl4RWxH45K2iIXwkicj4ReVAUIpIyd7dPBb/Bx+hEDYZxR5dDg82AMkZdA71x5ttMnuDSuVpmWAE6g==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.6.8.tgz", + "integrity": "sha512-9fvaTudqTA7HYygOWq8gnlmR5XLLjMgK4RoZqMP8OhzX0Vkkg72knPI8lyrnHwze/yMcR1e2lmbdLm55rPq6QA==", "dev": true, "dependencies": { "memoizerific": "^1.11.3" @@ -5331,13 +5331,13 @@ "dev": true }, "node_modules/@storybook/api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-7.6.7.tgz", - "integrity": "sha512-07cvtF10/KJ3dX/GdTsvpFbRwHNQnDziWAtR0J80Eno3niNzEdF/Dr/Ot35hGGrsnV29Snvnd6O2nF2HByOOpg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-7.6.8.tgz", + "integrity": "sha512-cuc4O75n3ZNnc6880hM1Tj3ieSP12v4WgmZbTv+HlEafp/5d7gqyMSLh8KusJpkbI7CHMCJ/7vv1qmLrvHK9iw==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.7", - "@storybook/manager-api": "7.6.7" + "@storybook/client-logger": "7.6.8", + "@storybook/manager-api": "7.6.8" }, "funding": { "type": "opencollective", @@ -5345,22 +5345,22 @@ } }, "node_modules/@storybook/blocks": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.7.tgz", - "integrity": "sha512-+QEvGQ0he/YvFS3lsZORJWxhQIyqcCDWsxbJxJiByePd+Z4my3q8xwtPhHW0TKRL0xUgNE/GnTfMMqJfevTuSw==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.6.8.tgz", + "integrity": "sha512-9cjwqj+VLmVHD8lU1xIGbZiu2xPQ3A+cAobmam045wvEB/wYhcrF0K0lBwHLqUWTcNdOzZy5uaoaCu/1G5AmDg==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/components": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/components": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", - "@storybook/docs-tools": "7.6.7", + "@storybook/docs-tools": "7.6.8", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.7", - "@storybook/preview-api": "7.6.7", - "@storybook/theming": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/manager-api": "7.6.8", + "@storybook/preview-api": "7.6.8", + "@storybook/theming": "7.6.8", + "@storybook/types": "7.6.8", "@types/lodash": "^4.14.167", "color-convert": "^2.0.1", "dequal": "^2.0.2", @@ -5384,17 +5384,17 @@ } }, "node_modules/@storybook/blocks/node_modules/@storybook/preview-api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", - "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.8.tgz", + "integrity": "sha512-rtP9Yo8ZV1NWhtA3xCOAb1vU70KCV3D2U4E3rOb2prqJ2CEQ/MQbrB7KUTDRSQdT7VFbjsLQWVCTUcNo29U8JQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.7", + "@storybook/types": "7.6.8", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5410,15 +5410,15 @@ } }, "node_modules/@storybook/builder-manager": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.7.tgz", - "integrity": "sha512-6HYpj6+g/qbDMvImVz/G/aANbkhppyBa1ozfHxLK7tRD79YvozCWmj2Z9umRekPv9VIeMxnI5EEzJXOsoMX5DQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.8.tgz", + "integrity": "sha512-4CZo1RHPlDJA7G+lJoVdi+/3/L1ERxVxtvwuGgk8CxVDt6vFNpoc7fEGryNv3GRzKN1/luNYNU1MTnCUSn0B2g==", "dev": true, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.6.7", - "@storybook/manager": "7.6.7", - "@storybook/node-logger": "7.6.7", + "@storybook/core-common": "7.6.8", + "@storybook/manager": "7.6.8", + "@storybook/node-logger": "7.6.8", "@types/ejs": "^3.1.1", "@types/find-cache-dir": "^3.2.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", @@ -5452,19 +5452,19 @@ } }, "node_modules/@storybook/builder-vite": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.7.tgz", - "integrity": "sha512-Sv+0ROFU9k+mkvIPsPHC0lkKDzBeMpvfO9uFRl1RDSsXBfcPPZKNo5YK7U7fOhesH0BILzurGA+U/aaITMSZ9g==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.8.tgz", + "integrity": "sha512-EC+v5n3YoTpYhe1Yk3fIa/E+jaJJAN6Udst/sWGBAc1T/f+/ECM1ee7y9PO3Zxl/wYYMFY+3hDx6OQXLAdWlcQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-common": "7.6.7", - "@storybook/csf-plugin": "7.6.7", - "@storybook/node-logger": "7.6.7", - "@storybook/preview": "7.6.7", - "@storybook/preview-api": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-common": "7.6.8", + "@storybook/csf-plugin": "7.6.8", + "@storybook/node-logger": "7.6.8", + "@storybook/preview": "7.6.8", + "@storybook/preview-api": "7.6.8", + "@storybook/types": "7.6.8", "@types/find-cache-dir": "^3.2.1", "browser-assert": "^1.2.1", "es-module-lexer": "^0.9.3", @@ -5497,17 +5497,17 @@ } }, "node_modules/@storybook/builder-vite/node_modules/@storybook/preview-api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", - "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.8.tgz", + "integrity": "sha512-rtP9Yo8ZV1NWhtA3xCOAb1vU70KCV3D2U4E3rOb2prqJ2CEQ/MQbrB7KUTDRSQdT7VFbjsLQWVCTUcNo29U8JQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.7", + "@storybook/types": "7.6.8", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5553,13 +5553,13 @@ } }, "node_modules/@storybook/channels": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.7.tgz", - "integrity": "sha512-u1hURhfQHHtZyRIDUENRCp+CRRm7IQfcjQaoWI06XCevQPuhVEtFUfXHjG+J74aA/JuuTLFUtqwNm1zGqbXTAQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.8.tgz", + "integrity": "sha512-aPgQcSjeyZDhAfr/slCphVfYGCihxuFCaCVlZuJA4uTaGEUkn+kPW2jP0yLtlSN33J79wFXsMLPQYwIS3aQ4Ew==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/global": "^5.0.0", "qs": "^6.10.0", "telejson": "^7.2.0", @@ -5571,23 +5571,23 @@ } }, "node_modules/@storybook/cli": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.7.tgz", - "integrity": "sha512-DwDWzkifBH17ry+n+d+u52Sv69dZQ+04ETJdDDzghcyAcKnFzrRNukj4tJ21cm+ZAU/r0fKR9d4Qpbogca9fAg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.8.tgz", + "integrity": "sha512-Is8nkgsbIOu+Jk9Z7x5sgMPgGs9RTVDum3cz9eA4UspPiIBJsf7nGHAWOtc+mCIm6Z3eeNbT1YMOWxz9EuqboA==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.6.7", - "@storybook/core-common": "7.6.7", - "@storybook/core-events": "7.6.7", - "@storybook/core-server": "7.6.7", - "@storybook/csf-tools": "7.6.7", - "@storybook/node-logger": "7.6.7", - "@storybook/telemetry": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/codemod": "7.6.8", + "@storybook/core-common": "7.6.8", + "@storybook/core-events": "7.6.8", + "@storybook/core-server": "7.6.8", + "@storybook/csf-tools": "7.6.8", + "@storybook/node-logger": "7.6.8", + "@storybook/telemetry": "7.6.8", + "@storybook/types": "7.6.8", "@types/semver": "^7.3.4", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", @@ -5751,9 +5751,9 @@ "dev": true }, "node_modules/@storybook/client-logger": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.7.tgz", - "integrity": "sha512-A16zpWgsa0gSdXMR9P3bWVdC9u/1B1oG4H7Z1+JhNzgnL3CdyOYO0qFSiAtNBso4nOjIAJVb6/AoBzdRhmSVQg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.8.tgz", + "integrity": "sha512-WyK+RNSYk+sy0pxk8np1MnUXSWFdy54WqtT7u64vDFs9Jxfa1oMZ+Vl6XhaFQYR++tKC7VabLcI6vZ0pOoE9Jw==", "dev": true, "dependencies": { "@storybook/global": "^5.0.0" @@ -5764,18 +5764,18 @@ } }, "node_modules/@storybook/codemod": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.7.tgz", - "integrity": "sha512-an2pD5OHqO7CE8Wb7JxjrDnpQgeoxB22MyOs8PPJ9Rvclhpjg+Ku9RogoObYm//zR4g406l7Ec8mTltUkVCEOA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.6.8.tgz", + "integrity": "sha512-3Gk+ZsD35DUgqbbRNdX547kzZK/ajIbgwynmR0FuPhZhhZuYI4+2eMNzdmI/Oe9Nov4R16senQuAZjw/Dc5LrA==", "dev": true, "dependencies": { "@babel/core": "^7.23.2", "@babel/preset-env": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.7", - "@storybook/node-logger": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/csf-tools": "7.6.8", + "@storybook/node-logger": "7.6.8", + "@storybook/types": "7.6.8", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -5805,18 +5805,18 @@ } }, "node_modules/@storybook/components": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.7.tgz", - "integrity": "sha512-1HN4p+MCI4Tx9VGZayZyqbW7SB7mXQLnS5fUbTE1gXaMYHpzFvcrRNROeV1LZPClJX6qx1jgE5ngZojhxGuxMA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.6.8.tgz", + "integrity": "sha512-ghrQkws7F2s9xwdiQq2ezQoOozCiYF9g/vnh+qttd4UgKqXDWoILb8LJGKtS7C0u0vV/Ui59EYUyDIVBT6wHlw==", "dev": true, "dependencies": { "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.6.7", + "@storybook/client-logger": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/theming": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/theming": "7.6.8", + "@storybook/types": "7.6.8", "memoizerific": "^1.11.3", "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" @@ -5831,13 +5831,13 @@ } }, "node_modules/@storybook/core-client": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.7.tgz", - "integrity": "sha512-ZQivyEzYsZok8vRj5Qan7LbiMUnO89rueWzTnZs4IS6JIaQtjoPI1rGVq+h6qOCM6tki478hic8FS+zwGQ6q+w==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.8.tgz", + "integrity": "sha512-Avt0R0F9U+PEndPS23LHyIBxbwVCeF/VCIuIfD1eTYwE9nSLzvJXqlxARfFyhYV43LQcC5fIKjxfrsyUjM5vbQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.7", - "@storybook/preview-api": "7.6.7" + "@storybook/client-logger": "7.6.8", + "@storybook/preview-api": "7.6.8" }, "funding": { "type": "opencollective", @@ -5845,17 +5845,17 @@ } }, "node_modules/@storybook/core-client/node_modules/@storybook/preview-api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", - "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.8.tgz", + "integrity": "sha512-rtP9Yo8ZV1NWhtA3xCOAb1vU70KCV3D2U4E3rOb2prqJ2CEQ/MQbrB7KUTDRSQdT7VFbjsLQWVCTUcNo29U8JQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.7", + "@storybook/types": "7.6.8", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -5871,14 +5871,14 @@ } }, "node_modules/@storybook/core-common": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.7.tgz", - "integrity": "sha512-F1fJnauVSPQtAlpicbN/O4XW38Ai8kf/IoU0Hgm9gEwurIk6MF5hiVLsaTI/5GUbrepMl9d9J+iIL4lHAT8IyA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.8.tgz", + "integrity": "sha512-TRbiv5AF2m88ixyh31yqn6FgWDYZO6e6IxbJolRvEKD4b9opfPJ5e1ocb/QPz9sBUmsrX59ghMjO8R6dDYzdwA==", "dev": true, "dependencies": { - "@storybook/core-events": "7.6.7", - "@storybook/node-logger": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/core-events": "7.6.8", + "@storybook/node-logger": "7.6.8", + "@storybook/types": "7.6.8", "@types/find-cache-dir": "^3.2.1", "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.4", @@ -5906,9 +5906,9 @@ } }, "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "18.19.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.4.tgz", - "integrity": "sha512-xNzlUhzoHotIsnFoXmJB+yWmBvFZgKCI9TtPIEdYIMM1KWfwuY8zh7wvc1u1OAXlC7dlf6mZVx/s+Y5KfFz19A==", + "version": "18.19.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.6.tgz", + "integrity": "sha512-X36s5CXMrrJOs2lQCdDF68apW4Rfx9ixYMawlepwmE4Anezv/AV2LSpKD1Ub8DAc+urp5bk0BGZ6NtmBitfnsg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -6027,9 +6027,9 @@ } }, "node_modules/@storybook/core-events": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.7.tgz", - "integrity": "sha512-KZ5d03c47pnr5/kY26pJtWq7WpmCPXLbgyjJZDSc+TTY153BdZksvlBXRHtqM1yj2UM6QsSyIuiJaADJNAbP2w==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.8.tgz", + "integrity": "sha512-c1onJHG71JKbU4hMZC31rVTSbcfhcXaB0ikGnb7rJzlUZ1YkWnb0wf0/ikQR0seDOpR3HS+WQ0M3FIpqANyETg==", "dev": true, "dependencies": { "ts-dedent": "^2.0.0" @@ -6040,26 +6040,26 @@ } }, "node_modules/@storybook/core-server": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.7.tgz", - "integrity": "sha512-elKRv/DNahNNkGcQY/FdOBrLPmZF0T0fwmAmbc4qqeAisjl+to9TO77zdo2ieaEHKyRwE3B3dOB4EXomdF4N/g==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.8.tgz", + "integrity": "sha512-/csAFNuAhF11f6D9neYNavmKPFK/ZxTskaktc4iDwBRgBM95kZ6DBFjg9ErRi5Q8Z/i92wk6qORkq4bkN/lI9w==", "dev": true, "dependencies": { "@aw-web-design/x-default-browser": "1.4.126", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.6.7", - "@storybook/channels": "7.6.7", - "@storybook/core-common": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/builder-manager": "7.6.8", + "@storybook/channels": "7.6.8", + "@storybook/core-common": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", - "@storybook/csf-tools": "7.6.7", + "@storybook/csf-tools": "7.6.8", "@storybook/docs-mdx": "^0.1.0", "@storybook/global": "^5.0.0", - "@storybook/manager": "7.6.7", - "@storybook/node-logger": "7.6.7", - "@storybook/preview-api": "7.6.7", - "@storybook/telemetry": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/manager": "7.6.8", + "@storybook/node-logger": "7.6.8", + "@storybook/preview-api": "7.6.8", + "@storybook/telemetry": "7.6.8", + "@storybook/types": "7.6.8", "@types/detect-port": "^1.3.0", "@types/node": "^18.0.0", "@types/pretty-hrtime": "^1.0.0", @@ -6093,17 +6093,17 @@ } }, "node_modules/@storybook/core-server/node_modules/@storybook/preview-api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", - "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.8.tgz", + "integrity": "sha512-rtP9Yo8ZV1NWhtA3xCOAb1vU70KCV3D2U4E3rOb2prqJ2CEQ/MQbrB7KUTDRSQdT7VFbjsLQWVCTUcNo29U8JQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.7", + "@storybook/types": "7.6.8", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6119,9 +6119,9 @@ } }, "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "18.19.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.4.tgz", - "integrity": "sha512-xNzlUhzoHotIsnFoXmJB+yWmBvFZgKCI9TtPIEdYIMM1KWfwuY8zh7wvc1u1OAXlC7dlf6mZVx/s+Y5KfFz19A==", + "version": "18.19.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.6.tgz", + "integrity": "sha512-X36s5CXMrrJOs2lQCdDF68apW4Rfx9ixYMawlepwmE4Anezv/AV2LSpKD1Ub8DAc+urp5bk0BGZ6NtmBitfnsg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -6236,12 +6236,12 @@ } }, "node_modules/@storybook/csf-plugin": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.7.tgz", - "integrity": "sha512-YL7e6H4iVcsDI0UpgpdQX2IiGDrlbgaQMHQgDLWXmZyKxBcy0ONROAX5zoT1ml44EHkL60TMaG4f7SinviJCog==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.8.tgz", + "integrity": "sha512-KYh7VwTHhXz/V9weuGY3pK9messE56TJHUD+0SO9dF2BVNKsKpAOVcjzrE6masiAFX35Dz/t9ywy8iFcfAo0dg==", "dev": true, "dependencies": { - "@storybook/csf-tools": "7.6.7", + "@storybook/csf-tools": "7.6.8", "unplugin": "^1.3.1" }, "funding": { @@ -6250,9 +6250,9 @@ } }, "node_modules/@storybook/csf-tools": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.7.tgz", - "integrity": "sha512-hyRbUGa2Uxvz3U09BjcOfMNf/5IYgRum1L6XszqK2O8tK9DGte1r6hArCIAcqiEmFMC40d0kalPzqu6WMNn7sg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.8.tgz", + "integrity": "sha512-ea6QnQRvhPOpSUbfioLlJYRLpJldNZcocgUJwOJ/e3TM6M67BZBzeDnVOJkuUKejrp++KF22GEIkbGAWErIlnA==", "dev": true, "dependencies": { "@babel/generator": "^7.23.0", @@ -6260,7 +6260,7 @@ "@babel/traverse": "^7.23.2", "@babel/types": "^7.23.0", "@storybook/csf": "^0.1.2", - "@storybook/types": "7.6.7", + "@storybook/types": "7.6.8", "fs-extra": "^11.1.0", "recast": "^0.23.1", "ts-dedent": "^2.0.0" @@ -6291,14 +6291,14 @@ "dev": true }, "node_modules/@storybook/docs-tools": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.7.tgz", - "integrity": "sha512-enTO/xVjBqwUraGCYTwdyjMvug3OSAM7TPPUEJ3KPieJNwAzcYkww/qNDMIAR4S39zPMrkAmtS3STvVadlJz7g==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.8.tgz", + "integrity": "sha512-zIbrje4JLFpfK05y3SkDNtIth/vTOEaJVa/zaHuwS1gUX73Pq3jwF2eMGVabeVWi6hvxGeZXhnIsymh/Hpbn5w==", "dev": true, "dependencies": { - "@storybook/core-common": "7.6.7", - "@storybook/preview-api": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/core-common": "7.6.8", + "@storybook/preview-api": "7.6.8", + "@storybook/types": "7.6.8", "@types/doctrine": "^0.0.3", "assert": "^2.1.0", "doctrine": "^3.0.0", @@ -6310,17 +6310,17 @@ } }, "node_modules/@storybook/docs-tools/node_modules/@storybook/preview-api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", - "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.8.tgz", + "integrity": "sha512-rtP9Yo8ZV1NWhtA3xCOAb1vU70KCV3D2U4E3rOb2prqJ2CEQ/MQbrB7KUTDRSQdT7VFbjsLQWVCTUcNo29U8JQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.7", + "@storybook/types": "7.6.8", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -6342,9 +6342,9 @@ "dev": true }, "node_modules/@storybook/manager": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.7.tgz", - "integrity": "sha512-ZCrkB2zEXogzdOcVzD242ZVm4tlHqrayotnI6iOn9uiun0Pgny0m2d7s9Zge6K2dTOO1vZiOHuA/Mr6nnIDjsA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.8.tgz", + "integrity": "sha512-INoXXoHXyw9PPMJAOAhwf9u2GNDDNdv1JAI1fhrbCAECzDabHT9lRVUo6v8I5XMc+YdMHLM1Vz38DbB+w18hFw==", "dev": true, "funding": { "type": "opencollective", @@ -6352,19 +6352,19 @@ } }, "node_modules/@storybook/manager-api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.7.tgz", - "integrity": "sha512-3Wk/BvuGUlw/X05s57zZO7gJbzfUeE9Xe+CSIvuH7RY5jx9PYnNwqNlTXPXhJ5LPvwMthae7WJVn3SuBpbptoQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.6.8.tgz", + "integrity": "sha512-BGVZb0wMTd8Hi8rUYPRzdIhWRw73qXlEupwEYyGtH63sg+aD67wyAo8/pMEpQBH4kVss7VheWY2JGpRJeFVUxw==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/router": "7.6.7", - "@storybook/theming": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/router": "7.6.8", + "@storybook/theming": "7.6.8", + "@storybook/types": "7.6.8", "dequal": "^2.0.2", "lodash": "^4.17.21", "memoizerific": "^1.11.3", @@ -6384,9 +6384,9 @@ "dev": true }, "node_modules/@storybook/node-logger": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.7.tgz", - "integrity": "sha512-XLih8MxylkpZG9+8tgp8sPGc2tldlWF+DpuAkUv6J3Mc81mPyc3cQKQWZ7Hb+m1LpRGqKV4wyOQj1rC+leVMoQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.8.tgz", + "integrity": "sha512-SVvwZAcOLdkstqnAbE5hVYsriXh6OXjLcwFEBpAYi1meQ0R70iNALVSPEfIDK1r7M163Jngsq2hRnHvbLoQNkg==", "dev": true, "funding": { "type": "opencollective", @@ -6394,9 +6394,9 @@ } }, "node_modules/@storybook/postinstall": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.7.tgz", - "integrity": "sha512-mrpRmcwFd9FcvtHPXA9x6vOrHLVCKScZX/Xx2QPWgAvB3W6uzP8G+8QNb1u834iToxrWeuszUMB9UXZK4Qj5yg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.6.8.tgz", + "integrity": "sha512-9ixyNpoT1w3WmSooCzndAWDnw4fENA1WUBcdqrzlcgaSBKiAHad1k/Yct/uBAU95l/uQ13NgXK3mx4+S6unx/g==", "dev": true, "funding": { "type": "opencollective", @@ -6404,9 +6404,9 @@ } }, "node_modules/@storybook/preview": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.7.tgz", - "integrity": "sha512-/ddKIyT+6b8CKGJAma1wood4nwCAoi/E1olCqgpCmviMeUtAiMzgK0xzPwvq5Mxkz/cPeXVi8CQgaQZCa4yvNA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.8.tgz", + "integrity": "sha512-f54EXmJcIkc5A7nQmtnCUtNFNfEOoTuPYFK7pDfcK/bVU+g63zzWhBAeIUZ8yioLKGqZPTzFEhXkpa+OqsT0Jg==", "dev": true, "funding": { "type": "opencollective", @@ -6500,9 +6500,9 @@ } }, "node_modules/@storybook/react-dom-shim": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.7.tgz", - "integrity": "sha512-b/rmy/YzVrwP+ifyZG4yXVIdeFVdTbmziodHUlbrWiUNsqtTZZur9kqkKRUH/7ofji9MFe81nd0MRlcTNFomqg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.8.tgz", + "integrity": "sha512-NIvtjdXCTwd0VA/zCaCuCYv7L35nze7qDsFW6JhSHyqB7fKyIEMSbluktO2VISotHOSkgZ2zA+rGpk3O8yh6lg==", "dev": true, "funding": { "type": "opencollective", @@ -6514,12 +6514,12 @@ } }, "node_modules/@storybook/router": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.7.tgz", - "integrity": "sha512-kkhNSdC3fXaQxILg8a26RKk4/ZbF/AUVrepUEyO8lwvbJ6LItTyWSE/4I9Ih4qV2Mjx33ncc8vLqM9p8r5qnMA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.8.tgz", + "integrity": "sha512-pFoq22w1kEwduqMpGX3FPSSukdWLMX6UQa2Cw4MDW+hzp3vhC7+3MVaBG5ShQAjGv46NNcSgsIUkyarlU5wd/A==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.7", + "@storybook/client-logger": "7.6.8", "memoizerific": "^1.11.3", "qs": "^6.10.0" }, @@ -6529,14 +6529,14 @@ } }, "node_modules/@storybook/telemetry": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.7.tgz", - "integrity": "sha512-NHGzC/LGLXpK4AFbVj8ln5ab86ZiiNFvORQMn3+LNGwUt3ZdsHBzExN+WPZdw7OPtfk4ubUY89FXH2GedhTALw==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.8.tgz", + "integrity": "sha512-hHUS3fyHjKR3ZdbG+/OVI+pwXXKOmS8L8GMuWKlpUovvCYBLm0/Q0MUQ9XaLuByOCzvAurqB3Owp3ZV7GiY30Q==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.7", - "@storybook/core-common": "7.6.7", - "@storybook/csf-tools": "7.6.7", + "@storybook/client-logger": "7.6.8", + "@storybook/core-common": "7.6.8", + "@storybook/csf-tools": "7.6.8", "chalk": "^4.1.0", "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", @@ -6615,13 +6615,13 @@ } }, "node_modules/@storybook/theming": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.7.tgz", - "integrity": "sha512-+42rfC4rZtWVAXJ7JBUQKnQ6vWBXJVHZ9HtNUWzQLPR9sJSMmHnnSMV6y5tizGgZqmBnAIkuoYk+Tt6NfwUmSA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.8.tgz", + "integrity": "sha512-0ervBgeYGieifjISlFS7x5QZF9vNgLtHHlYKdkrAsACTK+VfB0JglVwFdLrgzAKxQRlVompaxl3TecFGWlvhtw==", "dev": true, "dependencies": { "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.6.7", + "@storybook/client-logger": "7.6.8", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, @@ -6635,12 +6635,12 @@ } }, "node_modules/@storybook/types": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.7.tgz", - "integrity": "sha512-VcGwrI4AkBENxkoAUJ+Z7SyMK73hpoY0TTtw2J7tc05/xdiXhkQTX15Qa12IBWIkoXCyNrtaU+q7KR8Tjzi+uw==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.8.tgz", + "integrity": "sha512-+mABX20OhwJjqULocG5Betfidwrlk+Kq+grti+LAYwYsdBwxctBNSrqK8P9r8XDFL6PbppZeExGiHKwGu6WsKQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", + "@storybook/channels": "7.6.8", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", "file-system-cache": "2.3.0" @@ -6651,18 +6651,18 @@ } }, "node_modules/@storybook/web-components": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.7.tgz", - "integrity": "sha512-TrBhMctSIgV2qqyV7fhhaNIdAvuaca2jEDXLXFiH/M2NkyXRepNjG7AZndWhQUGvG01ojs1+2vRNqJZtKCmFDg==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/web-components/-/web-components-7.6.8.tgz", + "integrity": "sha512-AYYx7QE3hqkqRmPcqH8NdDF0W3FF8SyxcKXHrp14VQsdRpkrJkcS9XIdb6Mb6BCCz9l5Ut7SyRzBGFUA/lJEeQ==", "dev": true, "dependencies": { - "@storybook/client-logger": "7.6.7", - "@storybook/core-client": "7.6.7", - "@storybook/docs-tools": "7.6.7", + "@storybook/client-logger": "7.6.8", + "@storybook/core-client": "7.6.8", + "@storybook/docs-tools": "7.6.8", "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.6.7", - "@storybook/preview-api": "7.6.7", - "@storybook/types": "7.6.7", + "@storybook/manager-api": "7.6.8", + "@storybook/preview-api": "7.6.8", + "@storybook/types": "7.6.8", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0" }, @@ -6678,15 +6678,15 @@ } }, "node_modules/@storybook/web-components-vite": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.7.tgz", - "integrity": "sha512-jfnVNhmgDYBdEnOliNcfo9FwfDDke66y6Zw2zkOz9qhJy8DCd5TzgDEmE7AU2XRzb1a464A90xfvJpvlUracfA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/web-components-vite/-/web-components-vite-7.6.8.tgz", + "integrity": "sha512-k+XXWVALVA8gaTwaNyl6AHq5Ra2UGsayzSIqBHiX7hnl3Dth3SHq67ZwSwoh/K8nJeFXRPZXQWyMXKONemh7GQ==", "dev": true, "dependencies": { - "@storybook/builder-vite": "7.6.7", - "@storybook/core-server": "7.6.7", - "@storybook/node-logger": "7.6.7", - "@storybook/web-components": "7.6.7", + "@storybook/builder-vite": "7.6.8", + "@storybook/core-server": "7.6.8", + "@storybook/node-logger": "7.6.8", + "@storybook/web-components": "7.6.8", "magic-string": "^0.30.0" }, "engines": { @@ -6698,17 +6698,17 @@ } }, "node_modules/@storybook/web-components/node_modules/@storybook/preview-api": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.7.tgz", - "integrity": "sha512-ja85ItrT6q2TeBQ6n0CNoRi1R6L8yF2kkis9hVeTQHpwLdZyHUTRqqR5WmhtLqqQXcofyasBPOeJV06wuOhgRQ==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.8.tgz", + "integrity": "sha512-rtP9Yo8ZV1NWhtA3xCOAb1vU70KCV3D2U4E3rOb2prqJ2CEQ/MQbrB7KUTDRSQdT7VFbjsLQWVCTUcNo29U8JQ==", "dev": true, "dependencies": { - "@storybook/channels": "7.6.7", - "@storybook/client-logger": "7.6.7", - "@storybook/core-events": "7.6.7", + "@storybook/channels": "7.6.8", + "@storybook/client-logger": "7.6.8", + "@storybook/core-events": "7.6.8", "@storybook/csf": "^0.1.2", "@storybook/global": "^5.0.0", - "@storybook/types": "7.6.7", + "@storybook/types": "7.6.8", "@types/qs": "^6.9.5", "dequal": "^2.0.2", "lodash": "^4.17.21", @@ -9949,9 +9949,9 @@ } }, "node_modules/defu": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.3.tgz", - "integrity": "sha512-Vy2wmG3NTkmHNg/kzpuvHhkqeIx3ODWqasgCRbKtbXEN0G+HpEEv9BtJLp7ZG1CZloFaC41Ah3ZFbq7aqCqMeQ==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", "dev": true }, "node_modules/del": { @@ -11475,9 +11475,9 @@ "dev": true }, "node_modules/flow-parser": { - "version": "0.225.1", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.225.1.tgz", - "integrity": "sha512-50fjR6zbLQcpq5IFNkheUSY/AFPxVeeLiBM5B3NQBSKId2G0cUuExOlDDOguxc49dl9lnh8hI1xcYlPJWNp4KQ==", + "version": "0.226.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.226.0.tgz", + "integrity": "sha512-YlH+Y/P/5s0S7Vg14RwXlJMF/JsGfkG7gcKB/zljyoqaPNX9YVsGzx+g6MLTbhZaWbPhs4347aTpmSb9GgiPtw==", "dev": true, "engines": { "node": ">=0.4.0" @@ -15360,9 +15360,9 @@ } }, "node_modules/pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true }, "node_modules/peek-stream": { @@ -15519,9 +15519,9 @@ } }, "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.2.tgz", + "integrity": "sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -16447,9 +16447,9 @@ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" }, "node_modules/rollup": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.4.tgz", - "integrity": "sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.5.tgz", + "integrity": "sha512-E4vQW0H/mbNMw2yLSqJyjtkHY9dslf/p0zuT1xehNRqUTBOFMqEjguDvqhXr7N7r/4ttb2jr4T41d3dncmIgbQ==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -16462,19 +16462,19 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.4", - "@rollup/rollup-android-arm64": "4.9.4", - "@rollup/rollup-darwin-arm64": "4.9.4", - "@rollup/rollup-darwin-x64": "4.9.4", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.4", - "@rollup/rollup-linux-arm64-gnu": "4.9.4", - "@rollup/rollup-linux-arm64-musl": "4.9.4", - "@rollup/rollup-linux-riscv64-gnu": "4.9.4", - "@rollup/rollup-linux-x64-gnu": "4.9.4", - "@rollup/rollup-linux-x64-musl": "4.9.4", - "@rollup/rollup-win32-arm64-msvc": "4.9.4", - "@rollup/rollup-win32-ia32-msvc": "4.9.4", - "@rollup/rollup-win32-x64-msvc": "4.9.4", + "@rollup/rollup-android-arm-eabi": "4.9.5", + "@rollup/rollup-android-arm64": "4.9.5", + "@rollup/rollup-darwin-arm64": "4.9.5", + "@rollup/rollup-darwin-x64": "4.9.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.9.5", + "@rollup/rollup-linux-arm64-gnu": "4.9.5", + "@rollup/rollup-linux-arm64-musl": "4.9.5", + "@rollup/rollup-linux-riscv64-gnu": "4.9.5", + "@rollup/rollup-linux-x64-gnu": "4.9.5", + "@rollup/rollup-linux-x64-musl": "4.9.5", + "@rollup/rollup-win32-arm64-msvc": "4.9.5", + "@rollup/rollup-win32-ia32-msvc": "4.9.5", + "@rollup/rollup-win32-x64-msvc": "4.9.5", "fsevents": "~2.3.2" } }, @@ -17130,12 +17130,12 @@ "dev": true }, "node_modules/storybook": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.7.tgz", - "integrity": "sha512-1Cd895dqYIT5MOUOCDlD73OTWoJubLq/sWC7AMzkMrLu76yD4Cu6f+wv1HDrRAheRaCaeT3yhYEhsMB6qHIcaA==", + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.6.8.tgz", + "integrity": "sha512-ugRtDSs2eTgHMOZ3wKXbUEbPnlJ2XImPbnvxNssK14py2mHKwPnhSqLNrjlQMkmkO13GdjalLDyj4lZtoYdo0Q==", "dev": true, "dependencies": { - "@storybook/cli": "7.6.7" + "@storybook/cli": "7.6.8" }, "bin": { "sb": "index.js", @@ -17186,9 +17186,9 @@ "dev": true }, "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.2.tgz", + "integrity": "sha512-rV4Bovi9xx0BFzOb/X0B2GqoIjvqPCttZdu0Wgtx2Dxkj7ETyWl9gmqJ4EutWRLvtZWm8dxE+InQZX1IryZn/w==", "dev": true }, "node_modules/string_decoder": { diff --git a/web/package.json b/web/package.json index 013b6715e..411851574 100644 --- a/web/package.json +++ b/web/package.json @@ -42,7 +42,7 @@ "@codemirror/theme-one-dark": "^6.1.2", "@formatjs/intl-listformat": "^7.5.3", "@fortawesome/fontawesome-free": "^6.5.1", - "@goauthentik/api": "^2023.10.6-1705072854", + "@goauthentik/api": "^2023.10.6-1705263684", "@lit-labs/context": "^0.4.0", "@lit-labs/task": "^3.1.0", "@lit/localize": "^0.11.4", @@ -88,13 +88,13 @@ "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^11.1.6", "@spotlightjs/spotlight": "^1.2.6", - "@storybook/addon-essentials": "^7.6.7", - "@storybook/addon-links": "^7.6.7", - "@storybook/api": "^7.6.7", + "@storybook/addon-essentials": "^7.6.8", + "@storybook/addon-links": "^7.6.8", + "@storybook/api": "^7.6.8", "@storybook/blocks": "^7.6.4", - "@storybook/manager-api": "^7.6.7", - "@storybook/web-components": "^7.6.7", - "@storybook/web-components-vite": "^7.6.7", + "@storybook/manager-api": "^7.6.8", + "@storybook/web-components": "^7.6.8", + "@storybook/web-components-vite": "^7.6.8", "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/chart.js": "^2.9.41", "@types/codemirror": "5.60.15", @@ -113,17 +113,17 @@ "eslint-plugin-storybook": "^0.6.15", "lit-analyzer": "^2.0.3", "npm-run-all": "^4.1.5", - "prettier": "^3.1.1", + "prettier": "^3.2.2", "pseudolocale": "^2.0.0", "pyright": "=1.1.338", "react": "^18.2.0", "react-dom": "^18.2.0", - "rollup": "^4.9.4", + "rollup": "^4.9.5", "rollup-plugin-copy": "^3.5.0", "rollup-plugin-cssimport": "^1.0.3", "rollup-plugin-modify": "^3.0.0", "rollup-plugin-postcss-lit": "^2.1.0", - "storybook": "^7.6.7", + "storybook": "^7.6.8", "storybook-addon-mock": "^4.3.0", "ts-lit-plugin": "^2.0.2", "tslib": "^2.6.2", diff --git a/web/src/admin/property-mappings/PropertyMappingWizard.ts b/web/src/admin/property-mappings/PropertyMappingWizard.ts index 4f0ab6122..59b62c39c 100644 --- a/web/src/admin/property-mappings/PropertyMappingWizard.ts +++ b/web/src/admin/property-mappings/PropertyMappingWizard.ts @@ -5,6 +5,7 @@ import "@goauthentik/admin/property-mappings/PropertyMappingSAMLForm"; import "@goauthentik/admin/property-mappings/PropertyMappingScopeForm"; import "@goauthentik/admin/property-mappings/PropertyMappingTestForm"; import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; +import "@goauthentik/elements/Alert"; import { AKElement } from "@goauthentik/elements/Base"; import "@goauthentik/elements/forms/ProxyForm"; import "@goauthentik/elements/wizard/FormWizardPage"; @@ -63,7 +64,7 @@ export class InitialPropertyMappingWizardPage extends WizardPage { ]; this.host.isValid = true; }} - ?disabled=${type.requiresEnterprise ? !this.enterprise?.hasLicense : false} + ?disabled=${type.requiresEnterprise ? this.enterprise?.hasLicense : false} /> ${this.mappingTypes.map((type) => { diff --git a/web/src/admin/providers/ldap/LDAPProviderViewPage.ts b/web/src/admin/providers/ldap/LDAPProviderViewPage.ts index 421b04334..08eb03021 100644 --- a/web/src/admin/providers/ldap/LDAPProviderViewPage.ts +++ b/web/src/admin/providers/ldap/LDAPProviderViewPage.ts @@ -203,8 +203,9 @@ export class LDAPProviderViewPage extends AKElement { class="pf-c-form-control" readonly type="text" - value=${`cn=${this.me?.user - .username},ou=users,${this.provider?.baseDn?.toLowerCase()}`} + value=${`cn=${ + this.me?.user.username + },ou=users,${this.provider?.baseDn?.toLowerCase()}`} />
diff --git a/web/src/common/styles/theme-dark.css b/web/src/common/styles/theme-dark.css index 530a7c218..b36ddc735 100644 --- a/web/src/common/styles/theme-dark.css +++ b/web/src/common/styles/theme-dark.css @@ -257,7 +257,8 @@ select[multiple] option:checked { .pf-c-login__main-header-desc { color: var(--ak-dark-foreground); } -.pf-c-login__main-footer-links-item img { +.pf-c-login__main-footer-links-item img, +.pf-c-login__main-footer-links-item .fas { filter: invert(1); } .pf-c-login__main-footer-band { diff --git a/web/src/enterprise/rac/index.ts b/web/src/enterprise/rac/index.ts index 9761462e4..87163cc46 100644 --- a/web/src/enterprise/rac/index.ts +++ b/web/src/enterprise/rac/index.ts @@ -83,8 +83,12 @@ export class RacInterface extends Interface { // Keep track of current connection attempt connectionAttempt = 0; - static domSize(): DOMRect { - return document.body.getBoundingClientRect(); + static domSize(): { width: number; height: number } { + const size = document.body.getBoundingClientRect(); + return { + width: size.width * window.devicePixelRatio, + height: size.height * window.devicePixelRatio, + }; } constructor() { diff --git a/website/blog/2024-1-12-happy-new-year-from-authentik-security/item.md b/website/blog/2024-1-12-happy-new-year-from-authentik-security/item.md new file mode 100644 index 000000000..5bba1dbc4 --- /dev/null +++ b/website/blog/2024-1-12-happy-new-year-from-authentik-security/item.md @@ -0,0 +1,99 @@ +--- +title: "Happy New Year from Authentik Security" +slug: 2024-1-12-happy-new-year-from-authentik-security +authors: + - name: Jens Langhammer + title: CTO at Authentik Security Inc + url: https://github.com/BeryJu + image_url: https://github.com/BeryJu.png +tags: + - authentik + - happy new year + - new features + - year in review + - SSO + - SaaS + - SCIM + - RADIUS + - remote access + - RBAC + - identity provider + - authentication + - Authentik Security +hide_table_of_contents: false +--- + +> **_authentik is an open source Identity Provider that unifies your identity needs into a single platform, replacing Okta, Active Directory, and auth0. Authentik Security is a [public benefit company](https://github.com/OpenCoreVentures/ocv-public-benefit-company/blob/main/ocv-public-benefit-company-charter.md) building on top of the open source project._** + +--- + +A hearty Happy New Year to you all, from all of of us at Authentik Security, with sincere wishes that your 2024 may be filled with a maximum of joys (new features and elegant code) and a minimum of pains (bugs and the dreadful reality of not-enough-time). + +> The start of a new year makes me want to first say **thank you** for the past year. + +## Thank you! + +**Thank you to our community**, from the newly joined members to our long-time friends and moderators and holders-of-knowledge. Without you all, well… we literally wouldn’t be here. No matter how deep your knowledge of authentik is, it’s really your willingness to explore and test and give feedback on new and old features, all while supporting each other and staying in touch with good humor and vibes, that make us such a vibrant community. + +**Thank you to our users**, from those who run authentik in their homelabs to those who run authentik in production, and everyone in between. We appreciate your trust and guidance, and your input into how we can provide the most-needed features and grow our product in the ways that solve your business needs and challenges. + +**And of course thanks to our small team** here at Authentik Security, who joined me on this adventure and brought your skills and talents, your experience and passions, and your dedication to our product and users. We built a lot together last year, and this year has a rock-star list of features and functionality coming up! + +## Accomplishments in 2023 + +Looking back to the work we did in 2023, the new features are just a part of the overall achievements and celebrations (and challenges) of building a new [company](https://goauthentik.io/blog/2022-11-02-the-next-step-for-authentik), growing the team, celebrating our [1st year](https://goauthentik.io/blog/2023-11-1-happy-birthday-to-us), and [defining our tools and processes](https://goauthentik.io/blog/2023-12-21-five-lessons-from-choosing-infrastructure-tooling). But we released quite a few new features that I’m proud to share. + +### RBAC + +[RBAC](https://goauthentik.io/docs/user-group-role/access-control/) (role-based access control) is the gold standard of access control. RBAC provides the ability to finely configure permissions within authentik. These permissions can be used to delegate different tasks, such as user management, application creation and more to users without granting them full superuser permissions. authentik has had internal RBAC for a long time (and of course the policy engine for restricting access to applications), however access to different objects within authentik (like Users, Groups, etc) was not possible previously. + +### Enterprise Support + +Providing dedicated support with a proper ticketing system was a big accomplishment for 2023. Support was the flagship feature of our [Enterprise release](https://goauthentik.io/blog/2023-08-31-announcing-the-authentik-enterprise-release) in the fall of 2023. + +### SCIM support + +Our [2023.3 release](https://goauthentik.io/docs/releases/2023.3) added support for SCIM (System for Cross-domain Identity Management) protocol, allowing for the provision of users into other IT systems, where the provider synchronizes Users, Groups and the user membership. + +### RADIUS Support + +The [RADIUS protocol](https://goauthentik.io/docs/providers/radius/) for authentication allows for the integration of a wider variety of systems such as VPN software, network switches/routers, and others. The RADIUS provider also uses a flow to authenticate users, and supports the same stages as the [LDAP Provider](https://goauthentik.io/docs/providers/ldap/). + +## What’s coming up in 2024? + +Looking forward to new functionality for the new year, let me share some of the ones I am most excited about. As with any small development team, we tackle what we can, with an eye on which features will be most beneficial for you all, which have dependencies upon later features, maintainability as we further develop the feature, and how to best get them all out the door fully tested and documented. + +### Wizardry + +The task of adding the applications that you want authentik to authenticate is about to get a lot easier; we have a new wizard that combines the process of defining a new provider and a new application into one single task. This new wizard saves many steps and streamlines the process. Look for it in preview mode in our current 2023.10 release (navigate to the Applications page in the Admin UI), and let us know your thoughts. We will continue tweaking it, specifically the multi-select functionality, but feedback is always welcome! + +![](./new-app-wizard.png) + +### Remote Access Control (RAC) + +With [RAC](https://goauthentik.io/docs/providers/rac/), in preview now with a full release in early 2024, authentik Admins are able to access remote Windows/macOS/Linux machines via [RDP](https://en.wikipedia.org/wiki/Remote_Desktop_Protocol)/[SSH](https://en.wikipedia.org/wiki/Secure_Shell)/[VNC](https://en.wikipedia.org/wiki/Virtual_Network_Computing). The preview version already has capabilities for using a bi-directoinal clipboard between the authentik client and the remote machine, audio redirection (meaning you can hear audio from the remote machine on your local instance), and resizing of the window you view of the remote machine. + +### Mobile authenticator app for authentik + +Soon you will be able to download our new authentik authentication app from Apple Store, and a bit further into 2024, from Google Play Store. This app can be used for 2FA/MFA verification when authentik users log in to authentik or access any application managed by an authentik instance. The first release of this app will use number-matching as the default verification process; users will view their authentik authenticator app on their phone, be prompted with a set of three numbers, and then need to select the same number that is displayed on their authentik instance login panel. + +### Building out our SaaS offering + +One of our most exciting, and definitely our biggest, projects for 2024 will be developing our SaaS offering, the hosted, fully-managed Enterprise Cloud. The Enterprise Cloud plan will provide the convenience of our enterprise-level product as a SaaS offering, hosted and managed by Authentik Security. For many organizations, the benefits of decreased operational costs and universal data access (no VPN, servers, and network configuration required) make SaaS the best choice. With the cloud offering, the same enterprise-level support plan is included, and migrating to self-hosted is always an option. + +### DX and UX and quality-of-life improvements + +As we mentioned in our blog about our one-year anniversary, we also plan to spend some time focused on user experience. + +- Increase our focus on UX and ease-of-use, templatizing as much as possible of the frontend components, and developing a UI Style Guide +- A redesigned website, with more information about our solutions, use cases, and offerings +- New structure for our technical documentation; leveraging information architecture and user research to make it easier to find what you are looking for in our docs +- Defining even more robust tests and checks for our CI/CD pipeline and build process +- Stronger integration and migration testing, both automated and manual +- Spending more time on outreach and user research to learn what you all want + +### Yes, a big year ahead + +As most of us in the software and technology space know, the hard work of building new features and growing a company is, well, actually kind of fun. Challenging, yes, but always rewarding. + +We’d love to hear from you all about our upcoming plans; reach out to us with an email to [hello@goauthentik.io](mailto:hello@goauthentik.io) or on [Discord](https://discord.com/channels/809154715984199690/809154716507963434). diff --git a/website/blog/2024-1-12-happy-new-year-from-authentik-security/new-app-wizard.png b/website/blog/2024-1-12-happy-new-year-from-authentik-security/new-app-wizard.png new file mode 100644 index 000000000..3273cace5 Binary files /dev/null and b/website/blog/2024-1-12-happy-new-year-from-authentik-security/new-app-wizard.png differ diff --git a/website/package-lock.json b/website/package-lock.json index 488dda4d8..30fe83f3f 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -34,7 +34,7 @@ "@docusaurus/tsconfig": "3.0.1", "@docusaurus/types": "3.0.1", "@types/react": "^18.2.47", - "prettier": "3.1.1", + "prettier": "3.2.2", "typescript": "~5.3.3" }, "engines": { @@ -13754,9 +13754,9 @@ } }, "node_modules/prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz", - "integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.2.tgz", + "integrity": "sha512-HTByuKZzw7utPiDO523Tt2pLtEyK7OibUD9suEJQrPUCYQqrHr74GGX6VidMrovbf/I50mPqr8j/II6oBAuc5A==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/website/package.json b/website/package.json index 37ba114a8..7332a71af 100644 --- a/website/package.json +++ b/website/package.json @@ -53,7 +53,7 @@ "@docusaurus/tsconfig": "3.0.1", "@docusaurus/types": "3.0.1", "@types/react": "^18.2.47", - "prettier": "3.1.1", + "prettier": "3.2.2", "typescript": "~5.3.3" }, "engines": {