From 134cd2dc8107538881ee4506af1b27b5a2c5b2a1 Mon Sep 17 00:00:00 2001 From: Jens L Date: Fri, 12 Jan 2024 20:48:41 +0100 Subject: [PATCH 01/16] web/flows: fix icon for generic oauth source with dark theme (#8148) Signed-off-by: Jens Langhammer --- web/src/common/styles/theme-dark.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 { From e51f900cdb83f9da08d8e365fed36757a562d81e Mon Sep 17 00:00:00 2001 From: Jens L Date: Fri, 12 Jan 2024 20:48:50 +0100 Subject: [PATCH 02/16] sources/oauth: fix azure_ad user_id and add test and fallback (#8146) Signed-off-by: Jens Langhammer --- authentik/sources/oauth/tests/test_type_azure_ad.py | 4 ++++ authentik/sources/oauth/types/azure_ad.py | 5 +++++ 2 files changed, 9 insertions(+) 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/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], From 85ebbcfb82ff024a52b54915807f12beaef29cd7 Mon Sep 17 00:00:00 2001 From: Tana M Berry Date: Fri, 12 Jan 2024 15:42:48 -0600 Subject: [PATCH 03/16] website/docs: Blog for the new year (#8150) * new year blog * add image * Optimised images with calibre/image-actions * fixed odd wording --------- Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> --- .../item.md | 99 ++++++++++++++++++ .../new-app-wizard.png | Bin 0 -> 80183 bytes 2 files changed, 99 insertions(+) create mode 100644 website/blog/2024-1-12-happy-new-year-from-authentik-security/item.md create mode 100644 website/blog/2024-1-12-happy-new-year-from-authentik-security/new-app-wizard.png 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 0000000000000000000000000000000000000000..3273cace5bfc62f483ae2e85fee23d2fd072bd48 GIT binary patch literal 80183 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 n+Y1&&_R5%IZ7(0W`y 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 SYcC-1QMjdgGf&Pi@c#e-+i?*9 literal 0 HcmV?d00001 From 7c116acf0f1d2bcd191c95e4b2c982034daa556e Mon Sep 17 00:00:00 2001 From: Jens L Date: Sat, 13 Jan 2024 16:27:44 +0100 Subject: [PATCH 04/16] sources/oauth: fix URLs being overwritten by OIDC urls (#8147) * sources/oauth: fix URLs being overwritten by OIDC urls Signed-off-by: Jens Langhammer * fix tests Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/sources/oauth/api/source.py | 15 ++++++++++++--- authentik/sources/oauth/tests/test_views.py | 3 --- 2 files changed, 12 insertions(+), 6 deletions(-) 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_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": "", }, From 85f15848449ae7619f86f6937cb9fcc922ccd7c3 Mon Sep 17 00:00:00 2001 From: Jens L Date: Sun, 14 Jan 2024 21:21:06 +0100 Subject: [PATCH 05/16] providers/rac: fix property mapping without enterprise (#8144) * make rac blueprint only run when enterprise is active Signed-off-by: Jens Langhammer * make rac api same as other mappings Signed-off-by: Jens Langhammer * automatically scale size sent by device pixel ratio Signed-off-by: Jens Langhammer * actually always allow creation of rac mappings Signed-off-by: Jens Langhammer * fix missing application in flow context Signed-off-by: Jens Langhammer * fix wizard showing enterprise warning when license is installed Signed-off-by: Jens Langhammer * cleanup Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- authentik/blueprints/v1/importer.py | 8 ++++++-- .../providers/rac/api/property_mappings.py | 19 ++++++++++++++++--- authentik/enterprise/providers/rac/views.py | 9 +++++++-- schema.yml | 6 +++++- .../PropertyMappingWizard.ts | 4 +++- web/src/enterprise/rac/index.ts | 8 ++++++-- 6 files changed, 43 insertions(+), 11 deletions(-) diff --git a/authentik/blueprints/v1/importer.py b/authentik/blueprints/v1/importer.py index eb4942958..13ee74063 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 @@ -108,12 +108,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/schema.yml b/schema.yml index 85dd0e5f5..a838ce9a8 100644 --- a/schema.yml +++ b/schema.yml @@ -13961,7 +13961,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/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/enterprise/rac/index.ts b/web/src/enterprise/rac/index.ts index e5a9e04e7..bf09917d4 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() { From 40f74fc62a391792fd06faafb8c11b374c43b514 Mon Sep 17 00:00:00 2001 From: "authentik-automation[bot]" <135050075+authentik-automation[bot]@users.noreply.github.com> Date: Sun, 14 Jan 2024 21:36:55 +0100 Subject: [PATCH 06/16] web: bump API Client version (#8163) Signed-off-by: GitHub Co-authored-by: authentik-automation[bot] <135050075+authentik-automation[bot]@users.noreply.github.com> --- web/package-lock.json | 8 ++++---- web/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 742eae1a9..3c625249d 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", @@ -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", diff --git a/web/package.json b/web/package.json index 013b6715e..49075ab6f 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", From 73702c23f7ac6524e6e64be346fa1b4539ddda63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:04:09 +0100 Subject: [PATCH 07/16] website: bump prettier from 3.1.1 to 3.2.2 in /website (#8174) Bumps [prettier](https://github.com/prettier/prettier) from 3.1.1 to 3.2.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.1.1...3.2.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- website/package-lock.json | 8 ++++---- website/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) 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": { From 1bd6b33598308507b07b67559392886c8775f3f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:04:24 +0100 Subject: [PATCH 08/16] core: bump goauthentik.io/api/v3 from 3.2023106.1 to 3.2023106.3 (#8173) Bumps [goauthentik.io/api/v3](https://github.com/goauthentik/client-go) from 3.2023106.1 to 3.2023106.3. - [Release notes](https://github.com/goauthentik/client-go/releases) - [Commits](https://github.com/goauthentik/client-go/compare/v3.2023106.1...v3.2023106.3) --- updated-dependencies: - dependency-name: goauthentik.io/api/v3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) 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= From fc97777192abf39024ca739baa4765671c2038dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:04:33 +0100 Subject: [PATCH 09/16] core: bump twilio from 8.11.0 to 8.11.1 (#8170) Bumps [twilio](https://github.com/twilio/twilio-python) from 8.11.0 to 8.11.1. - [Release notes](https://github.com/twilio/twilio-python/releases) - [Changelog](https://github.com/twilio/twilio-python/blob/main/CHANGES.md) - [Commits](https://github.com/twilio/twilio-python/compare/8.11.0...8.11.1) --- updated-dependencies: - dependency-name: twilio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3223fe16d..44706a2c3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3773,13 +3773,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] From 7c0a8f6b74172c14628fc0792673fac6f93d13fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:04:43 +0100 Subject: [PATCH 10/16] web: bump prettier from 3.1.1 to 3.2.2 in /tests/wdio (#8172) Bumps [prettier](https://github.com/prettier/prettier) from 3.1.1 to 3.2.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.1.1...3.2.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tests/wdio/package-lock.json | 8 ++++---- tests/wdio/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) 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" From 9a43dc9ad03a1315846ea300393f2c985906df6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:04:50 +0100 Subject: [PATCH 11/16] web: bump rollup from 4.9.4 to 4.9.5 in /web (#8166) Bumps [rollup](https://github.com/rollup/rollup) from 4.9.4 to 4.9.5. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.9.4...v4.9.5) --- updated-dependencies: - dependency-name: rollup dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 112 +++++++++++++++++++++--------------------- web/package.json | 2 +- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index 3c625249d..deb45c868 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -93,7 +93,7 @@ "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", @@ -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" ], @@ -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" } }, diff --git a/web/package.json b/web/package.json index 49075ab6f..ce1d18b31 100644 --- a/web/package.json +++ b/web/package.json @@ -118,7 +118,7 @@ "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", From b081d309c2075e5b7ad775cee07c12af3852c841 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:05:35 +0100 Subject: [PATCH 12/16] core: bump channels-redis from 4.1.0 to 4.2.0 (#8167) Bumps [channels-redis](https://github.com/django/channels_redis) from 4.1.0 to 4.2.0. - [Changelog](https://github.com/django/channels_redis/blob/main/CHANGELOG.txt) - [Commits](https://github.com/django/channels_redis/commits) --- updated-dependencies: - dependency-name: channels-redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 44706a2c3..06ac6a519 100644 --- a/poetry.lock +++ b/poetry.lock @@ -669,20 +669,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)"] From 2b1bb6784465e7fa92c475de9aa14e03f32e9653 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:06:08 +0100 Subject: [PATCH 13/16] core: bump service-identity from 23.1.0 to 24.1.0 (#8171) Bumps [service-identity](https://github.com/sponsors/hynek) from 23.1.0 to 24.1.0. - [Commits](https://github.com/sponsors/hynek/commits) --- updated-dependencies: - dependency-name: service-identity dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 06ac6a519..95525857c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3561,13 +3561,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] @@ -3577,7 +3577,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"] From 379436655e65da8e14c9ba13c4ec2cc0676708e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:06:58 +0100 Subject: [PATCH 14/16] core: bump ruff from 0.1.12 to 0.1.13 (#8169) Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.12 to 0.1.13. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/v0.1.12...v0.1.13) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/poetry.lock b/poetry.lock index 95525857c..3f21176cd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3473,28 +3473,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]] From 73fb0551b126fcca046fb46ffca09521dd3e8f6b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:07:05 +0100 Subject: [PATCH 15/16] web: bump the storybook group in /web with 7 updates (#8164) Bumps the storybook group in /web with 7 updates: | Package | From | To | | --- | --- | --- | | [@storybook/addon-essentials](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials) | `7.6.7` | `7.6.8` | | [@storybook/addon-links](https://github.com/storybookjs/storybook/tree/HEAD/code/addons/links) | `7.6.7` | `7.6.8` | | [@storybook/api](https://github.com/storybookjs/storybook/tree/HEAD/code/deprecated/manager-api-shim) | `7.6.7` | `7.6.8` | | [@storybook/manager-api](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/manager-api) | `7.6.7` | `7.6.8` | | [@storybook/web-components](https://github.com/storybookjs/storybook/tree/HEAD/code/renderers/web-components) | `7.6.7` | `7.6.8` | | [@storybook/web-components-vite](https://github.com/storybookjs/storybook/tree/HEAD/code/frameworks/web-components-vite) | `7.6.7` | `7.6.8` | | [storybook](https://github.com/storybookjs/storybook/tree/HEAD/code/lib/cli) | `7.6.7` | `7.6.8` | Updates `@storybook/addon-essentials` from 7.6.7 to 7.6.8 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.8/code/addons/essentials) Updates `@storybook/addon-links` from 7.6.7 to 7.6.8 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.8/code/addons/links) Updates `@storybook/api` from 7.6.7 to 7.6.8 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/v7.6.8/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.8/code/deprecated/manager-api-shim) Updates `@storybook/manager-api` from 7.6.7 to 7.6.8 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.8/code/lib/manager-api) Updates `@storybook/web-components` from 7.6.7 to 7.6.8 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.8/code/renderers/web-components) Updates `@storybook/web-components-vite` from 7.6.7 to 7.6.8 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.8/code/frameworks/web-components-vite) Updates `storybook` from 7.6.7 to 7.6.8 - [Release notes](https://github.com/storybookjs/storybook/releases) - [Changelog](https://github.com/storybookjs/storybook/blob/next/CHANGELOG.md) - [Commits](https://github.com/storybookjs/storybook/commits/v7.6.8/code/lib/cli) --- updated-dependencies: - dependency-name: "@storybook/addon-essentials" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/addon-links" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/api" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/manager-api" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: "@storybook/web-components-vite" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook - dependency-name: storybook dependency-type: direct:development update-type: version-update:semver-patch dependency-group: storybook ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- web/package-lock.json | 616 +++++++++++++++++++++--------------------- web/package.json | 14 +- 2 files changed, 315 insertions(+), 315 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index deb45c868..131b28cc2 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -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", @@ -98,7 +98,7 @@ "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", @@ -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": { @@ -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 ce1d18b31..507e058d4 100644 --- a/web/package.json +++ b/web/package.json @@ -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", @@ -123,7 +123,7 @@ "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", From eeb9716173b4d5e74ff16694b7b0a6cfe49c81e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 11:22:59 +0100 Subject: [PATCH 16/16] web: bump prettier from 3.1.1 to 3.2.2 in /web (#8168) * web: bump prettier from 3.1.1 to 3.2.2 in /web Bumps [prettier](https://github.com/prettier/prettier) from 3.1.1 to 3.2.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.1.1...3.2.2) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * format Signed-off-by: Jens Langhammer --------- Signed-off-by: dependabot[bot] Signed-off-by: Jens Langhammer Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jens Langhammer --- web/.babelrc | 20 +++++++++---------- web/package-lock.json | 8 ++++---- web/package.json | 2 +- .../providers/ldap/LDAPProviderViewPage.ts | 5 +++-- 4 files changed, 18 insertions(+), 17 deletions(-) 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 131b28cc2..c49670b11 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -88,7 +88,7 @@ "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", @@ -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" diff --git a/web/package.json b/web/package.json index 507e058d4..411851574 100644 --- a/web/package.json +++ b/web/package.json @@ -113,7 +113,7 @@ "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", 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()}`} />