diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 91321d67c41..9e809fba5c3 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -19,7 +19,7 @@ "ghcr.io/devcontainers/features/node:1": { // Match the Node.js version defined in `package.json`. // TODO: Automatically populate this. - "version": "16" + "version": "18.16.0" }, "ghcr.io/devcontainers/features/docker-in-docker:2": { "dockerDashComposeVersion": "v2" diff --git a/.github/actions/load-img/action.yml b/.github/actions/load-img/action.yml index 0ad6f349477..34974ec8d0d 100644 --- a/.github/actions/load-img/action.yml +++ b/.github/actions/load-img/action.yml @@ -16,7 +16,7 @@ runs: - name: Setup Node.js uses: actions/setup-node@v3 with: - node-version: "16" + node-version-file: "package.json" - name: Install `@actions/artifact` shell: bash diff --git a/.github/actions/setup-env/action.yml b/.github/actions/setup-env/action.yml index c863402c578..22b4e03ba05 100644 --- a/.github/actions/setup-env/action.yml +++ b/.github/actions/setup-env/action.yml @@ -57,9 +57,7 @@ runs: if: inputs.setup_nodejs == 'true' uses: actions/setup-node@v3 with: - # Ensure that it matches `engines` field in the following files: - # - `package.json` - node-version: "16" + node-version-file: "package.json" cache: pnpm cache-dependency-path: | **/pnpm-lock.yaml diff --git a/api/api/controllers/search_controller.py b/api/api/controllers/search_controller.py index def66bb344d..a723e52f9d6 100644 --- a/api/api/controllers/search_controller.py +++ b/api/api/controllers/search_controller.py @@ -205,10 +205,26 @@ def _post_process_results( end = 90 + 45 ``` """ + if end >= search_results.hits.total.value: + # Total available hits already exhausted in previous iteration + return results + end += int(end / 2) - if start + end > ELASTICSEARCH_MAX_RESULT_WINDOW: + query_size = start + end + if query_size > ELASTICSEARCH_MAX_RESULT_WINDOW: return results + # subtract start to account for the records skipped + # and which should not count towards the total + # available hits for the query + total_available_hits = search_results.hits.total.value - start + if query_size > total_available_hits: + # Clamp the query size to last available hit. On the next + # iteration, if results are still insufficient, the check + # to compare previous_query_size and total_available_hits + # will prevent further query attempts + end = search_results.hits.total.value + s = s[start:end] search_response = s.execute() diff --git a/api/api/utils/dead_link_mask.py b/api/api/utils/dead_link_mask.py index 4d0cc281da2..fdd1034b0fc 100644 --- a/api/api/utils/dead_link_mask.py +++ b/api/api/utils/dead_link_mask.py @@ -1,5 +1,5 @@ +import django_redis from deepdiff import DeepHash -from django_redis import get_redis_connection from elasticsearch_dsl import Search @@ -32,7 +32,7 @@ def get_query_mask(query_hash: str) -> list[int]: :param query_hash: Unique value for a particular query. :return: Boolean mask as a list of integers (0 or 1). """ - redis = get_redis_connection("default") + redis = django_redis.get_redis_connection("default") key = f"{query_hash}:dead_link_mask" return list(map(int, redis.lrange(key, 0, -1))) @@ -44,7 +44,7 @@ def save_query_mask(query_hash: str, mask: list): :param mask: Boolean mask as a list of integers (0 or 1). :param query_hash: Unique value to be used as key. """ - redis_pipe = get_redis_connection("default").pipeline() + redis_pipe = django_redis.get_redis_connection("default").pipeline() key = f"{query_hash}:dead_link_mask" redis_pipe.delete(key) diff --git a/api/api/utils/image_proxy/__init__.py b/api/api/utils/image_proxy/__init__.py new file mode 100644 index 00000000000..2b83eda904d --- /dev/null +++ b/api/api/utils/image_proxy/__init__.py @@ -0,0 +1,128 @@ +import logging +from typing import Literal +from urllib.parse import urlparse + +from django.conf import settings +from django.http import HttpResponse +from rest_framework.exceptions import UnsupportedMediaType + +import django_redis +import requests +import sentry_sdk + +from api.utils.image_proxy.exception import UpstreamThumbnailException +from api.utils.image_proxy.extension import get_image_extension +from api.utils.image_proxy.photon import get_photon_request_params +from api.utils.tallies import get_monthly_timestamp + + +parent_logger = logging.getLogger(__name__) + +HEADERS = { + "User-Agent": settings.OUTBOUND_USER_AGENT_TEMPLATE.format( + purpose="ThumbnailGeneration" + ) +} + +PHOTON_TYPES = {"gif", "jpg", "jpeg", "png", "webp"} +ORIGINAL_TYPES = {"svg"} + +PHOTON = "photon" +ORIGINAL = "original" +THUMBNAIL_STRATEGY = Literal["photon_proxy", "original"] + + +def get_request_params_for_extension( + ext: str, + headers: dict[str, str], + image_url: str, + parsed_image_url: urlparse, + is_full_size: bool, + is_compressed: bool, +) -> tuple[str, dict[str, str], dict[str, str]]: + """ + Get the request params (url, params, headers) for the thumbnail proxy. + If the image type is supported by photon, we use photon, and compute the necessary + request params, if the file can be cached and returned as is (SVG), we do that, + otherwise we raise UnsupportedMediaType exception. + """ + if ext in PHOTON_TYPES: + return get_photon_request_params( + parsed_image_url, is_full_size, is_compressed, headers + ) + elif ext in ORIGINAL_TYPES: + return image_url, {}, headers + raise UnsupportedMediaType( + f"Image extension {ext} is not supported by the thumbnail proxy." + ) + + +def get( + image_url: str, + media_identifier: str, + accept_header: str = "image/*", + is_full_size: bool = False, + is_compressed: bool = True, +) -> HttpResponse: + """ + Proxy an image through Photon if its file type is supported, else return the + original image if the file type is SVG. Otherwise, raise an exception. + """ + logger = parent_logger.getChild("get") + tallies = django_redis.get_redis_connection("tallies") + month = get_monthly_timestamp() + + image_extension = get_image_extension(image_url, media_identifier) + + headers = {"Accept": accept_header} | HEADERS + + parsed_image_url = urlparse(image_url) + domain = parsed_image_url.netloc + + upstream_url, params, headers = get_request_params_for_extension( + image_extension, + headers, + image_url, + parsed_image_url, + is_full_size, + is_compressed, + ) + + try: + upstream_response = requests.get( + upstream_url, + timeout=15, + params=params, + headers=headers, + ) + tallies.incr(f"thumbnail_response_code:{month}:{upstream_response.status_code}") + tallies.incr( + f"thumbnail_response_code_by_domain:{domain}:" + f"{month}:{upstream_response.status_code}" + ) + upstream_response.raise_for_status() + except Exception as exc: + exception_name = f"{exc.__class__.__module__}.{exc.__class__.__name__}" + key = f"thumbnail_error:{exception_name}:{domain}:{month}" + count = tallies.incr(key) + if count <= settings.THUMBNAIL_ERROR_INITIAL_ALERT_THRESHOLD or ( + count % settings.THUMBNAIL_ERROR_REPEATED_ALERT_FREQUENCY == 0 + ): + sentry_sdk.capture_exception(exc) + if isinstance(exc, requests.exceptions.HTTPError): + tallies.incr( + f"thumbnail_http_error:{domain}:{month}:{exc.response.status_code}:{exc.response.text}" + ) + raise UpstreamThumbnailException(f"Failed to render thumbnail. {exc}") + + res_status = upstream_response.status_code + content_type = upstream_response.headers.get("Content-Type") + logger.debug( + f"Image proxy response status: {res_status}, content-type: {content_type}" + ) + + return HttpResponse( + upstream_response.content, + status=res_status, + content_type=content_type, + ) diff --git a/api/api/utils/image_proxy/exception.py b/api/api/utils/image_proxy/exception.py new file mode 100644 index 00000000000..903de58e99c --- /dev/null +++ b/api/api/utils/image_proxy/exception.py @@ -0,0 +1,8 @@ +from rest_framework import status +from rest_framework.exceptions import APIException + + +class UpstreamThumbnailException(APIException): + status_code = status.HTTP_424_FAILED_DEPENDENCY + default_detail = "Could not render thumbnail due to upstream provider error." + default_code = "upstream_photon_failure" diff --git a/api/api/utils/image_proxy/extension.py b/api/api/utils/image_proxy/extension.py new file mode 100644 index 00000000000..ae74d7f0963 --- /dev/null +++ b/api/api/utils/image_proxy/extension.py @@ -0,0 +1,58 @@ +from os.path import splitext +from urllib.parse import urlparse + +import django_redis +import requests +import sentry_sdk + +from api.utils.image_proxy.exception import UpstreamThumbnailException + + +def get_image_extension(image_url: str, media_identifier: str) -> str | None: + cache = django_redis.get_redis_connection("default") + key = f"media:{media_identifier}:thumb_type" + + ext = _get_file_extension_from_url(image_url) + + if not ext: + # If the extension is not present in the URL, try to get it from the redis cache + ext = cache.get(key) + ext = ext.decode("utf-8") if ext else None + + if not ext: + # If the extension is still not present, try getting it from the content type + try: + response = requests.head(image_url, timeout=10) + response.raise_for_status() + except Exception as exc: + sentry_sdk.capture_exception(exc) + raise UpstreamThumbnailException( + "Failed to render thumbnail due to inability to check media " + f"type. {exc}" + ) + else: + if response.headers and "Content-Type" in response.headers: + content_type = response.headers["Content-Type"] + ext = _get_file_extension_from_content_type(content_type) + else: + ext = None + + cache.set(key, ext if ext else "unknown") + return ext + + +def _get_file_extension_from_url(image_url: str) -> str: + """Return the image extension if present in the URL.""" + parsed = urlparse(image_url) + _, ext = splitext(parsed.path) + return ext[1:].lower() # remove the leading dot + + +def _get_file_extension_from_content_type(content_type: str) -> str | None: + """ + Return the image extension if present in the Response's content type + header. + """ + if content_type and "/" in content_type: + return content_type.split("/")[1] + return None diff --git a/api/api/utils/image_proxy/photon.py b/api/api/utils/image_proxy/photon.py new file mode 100644 index 00000000000..639839c85a8 --- /dev/null +++ b/api/api/utils/image_proxy/photon.py @@ -0,0 +1,43 @@ +from django.conf import settings + + +def get_photon_request_params( + parsed_image_url, + is_full_size: bool, + is_compressed: bool, + headers: dict, +): + """ + Photon options documented here: + https://developer.wordpress.com/docs/photon/api/ + """ + params = {} + + if not is_full_size: + params["w"] = settings.THUMBNAIL_WIDTH_PX + + if is_compressed: + params["quality"] = settings.THUMBNAIL_QUALITY + + if parsed_image_url.query: + # No need to URL encode this string because requests will already + # pass the `params` object to `urlencode` before it appends it to the + # request URL. + params["q"] = parsed_image_url.query + + if parsed_image_url.scheme == "https": + # Photon defaults to HTTP without this parameter + # which will cause some providers to fail (if they + # do not serve over HTTP and do not have a redirect) + params["ssl"] = "true" + + # Photon excludes the protocol, so we need to reconstruct the url + port + path + # to send as the "path" of the Photon request + domain = parsed_image_url.netloc + path = parsed_image_url.path + upstream_url = f"{settings.PHOTON_ENDPOINT}{domain}{path}" + + if settings.PHOTON_AUTH_KEY: + headers["X-Photon-Authentication"] = settings.PHOTON_AUTH_KEY + + return upstream_url, params, headers diff --git a/api/api/utils/photon.py b/api/api/utils/photon.py deleted file mode 100644 index 1e161736cd6..00000000000 --- a/api/api/utils/photon.py +++ /dev/null @@ -1,178 +0,0 @@ -import logging -from os.path import splitext -from urllib.parse import urlparse - -from django.conf import settings -from django.http import HttpResponse -from rest_framework import status -from rest_framework.exceptions import APIException, UnsupportedMediaType - -import django_redis -import requests -import sentry_sdk - -from api.utils.tallies import get_monthly_timestamp - - -parent_logger = logging.getLogger(__name__) - - -class UpstreamThumbnailException(APIException): - status_code = status.HTTP_424_FAILED_DEPENDENCY - default_detail = "Could not render thumbnail due to upstream provider error." - default_code = "upstream_photon_failure" - - -ALLOWED_TYPES = {"gif", "jpg", "jpeg", "png", "webp"} - -HEADERS = { - "User-Agent": settings.OUTBOUND_USER_AGENT_TEMPLATE.format( - purpose="ThumbnailGeneration" - ) -} - - -def _get_file_extension_from_url(image_url: str) -> str: - """Return the image extension if present in the URL.""" - parsed = urlparse(image_url) - _, ext = splitext(parsed.path) - return ext[1:].lower() # remove the leading dot - - -def _get_file_extension_from_content_type(content_type: str) -> str | None: - """ - Return the image extension if present in the Response's content type - header. - """ - if content_type and "/" in content_type: - return content_type.split("/")[1] - return None - - -def check_image_type(image_url: str, media_obj) -> None: - cache = django_redis.get_redis_connection("default") - key = f"media:{media_obj.identifier}:thumb_type" - - ext = _get_file_extension_from_url(image_url) - - if not ext: - # If the extension is not present in the URL, try to get it from the redis cache - ext = cache.get(key) - ext = ext.decode("utf-8") if ext else None - - if not ext: - # If the extension is still not present, try getting it from the content type - try: - response = requests.head(image_url, timeout=10) - response.raise_for_status() - except Exception as exc: - sentry_sdk.capture_exception(exc) - raise UpstreamThumbnailException( - "Failed to render thumbnail due to inability to check media " - f"type. {exc}" - ) - else: - if response.headers and "Content-Type" in response.headers: - content_type = response.headers["Content-Type"] - ext = _get_file_extension_from_content_type(content_type) - else: - ext = None - - cache.set(key, ext if ext else "unknown") - - if ext not in ALLOWED_TYPES: - raise UnsupportedMediaType(ext) - - -def _get_photon_params(image_url, is_full_size, is_compressed): - """ - Photon options documented here: - https://developer.wordpress.com/docs/photon/api/ - """ - params = {} - - if not is_full_size: - params["w"] = settings.THUMBNAIL_WIDTH_PX - - if is_compressed: - params["quality"] = settings.THUMBNAIL_QUALITY - - parsed_image_url = urlparse(image_url) - - if parsed_image_url.query: - # No need to URL encode this string because requests will already - # pass the `params` object to `urlencode` before it appends it to the - # request URL. - params["q"] = parsed_image_url.query - - if parsed_image_url.scheme == "https": - # Photon defaults to HTTP without this parameter - # which will cause some providers to fail (if they - # do not serve over HTTP and do not have a redirect) - params["ssl"] = "true" - - return params, parsed_image_url - - -def get( - image_url: str, - accept_header: str = "image/*", - is_full_size: bool = False, - is_compressed: bool = True, -) -> HttpResponse: - logger = parent_logger.getChild("get") - tallies = django_redis.get_redis_connection("tallies") - month = get_monthly_timestamp() - - params, parsed_image_url = _get_photon_params( - image_url, is_full_size, is_compressed - ) - - # Photon excludes the protocol, so we need to reconstruct the url + port + path - # to send as the "path" of the Photon request - domain = parsed_image_url.netloc - path = parsed_image_url.path - upstream_url = f"{settings.PHOTON_ENDPOINT}{domain}{path}" - - headers = {"Accept": accept_header} | HEADERS - if settings.PHOTON_AUTH_KEY: - headers["X-Photon-Authentication"] = settings.PHOTON_AUTH_KEY - - try: - upstream_response = requests.get( - upstream_url, - timeout=15, - params=params, - headers=headers, - ) - tallies.incr(f"thumbnail_response_code:{month}:{upstream_response.status_code}") - tallies.incr( - f"thumbnail_response_code_by_domain:{domain}:" - f"{month}:{upstream_response.status_code}" - ) - upstream_response.raise_for_status() - except Exception as exc: - exception_name = f"{exc.__class__.__module__}.{exc.__class__.__name__}" - key = f"thumbnail_error:{exception_name}:{domain}:{month}" - count = tallies.incr(key) - if count <= settings.THUMBNAIL_ERROR_INITIAL_ALERT_THRESHOLD or ( - count % settings.THUMBNAIL_ERROR_REPEATED_ALERT_FREQUENCY == 0 - ): - sentry_sdk.capture_exception(exc) - if isinstance(exc, requests.exceptions.HTTPError): - tallies.incr( - f"thumbnail_http_error:{domain}:{month}:{exc.response.status_code}:{exc.response.text}" - ) - raise UpstreamThumbnailException(f"Failed to render thumbnail. {exc}") - - res_status = upstream_response.status_code - content_type = upstream_response.headers.get("Content-Type") - logger.debug( - f"Image proxy response status: {res_status}, content-type: {content_type}" - ) - - return HttpResponse( - upstream_response.content, - status=res_status, - content_type=content_type, - ) diff --git a/api/api/views/media_views.py b/api/api/views/media_views.py index 6a6d69fea92..def37d283e5 100644 --- a/api/api/views/media_views.py +++ b/api/api/views/media_views.py @@ -9,7 +9,7 @@ from api.controllers import search_controller from api.models import ContentProvider from api.serializers.provider_serializers import ProviderSerializer -from api.utils import photon +from api.utils import image_proxy from api.utils.pagination import StandardPagination @@ -164,10 +164,9 @@ def thumbnail(self, request, media_obj, image_url): serializer = self.get_serializer(data=request.query_params) serializer.is_valid(raise_exception=True) - photon.check_image_type(image_url, media_obj) - - return photon.get( + return image_proxy.get( image_url, + media_obj.identifier, accept_header=request.headers.get("Accept", "image/*"), **serializer.validated_data, ) diff --git a/api/test/factory/es_http.py b/api/test/factory/es_http.py new file mode 100644 index 00000000000..f80de2e0680 --- /dev/null +++ b/api/test/factory/es_http.py @@ -0,0 +1,81 @@ +from uuid import uuid4 + + +MOCK_LIVE_RESULT_URL_PREFIX = "https://example.com/openverse-live-image-result-url" +MOCK_DEAD_RESULT_URL_PREFIX = "https://example.com/openverse-dead-image-result-url" + + +def create_mock_es_http_image_hit(_id: str, index: str, live: bool = True): + return { + "_index": index, + "_type": "_doc", + "_id": _id, + "_score": 7.607353, + "_source": { + "thumbnail": None, + "aspect_ratio": "wide", + "extension": "jpg", + "size": "large", + "authority_boost": 85, + "max_boost": 85, + "min_boost": 1, + "id": _id, + "identifier": str(uuid4()), + "title": "Bird Nature Photo", + "foreign_landing_url": "https://example.com/photo/LYTN21EBYO", + "creator": "Nature's Beauty", + "creator_url": "https://example.com/author/121424", + "url": f"{MOCK_LIVE_RESULT_URL_PREFIX}/{_id}" + if live + else f"{MOCK_DEAD_RESULT_URL_PREFIX}/{_id}", + "license": "cc0", + "license_version": "1.0", + "license_url": "https://creativecommons.org/publicdomain/zero/1.0/", + "provider": "example", + "source": "example", + "category": "photograph", + "created_on": "2022-02-26T08:48:33+00:00", + "tags": [{"name": "bird"}], + "mature": False, + }, + } + + +def create_mock_es_http_image_search_response( + index: str, + total_hits: int, + hit_count: int, + live_hit_count: int | None = None, + base_hits=None, +): + live_hit_count = live_hit_count if live_hit_count is not None else hit_count + base_hits = base_hits or [] + + live_hits = [ + create_mock_es_http_image_hit( + _id=len(base_hits) + i, + index=index, + live=True, + ) + for i in range(live_hit_count) + ] + + dead_hits = [ + create_mock_es_http_image_hit( + _id=len(live_hits) + len(base_hits) + i, + index=index, + live=False, + ) + for i in range(hit_count - live_hit_count) + ] + + return { + "took": 3, + "timed_out": False, + "_shards": {"total": 18, "successful": 18, "skipped": 0, "failed": 0}, + "hits": { + "total": {"value": total_hits, "relation": "eq"}, + "max_score": 11.0007305, + "hits": base_hits + live_hits + dead_hits, + }, + } diff --git a/api/test/factory/models/media.py b/api/test/factory/models/media.py index 8f47d12c304..8fc6505d602 100644 --- a/api/test/factory/models/media.py +++ b/api/test/factory/models/media.py @@ -156,7 +156,7 @@ def _save_model_to_es( source_document = cls._create_es_source_document(media, mature) es.create( index=origin_index, - id=media.pk, + id=str(media.pk), document=source_document, refresh=True, ) @@ -172,7 +172,7 @@ def _save_model_to_es( { "_index": origin_index, "_score": 1.0, - "_id": media.pk, + "_id": str(media.pk), "_source": source_document, } ) diff --git a/api/test/test_dead_link_filter.py b/api/test/test_dead_link_filter.py index 6c3d4fc0371..4c682dcc687 100644 --- a/api/test/test_dead_link_filter.py +++ b/api/test/test_dead_link_filter.py @@ -18,9 +18,6 @@ def redis(monkeypatch) -> FakeRedis: def get_redis_connection(*args, **kwargs): return fake_redis - monkeypatch.setattr( - "api.utils.dead_link_mask.get_redis_connection", get_redis_connection - ) monkeypatch.setattr("django_redis.get_redis_connection", get_redis_connection) yield fake_redis diff --git a/api/test/unit/conftest.py b/api/test/unit/conftest.py index 6f41dc40b68..f838fb61961 100644 --- a/api/test/unit/conftest.py +++ b/api/test/unit/conftest.py @@ -7,6 +7,7 @@ import pytest from elasticsearch import Elasticsearch +from fakeredis import FakeRedis from api.serializers.audio_serializers import ( AudioSearchRequestSerializer, @@ -22,6 +23,19 @@ ) +@pytest.fixture() +def redis(monkeypatch) -> FakeRedis: + fake_redis = FakeRedis() + + def get_redis_connection(*args, **kwargs): + return fake_redis + + monkeypatch.setattr("django_redis.get_redis_connection", get_redis_connection) + + yield fake_redis + fake_redis.client().close() + + @pytest.fixture def api_client(): return APIClient() @@ -54,8 +68,8 @@ class MediaTypeConfig: model_serializer: MediaSerializer -MEDIA_TYPE_CONFIGS = ( - MediaTypeConfig( +MEDIA_TYPE_CONFIGS = { + "image": MediaTypeConfig( media_type="image", url_prefix="images", origin_index="image", @@ -65,7 +79,7 @@ class MediaTypeConfig: search_request_serializer=ImageSearchRequestSerializer, model_serializer=ImageSerializer, ), - MediaTypeConfig( + "audio": MediaTypeConfig( media_type="audio", url_prefix="audio", origin_index="audio", @@ -75,11 +89,22 @@ class MediaTypeConfig: search_request_serializer=AudioSearchRequestSerializer, model_serializer=AudioSerializer, ), -) +} + + +@pytest.fixture +def image_media_type_config(): + return MEDIA_TYPE_CONFIGS["image"] + + +@pytest.fixture +def audio_media_type_config(): + return MEDIA_TYPE_CONFIGS["audio"] @pytest.fixture( - params=MEDIA_TYPE_CONFIGS, ids=lambda x: f"{x.media_type}_media_type_config" + params=MEDIA_TYPE_CONFIGS.values(), + ids=lambda x: f"{x.media_type}_media_type_config", ) def media_type_config(request: pytest.FixtureRequest) -> MediaTypeConfig: return request.param diff --git a/api/test/unit/controllers/test_search_controller.py b/api/test/unit/controllers/test_search_controller.py index bc38c0940a8..21feb62d187 100644 --- a/api/test/unit/controllers/test_search_controller.py +++ b/api/test/unit/controllers/test_search_controller.py @@ -1,9 +1,16 @@ import random +import re from collections.abc import Callable from enum import Enum, auto +from test.factory.es_http import ( + MOCK_DEAD_RESULT_URL_PREFIX, + MOCK_LIVE_RESULT_URL_PREFIX, + create_mock_es_http_image_search_response, +) from unittest import mock from uuid import uuid4 +import pook import pytest from django_redis import get_redis_connection from elasticsearch_dsl import Search @@ -11,6 +18,7 @@ from api.controllers import search_controller from api.utils import tallies from api.utils.dead_link_mask import get_query_hash, save_query_mask +from api.utils.search_context import SearchContext pytestmark = pytest.mark.django_db @@ -539,3 +547,212 @@ def test_resolves_index( ) search_class.assert_called_once_with(index=searched_index) + + +@mock.patch( + "api.controllers.search_controller._post_process_results", + wraps=search_controller._post_process_results, +) +@mock.patch("api.controllers.search_controller.SearchContext") +@pook.on +def test_no_post_process_results_recursion( + mock_search_context, + wrapped_post_process_results, + image_media_type_config, + settings, + # request the redis mock to auto-clean Redis between each test run + # otherwise the dead link query mask causes test details to leak + # between each run + redis, +): + # Search context does not matter for this test, so we can mock it + # to avoid needing to account for additional ES requests + mock_search_context.build.return_value = SearchContext(set(), set()) + + hit_count = 5 + mock_es_response = create_mock_es_http_image_search_response( + index=image_media_type_config.origin_index, + total_hits=45, + hit_count=hit_count, + ) + + es_host = settings.ES.transport.kwargs["host"] + es_port = settings.ES.transport.kwargs["port"] + + # `origin_index` enforced by passing `exact_index=True` below. + es_endpoint = ( + f"http://{es_host}:{es_port}/{image_media_type_config.origin_index}/_search" + ) + + mock_search = pook.post(es_endpoint).times(1).reply(200).json(mock_es_response).mock + + # Ensure dead link filtering does not remove any results + pook.head( + pook.regex(rf"{MOCK_LIVE_RESULT_URL_PREFIX}/\d"), + ).times( + hit_count + ).reply(200) + + serializer = image_media_type_config.search_request_serializer( + # This query string does not matter, ultimately, as pook is mocking + # the ES response regardless of the input + data={"q": "bird perched"} + ) + serializer.is_valid() + results, _, _, _ = search_controller.search( + search_params=serializer, + ip=0, + origin_index=image_media_type_config.origin_index, + exact_index=True, + page=3, + page_size=20, + filter_dead=True, + ) + + assert {r["_source"]["identifier"] for r in mock_es_response["hits"]["hits"]} == { + r.identifier for r in results + } + + assert wrapped_post_process_results.call_count == 1 + assert mock_search.total_matches == 1 + + +@pytest.mark.parametrize( + # both scenarios force `post_process_results` + # to recurse to fill the page due to the dead link + # configuration present in the test body + "page, page_size, mock_total_hits", + # Note the following + # - DEAD_LINK_RATIO causes all query sizes to start at double the page size + # - The test function is configured so that each request only returns 2 live + # results + # - We clear the redis cache between each test, meaning there is no query-based + # dead link mask. This forces `from` to 0 for each case. + # - Recursion should only continue while results still exist that could fulfill + # the requested page size. Once the available hits are exhaused, the function + # should stop recursing. This is why exceeding or matching the available + # hits is significant. + ( + # First request: from: 0, size: 10 + # Second request: from: 0, size: 15, exceeds max results + pytest.param(1, 5, 12, id="first_page"), + # First request: from: 0, size: 22 + # Second request: from 0, size: 33, exceeds max results + pytest.param(3, 4, 32, id="last_page"), + # First request: from: 0, size: 22 + # Second request: from 0, size: 33, matches max results + pytest.param(3, 4, 33, id="last_page_with_exact_max_results"), + ), +) +@mock.patch( + "api.controllers.search_controller._post_process_results", + wraps=search_controller._post_process_results, +) +@mock.patch("api.controllers.search_controller.SearchContext") +@pook.on +def test_post_process_results_recurses_as_needed( + mock_search_context, + wrapped_post_process_results, + image_media_type_config, + settings, + page, + page_size, + mock_total_hits, + # request the redis mock to auto-clean Redis between each test run + # otherwise the dead link query mask causes test details to leak + # between each run + redis, +): + # Search context does not matter for this test, so we can mock it + # to avoid needing to account for additional ES requests + mock_search_context.build.return_value = SearchContext(set(), set()) + + mock_es_response_1 = create_mock_es_http_image_search_response( + index=image_media_type_config.origin_index, + total_hits=mock_total_hits, + hit_count=10, + live_hit_count=2, + ) + + mock_es_response_2 = create_mock_es_http_image_search_response( + index=image_media_type_config.origin_index, + total_hits=mock_total_hits, + hit_count=4, + live_hit_count=2, + base_hits=mock_es_response_1["hits"]["hits"], + ) + + es_host = settings.ES.transport.kwargs["host"] + es_port = settings.ES.transport.kwargs["port"] + + # `origin_index` enforced by passing `exact_index=True` below. + es_endpoint = ( + f"http://{es_host}:{es_port}/{image_media_type_config.origin_index}/_search" + ) + + # `from` is always 0 if there is no query mask + # see `_paginate_with_dead_link_mask` branch 1 + # Testing this with a query mask would introduce far more complexity + # with no significant benefit + re.compile('from":0') + + mock_first_es_request = ( + pook.post(es_endpoint) + # The dead link ratio causes the initial query size to double + .body(re.compile(f'size":{(page_size * page) * 2}')) + .body(re.compile('from":0')) + .times(1) + .reply(200) + .json(mock_es_response_1) + .mock + ) + + mock_second_es_request = ( + pook.post(es_endpoint) + # Size is clamped to the total number of available hits + .body(re.compile(f'size":{mock_total_hits}')) + .body(re.compile('from":0')) + .times(1) + .reply(200) + .json(mock_es_response_2) + .mock + ) + + live_results = [ + r + for r in mock_es_response_2["hits"]["hits"] + if r["_source"]["url"].startswith(MOCK_LIVE_RESULT_URL_PREFIX) + ] + + pook.head(pook.regex(rf"{MOCK_LIVE_RESULT_URL_PREFIX}/\d")).times( + len(live_results) + ).reply(200) + + pook.head(pook.regex(rf"{MOCK_DEAD_RESULT_URL_PREFIX}/\d")).times( + len(mock_es_response_2["hits"]["hits"]) - len(live_results) + ).reply(400) + + serializer = image_media_type_config.search_request_serializer( + # This query string does not matter, ultimately, as pook is mocking + # the ES response regardless of the input + data={"q": "bird perched"} + ) + serializer.is_valid() + results, _, _, _ = search_controller.search( + search_params=serializer, + ip=0, + origin_index=image_media_type_config.origin_index, + exact_index=True, + page=page, + page_size=page_size, + filter_dead=True, + ) + + assert mock_first_es_request.total_matches == 1 + assert mock_second_es_request.total_matches == 1 + + assert {r["_source"]["identifier"] for r in live_results} == { + r.identifier for r in results + } + + assert wrapped_post_process_results.call_count == 2 diff --git a/api/test/unit/utils/test_photon.py b/api/test/unit/utils/test_image_proxy.py similarity index 83% rename from api/test/unit/utils/test_photon.py rename to api/test/unit/utils/test_image_proxy.py index 7ea41252b2b..655c84f4925 100644 --- a/api/test/unit/utils/test_photon.py +++ b/api/test/unit/utils/test_image_proxy.py @@ -10,18 +10,14 @@ import pytest import requests -from api.utils.photon import ( - HEADERS, - UpstreamThumbnailException, - _get_file_extension_from_url, - check_image_type, -) -from api.utils.photon import get as photon_get +from api.utils.image_proxy import HEADERS, UpstreamThumbnailException, extension +from api.utils.image_proxy import get as photon_get from api.utils.tallies import get_monthly_timestamp PHOTON_URL_FOR_TEST_IMAGE = f"{settings.PHOTON_ENDPOINT}subdomain.example.com/path_part1/part2/image_dot_jpg.jpg" TEST_IMAGE_URL = PHOTON_URL_FOR_TEST_IMAGE.replace(settings.PHOTON_ENDPOINT, "http://") +TEST_MEDIA_IDENTIFIER = "123" UA_HEADER = HEADERS["User-Agent"] @@ -31,6 +27,11 @@ # this will get the tests working. MOCK_BODY = "mock response body" +SVG_BODY = """ + +SVG +""" + @pytest.fixture def auth_key(): @@ -59,13 +60,31 @@ def test_get_successful_no_auth_key_default_args(mock_image_data): .mock ) - res = photon_get(TEST_IMAGE_URL) + res = photon_get(TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER) assert res.content == MOCK_BODY.encode() assert res.status_code == 200 assert mock_get.matched +@pook.on +def test_get_successful_original_svg_no_auth_key_default_args(mock_image_data): + mock_get: pook.Mock = ( + pook.get(TEST_IMAGE_URL.replace(".jpg", ".svg")) + .header("User-Agent", UA_HEADER) + .header("Accept", "image/*") + .reply(200) + .body(SVG_BODY) + .mock + ) + + res = photon_get(TEST_IMAGE_URL.replace(".jpg", ".svg"), TEST_MEDIA_IDENTIFIER) + + assert res.content == SVG_BODY.encode() + assert res.status_code == 200 + assert mock_get.matched + + @pook.on def test_get_successful_with_auth_key_default_args(mock_image_data, auth_key): mock_get: pook.Mock = ( @@ -84,7 +103,7 @@ def test_get_successful_with_auth_key_default_args(mock_image_data, auth_key): .mock ) - res = photon_get(TEST_IMAGE_URL) + res = photon_get(TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER) assert res.content == MOCK_BODY.encode() assert res.status_code == 200 @@ -107,7 +126,7 @@ def test_get_successful_no_auth_key_not_compressed(mock_image_data): .mock ) - res = photon_get(TEST_IMAGE_URL, is_compressed=False) + res = photon_get(TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER, is_compressed=False) assert res.content == MOCK_BODY.encode() assert res.status_code == 200 @@ -130,7 +149,7 @@ def test_get_successful_no_auth_key_full_size(mock_image_data): .mock ) - res = photon_get(TEST_IMAGE_URL, is_full_size=True) + res = photon_get(TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER, is_full_size=True) assert res.content == MOCK_BODY.encode() assert res.status_code == 200 @@ -148,7 +167,9 @@ def test_get_successful_no_auth_key_full_size_not_compressed(mock_image_data): .mock ) - res = photon_get(TEST_IMAGE_URL, is_full_size=True, is_compressed=False) + res = photon_get( + TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER, is_full_size=True, is_compressed=False + ) assert res.content == MOCK_BODY.encode() assert res.status_code == 200 @@ -172,7 +193,7 @@ def test_get_successful_no_auth_key_png_only(mock_image_data): .mock ) - res = photon_get(TEST_IMAGE_URL, accept_header="image/png") + res = photon_get(TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER, accept_header="image/png") assert res.content == MOCK_BODY.encode() assert res.status_code == 200 @@ -200,7 +221,7 @@ def test_get_successful_forward_query_params(mock_image_data): url_with_params = f"{TEST_IMAGE_URL}?{params}" - res = photon_get(url_with_params) + res = photon_get(url_with_params, TEST_MEDIA_IDENTIFIER) assert res.content == MOCK_BODY.encode() assert res.status_code == 200 @@ -235,7 +256,7 @@ def test_get_successful_records_response_code(mock_image_data, redis): .mock ) - photon_get(TEST_IMAGE_URL) + photon_get(TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER) month = get_monthly_timestamp() assert redis.get(f"thumbnail_response_code:{month}:200") == b"1" assert ( @@ -290,7 +311,7 @@ def test_get_exception_handles_error( redis.set(key, count_start) with pytest.raises(UpstreamThumbnailException): - photon_get(TEST_IMAGE_URL) + photon_get(TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER) assert_func = ( capture_exception.assert_called_once @@ -331,7 +352,7 @@ def test_get_http_exception_handles_error( redis.set(key, count_start) with pytest.raises(UpstreamThumbnailException): - photon_get(TEST_IMAGE_URL) + photon_get(TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER) assert_func = ( capture_exception.assert_called_once @@ -369,7 +390,7 @@ def test_get_successful_https_image_url_sends_ssl_parameter(mock_image_data): .mock ) - res = photon_get(https_url) + res = photon_get(https_url, TEST_MEDIA_IDENTIFIER) assert res.content == MOCK_BODY.encode() assert res.status_code == 200 @@ -383,7 +404,7 @@ def test_get_unsuccessful_request_raises_custom_exception(): with pytest.raises( UpstreamThumbnailException, match=r"Failed to render thumbnail." ): - photon_get(TEST_IMAGE_URL) + photon_get(TEST_IMAGE_URL, TEST_MEDIA_IDENTIFIER) assert mock_get.matched @@ -404,34 +425,34 @@ def test_get_unsuccessful_request_raises_custom_exception(): ], ) def test__get_extension_from_url(image_url, expected_ext): - assert _get_file_extension_from_url(image_url) == expected_ext + assert extension._get_file_extension_from_url(image_url) == expected_ext @pytest.mark.django_db -@pytest.mark.parametrize("image_type", ["apng", "svg", "bmp"]) -def test_check_image_type_raises_by_not_allowed_types(image_type): +@pytest.mark.parametrize("image_type", ["apng", "tiff", "bmp"]) +def test_photon_get_raises_by_not_allowed_types(image_type): image_url = TEST_IMAGE_URL.replace(".jpg", f".{image_type}") image = ImageFactory.create(url=image_url) with pytest.raises(UnsupportedMediaType): - check_image_type(image_url, image) + photon_get(image_url, image.identifier) @pytest.mark.django_db @pytest.mark.parametrize( "headers, expected_cache_val", [ - ({"Content-Type": "image/svg+xml"}, b"svg+xml"), + ({"Content-Type": "image/tiff"}, b"tiff"), (None, b"unknown"), ], ) -def test_check_image_type_saves_image_type_to_cache(redis, headers, expected_cache_val): +def test_photon_get_saves_image_type_to_cache(redis, headers, expected_cache_val): image_url = TEST_IMAGE_URL.replace(".jpg", "") image = ImageFactory.create(url=image_url) with mock.patch("requests.head") as mock_head, pytest.raises(UnsupportedMediaType): mock_head.return_value.headers = headers - check_image_type(image_url, image) + photon_get(image_url, image.identifier) key = f"media:{image.identifier}:thumb_type" assert redis.get(key) == expected_cache_val diff --git a/catalog/dags/common/constants.py b/catalog/dags/common/constants.py index dace6d3b246..6cdef64b26f 100644 --- a/catalog/dags/common/constants.py +++ b/catalog/dags/common/constants.py @@ -36,3 +36,4 @@ ) AWS_CONN_ID = os.getenv("AWS_CONN_ID", "aws_conn_id") AWS_RDS_CONN_ID = os.environ.get("AWS_RDS_CONN_ID", AWS_CONN_ID) +ES_PROD_HTTP_CONN_ID = "elasticsearch_http_production" diff --git a/catalog/dags/common/ingestion_server.py b/catalog/dags/common/ingestion_server.py index 07043466d67..f3ac3eeff47 100644 --- a/catalog/dags/common/ingestion_server.py +++ b/catalog/dags/common/ingestion_server.py @@ -8,13 +8,15 @@ from airflow.providers.http.sensors.http import HttpSensor from requests import Response -from common.constants import XCOM_PULL_TEMPLATE +from common.constants import ES_PROD_HTTP_CONN_ID, XCOM_PULL_TEMPLATE logger = logging.getLogger(__name__) POKE_INTERVAL = int(os.getenv("DATA_REFRESH_POKE_INTERVAL", 60 * 15)) +# Minimum number of records we expect to get back from ES when querying an index. +THRESHOLD_RESULT_COUNT = int(os.getenv("ES_INDEX_READINESS_RECORD_COUNT", 10_000)) def response_filter_stat(response: Response) -> str: @@ -65,6 +67,22 @@ def response_check_wait_for_completion(response: Response) -> bool: return True +def response_check_index_readiness_check(response: Response) -> bool: + """ + Handle the response for `index_readiness_check` Sensor, to await a + healthy Elasticsearch cluster. We expect to retrieve a healthy number + of results. + """ + data = response.json() + hits = data.get("hits", {}).get("total", {}).get("value", 0) + logger.info( + f"Retrieved {hits} records from Elasticsearch using the new index." + f" Checking against threshold of {THRESHOLD_RESULT_COUNT}." + ) + + return hits >= THRESHOLD_RESULT_COUNT + + def get_current_index(target_alias: str) -> SimpleHttpOperator: return SimpleHttpOperator( task_id="get_current_index", @@ -125,3 +143,25 @@ def trigger_and_wait_for_task( waiter = wait_for_task(action, trigger, timeout, poke_interval) trigger >> waiter return trigger, waiter + + +def index_readiness_check( + media_type: str, + index_suffix: str, + timeout: timedelta = timedelta(days=1), + poke_interval: int = POKE_INTERVAL, +) -> HttpSensor: + """ + Poll the Elasticsearch index, returning true only when results greater + than the expected threshold_count are returned. + """ + return HttpSensor( + task_id="index_readiness_check", + http_conn_id=ES_PROD_HTTP_CONN_ID, + endpoint=f"{media_type}-{index_suffix}/_search", + method="GET", + response_check=response_check_index_readiness_check, + mode="reschedule", + poke_interval=poke_interval, + timeout=timeout.total_seconds(), + ) diff --git a/catalog/dags/data_refresh/create_filtered_index_dag.py b/catalog/dags/data_refresh/create_filtered_index_dag.py index b2978376b2c..4597540e9fe 100644 --- a/catalog/dags/data_refresh/create_filtered_index_dag.py +++ b/catalog/dags/data_refresh/create_filtered_index_dag.py @@ -206,6 +206,12 @@ def point_alias(destination_index_suffix: str): destination_index_suffix=destination_index_suffix, ) + # Await healthy results from the newly created elasticsearch index. + index_readiness_check = ingestion_server.index_readiness_check( + media_type=media_type, + index_suffix=destination_index_suffix, + ) + do_point_alias = point_alias(destination_index_suffix=destination_index_suffix) delete_old_index = ingestion_server.trigger_task( @@ -235,7 +241,7 @@ def point_alias(destination_index_suffix: str): ) get_current_index_if_exists >> continue_if_no_current_index >> do_create - await_create >> do_point_alias + await_create >> index_readiness_check >> do_point_alias [get_current_index_if_exists, do_point_alias] >> delete_old_index diff --git a/catalog/dags/data_refresh/data_refresh_task_factory.py b/catalog/dags/data_refresh/data_refresh_task_factory.py index abbae1b780d..9ac2fa2bf87 100644 --- a/catalog/dags/data_refresh/data_refresh_task_factory.py +++ b/catalog/dags/data_refresh/data_refresh_task_factory.py @@ -152,25 +152,48 @@ def create_data_refresh_task_group( ) tasks.append(generate_index_suffix) - action_data_map: dict[str, dict] = { - "ingest_upstream": {}, - "promote": {"alias": target_alias}, - } - for action, action_post_data in action_data_map.items(): - with TaskGroup(group_id=action) as task_group: - ingestion_server.trigger_and_wait_for_task( - action=action, - model=data_refresh.media_type, - data={ - "index_suffix": XCOM_PULL_TEMPLATE.format( - generate_index_suffix.task_id, "return_value" - ), - } - | action_post_data, - timeout=data_refresh.data_refresh_timeout, - ) - - tasks.append(task_group) + # Trigger the 'ingest_upstream' task on the ingestion server and await its + # completion. This task copies the media table for the given model from the + # Catalog into the API DB and builds the elasticsearch index. The new table + # and index are not promoted until a later step. + with TaskGroup(group_id="ingest_upstream") as ingest_upstream_tasks: + ingestion_server.trigger_and_wait_for_task( + action="ingest_upstream", + model=data_refresh.media_type, + data={ + "index_suffix": XCOM_PULL_TEMPLATE.format( + generate_index_suffix.task_id, "return_value" + ), + }, + timeout=data_refresh.data_refresh_timeout, + ) + tasks.append(ingest_upstream_tasks) + + # Await healthy results from the newly created elasticsearch index. + index_readiness_check = ingestion_server.index_readiness_check( + media_type=data_refresh.media_type, + index_suffix=XCOM_PULL_TEMPLATE.format( + generate_index_suffix.task_id, "return_value" + ), + timeout=data_refresh.index_readiness_timeout, + ) + tasks.append(index_readiness_check) + + # Trigger the `promote` task on the ingestion server and await its completion. + # This task promotes the newly created API DB table and elasticsearch index. + with TaskGroup(group_id="promote") as promote_tasks: + ingestion_server.trigger_and_wait_for_task( + action="promote", + model=data_refresh.media_type, + data={ + "index_suffix": XCOM_PULL_TEMPLATE.format( + generate_index_suffix.task_id, "return_value" + ), + "alias": target_alias, + }, + timeout=data_refresh.data_refresh_timeout, + ) + tasks.append(promote_tasks) # Delete the alias' previous target index, now unused. delete_old_index = ingestion_server.trigger_task( diff --git a/catalog/dags/data_refresh/data_refresh_types.py b/catalog/dags/data_refresh/data_refresh_types.py index 4426453cad8..f54e7c4d33f 100644 --- a/catalog/dags/data_refresh/data_refresh_types.py +++ b/catalog/dags/data_refresh/data_refresh_types.py @@ -38,6 +38,8 @@ class DataRefresh: may take create_materialized_view_timeout: timedelta expressing amount of time the creation of the matview may take + index_readiness_timeout: timedelta expressing amount of time it may take + to await a healthy ES index after reindexing doc_md: str used for the DAG's documentation markdown """ @@ -52,6 +54,7 @@ class DataRefresh: create_pop_constants_view_timeout: timedelta = timedelta(hours=1) create_materialized_view_timeout: timedelta = timedelta(hours=1) create_filtered_index_timeout: timedelta = timedelta(days=1) + index_readiness_timeout: timedelta = timedelta(days=1) def __post_init__(self): self.dag_id = f"{self.media_type}_data_refresh" diff --git a/catalog/env.template b/catalog/env.template index e4edcc90f5e..35b92826481 100644 --- a/catalog/env.template +++ b/catalog/env.template @@ -55,6 +55,9 @@ AIRFLOW_CONN_POSTGRES_OPENLEDGER_API_STAGING=postgres://deploy:deploy@db:5432/op OPENLEDGER_CONN_ID=postgres_openledger_upstream TEST_CONN_ID=postgres_openledger_testing +# Elasticsearch connections. Change the following line in prod to use the appropriate DB. +AIRFLOW_CONN_ELASTICSEARCH_HTTP_PRODUCTION=http://es:9200 + # API DB connection. Change the following line in prod to use the appropriate DB AIRFLOW_CONN_POSTGRES_OPENLEDGER_API=postgres://deploy:deploy@db:5432/openledger OPENLEDGER_API_CONN_ID=postgres_openledger_api @@ -113,6 +116,9 @@ DATA_REFRESH_POOL=default_pool DEFAULT_RETRY_COUNT = 2 # Whether to enable catchup for dated DAGs, allowing automatic backfill. AIRFLOW_VAR_CATCHUP_ENABLED=false +# Number of records to expect in a healthy ES index. Used during the data refresh to verify that +# a new index is healthy before promoting. +ES_INDEX_READINESS_RECORD_COUNT=1000 AIRFLOW_VAR_AIRFLOW_RDS_ARN=unset AIRFLOW_VAR_AIRFLOW_RDS_SNAPSHOTS_TO_RETAIN=7 diff --git a/catalog/tests/dags/common/test_ingestion_server.py b/catalog/tests/dags/common/test_ingestion_server.py index 086a0519e09..6f78e341dde 100644 --- a/catalog/tests/dags/common/test_ingestion_server.py +++ b/catalog/tests/dags/common/test_ingestion_server.py @@ -1,11 +1,47 @@ -from unittest.mock import MagicMock +from datetime import timedelta +from unittest import mock import pytest +import requests from airflow.exceptions import AirflowSkipException +from airflow.models import DagRun, TaskInstance +from airflow.models.dag import DAG +from airflow.utils.session import create_session +from airflow.utils.state import DagRunState, TaskInstanceState +from airflow.utils.timezone import datetime +from airflow.utils.types import DagRunType from common import ingestion_server +TEST_START_DATE = datetime(2022, 2, 1, 0, 0, 0) +TEST_DAG_ID = "api_healthcheck_test_dag" + + +@pytest.fixture(autouse=True) +def clean_db(): + with create_session() as session: + # synchronize_session='fetch' required here to refresh models + # https://stackoverflow.com/a/51222378 CC BY-SA 4.0 + session.query(DagRun).filter(DagRun.dag_id.startswith(TEST_DAG_ID)).delete( + synchronize_session="fetch" + ) + session.query(TaskInstance).filter( + TaskInstance.dag_id.startswith(TEST_DAG_ID) + ).delete(synchronize_session="fetch") + + +@pytest.fixture() +def index_readiness_dag(): + # Create a DAG that just has an index_readiness_check task + with DAG(dag_id=TEST_DAG_ID, schedule=None, start_date=TEST_START_DATE) as dag: + ingestion_server.index_readiness_check( + media_type="image", index_suffix="my_test_suffix", timeout=timedelta(days=1) + ) + + return dag + + @pytest.mark.parametrize( "data, expected", [ @@ -19,7 +55,60 @@ ], ) def test_response_filter_stat(data, expected): - response = MagicMock() + response = mock.MagicMock() response.json.return_value = data actual = ingestion_server.response_filter_stat(response) assert actual == expected + + +@pytest.mark.parametrize( + "response_code, response_json, expected_status", + [ + pytest.param( + 200, + {"hits": {"total": {"value": 20_000, "relation": "eq"}}}, + TaskInstanceState.SUCCESS, + id="healthy-index", + ), + pytest.param( + 200, + {"hits": {"total": {"value": 100, "relation": "eq"}}}, + TaskInstanceState.UP_FOR_RESCHEDULE, + id="not-enough-records", + ), + pytest.param( + 200, {"foo": "bar"}, TaskInstanceState.UP_FOR_RESCHEDULE, id="missing-hits" + ), + pytest.param( + 404, + {"error": {"root_cause": [{"type": "index_not_found_exception"}]}}, + TaskInstanceState.UP_FOR_RESCHEDULE, + id="index-not-found-error", + ), + ], +) +def test_index_readiness_check( + index_readiness_dag, response_code, response_json, expected_status +): + execution_date = TEST_START_DATE + timedelta(days=1) + dagrun = index_readiness_dag.create_dagrun( + start_date=execution_date, + execution_date=execution_date, + data_interval=(execution_date, execution_date), + state=DagRunState.RUNNING, + run_type=DagRunType.MANUAL, + ) + + with mock.patch( + "airflow.providers.http.hooks.http.requests.Session.send" + ) as mock_session_send: + r = requests.Response() + r.status_code = response_code + r.reason = "test" + r.json = mock.MagicMock(return_value=response_json) + mock_session_send.return_value = r + + ti = dagrun.get_task_instance(task_id="index_readiness_check") + ti.task = index_readiness_dag.get_task(task_id="index_readiness_check") + ti.run() + assert ti.state == expected_status diff --git a/documentation/changelogs/api/2023.06.19.17.48.39.md b/documentation/changelogs/api/2023.06.19.17.48.39.md new file mode 100644 index 00000000000..e116a03bd67 --- /dev/null +++ b/documentation/changelogs/api/2023.06.19.17.48.39.md @@ -0,0 +1,12 @@ +# 2023.06.19.17.48.39 + +## Bug Fixes + +- Treat 403s from Europeana as dead links + ([#2425](https://github.com/WordPress/openverse/pull/2425)) by @krysal +- Add 10s timeout to check_image_type head requests + ([#2426](https://github.com/WordPress/openverse/pull/2426)) by @zackkrida +- Check filtered index feature flag before querying in `SearchContext` + ([#2408](https://github.com/WordPress/openverse/pull/2408)) by @sarayourfriend +- Fix API image builds + ([#2410](https://github.com/WordPress/openverse/pull/2410)) by @zackkrida diff --git a/documentation/changelogs/catalog/2023.06.19.17.21.41.md b/documentation/changelogs/catalog/2023.06.19.17.21.41.md new file mode 100644 index 00000000000..328c884d641 --- /dev/null +++ b/documentation/changelogs/catalog/2023.06.19.17.21.41.md @@ -0,0 +1,28 @@ +# 2023.06.19.17.21.41 + +## New Features + +- Add batched_update dag + ([#2331](https://github.com/WordPress/openverse/pull/2331)) by @stacimc +- Deploy staging API after staging DB restore + ([#2211](https://github.com/WordPress/openverse/pull/2211)) by @AetherUnbound +- Truncate OAuth tables after staging DB restore + ([#2207](https://github.com/WordPress/openverse/pull/2207)) by @AetherUnbound + +## Improvements + +- Determine data refresh pool by environment variable with default + ([#2352](https://github.com/WordPress/openverse/pull/2352)) by @AetherUnbound + +## Internal Improvements + +- Extract entrypoints to separate shell scripts + ([#1926](https://github.com/WordPress/openverse/pull/1926)) by @arun-chib + +## Bug Fixes + +- Defined log rotation policies in docker-compose + ([#2416](https://github.com/WordPress/openverse/pull/2416)) by + @ZeroPlayerRodent +- Remove string reference to old s3 bucket + ([#2347](https://github.com/WordPress/openverse/pull/2347)) by @zackkrida diff --git a/documentation/changelogs/frontend/2023.06.19.17.31.24.md b/documentation/changelogs/frontend/2023.06.19.17.31.24.md new file mode 100644 index 00000000000..ae50c68fe9c --- /dev/null +++ b/documentation/changelogs/frontend/2023.06.19.17.31.24.md @@ -0,0 +1,18 @@ +# 2023.06.19.17.31.24 + +## New Features + +- Analytics: Add SELECT_SEARCH_RESULT event + ([#2373](https://github.com/WordPress/openverse/pull/2373)) by @obulat + +## Internal Improvements + +- Renamed identifier to id + ([#2381](https://github.com/WordPress/openverse/pull/2381)) by @duwarakan + +## Bug Fixes + +- Ignore locales; fix kebab-cased translation keys + ([#2433](https://github.com/WordPress/openverse/pull/2433)) by @obulat +- Fix CI Playwright storybook failure + ([#2379](https://github.com/WordPress/openverse/pull/2379)) by @obulat diff --git a/frontend/package.json b/frontend/package.json index 612ebe12fbd..2116eb95cf6 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -60,7 +60,7 @@ }, "dependencies": { "@nuxt/components": "^2.2.1", - "@nuxt/vue-app": "^2.16.3", + "@nuxt/vue-app": "^2.17.0", "@nuxtjs/composition-api": "^0.33.1", "@nuxtjs/i18n": "^7.0.3", "@nuxtjs/proxy": "^2.1.0", @@ -86,7 +86,7 @@ "focus-visible": "^5.2.0", "glob": "^8.0.1", "node-html-parser": "^5.3.3", - "nuxt": "^2.16.3", + "nuxt": "^2.17.0", "pinia": "^2.0.33", "portal-vue": "^2.1.7", "postcss-focus-visible": "^6.0.4", @@ -106,8 +106,8 @@ "@babel/preset-typescript": "^7.21.0", "@babel/runtime-corejs3": "^7.21.0", "@itsjonq/remake": "^2.0.0", - "@nuxt/types": "^2.16.3", - "@nuxt/typescript-build": "^3.0.0", + "@nuxt/types": "^2.17.0", + "@nuxt/typescript-build": "^3.0.1", "@nuxtjs/eslint-module": "^3.1.0", "@nuxtjs/storybook": "^4.3.2", "@pinia/testing": "^0.0.15", @@ -156,6 +156,6 @@ "browserslist": [ "> 1%", "last 2 versions", - "not ie <= 8" + "not dead" ] } diff --git a/frontend/src/components/VItemGroup/meta/VItemGroup.stories.mdx b/frontend/src/components/VItemGroup/meta/VItemGroup.stories.mdx index 0a4a5283c02..4b1b0898ef4 100644 --- a/frontend/src/components/VItemGroup/meta/VItemGroup.stories.mdx +++ b/frontend/src/components/VItemGroup/meta/VItemGroup.stories.mdx @@ -104,7 +104,7 @@ export const PopoverStory = (args) => ({ template: ` ({
Focusable external area
Code is Poetry
@@ -54,11 +55,13 @@ export const ControlStory = (args) => ({ template: ` diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index e55c136e78a..27ed190b3cb 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -226,8 +226,8 @@ module.exports = { typography: (theme) => ({ DEFAULT: { css: { - "--tw-prose-body": theme("colors.dark-charcoal"), - "--tw-prose-headings": theme("colors.dark-charcoal"), + "--tw-prose-body": theme("colors.dark-charcoal.default"), + "--tw-prose-headings": theme("colors.dark-charcoal.default"), "--tw-prose-links": theme("colors.pink"), a: { textDecoration: "none", diff --git a/frontend/test/storybook/functional/v-popover.spec.ts b/frontend/test/storybook/functional/v-popover.spec.ts new file mode 100644 index 00000000000..0fce0d701d3 --- /dev/null +++ b/frontend/test/storybook/functional/v-popover.spec.ts @@ -0,0 +1,13 @@ +import { expect, test } from "@playwright/test" + +const popoverStory = + "/iframe.html?id=components-vpopover--control&viewMode=story" + +test("VPopover focuses on the first tabbable element in the popover by default", async ({ + page, +}) => { + await page.goto(popoverStory) + await page.getByRole("button", { name: "Open" }).click() + const firstTabbable = page.getByRole("button", { name: "Close popover" }) + await expect(firstTabbable).toBeFocused() +}) diff --git a/frontend/test/unit/specs/components/v-popover.spec.js b/frontend/test/unit/specs/components/v-popover.spec.js index 1b411ba2914..d7e7e31f4a5 100644 --- a/frontend/test/unit/specs/components/v-popover.spec.js +++ b/frontend/test/unit/specs/components/v-popover.spec.js @@ -1,6 +1,4 @@ -/* eslint jest/expect-expect: ["error", { "assertFunctionNames": ["getPopover", "getTrigger", "getExternalArea", "expectOpen", "doOpen", "expectClosed"] } ] */ - -import Vue from "vue" +import Vue, { nextTick } from "vue" import { screen } from "@testing-library/vue" import userEvent from "@testing-library/user-event" @@ -43,9 +41,6 @@ const TestWrapper = Vue.component("TestWrapper", { `, }) -const nextTick = async () => - await new Promise((resolve) => setTimeout(resolve, 1)) - const getPopover = () => screen.getByText(/code is poetry/i) const queryPopover = () => screen.queryByText(/code is poetry/i) const getTrigger = () => screen.getByRole("button", {}) @@ -57,10 +52,6 @@ const doOpen = async (trigger = getTrigger()) => { await nextTick() } -const expectOpen = () => { - expect(getPopover()).toBeVisible() -} - describe("VPopover", () => { afterEach(() => { warn.mockReset() @@ -72,7 +63,7 @@ describe("VPopover", () => { expect(queryPopover()).not.toBeInTheDocument() await doOpen() - expectOpen() + expect(getPopover()).toBeVisible() }) describe("accessibility", () => { @@ -88,7 +79,7 @@ describe("VPopover", () => { expect(trigger).not.toHaveAttribute("aria-expanded") await doOpen(trigger) - expectOpen() + expect(getPopover()).toBeVisible() expect(trigger).toHaveAttribute("aria-expanded", "true") }) @@ -97,30 +88,19 @@ describe("VPopover", () => { it("should focus the popover by default when opening if there is no tabbable content in the popover and warn", async () => { render(TestWrapper) await doOpen() - expectOpen() + expect(getPopover()).toBeVisible() expect(getPopover().parentElement).toHaveFocus() expect(warn).toHaveBeenCalledWith(noFocusableElementWarning) }) - // https://github.com/WordPress/openverse/issues/2300 - // eslint-disable-next-line jest/no-disabled-tests - it.skip("should focus the first tabbable element in the popover by default and not warn", async () => { - render(TestWrapper, { props: { popoverContentTabIndex: 0 } }) - await doOpen() - expectOpen() - await nextTick() - expect(getPopover()).toHaveFocus() - expect(warn).not.toHaveBeenCalled() - }) - it("should neither focus no warn when the prop is false", async () => { render(TestWrapper, { props: { popoverProps: { autoFocusOnShow: false } }, }) getTrigger().focus() await doOpen() - expectOpen() + expect(getPopover()).toBeVisible() expect(getTrigger()).toHaveFocus() expect(warn).not.toHaveBeenCalled() }) @@ -132,7 +112,7 @@ describe("VPopover", () => { props: { popoverProps: { trapFocus: false } }, }) await doOpen() - expectOpen() + expect(getPopover()).toBeVisible() await clickOutside() expect(queryPopover()).not.toBeVisible() expect(getTrigger()).toHaveFocus() @@ -143,7 +123,7 @@ describe("VPopover", () => { props: { popoverProps: { trapFocus: false, autoFocusOnHide: false } }, }) await doOpen() - expectOpen() + expect(getPopover()).toBeVisible() await clickOutside() expect(getTrigger()).not.toHaveFocus() }) @@ -151,15 +131,11 @@ describe("VPopover", () => { }) describe("hideOnClickOutside", () => { - // This test is broken (for some reason clickOutside does not appear to actually cause a click - // to happen in this case). - // https://github.com/WordPress/openverse/issues/2220 - // eslint-disable-next-line jest/no-disabled-tests - it.skip("should hide the popover if a click happens outside the popover by default", async () => { + it("should hide the popover if a click happens outside the popover by default", async () => { render(TestWrapper) await doOpen() - expectOpen() + expect(getPopover()).toBeVisible() await clickOutside() await nextTick() expect(queryPopover()).not.toBeVisible() @@ -171,10 +147,10 @@ describe("VPopover", () => { }) await doOpen() - expectOpen() + expect(getPopover()).toBeVisible() await clickOutside() - expectOpen() + expect(getPopover()).toBeVisible() }) }) @@ -182,7 +158,7 @@ describe("VPopover", () => { it("should hide the popover if escape is sent in the popover by default", async () => { render(TestWrapper) await doOpen() - expectOpen() + expect(getPopover()).toBeVisible() await userEvent.keyboard("{escape}") expect(queryPopover()).not.toBeVisible() }) @@ -190,9 +166,9 @@ describe("VPopover", () => { it("should not hide if the escape is sent in the popover when false", async () => { render(TestWrapper, { props: { popoverProps: { hideOnEsc: false } } }) await doOpen() - expectOpen() + expect(getPopover()).toBeVisible() await userEvent.keyboard("{escape}") - expectOpen() + expect(getPopover()).toBeVisible() }) }) }) diff --git a/package.json b/package.json index c46cee826f6..eeeb5937e21 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ }, "packageManager": "pnpm@7.17.1", "engines": { - "node": ">= 16.0.0 <17", + "node": ">= 18.0.0 <19", "pnpm": ">= 7.17.1" }, "volta": { - "node": "16.19.1" + "node": "18.16.0" }, "devDependencies": { "@babel/core": "7.20.12", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index abc4f13c749..17083394948 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,9 +80,9 @@ importers: '@babel/runtime-corejs3': ^7.21.0 '@itsjonq/remake': ^2.0.0 '@nuxt/components': ^2.2.1 - '@nuxt/types': ^2.16.3 - '@nuxt/typescript-build': ^3.0.0 - '@nuxt/vue-app': ^2.16.3 + '@nuxt/types': ^2.17.0 + '@nuxt/typescript-build': ^3.0.1 + '@nuxt/vue-app': ^2.17.0 '@nuxtjs/composition-api': ^0.33.1 '@nuxtjs/eslint-module': ^3.1.0 '@nuxtjs/i18n': ^7.0.3 @@ -137,7 +137,7 @@ importers: module-alias: ^2.2.2 node-html-parser: ^5.3.3 npm-run-all: ^4.1.5 - nuxt: ^2.16.3 + nuxt: ^2.17.0 pinia: ^2.0.33 portal-vue: ^2.1.7 postcss: ^8.4.12 @@ -166,8 +166,8 @@ importers: webpack: ^4.46.0 dependencies: '@nuxt/components': 2.2.1 - '@nuxt/vue-app': 2.16.3 - '@nuxtjs/composition-api': 0.33.1_vy7xpffix5pmcjc7tpwmoxm2hq + '@nuxt/vue-app': 2.17.0 + '@nuxtjs/composition-api': 0.33.1_2fbzhtyog7bmybvhyeifufnl3a '@nuxtjs/i18n': 7.2.0_vue@2.7.14 '@nuxtjs/proxy': 2.1.0 '@nuxtjs/redirect-module': 0.3.1 @@ -192,7 +192,7 @@ importers: focus-visible: 5.2.0 glob: 8.0.1 node-html-parser: 5.3.3 - nuxt: 2.16.3_463pqhi6eauw3mjqcyq4fuonrm + nuxt: 2.17.0_463pqhi6eauw3mjqcyq4fuonrm pinia: 2.0.33_hwpzsh6pnvsm3pjf2zi526hnzq portal-vue: 2.1.7_vue@2.7.14 postcss-focus-visible: 6.0.4_postcss@8.4.21 @@ -211,8 +211,8 @@ importers: '@babel/preset-typescript': 7.21.0_@babel+core@7.21.3 '@babel/runtime-corejs3': 7.21.0 '@itsjonq/remake': 2.0.0 - '@nuxt/types': 2.16.3 - '@nuxt/typescript-build': 3.0.0_kk6tyvluq4qaeeeyga5u5vellq + '@nuxt/types': 2.17.0 + '@nuxt/typescript-build': 3.0.1_4iooitihkbuzmfdnjfckvzb5vi '@nuxtjs/eslint-module': 3.1.0_webpack@4.46.0 '@nuxtjs/storybook': 4.3.2_fsn54piaonfvnn6tqljrgpgicu '@pinia/testing': 0.0.15_pinia@2.0.33+vue@2.7.14 @@ -297,7 +297,6 @@ packages: dependencies: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.18 - dev: true /@babel/code-frame/7.18.6: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} @@ -311,6 +310,13 @@ packages: dependencies: '@babel/highlight': 7.18.6 + /@babel/code-frame/7.22.5: + resolution: {integrity: sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.5 + dev: false + /@babel/compat-data/7.21.0: resolution: {integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==} engines: {node: '>=6.9.0'} @@ -320,6 +326,11 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/compat-data/7.22.5: + resolution: {integrity: sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/core/7.12.9: resolution: {integrity: sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==} engines: {node: '>=6.9.0'} @@ -328,10 +339,10 @@ packages: '@babel/generator': 7.21.3 '@babel/helper-module-transforms': 7.21.2 '@babel/helpers': 7.21.0 - '@babel/parser': 7.21.3 + '@babel/parser': 7.22.5 '@babel/template': 7.20.7 '@babel/traverse': 7.21.3 - '@babel/types': 7.21.3 + '@babel/types': 7.22.5 convert-source-map: 1.8.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -389,6 +400,29 @@ packages: transitivePeerDependencies: - supports-color + /@babel/core/7.22.5: + resolution: {integrity: sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==} + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': 2.2.1 + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-module-transforms': 7.22.5 + '@babel/helpers': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/eslint-parser/7.19.1_7xipkb3f6dzhjb24g5u5l4c7wq: resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -425,18 +459,43 @@ packages: jsesc: 2.5.2 dev: true + /@babel/generator/7.22.5: + resolution: {integrity: sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + '@jridgewell/gen-mapping': 0.3.3 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: false + /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.3 + /@babel/helper-annotate-as-pure/7.22.5: + resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false + /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-explode-assignable-expression': 7.18.6 '@babel/types': 7.21.3 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor/7.22.5: + resolution: {integrity: sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false /@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.3: resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} @@ -465,6 +524,20 @@ packages: semver: 6.3.0 dev: true + /@babel/helper-compilation-targets/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + browserslist: 4.21.9 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: false + /@babel/helper-create-class-features-plugin/7.21.0_@babel+core@7.21.3: resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==} engines: {node: '>=6.9.0'} @@ -482,6 +555,46 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 transitivePeerDependencies: - supports-color + dev: true + + /@babel/helper-create-class-features-plugin/7.21.0_@babel+core@7.22.5: + resolution: {integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.21.0 + '@babel/helper-member-expression-to-functions': 7.21.0 + '@babel/helper-optimise-call-expression': 7.18.6 + '@babel/helper-replace-supers': 7.20.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/helper-split-export-declaration': 7.18.6 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/helper-create-class-features-plugin/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-replace-supers': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false /@babel/helper-create-regexp-features-plugin/7.19.0_@babel+core@7.21.3: resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==} @@ -492,6 +605,30 @@ packages: '@babel/core': 7.21.3 '@babel/helper-annotate-as-pure': 7.18.6 regexpu-core: 5.2.2 + dev: true + + /@babel/helper-create-regexp-features-plugin/7.19.0_@babel+core@7.22.5: + resolution: {integrity: sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.18.6 + regexpu-core: 5.2.2 + dev: false + + /@babel/helper-create-regexp-features-plugin/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.22.5 + regexpu-core: 5.3.2 + semver: 6.3.0 + dev: false /@babel/helper-define-polyfill-provider/0.1.5_@babel+core@7.21.3: resolution: {integrity: sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==} @@ -525,6 +662,23 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color + dev: true + + /@babel/helper-define-polyfill-provider/0.4.0_@babel+core@7.22.5: + resolution: {integrity: sha512-RnanLx5ETe6aybRi1cO/edaRH+bNYWaryCEmjDDYyNr4wnSzyOp8T0dWipmqVHKEY3AbVKUom50AKSlj1zmKbg==} + peerDependencies: + '@babel/core': ^7.4.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.2 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false /@babel/helper-environment-visitor/7.18.9: resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} @@ -535,11 +689,17 @@ packages: engines: {node: '>=6.9.0'} dev: true + /@babel/helper-environment-visitor/7.22.5: + resolution: {integrity: sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/helper-explode-assignable-expression/7.18.6: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.3 + dev: true /@babel/helper-function-name/7.19.0: resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} @@ -556,18 +716,40 @@ packages: '@babel/template': 7.21.9 '@babel/types': 7.22.4 + /@babel/helper-function-name/7.22.5: + resolution: {integrity: sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/types': 7.22.5 + dev: false + /@babel/helper-hoist-variables/7.18.6: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.4 + /@babel/helper-hoist-variables/7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false + /@babel/helper-member-expression-to-functions/7.21.0: resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.3 + /@babel/helper-member-expression-to-functions/7.22.5: + resolution: {integrity: sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false + /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} @@ -581,6 +763,13 @@ packages: '@babel/types': 7.22.4 dev: true + /@babel/helper-module-imports/7.22.5: + resolution: {integrity: sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false + /@babel/helper-module-transforms/7.21.2: resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} engines: {node: '>=6.9.0'} @@ -612,12 +801,35 @@ packages: - supports-color dev: true + /@babel/helper-module-transforms/7.22.5: + resolution: {integrity: sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/helper-optimise-call-expression/7.18.6: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.3 + /@babel/helper-optimise-call-expression/7.22.5: + resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false + /@babel/helper-plugin-utils/7.10.4: resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==} dev: true @@ -626,6 +838,11 @@ packages: resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==} engines: {node: '>=6.9.0'} + /@babel/helper-plugin-utils/7.22.5: + resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.21.3: resolution: {integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==} engines: {node: '>=6.9.0'} @@ -639,6 +856,22 @@ packages: '@babel/types': 7.21.3 transitivePeerDependencies: - supports-color + dev: true + + /@babel/helper-remap-async-to-generator/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-cU0Sq1Rf4Z55fgz7haOakIyM7+x/uCFwXpLPaeRzfoUtAEAuUZjZvFPjL/rk5rW693dIgn2hng1W7xbT7lWT4g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-wrap-function': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false /@babel/helper-replace-supers/7.20.7: resolution: {integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==} @@ -653,6 +886,20 @@ packages: transitivePeerDependencies: - supports-color + /@babel/helper-replace-supers/7.22.5: + resolution: {integrity: sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-member-expression-to-functions': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/helper-simple-access/7.20.2: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} @@ -666,18 +913,39 @@ packages: '@babel/types': 7.22.4 dev: true + /@babel/helper-simple-access/7.22.5: + resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false + /@babel/helper-skip-transparent-expression-wrappers/7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.21.3 + /@babel/helper-skip-transparent-expression-wrappers/7.22.5: + resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false + /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.22.4 + /@babel/helper-split-export-declaration/7.22.5: + resolution: {integrity: sha512-thqK5QFghPKWLhAV321lxF95yCg2K3Ob5yw+M3VHWfdia0IkPXUtoLH8x/6Fh486QUvzhb8YOWHChTVen2/PoQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.22.5 + dev: false + /@babel/helper-string-parser/7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} engines: {node: '>=6.9.0'} @@ -686,14 +954,27 @@ packages: resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} engines: {node: '>=6.9.0'} + /@babel/helper-string-parser/7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier/7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier/7.22.5: + resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-option/7.21.0: resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==} engines: {node: '>=6.9.0'} + /@babel/helper-validator-option/7.22.5: + resolution: {integrity: sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==} + engines: {node: '>=6.9.0'} + dev: false + /@babel/helper-wrap-function/7.19.0: resolution: {integrity: sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==} engines: {node: '>=6.9.0'} @@ -704,6 +985,19 @@ packages: '@babel/types': 7.21.3 transitivePeerDependencies: - supports-color + dev: true + + /@babel/helper-wrap-function/7.22.5: + resolution: {integrity: sha512-bYqLIBSEshYcYQyfks8ewYA8S30yaGSeRslcvKMvoUk6HHPySbxHq9YRi6ghhzEU+yhQv9bP/jXnygkStOcqZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-function-name': 7.22.5 + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false /@babel/helpers/7.21.0: resolution: {integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==} @@ -726,6 +1020,17 @@ packages: - supports-color dev: true + /@babel/helpers/7.22.5: + resolution: {integrity: sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.22.5 + '@babel/traverse': 7.22.5 + '@babel/types': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} engines: {node: '>=6.9.0'} @@ -734,6 +1039,15 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 + /@babel/highlight/7.22.5: + resolution: {integrity: sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.5 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: false + /@babel/parser/7.21.3: resolution: {integrity: sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==} engines: {node: '>=6.0.0'} @@ -748,6 +1062,13 @@ packages: dependencies: '@babel/types': 7.22.4 + /@babel/parser/7.22.5: + resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.22.5 + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==} engines: {node: '>=6.9.0'} @@ -756,6 +1077,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.18.9_@babel+core@7.21.3: resolution: {integrity: sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==} @@ -767,6 +1099,19 @@ packages: '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.3 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-transform-optional-chaining': 7.22.5_@babel+core@7.22.5 + dev: false /@babel/plugin-proposal-async-generator-functions/7.20.1_@babel+core@7.21.3: resolution: {integrity: sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==} @@ -781,6 +1126,7 @@ packages: '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.21.3 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} @@ -793,6 +1139,20 @@ packages: '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color + dev: true + + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.22.5: + resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: false /@babel/plugin-proposal-class-static-block/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==} @@ -806,6 +1166,7 @@ packages: '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.21.3 transitivePeerDependencies: - supports-color + dev: true /@babel/plugin-proposal-decorators/7.17.2_@babel+core@7.21.3: resolution: {integrity: sha512-WH8Z95CwTq/W8rFbMqb9p3hicpt4RX4f0K659ax2VHxgOyT6qQmUaEVEjIh4WR9Eh9NymkVn5vwsrE68fAQNUw==} @@ -823,18 +1184,18 @@ packages: - supports-color dev: true - /@babel/plugin-proposal-decorators/7.21.0_@babel+core@7.21.3: - resolution: {integrity: sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==} + /@babel/plugin-proposal-decorators/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-h8hlezQ4dl6ixodgXkH8lUfcD7x+WAuIqPUjwGoItynrXOAv4a4Tci1zA/qjzQjjcl0v3QpLdc2LM6ZACQuY7A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.3 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.20.7 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/plugin-syntax-decorators': 7.21.0_@babel+core@7.21.3 + '@babel/core': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + '@babel/plugin-syntax-decorators': 7.22.5_@babel+core@7.22.5 transitivePeerDependencies: - supports-color dev: false @@ -848,6 +1209,7 @@ packages: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.21.3 + dev: true /@babel/plugin-proposal-export-default-from/7.16.7_@babel+core@7.21.3: resolution: {integrity: sha512-+cENpW1rgIjExn+o5c8Jw/4BuH4eGKKYvkMB8/0ZxFQ9mC0t4z09VsPIwNg6waF69QYC81zxGeAsREGuqQoKeg==} @@ -869,6 +1231,7 @@ packages: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.21.3 + dev: true /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==} @@ -879,6 +1242,7 @@ packages: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.21.3 + dev: true /@babel/plugin-proposal-logical-assignment-operators/7.18.9_@babel+core@7.21.3: resolution: {integrity: sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==} @@ -889,6 +1253,7 @@ packages: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.21.3 + dev: true /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} @@ -899,6 +1264,18 @@ packages: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.21.3 + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.22.5: + resolution: {integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.5 + dev: false /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==} @@ -909,6 +1286,7 @@ packages: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.21.3 + dev: true /@babel/plugin-proposal-object-rest-spread/7.12.1_@babel+core@7.12.9: resolution: {integrity: sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==} @@ -933,6 +1311,7 @@ packages: '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.21.3 '@babel/plugin-transform-parameters': 7.20.3_@babel+core@7.21.3 + dev: true /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==} @@ -943,6 +1322,7 @@ packages: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.21.3 + dev: true /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.21.3: resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} @@ -954,6 +1334,19 @@ packages: '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.21.3 + dev: true + + /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.22.5: + resolution: {integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.5 + dev: false /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} @@ -966,20 +1359,59 @@ packages: '@babel/helper-plugin-utils': 7.20.2 transitivePeerDependencies: - supports-color + dev: true - /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.21.3: - resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.22.5: + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-annotate-as-pure': 7.18.6 + '@babel/core': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-proposal-private-property-in-object/7.18.6_@babel+core@7.21.3: + resolution: {integrity: sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-create-class-features-plugin': 7.21.0_@babel+core@7.21.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.21.3 transitivePeerDependencies: - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object/7.21.0-placeholder-for-preset-env.2_@babel+core@7.22.5: + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + dev: false + + /@babel/plugin-proposal-private-property-in-object/7.21.11_@babel+core@7.22.5: + resolution: {integrity: sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.5 + transitivePeerDependencies: + - supports-color + dev: false /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} @@ -990,6 +1422,18 @@ packages: '@babel/core': 7.21.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.22.5: + resolution: {integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==} + engines: {node: '>=4'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.21.3: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} @@ -998,6 +1442,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.22.5: + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.21.3: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} @@ -1015,6 +1469,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.22.5: + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.21.3: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} @@ -1024,6 +1488,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.22.5: + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-decorators/7.17.0_@babel+core@7.21.3: resolution: {integrity: sha512-qWe85yCXsvDEluNP0OyeQjH63DlhAR3W7K9BxxU1MvbDb48tgBG+Ao6IJJ6smPDrrVzSQZrbF6donpkFBMcs3A==} @@ -1035,14 +1510,14 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-decorators/7.21.0_@babel+core@7.21.3: - resolution: {integrity: sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==} + /@babel/plugin-syntax-decorators/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-avpUOBS7IU6al8MmF1XpAyj9QYeLPuSDJI5D4pVMSMdL7xQokKqJPYQC67RCT0aCTashUXPiGwMJ0DEXXCEmMA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 dev: false /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.21.3: @@ -1052,6 +1527,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.22.5: + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-export-default-from/7.16.7_@babel+core@7.21.3: resolution: {integrity: sha512-4C3E4NsrLOgftKaTYTULhHsuQrGv3FHrBzOMDiS7UYKIpgGBkAdawg4h+EI8zPeK9M0fiIIh72hIwsI24K7MbA==} @@ -1070,6 +1555,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.22.5: + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-flow/7.16.7_@babel+core@7.21.3: resolution: {integrity: sha512-UDo3YGQO0jH6ytzVwgSLv9i/CzMcUjbKenL67dTrAZPPv6GFAtDhe6jqnvmoKzC/7htNTohhos+onPtDMqJwaQ==} @@ -1089,6 +1584,27 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-import-assertions/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-syntax-import-attributes/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.21.3: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} @@ -1099,6 +1615,15 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.22.5: + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.21.3: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: @@ -1106,6 +1631,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.22.5: + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-jsx/7.12.1_@babel+core@7.12.9: resolution: {integrity: sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==} @@ -1124,6 +1659,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-jsx/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.21.3: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} @@ -1132,6 +1678,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.22.5: + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.21.3: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} @@ -1140,6 +1696,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.22.5: + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.21.3: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} @@ -1148,6 +1714,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.22.5: + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.12.9: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} @@ -1165,6 +1741,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.22.5: + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.21.3: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} @@ -1173,6 +1759,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.22.5: + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.21.3: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} @@ -1181,6 +1777,16 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.22.5: + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.21.3: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} @@ -1190,6 +1796,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.22.5: + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.21.3: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} @@ -1199,6 +1816,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.22.5: + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.21.3: resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} @@ -1210,6 +1838,17 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true + /@babel/plugin-syntax-unicode-sets-regex/7.18.6_@babel+core@7.22.5: + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + /@babel/plugin-transform-arrow-functions/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==} engines: {node: '>=6.9.0'} @@ -1218,6 +1857,32 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-arrow-functions/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-async-generator-functions/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-gGOEvFzm3fWoyD5uZq7vVTD57pPJ3PczPUD/xCFGjzBpUosnklmXyKnGQbbbGs1NPNPskFex0j93yKbHt0cHyg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.5 + transitivePeerDependencies: + - supports-color + dev: false /@babel/plugin-transform-async-to-generator/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==} @@ -1231,6 +1896,21 @@ packages: '@babel/helper-remap-async-to-generator': 7.18.9_@babel+core@7.21.3 transitivePeerDependencies: - supports-color + dev: true + + /@babel/plugin-transform-async-to-generator/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-remap-async-to-generator': 7.22.5_@babel+core@7.22.5 + transitivePeerDependencies: + - supports-color + dev: false /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==} @@ -1240,6 +1920,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-block-scoped-functions/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-block-scoping/7.20.2_@babel+core@7.21.3: resolution: {integrity: sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==} @@ -1249,6 +1940,44 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-block-scoping/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-class-properties/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-class-static-block/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.5 + transitivePeerDependencies: + - supports-color + dev: false /@babel/plugin-transform-classes/7.20.2_@babel+core@7.21.3: resolution: {integrity: sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==} @@ -1268,6 +1997,27 @@ packages: globals: 11.12.0 transitivePeerDependencies: - supports-color + dev: true + + /@babel/plugin-transform-classes/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-2edQhLfibpWpsVBx2n/GKOz6JdGQvLruZQfGr9l1qes2KQaWswjBzhQF7UDUZMNaMMQeYnQzxwOMPsbYF7wqPQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-optimise-call-expression': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false /@babel/plugin-transform-computed-properties/7.18.9_@babel+core@7.21.3: resolution: {integrity: sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==} @@ -1277,6 +2027,18 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-computed-properties/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/template': 7.22.5 + dev: false /@babel/plugin-transform-destructuring/7.20.2_@babel+core@7.21.3: resolution: {integrity: sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==} @@ -1286,6 +2048,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-destructuring/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} @@ -1296,6 +2069,29 @@ packages: '@babel/core': 7.21.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.22.5: + resolution: {integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + dev: false + + /@babel/plugin-transform-dotall-regex/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.21.3: resolution: {integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==} @@ -1305,6 +2101,28 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-duplicate-keys/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-dynamic-import/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.5 + dev: false /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==} @@ -1315,6 +2133,29 @@ packages: '@babel/core': 7.21.3 '@babel/helper-builder-binary-assignment-operator-visitor': 7.18.9 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-exponentiation-operator/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-export-namespace-from/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.5 + dev: false /@babel/plugin-transform-flow-strip-types/7.16.7_@babel+core@7.21.3: resolution: {integrity: sha512-mzmCq3cNsDpZZu9FADYYyfZJIOrSONmHcop2XEKPdBNMa4PDC4eEvcOvzZaCNcjKu72v0XQlA5y1g58aLRXdYg==} @@ -1335,6 +2176,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-for-of/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.21.3: resolution: {integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==} @@ -1346,6 +2198,30 @@ packages: '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.3 '@babel/helper-function-name': 7.21.0 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-function-name/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-json-strings/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.5 + dev: false /@babel/plugin-transform-literals/7.18.9_@babel+core@7.21.3: resolution: {integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==} @@ -1355,6 +2231,28 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-literals/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-logical-assignment-operators/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.5 + dev: false /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==} @@ -1364,116 +2262,332 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-member-expression-literals/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-modules-amd/7.19.6_@babel+core@7.21.3: + resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-amd/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-module-transforms': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-modules-commonjs/7.19.6_@babel+core@7.21.3: + resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-simple-access': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-module-transforms': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-simple-access': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-modules-systemjs/7.19.6_@babel+core@7.21.3: + resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-validator-identifier': 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-module-transforms': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.21.3: + resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-module-transforms': 7.21.2 + '@babel/helper-plugin-utils': 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-module-transforms': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + transitivePeerDependencies: + - supports-color + dev: false + + /@babel/plugin-transform-named-capturing-groups-regex/7.19.1_@babel+core@7.21.3: + resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.21.3: + resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-new-target/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-nullish-coalescing-operator/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.5 + dev: false + + /@babel/plugin-transform-numeric-separator/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.5 + dev: false + + /@babel/plugin-transform-object-rest-spread/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-transform-parameters': 7.22.5_@babel+core@7.22.5 + dev: false + + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.21.3: + resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.21.3 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/helper-replace-supers': 7.20.7 + transitivePeerDependencies: + - supports-color + dev: true - /@babel/plugin-transform-modules-amd/7.19.6_@babel+core@7.21.3: - resolution: {integrity: sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==} + /@babel/plugin-transform-object-super/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-module-transforms': 7.21.2 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-replace-supers': 7.22.5 transitivePeerDependencies: - supports-color + dev: false - /@babel/plugin-transform-modules-commonjs/7.19.6_@babel+core@7.21.3: - resolution: {integrity: sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==} + /@babel/plugin-transform-optional-catch-binding/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-module-transforms': 7.21.2 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-simple-access': 7.20.2 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.5 + dev: false - /@babel/plugin-transform-modules-systemjs/7.19.6_@babel+core@7.21.3: - resolution: {integrity: sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==} + /@babel/plugin-transform-optional-chaining/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-AconbMKOMkyG+xCng2JogMCDcqW8wedQAqpVIL4cOSescZ7+iW8utC6YDZLMCSUIReEA733gzRSaOSXMAt/4WQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-hoist-variables': 7.18.6 - '@babel/helper-module-transforms': 7.21.2 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-validator-identifier': 7.19.1 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.5 + dev: false - /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.21.3: - resolution: {integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==} + /@babel/plugin-transform-parameters/7.20.3_@babel+core@7.12.9: + resolution: {integrity: sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-module-transforms': 7.21.2 + '@babel/core': 7.12.9 '@babel/helper-plugin-utils': 7.20.2 - transitivePeerDependencies: - - supports-color + dev: true - /@babel/plugin-transform-named-capturing-groups-regex/7.19.1_@babel+core@7.21.3: - resolution: {integrity: sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==} + /@babel/plugin-transform-parameters/7.20.3_@babel+core@7.21.3: + resolution: {integrity: sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.21.3 - '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true - /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.21.3: - resolution: {integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==} + /@babel/plugin-transform-parameters/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false - /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.21.3: - resolution: {integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==} + /@babel/plugin-transform-private-methods/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-plugin-utils': 7.20.2 - '@babel/helper-replace-supers': 7.20.7 + '@babel/core': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 transitivePeerDependencies: - supports-color + dev: false - /@babel/plugin-transform-parameters/7.20.3_@babel+core@7.12.9: - resolution: {integrity: sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==} + /@babel/plugin-transform-private-property-in-object/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.12.9 - '@babel/helper-plugin-utils': 7.20.2 - dev: true + '@babel/core': 7.22.5 + '@babel/helper-annotate-as-pure': 7.22.5 + '@babel/helper-create-class-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.5 + transitivePeerDependencies: + - supports-color + dev: false - /@babel/plugin-transform-parameters/7.20.3_@babel+core@7.21.3: - resolution: {integrity: sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==} + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.21.3: + resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true - /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.21.3: - resolution: {integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==} + /@babel/plugin-transform-property-literals/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-plugin-utils': 7.20.2 + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-react-display-name/7.16.7_@babel+core@7.21.3: resolution: {integrity: sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==} @@ -1529,6 +2643,18 @@ packages: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 regenerator-transform: 0.15.1 + dev: true + + /@babel/plugin-transform-regenerator/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + regenerator-transform: 0.15.1 + dev: false /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==} @@ -1538,19 +2664,30 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true - /@babel/plugin-transform-runtime/7.21.0_@babel+core@7.21.3: - resolution: {integrity: sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==} + /@babel/plugin-transform-reserved-words/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-plugin-utils': 7.20.2 - babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.21.3 - babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.21.3 - babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.21.3 + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-runtime/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-bg4Wxd1FWeFx3daHFTWk1pkSWK/AyQuiyAoeZAOkAOUBjnZPH6KT7eMxouV47tQ6hl6ax2zyAWBdWZXbrvXlaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + babel-plugin-polyfill-corejs2: 0.4.3_@babel+core@7.22.5 + babel-plugin-polyfill-corejs3: 0.8.1_@babel+core@7.22.5 + babel-plugin-polyfill-regenerator: 0.5.0_@babel+core@7.22.5 semver: 6.3.0 transitivePeerDependencies: - supports-color @@ -1564,6 +2701,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-shorthand-properties/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-spread/7.19.0_@babel+core@7.21.3: resolution: {integrity: sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==} @@ -1574,6 +2722,18 @@ packages: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 '@babel/helper-skip-transparent-expression-wrappers': 7.20.0 + dev: true + + /@babel/plugin-transform-spread/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 + dev: false /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==} @@ -1583,6 +2743,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-sticky-regex/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.21.3: resolution: {integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==} @@ -1592,6 +2763,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-template-literals/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.21.3: resolution: {integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==} @@ -1601,6 +2783,17 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-typeof-symbol/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-typescript/7.21.0_@babel+core@7.21.3: resolution: {integrity: sha512-xo///XTPp3mDzTtrqXoBlK9eiAYW3wv9JXglcn/u1bi60RW11dEUxIgA8cbnDhutS1zacjMRmAwxE0gMklLnZg==} @@ -1624,6 +2817,28 @@ packages: dependencies: '@babel/core': 7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-escapes/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-unicode-property-regex/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.21.3: resolution: {integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==} @@ -1634,6 +2849,29 @@ packages: '@babel/core': 7.21.3 '@babel/helper-create-regexp-features-plugin': 7.19.0_@babel+core@7.21.3 '@babel/helper-plugin-utils': 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-regex/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false + + /@babel/plugin-transform-unicode-sets-regex/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-create-regexp-features-plugin': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + dev: false /@babel/preset-env/7.20.2_@babel+core@7.21.3: resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==} @@ -1719,6 +2957,98 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color + dev: true + + /@babel/preset-env/7.22.5_@babel+core@7.22.5: + resolution: {integrity: sha512-fj06hw89dpiZzGZtxn+QybifF07nNiZjZ7sazs2aVDcysAZVGjW7+7iFYxg6GLNM47R/thYfLdrXc+2f11Vi9A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-plugin-utils': 7.22.5 + '@babel/helper-validator-option': 7.22.5 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2_@babel+core@7.22.5 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.22.5 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.22.5 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.22.5 + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-import-assertions': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-syntax-import-attributes': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.22.5 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.22.5 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.22.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.22.5 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.22.5 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.22.5 + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6_@babel+core@7.22.5 + '@babel/plugin-transform-arrow-functions': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-async-generator-functions': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-async-to-generator': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-block-scoped-functions': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-block-scoping': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-class-properties': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-class-static-block': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-classes': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-computed-properties': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-destructuring': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-dotall-regex': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-duplicate-keys': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-dynamic-import': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-exponentiation-operator': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-export-namespace-from': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-for-of': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-function-name': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-json-strings': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-literals': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-logical-assignment-operators': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-member-expression-literals': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-modules-amd': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-modules-commonjs': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-modules-systemjs': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-modules-umd': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-new-target': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-nullish-coalescing-operator': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-numeric-separator': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-object-rest-spread': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-object-super': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-optional-catch-binding': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-optional-chaining': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-parameters': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-private-methods': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-private-property-in-object': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-property-literals': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-regenerator': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-reserved-words': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-shorthand-properties': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-spread': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-sticky-regex': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-template-literals': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-typeof-symbol': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-unicode-escapes': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-unicode-property-regex': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-unicode-regex': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-transform-unicode-sets-regex': 7.22.5_@babel+core@7.22.5 + '@babel/preset-modules': 0.1.5_@babel+core@7.22.5 + '@babel/types': 7.22.5 + babel-plugin-polyfill-corejs2: 0.4.3_@babel+core@7.22.5 + babel-plugin-polyfill-corejs3: 0.8.1_@babel+core@7.22.5 + babel-plugin-polyfill-regenerator: 0.5.0_@babel+core@7.22.5 + core-js-compat: 3.31.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false /@babel/preset-flow/7.16.7_@babel+core@7.21.3: resolution: {integrity: sha512-6ceP7IyZdUYQ3wUVqyRSQXztd1YmFHWI4Xv11MIqAlE4WqxBSd/FZ61V9k+TS5Gd4mkHOtQtPp9ymRpxH4y1Ug==} @@ -1743,6 +3073,20 @@ packages: '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.21.3 '@babel/types': 7.21.3 esutils: 2.0.3 + dev: true + + /@babel/preset-modules/0.1.5_@babel+core@7.22.5: + resolution: {integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-plugin-utils': 7.20.2 + '@babel/plugin-proposal-unicode-property-regex': 7.18.6_@babel+core@7.22.5 + '@babel/plugin-transform-dotall-regex': 7.18.6_@babel+core@7.22.5 + '@babel/types': 7.21.3 + esutils: 2.0.3 + dev: false /@babel/preset-react/7.16.7_@babel+core@7.21.3: resolution: {integrity: sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==} @@ -1787,6 +3131,10 @@ packages: source-map-support: 0.5.21 dev: true + /@babel/regjsgen/0.8.0: + resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} + dev: false + /@babel/runtime-corejs3/7.21.0: resolution: {integrity: sha512-TDD4UJzos3JJtM+tHX+w2Uc+KWj7GV+VKKFdMVd2Rx8sdA19hcc3P3AHFYd5LVOw+pYuSd5lICC3gm52B6Rwxw==} engines: {node: '>=6.9.0'} @@ -1814,6 +3162,13 @@ packages: regenerator-runtime: 0.13.11 dev: true + /@babel/runtime/7.22.5: + resolution: {integrity: sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==} + engines: {node: '>=6.9.0'} + dependencies: + regenerator-runtime: 0.13.11 + dev: false + /@babel/template/7.20.7: resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==} engines: {node: '>=6.9.0'} @@ -1830,6 +3185,15 @@ packages: '@babel/parser': 7.22.4 '@babel/types': 7.22.4 + /@babel/template/7.22.5: + resolution: {integrity: sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 + dev: false + /@babel/traverse/7.20.13: resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} engines: {node: '>=6.9.0'} @@ -1883,6 +3247,24 @@ packages: - supports-color dev: true + /@babel/traverse/7.22.5: + resolution: {integrity: sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.5 + '@babel/generator': 7.22.5 + '@babel/helper-environment-visitor': 7.22.5 + '@babel/helper-function-name': 7.22.5 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.5 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: false + /@babel/types/7.21.3: resolution: {integrity: sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==} engines: {node: '>=6.9.0'} @@ -1899,6 +3281,14 @@ packages: '@babel/helper-validator-identifier': 7.19.1 to-fast-properties: 2.0.0 + /@babel/types/7.22.5: + resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.5 + to-fast-properties: 2.0.0 + /@bcoe/v8-coverage/0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -1919,268 +3309,336 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@csstools/cascade-layer-name-parser/1.0.1_ppok7cytzjc65mcyxmtit3wdyi: - resolution: {integrity: sha512-SAAi5DpgJJWkfTvWSaqkgyIsTawa83hMwKrktkj6ra2h+q6ZN57vOGZ6ySHq6RSo+CbP64fA3aPChPBRDDUgtw==} + /@csstools/cascade-layer-name-parser/1.0.2_g5wmdbqtzzaodrrmvxcit5gfji: + resolution: {integrity: sha512-xm7Mgwej/wBfLoK0K5LfntmPJzoULayl1XZY9JYgQgT29JiqNw++sLnx95u5y9zCihblzkyaRYJrsRMhIBzRdg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.0.0 - '@csstools/css-tokenizer': ^2.0.0 + '@csstools/css-parser-algorithms': ^2.1.1 + '@csstools/css-tokenizer': ^2.1.1 dependencies: - '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm - '@csstools/css-tokenizer': 2.1.0 + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + dev: false + + /@csstools/color-helpers/2.1.0: + resolution: {integrity: sha512-OWkqBa7PDzZuJ3Ha7T5bxdSVfSCfTq6K1mbAhbO1MD+GSULGjrp45i5RudyJOedstSarN/3mdwu9upJE7gDXfw==} + engines: {node: ^14 || ^16 || >=18} dev: false - /@csstools/color-helpers/1.0.0: - resolution: {integrity: sha512-tgqtiV8sU/VaWYjOB3O7PWs7HR/MmOLl2kTYRW2qSsTSEniJq7xmyAYFB1LPpXvvQcE5u2ih2dK9fyc8BnrAGQ==} + /@csstools/css-calc/1.1.1_g5wmdbqtzzaodrrmvxcit5gfji: + resolution: {integrity: sha512-Nh+iLCtjlooTzuR0lpmB8I6hPX/VupcGQ3Z1U2+wgJJ4fa8+cWkub+lCsbZcYPzBGsZLEL8fQAg+Na5dwEFJxg==} engines: {node: ^14 || ^16 || >=18} + peerDependencies: + '@csstools/css-parser-algorithms': ^2.1.1 + '@csstools/css-tokenizer': ^2.1.1 + dependencies: + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 dev: false - /@csstools/css-calc/1.0.0_ppok7cytzjc65mcyxmtit3wdyi: - resolution: {integrity: sha512-Xw0b/Jr+vLGGYD8cxsGWPaY5n1GtVC6G4tcga+eZPXZzRjjZHorPwW739UgtXzL2Da1RLxNE73c0r/KvmizPsw==} + /@csstools/css-color-parser/1.2.1_g5wmdbqtzzaodrrmvxcit5gfji: + resolution: {integrity: sha512-NcmaoJIEycIH0HnzZRrwRcBljPh1AWcXl4CNL8MAD3+Zy8XyIpdTtTMaY/phnLHHIYkyjaoSTdxAecss6+PCcg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.0.1 - '@csstools/css-tokenizer': ^2.0.1 + '@csstools/css-parser-algorithms': ^2.1.1 + '@csstools/css-tokenizer': ^2.1.1 dependencies: - '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm - '@csstools/css-tokenizer': 2.1.0 + '@csstools/color-helpers': 2.1.0 + '@csstools/css-calc': 1.1.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 dev: false - /@csstools/css-parser-algorithms/2.0.1_5vzy4lghjvuzkedkkk4tqwjftm: - resolution: {integrity: sha512-B9/8PmOtU6nBiibJg0glnNktQDZ3rZnGn/7UmDfrm2vMtrdlXO3p7ErE95N0up80IRk9YEtB5jyj/TmQ1WH3dw==} + /@csstools/css-parser-algorithms/2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq: + resolution: {integrity: sha512-9BoQ/jSrPq4vv3b9jjLW+PNNv56KlDH5JMx5yASSNrCtvq70FCNZUjXRvbCeR9hYj9ZyhURtqpU/RFIgg6kiOw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-tokenizer': ^2.0.0 + '@csstools/css-tokenizer': ^2.1.1 dependencies: - '@csstools/css-tokenizer': 2.1.0 + '@csstools/css-tokenizer': 2.1.1 dev: false - /@csstools/css-tokenizer/2.1.0: - resolution: {integrity: sha512-dtqFyoJBHUxGi9zPZdpCKP1xk8tq6KPHJ/NY4qWXiYo6IcSGwzk3L8x2XzZbbyOyBs9xQARoGveU2AsgLj6D2A==} + /@csstools/css-tokenizer/2.1.1: + resolution: {integrity: sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA==} engines: {node: ^14 || ^16 || >=18} dev: false - /@csstools/media-query-list-parser/2.0.1_ppok7cytzjc65mcyxmtit3wdyi: - resolution: {integrity: sha512-X2/OuzEbjaxhzm97UJ+95GrMeT29d1Ib+Pu+paGLuRWZnWRK9sI9r3ikmKXPWGA1C4y4JEdBEFpp9jEqCvLeRA==} + /@csstools/media-query-list-parser/2.1.0_g5wmdbqtzzaodrrmvxcit5gfji: + resolution: {integrity: sha512-MXkR+TeaS2q9IkpyO6jVCdtA/bfpABJxIrfkLswThFN8EZZgI2RfAHhm6sDNDuYV25d5+b8Lj1fpTccIcSLPsQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - '@csstools/css-parser-algorithms': ^2.0.0 - '@csstools/css-tokenizer': ^2.0.0 + '@csstools/css-parser-algorithms': ^2.1.1 + '@csstools/css-tokenizer': ^2.1.1 dependencies: - '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm - '@csstools/css-tokenizer': 2.1.0 + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 dev: false - /@csstools/postcss-cascade-layers/3.0.1_postcss@8.4.21: + /@csstools/postcss-cascade-layers/3.0.1_postcss@8.4.24: resolution: {integrity: sha512-dD8W98dOYNOH/yX4V4HXOhfCOnvVAg8TtsL+qCGNoKXuq5z2C/d026wGWgySgC8cajXXo/wNezS31Glj5GcqrA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + '@csstools/selector-specificity': 2.2.0_c3vcbepomgmxc74cgtawpgpkyi + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /@csstools/postcss-color-function/2.1.0_postcss@8.4.21: - resolution: {integrity: sha512-XBoCClLyWchlYGHGlmMOa6M2UXZNrZm63HVfsvgD/z1RPm/s3+FhHyT6VkDo+OvEBPhCgn6xz4IeCu4pRctKDQ==} + /@csstools/postcss-color-function/2.2.3_postcss@8.4.24: + resolution: {integrity: sha512-b1ptNkr1UWP96EEHqKBWWaV5m/0hgYGctgA/RVZhONeP1L3T/8hwoqDm9bB23yVCfOgE9U93KI9j06+pEkJTvw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/color-helpers': 1.0.0 - '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 - postcss: 8.4.21 - postcss-value-parser: 4.2.0 + '@csstools/css-color-parser': 1.2.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + postcss: 8.4.24 + dev: false + + /@csstools/postcss-color-mix-function/1.0.3_postcss@8.4.24: + resolution: {integrity: sha512-QGXjGugTluqFZWzVf+S3wCiRiI0ukXlYqCi7OnpDotP/zaVTyl/aqZujLFzTOXy24BoWnu89frGMc79ohY5eog==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-color-parser': 1.2.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + postcss: 8.4.24 dev: false - /@csstools/postcss-font-format-keywords/2.0.2_postcss@8.4.21: + /@csstools/postcss-font-format-keywords/2.0.2_postcss@8.4.24: resolution: {integrity: sha512-iKYZlIs6JsNT7NKyRjyIyezTCHLh4L4BBB3F5Nx7Dc4Z/QmBgX+YJFuUSar8IM6KclGiAUFGomXFdYxAwJydlA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /@csstools/postcss-hwb-function/2.1.1_postcss@8.4.21: - resolution: {integrity: sha512-XijKzdxBdH2hU6IcPWmnaU85FKEF1XE5hGy0d6dQC6XznFUIRu1T4uebL3krayX40m4xIcxfCBsQm5zphzVrtg==} + /@csstools/postcss-gradients-interpolation-method/3.0.6_postcss@8.4.24: + resolution: {integrity: sha512-rBOBTat/YMmB0G8VHwKqDEx+RZ4KCU9j42K8LwS0IpZnyThalZZF7BCSsZ6TFlZhcRZKlZy3LLFI2pLqjNVGGA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/color-helpers': 1.0.0 - postcss: 8.4.21 - postcss-value-parser: 4.2.0 + '@csstools/css-color-parser': 1.2.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + postcss: 8.4.24 dev: false - /@csstools/postcss-ic-unit/2.0.2_postcss@8.4.21: - resolution: {integrity: sha512-N84qGTJkfLTPj2qOG5P4CIqGjpZBbjOEMKMn+UjO5wlb9lcBTfBsxCF0lQsFdWJUzBHYFOz19dL66v71WF3Pig==} + /@csstools/postcss-hwb-function/2.2.2_postcss@8.4.24: + resolution: {integrity: sha512-W5Y5oaJ382HSlbdGfPf60d7dAK6Hqf10+Be1yZbd/TNNrQ/3dDdV1c07YwOXPQ3PZ6dvFMhxbIbn8EC3ki3nEg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 - postcss: 8.4.21 + '@csstools/css-color-parser': 1.2.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + postcss: 8.4.24 + dev: false + + /@csstools/postcss-ic-unit/2.0.4_postcss@8.4.24: + resolution: {integrity: sha512-9W2ZbV7whWnr1Gt4qYgxMWzbevZMOvclUczT5vk4yR6vS53W/njiiUhtm/jh/BKYwQ1W3PECZjgAd2dH4ebJig==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /@csstools/postcss-is-pseudo-class/3.1.1_postcss@8.4.21: - resolution: {integrity: sha512-hhiacuby4YdUnnxfCYCRMBIobyJImozf0u+gHSbQ/tNOdwvmrZtVROvgW7zmfYuRkHVDNZJWZslq2v5jOU+j/A==} + /@csstools/postcss-is-pseudo-class/3.2.1_postcss@8.4.24: + resolution: {integrity: sha512-AtANdV34kJl04Al62is3eQRk/BfOfyAvEmRJvbt+nx5REqImLC+2XhuE6skgkcPli1l8ONS67wS+l1sBzySc3Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + '@csstools/selector-specificity': 2.2.0_c3vcbepomgmxc74cgtawpgpkyi + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /@csstools/postcss-logical-float-and-clear/1.0.1_postcss@8.4.21: + /@csstools/postcss-logical-float-and-clear/1.0.1_postcss@8.4.24: resolution: {integrity: sha512-eO9z2sMLddvlfFEW5Fxbjyd03zaO7cJafDurK4rCqyRt9P7aaWwha0LcSzoROlcZrw1NBV2JAp2vMKfPMQO1xw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /@csstools/postcss-logical-resize/1.0.1_postcss@8.4.21: + /@csstools/postcss-logical-resize/1.0.1_postcss@8.4.24: resolution: {integrity: sha512-x1ge74eCSvpBkDDWppl+7FuD2dL68WP+wwP2qvdUcKY17vJksz+XoE1ZRV38uJgS6FNUwC0AxrPW5gy3MxsDHQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-value-parser: 4.2.0 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /@csstools/postcss-logical-viewport-units/1.0.3_postcss@8.4.24: + resolution: {integrity: sha512-6zqcyRg9HSqIHIPMYdt6THWhRmE5/tyHKJQLysn2TeDf/ftq7Em9qwMTx98t2C/7UxIsYS8lOiHHxAVjWn2WUg==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-tokenizer': 2.1.1 + postcss: 8.4.24 + dev: false + + /@csstools/postcss-media-minmax/1.0.3_postcss@8.4.24: + resolution: {integrity: sha512-os7qe2HV/qBILKCGa/dl5AbpO6c+MZyunFBWPWJBrEVhulCYo13FgEWbhyERFM5FeJghiqYgJxM54oiJASpBnw==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/css-calc': 1.1.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + '@csstools/media-query-list-parser': 2.1.0_g5wmdbqtzzaodrrmvxcit5gfji + postcss: 8.4.24 dev: false - /@csstools/postcss-logical-viewport-units/1.0.2_postcss@8.4.21: - resolution: {integrity: sha512-nnKFywBqRMYjv5jyjSplD/nbAnboUEGFfdxKw1o34Y1nvycgqjQavhKkmxbORxroBBIDwC5y6SfgENcPPUcOxQ==} + /@csstools/postcss-media-queries-aspect-ratio-number-values/1.0.3_postcss@8.4.24: + resolution: {integrity: sha512-JHdwBSNZsur/mJXwzuC/gxyekhfSdWJaTiSOhUITk2D8pYRYcjV1MZiCiWupQNfM2Qp2W7w1A/gEU6U/xlpIyA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-tokenizer': 2.1.0 - postcss: 8.4.21 + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + '@csstools/media-query-list-parser': 2.1.0_g5wmdbqtzzaodrrmvxcit5gfji + postcss: 8.4.24 dev: false - /@csstools/postcss-media-queries-aspect-ratio-number-values/1.0.1_postcss@8.4.21: - resolution: {integrity: sha512-V9yQqXdje6OfqDf6EL5iGOpi6N0OEczwYK83rql9UapQwFEryXlAehR5AqH8QqLYb6+y31wUXK6vMxCp0920Zg==} + /@csstools/postcss-nested-calc/2.0.2_postcss@8.4.24: + resolution: {integrity: sha512-jbwrP8rN4e7LNaRcpx3xpMUjhtt34I9OV+zgbcsYAAk6k1+3kODXJBf95/JMYWhu9g1oif7r06QVUgfWsKxCFw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm - '@csstools/css-tokenizer': 2.1.0 - '@csstools/media-query-list-parser': 2.0.1_ppok7cytzjc65mcyxmtit3wdyi - postcss: 8.4.21 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 dev: false - /@csstools/postcss-nested-calc/2.0.2_postcss@8.4.21: - resolution: {integrity: sha512-jbwrP8rN4e7LNaRcpx3xpMUjhtt34I9OV+zgbcsYAAk6k1+3kODXJBf95/JMYWhu9g1oif7r06QVUgfWsKxCFw==} + /@csstools/postcss-normalize-display-values/2.0.1_postcss@8.4.24: + resolution: {integrity: sha512-TQT5g3JQ5gPXC239YuRK8jFceXF9d25ZvBkyjzBGGoW5st5sPXFVQS8OjYb9IJ/K3CdfK4528y483cgS2DJR/w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /@csstools/postcss-normalize-display-values/2.0.1_postcss@8.4.21: - resolution: {integrity: sha512-TQT5g3JQ5gPXC239YuRK8jFceXF9d25ZvBkyjzBGGoW5st5sPXFVQS8OjYb9IJ/K3CdfK4528y483cgS2DJR/w==} + /@csstools/postcss-oklab-function/2.2.3_postcss@8.4.24: + resolution: {integrity: sha512-AgJ2rWMnLCDcbSMTHSqBYn66DNLBym6JpBpCaqmwZ9huGdljjDRuH3DzOYzkgQ7Pm2K92IYIq54IvFHloUOdvA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-value-parser: 4.2.0 + '@csstools/css-color-parser': 1.2.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + postcss: 8.4.24 dev: false - /@csstools/postcss-oklab-function/2.1.0_postcss@8.4.21: - resolution: {integrity: sha512-U/odSNjOVhagNRu+RDaNVbn8vaqA9GyCOoneQA2je7697KOrtRDc7/POrYsP7QioO2aaezDzKNX02wBzc99fkQ==} + /@csstools/postcss-progressive-custom-properties/2.3.0_postcss@8.4.24: + resolution: {integrity: sha512-Zd8ojyMlsL919TBExQ1I0CTpBDdyCpH/yOdqatZpuC3sd22K4SwC7+Yez3Q/vmXMWSAl+shjNeFZ7JMyxMjK+Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/color-helpers': 1.0.0 - '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /@csstools/postcss-progressive-custom-properties/2.1.0_postcss@8.4.21: - resolution: {integrity: sha512-tRX1rinsXajZlc4WiU7s9Y6O9EdSHScT997zDsvDUjQ1oZL2nvnL6Bt0s9KyQZZTdC3lrG2PIdBqdOIWXSEPlQ==} + /@csstools/postcss-relative-color-syntax/1.0.2_postcss@8.4.24: + resolution: {integrity: sha512-juCoVInkgH2TZPfOhyx6tIal7jW37L/0Tt+Vcl1LoxqQA9sxcg3JWYZ98pl1BonDnki6s/M7nXzFQHWsWMeHgw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-value-parser: 4.2.0 + '@csstools/css-color-parser': 1.2.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + postcss: 8.4.24 dev: false - /@csstools/postcss-scope-pseudo-class/2.0.2_postcss@8.4.21: + /@csstools/postcss-scope-pseudo-class/2.0.2_postcss@8.4.24: resolution: {integrity: sha512-6Pvo4uexUCXt+Hz5iUtemQAcIuCYnL+ePs1khFR6/xPgC92aQLJ0zGHonWoewiBE+I++4gXK3pr+R1rlOFHe5w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /@csstools/postcss-stepped-value-functions/2.1.0_postcss@8.4.21: - resolution: {integrity: sha512-CkEo9BF8fQeMoXW3biXjlgTLY7PA4UFihn6leq7hPoRzIguLUI0WZIVgsITGXfX8LXmkhCSTjXO2DLYu/LUixQ==} + /@csstools/postcss-stepped-value-functions/2.1.1_postcss@8.4.24: + resolution: {integrity: sha512-YCvdF0GCZK35nhLgs7ippcxDlRVe5QsSht3+EghqTjnYnyl3BbWIN6fYQ1dKWYTJ+7Bgi41TgqQFfJDcp9Xy/w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/css-calc': 1.0.0_ppok7cytzjc65mcyxmtit3wdyi - '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm - '@csstools/css-tokenizer': 2.1.0 - postcss: 8.4.21 + '@csstools/css-calc': 1.1.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + postcss: 8.4.24 dev: false - /@csstools/postcss-text-decoration-shorthand/2.2.1_postcss@8.4.21: - resolution: {integrity: sha512-Ow6/cWWdjjVvA83mkm3kLRvvWsbzoe1AbJCxkpC+c9ibUjyS8pifm+LpZslQUKcxRVQ69ztKHDBEbFGTDhNeUw==} + /@csstools/postcss-text-decoration-shorthand/2.2.4_postcss@8.4.24: + resolution: {integrity: sha512-zPN56sQkS/7YTCVZhOBVCWf7AiNge8fXDl7JVaHLz2RyT4pnyK2gFjckWRLpO0A2xkm1lCgZ0bepYZTwAVd/5A==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/color-helpers': 1.0.0 - postcss: 8.4.21 + '@csstools/color-helpers': 2.1.0 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /@csstools/postcss-trigonometric-functions/2.0.1_postcss@8.4.21: - resolution: {integrity: sha512-uGmmVWGHozyWe6+I4w321fKUC034OB1OYW0ZP4ySHA23n+r9y93K+1yrmW+hThpSfApKhaWySoD4I71LLlFUYQ==} + /@csstools/postcss-trigonometric-functions/2.1.1_postcss@8.4.24: + resolution: {integrity: sha512-XcXmHEFfHXhvYz40FtDlA4Fp4NQln2bWTsCwthd2c+MCnYArUYU3YaMqzR5CrKP3pMoGYTBnp5fMqf1HxItNyw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-value-parser: 4.2.0 + '@csstools/css-calc': 1.1.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + postcss: 8.4.24 dev: false - /@csstools/postcss-unset-value/2.0.1_postcss@8.4.21: + /@csstools/postcss-unset-value/2.0.1_postcss@8.4.24: resolution: {integrity: sha512-oJ9Xl29/yU8U7/pnMJRqAZd4YXNCfGEdcP4ywREuqm/xMqcgDNDppYRoCGDt40aaZQIEKBS79LytUDN/DHf0Ew==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /@csstools/selector-specificity/2.1.1_wajs5nedgkikc5pcuwett7legi: - resolution: {integrity: sha512-jwx+WCqszn53YHOfvFMJJRd/B2GqkCBt+1MJSG6o5/s8+ytHMvDZXsJgUEWLk12UnLd7HYKac4BYU5i/Ron1Cw==} + /@csstools/selector-specificity/2.2.0_c3vcbepomgmxc74cgtawpgpkyi: + resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: - postcss: ^8.4 postcss-selector-parser: ^6.0.10 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss-selector-parser: 6.0.13 dev: false /@discoveryjs/json-ext/0.5.7: @@ -2615,7 +4073,6 @@ packages: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.15 '@jridgewell/trace-mapping': 0.3.18 - dev: true /@jridgewell/resolve-uri/3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} @@ -2633,14 +4090,12 @@ packages: /@jridgewell/set-array/1.1.2: resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} engines: {node: '>=6.0.0'} - dev: true /@jridgewell/sourcemap-codec/1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} /@jridgewell/sourcemap-codec/1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true /@jridgewell/trace-mapping/0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} @@ -2653,7 +4108,6 @@ packages: dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 - dev: true /@jridgewell/trace-mapping/0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -2780,42 +4234,43 @@ packages: mkdirp: 1.0.4 rimraf: 3.0.2 - /@nuxt/babel-preset-app/2.16.3_vue@2.7.14: - resolution: {integrity: sha512-FZnQUnnXvGTXPnnwAMa9gRmSu16Wn796NffzwBzKQHoKVkal2HJcZ+D7/EnqeqVd8dFijFCrdquEj1WoastUSA==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} - dependencies: - '@babel/compat-data': 7.21.0 - '@babel/core': 7.21.3 - '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.21.3 - '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.21.3 - '@babel/plugin-proposal-decorators': 7.21.0_@babel+core@7.21.3 - '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.21.3 - '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.21.3 - '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.21.3 - '@babel/plugin-transform-runtime': 7.21.0_@babel+core@7.21.3 - '@babel/preset-env': 7.20.2_@babel+core@7.21.3 - '@babel/runtime': 7.21.0 - '@vue/babel-preset-jsx': 1.4.0_db64vrtfadvbj3xicvww7soojy - core-js: 3.27.2 - core-js-compat: 3.29.1 + /@nuxt/babel-preset-app/2.17.0_vue@2.7.14: + resolution: {integrity: sha512-1fDcehn5MUoCMyrGZN/we4RmV9S14iotBosdZ9KeDvOTgPXLXqi/R+D6+esVNYeHe/iNKrJZ4ipEEH/BsII5pQ==} + engines: {node: ^14.18.0 || >=16.10.0} + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.22.5 + '@babel/helper-compilation-targets': 7.22.5_@babel+core@7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/plugin-proposal-class-properties': 7.18.6_@babel+core@7.22.5 + '@babel/plugin-proposal-decorators': 7.22.5_@babel+core@7.22.5 + '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6_@babel+core@7.22.5 + '@babel/plugin-proposal-optional-chaining': 7.21.0_@babel+core@7.22.5 + '@babel/plugin-proposal-private-methods': 7.18.6_@babel+core@7.22.5 + '@babel/plugin-proposal-private-property-in-object': 7.21.11_@babel+core@7.22.5 + '@babel/plugin-transform-runtime': 7.22.5_@babel+core@7.22.5 + '@babel/preset-env': 7.22.5_@babel+core@7.22.5 + '@babel/runtime': 7.22.5 + '@vue/babel-preset-jsx': 1.4.0_ycdttchozy6xip4e5kqqyp2ctm + core-js: 3.31.0 + core-js-compat: 3.31.0 regenerator-runtime: 0.13.11 transitivePeerDependencies: - supports-color - vue dev: false - /@nuxt/builder/2.16.3_463pqhi6eauw3mjqcyq4fuonrm: - resolution: {integrity: sha512-yQWqr1YnlgOyqT/au1rgORAL3BkH2gJ4Dn2o5DDUGZQZLnkhEAYB5WblTk8e78xENhjfzIYF3pqzxMhMqNxqBw==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/builder/2.17.0_463pqhi6eauw3mjqcyq4fuonrm: + resolution: {integrity: sha512-yLTJiUqF3oQ7dOC2ql2rT9agap8aWpjmOef+dTf6jh8BFZ6Oc2NT/j8mWzo4ruo4YpFqw2FqoOLDW5fCDE1+Bw==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@nuxt/devalue': 2.0.0 - '@nuxt/utils': 2.16.3 - '@nuxt/vue-app': 2.16.3 - '@nuxt/webpack': 2.16.3_463pqhi6eauw3mjqcyq4fuonrm + '@nuxt/devalue': 2.0.2 + '@nuxt/utils': 2.17.0 + '@nuxt/vue-app': 2.17.0 + '@nuxt/webpack': 2.17.0_463pqhi6eauw3mjqcyq4fuonrm chalk: 4.1.2 chokidar: 3.5.3 - consola: 2.15.3 + consola: 3.1.0 fs-extra: 10.1.0 glob: 8.1.0 hash-sum: 2.0.0 @@ -2888,18 +4343,18 @@ packages: - whiskers dev: false - /@nuxt/cli/2.16.3: - resolution: {integrity: sha512-zml8eW+1MkSquGwL8ywyb6T8N5tPpt85Zl9imxcyR79lukcnzmfIhlz4o25rEtrpii5wKTbebmHE7vldJcu/bA==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/cli/2.17.0: + resolution: {integrity: sha512-5d1Ekk3qnMz6+woSjWJ6IshfQxBJA8Qy7n630pD/cBZf8bttyb6WaILaUhZEAA+t3wy3LewfPBO55K+BN7o/lA==} + engines: {node: ^14.18.0 || >=16.10.0} hasBin: true dependencies: - '@nuxt/config': 2.16.3 - '@nuxt/utils': 2.16.3 + '@nuxt/config': 2.17.0 + '@nuxt/utils': 2.17.0 boxen: 5.1.2 chalk: 4.1.2 compression: 1.7.4 connect: 3.7.0 - consola: 2.15.3 + consola: 3.1.0 crc: 4.3.2 defu: 6.1.2 destr: 1.2.2 @@ -2912,9 +4367,9 @@ packages: minimist: 1.2.8 opener: 1.5.2 pretty-bytes: 5.6.0 - semver: 7.3.8 + semver: 7.5.2 serve-static: 1.15.0 - std-env: 3.3.2 + std-env: 3.3.3 upath: 2.0.1 wrap-ansi: 7.0.0 transitivePeerDependencies: @@ -2940,29 +4395,29 @@ packages: vue-template-compiler: 2.7.14 dev: false - /@nuxt/config/2.16.3: - resolution: {integrity: sha512-hBvr5/b5CS6UdXPgB8q/jvQHS0Bprf+b0hknL6ks4EkxhtNKM1Et3a0s3V3Gh/odLkkJ9yrtihFF+CymzBm6ew==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/config/2.17.0: + resolution: {integrity: sha512-KJWpFFs4nMpmGzkaRZJIWbDDQjrwwYPBGaKnjWyywfSBdM+9BXk27dxLG11EIVHDTn1P94nDTpu9qZywTi1OBQ==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@nuxt/utils': 2.16.3 - consola: 2.15.3 + '@nuxt/utils': 2.17.0 + consola: 3.1.0 defu: 6.1.2 destr: 1.2.2 - dotenv: 16.0.3 + dotenv: 16.3.0 lodash: 4.17.21 - rc9: 2.0.1 - std-env: 3.3.2 - ufo: 1.1.1 + rc9: 2.1.0 + std-env: 3.3.3 + ufo: 1.1.2 dev: false - /@nuxt/core/2.16.3: - resolution: {integrity: sha512-74351lKHZUxg3LxgtxUOCfTn6RHZZ4KtLKkGVr1YBkEuk/EtsOtkGUZI6psDk0RkXmxBtRk075neMfmaD7RAlQ==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/core/2.17.0: + resolution: {integrity: sha512-YiXA29Akbkd9+uCdUmWclXjmp0XmxbQJkz8IN5NfV9wIPPnbvYJEiDnHJxazrLESG2dA0BTzIxbWCGeuIDukCA==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@nuxt/config': 2.16.3 - '@nuxt/server': 2.16.3 - '@nuxt/utils': 2.16.3 - consola: 2.15.3 + '@nuxt/config': 2.17.0 + '@nuxt/server': 2.17.0 + '@nuxt/utils': 2.17.0 + consola: 3.1.0 fs-extra: 10.1.0 hable: 3.0.0 hash-sum: 2.0.0 @@ -2971,8 +4426,8 @@ packages: - supports-color dev: false - /@nuxt/devalue/2.0.0: - resolution: {integrity: sha512-YBI/6o2EBz02tdEJRBK8xkt3zvOFOWlLBf7WKYGBsSYSRtjjgrqPe2skp6VLLmKx5WbHHDNcW+6oACaurxGzeA==} + /@nuxt/devalue/2.0.2: + resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==} dev: false /@nuxt/friendly-errors-webpack-plugin/2.5.2_webpack@4.46.0: @@ -2983,24 +4438,24 @@ packages: dependencies: chalk: 2.4.2 consola: 2.15.3 - error-stack-parser: 2.0.6 + error-stack-parser: 2.1.4 string-width: 4.2.3 webpack: 4.46.0 dev: false - /@nuxt/generator/2.16.3: - resolution: {integrity: sha512-I0dvArAHOpru66quBSpZYl6urrc8rbs7MzNS33qq55qJZ8vtvm3pTYJgpeHm7CrmCcWEP/GLxLUvSUShtwkfzQ==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/generator/2.17.0: + resolution: {integrity: sha512-O9Jhr/WAxdI5DzD82v4BmyhGZI2RZ25ChxDSDzvYMHU+2o/Vm2PJnJKvb1ZlHpIR/2O/kzWMg3QcYkag7DvrkA==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@nuxt/utils': 2.16.3 + '@nuxt/utils': 2.17.0 chalk: 4.1.2 - consola: 2.15.3 + consola: 3.1.0 defu: 6.1.2 devalue: 2.0.1 fs-extra: 10.1.0 html-minifier: 4.0.0 node-html-parser: 6.1.5 - ufo: 1.1.1 + ufo: 1.1.2 dev: false /@nuxt/loading-screen/2.0.4: @@ -3042,16 +4497,16 @@ packages: - webpack dev: true - /@nuxt/server/2.16.3: - resolution: {integrity: sha512-BN2yqUGytFlM77B0J8os8lnqNQcTT0qDC2lllglrM5F6KPv5rhKyN5khMNPruO5u2vf2JNkXIaUrJYNc4bzKpQ==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/server/2.17.0: + resolution: {integrity: sha512-qe7RbxOna8EvccCbymc8Q8et6mFmOlyPVyxfvfblz5vzm55Lu8rlp3g7VRQTr62gS/x5lh+HtOynYrv56JxX/A==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@nuxt/utils': 2.16.3 - '@nuxt/vue-renderer': 2.16.3 + '@nuxt/utils': 2.17.0 + '@nuxt/vue-renderer': 2.17.0 '@nuxtjs/youch': 4.2.3 compression: 1.7.4 connect: 3.7.0 - consola: 2.15.3 + consola: 3.1.0 etag: 1.8.1 fresh: 0.5.2 fs-extra: 10.1.0 @@ -3062,7 +4517,7 @@ packages: serve-placeholder: 2.0.1 serve-static: 1.15.0 server-destroy: 1.0.1 - ufo: 1.1.1 + ufo: 1.1.2 transitivePeerDependencies: - supports-color dev: false @@ -3092,11 +4547,11 @@ packages: - encoding dev: false - /@nuxt/types/2.16.3: - resolution: {integrity: sha512-55c5zU4JaAvyOqFxKGRNhPhBXfxptTLH0ypBXiALUojN15ZAhSjo3AqhtunZUqufBSuCEJtKD+fsBM/Fwvz+0A==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/types/2.17.0: + resolution: {integrity: sha512-McgjOTBpnbicjo830MYiCtI1zzkkq0W23GlxcWfLAsi5vjqjfcBn9w9emVhOCDfNNbhMPsvfp3B5MyPZEaqo9A==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@types/babel__core': 7.20.0 + '@types/babel__core': 7.20.1 '@types/compression': 1.7.2 '@types/connect': 3.4.35 '@types/etag': 1.8.1 @@ -3113,14 +4568,15 @@ packages: '@types/webpack-hot-middleware': 2.25.5 dev: true - /@nuxt/typescript-build/3.0.0_kk6tyvluq4qaeeeyga5u5vellq: - resolution: {integrity: sha512-MGibV6fAPACIAxBKgmnhN9Ub575xt2O3rBvYdgx/QzBINDMejF54888AU+mKAOT3t/RAzzCDKk5xTLZWnzfVtg==} + /@nuxt/typescript-build/3.0.1_4iooitihkbuzmfdnjfckvzb5vi: + resolution: {integrity: sha512-+9mQuLlwYSDTesyt5lYjWzUit/DD78V+OSzaqGJUkybjS63YZUBcUw6Fr4jAeRreMlseFnJFIjtQQV1osunrhg==} peerDependencies: '@nuxt/types': '>=2.13.1' - typescript: 4.x + typescript: 4.x || 5.x dependencies: - '@nuxt/types': 2.16.3 + '@nuxt/types': 2.17.0 consola: 2.15.3 + defu: 6.1.2 fork-ts-checker-webpack-plugin: 6.5.3_gs6d5ria4vrhid7ajofnihvx3i ts-loader: 8.4.0_evijigonbo4skk2vlqtwtdqibu typescript: 4.9.5 @@ -3147,30 +4603,30 @@ packages: ufo: 0.7.9 dev: false - /@nuxt/utils/2.16.3: - resolution: {integrity: sha512-M0W1v4gZDMXyt1MnCoDijIvoV7Xu8NwdbHqWB9gyxIGvoycjNmWWu6yT4LkymZx2c2JUxWTVp6VoUKUWW5P46Q==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/utils/2.17.0: + resolution: {integrity: sha512-woL81udNtO3LWtpnmmkz5iFjhnKyG5NUA9qlBkz5ZoibxCnyByQFRllTn93zx3WhW7SSezJ1FKu5Dd3Nv7Rnkw==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - consola: 2.15.3 + consola: 3.1.0 create-require: 1.1.1 fs-extra: 10.1.0 hash-sum: 2.0.0 jiti: 1.18.2 lodash: 4.17.21 proper-lockfile: 4.1.2 - semver: 7.3.8 + semver: 7.5.2 serialize-javascript: 6.0.1 - signal-exit: 3.0.7 - ua-parser-js: 1.0.34 - ufo: 1.1.1 + signal-exit: 4.0.2 + ua-parser-js: 1.0.35 + ufo: 1.1.2 dev: false - /@nuxt/vue-app/2.16.3: - resolution: {integrity: sha512-Lacweyb3K0tRcHKIYVbAkGEptnXy0aNzXVF/n0niTMqtyWQ16pp2md3Ab0vcYXZf8Ya1Yy1NB8FhPqPYjG8OtA==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/vue-app/2.17.0: + resolution: {integrity: sha512-XdmLkuWfV/pmUmCd0x/ICq4YvipoHOlM9io8Fjbnnz2vVm3CboYGWeI7/bqp7BV4snHXSjWVekZo09VghLkyBA==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - node-fetch-native: 1.0.2 - ufo: 1.1.1 + node-fetch-native: 1.2.0 + ufo: 1.1.2 unfetch: 5.0.0 vue: 2.7.14 vue-client-only: 2.1.0 @@ -3181,37 +4637,37 @@ packages: vuex: 3.6.2_vue@2.7.14 dev: false - /@nuxt/vue-renderer/2.16.3: - resolution: {integrity: sha512-w46NiRZaAOU55S2UyTzGJqO7alO2YGgPFfy3HVOA5iXdNnpHwIBeVUIPLpmv6qByWxyu4OAOQu6pDURTWtaJdA==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/vue-renderer/2.17.0: + resolution: {integrity: sha512-lSHJGsvsZUAQpd7PXEtibk9/G58SS6T8v4WtBIEd3eFoX5D+AunJvpfoh79nQhlDnHeUaS49BGXjP6N7G1DM9A==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@nuxt/devalue': 2.0.0 - '@nuxt/utils': 2.16.3 - consola: 2.15.3 + '@nuxt/devalue': 2.0.2 + '@nuxt/utils': 2.17.0 + consola: 3.1.0 defu: 6.1.2 fs-extra: 10.1.0 lodash: 4.17.21 lru-cache: 5.1.1 - ufo: 1.1.1 + ufo: 1.1.2 vue: 2.7.14 vue-meta: 2.4.0 vue-server-renderer: 2.7.14 dev: false - /@nuxt/webpack/2.16.3_463pqhi6eauw3mjqcyq4fuonrm: - resolution: {integrity: sha512-VHXTMQj+8bUaaeIZKH4z2Ip/TnO4GuvpFV6GL7D+wjGMB+qeSsTPlWS7/FQxOt86uKEzpMz9w4jPJTYzgLV6pg==} - engines: {node: ^14.18.0 || ^16.10.0 || ^17.0.0 || ^18.0.0 || ^19.0.0} + /@nuxt/webpack/2.17.0_463pqhi6eauw3mjqcyq4fuonrm: + resolution: {integrity: sha512-abtLBtIgdMUyxHMcl6TilazulhSppaHIK4qexOuNkwJxy4DSbm1qPRMqu5w7rlTVBV86OkvFF/gAi1LMsSyVVg==} + engines: {node: ^14.18.0 || >=16.10.0} dependencies: - '@babel/core': 7.21.3 - '@nuxt/babel-preset-app': 2.16.3_vue@2.7.14 + '@babel/core': 7.22.5 + '@nuxt/babel-preset-app': 2.17.0_vue@2.7.14 '@nuxt/friendly-errors-webpack-plugin': 2.5.2_webpack@4.46.0 - '@nuxt/utils': 2.16.3 - babel-loader: 8.3.0_y3c3uzyfhmxjbwhc6k6hyxg3aa + '@nuxt/utils': 2.17.0 + babel-loader: 8.3.0_rf5mwho5nu3s3spznxs3423x5y cache-loader: 4.1.0_webpack@4.46.0 - caniuse-lite: 1.0.30001468 - consola: 2.15.3 + caniuse-lite: 1.0.30001503 + consola: 3.1.0 css-loader: 5.2.7_webpack@4.46.0 - cssnano: 5.1.15_postcss@8.4.21 + cssnano: 6.0.1_postcss@8.4.24 eventsource-polyfill: 0.9.6 extract-css-chunks-webpack-plugin: 4.9.0_webpack@4.46.0 file-loader: 6.2.0_webpack@4.46.0 @@ -3224,19 +4680,19 @@ packages: optimize-css-assets-webpack-plugin: 6.0.1_webpack@4.46.0 pify: 5.0.0 pnp-webpack-plugin: 1.7.0_typescript@4.9.5 - postcss: 8.4.21 - postcss-import: 15.1.0_postcss@8.4.21 + postcss: 8.4.24 + postcss-import: 15.1.0_postcss@8.4.24 postcss-import-resolver: 2.0.0 - postcss-loader: 4.3.0_4dftvqknpgmotzmzzqmnfvmmye - postcss-preset-env: 8.0.1_postcss@8.4.21 - postcss-url: 10.1.3_postcss@8.4.21 - semver: 7.3.8 - std-env: 3.3.2 + postcss-loader: 4.3.0_gt2pqllsmoslwxdqx2yura5nt4 + postcss-preset-env: 8.5.0_postcss@8.4.24 + postcss-url: 10.1.3_postcss@8.4.24 + semver: 7.5.2 + std-env: 3.3.3 style-resources-loader: 1.5.0_webpack@4.46.0 terser-webpack-plugin: 4.2.3_webpack@4.46.0 thread-loader: 3.0.4_webpack@4.46.0 time-fix-plugin: 2.0.7_webpack@4.46.0 - ufo: 1.1.1 + ufo: 1.1.2 upath: 2.0.1 url-loader: 4.1.1_lit45vopotvaqup7lrvlnvtxwy vue-loader: 15.10.1_pqbfgzxfmern2t6o46scvtdpia @@ -3244,7 +4700,7 @@ packages: vue-template-compiler: 2.7.14 watchpack: 2.4.0 webpack: 4.46.0 - webpack-bundle-analyzer: 4.8.0 + webpack-bundle-analyzer: 4.9.0 webpack-dev-middleware: 5.3.3_webpack@4.46.0 webpack-hot-middleware: 2.25.3 webpack-node-externals: 3.0.0 @@ -3313,7 +4769,7 @@ packages: - whiskers dev: false - /@nuxtjs/composition-api/0.33.1_vy7xpffix5pmcjc7tpwmoxm2hq: + /@nuxtjs/composition-api/0.33.1_2fbzhtyog7bmybvhyeifufnl3a: resolution: {integrity: sha512-dI0c5atKDsEIVycrsKw9T+aaos2VggscSJBPZpC1BXKzHR7+9Ilor+SHvnAEb5j2E2v+8x407Uo339oJzhlD1A==} engines: {node: '>=v14.13.0'} peerDependencies: @@ -3321,12 +4777,12 @@ packages: nuxt: ^2.15 vue: ^2.7.8 dependencies: - '@nuxt/vue-app': 2.16.3 + '@nuxt/vue-app': 2.17.0 defu: 6.1.0 estree-walker: 2.0.2 fs-extra: 9.1.0 magic-string: 0.26.3 - nuxt: 2.16.3_463pqhi6eauw3mjqcyq4fuonrm + nuxt: 2.17.0_463pqhi6eauw3mjqcyq4fuonrm pathe: 0.3.5 ufo: 0.8.5 vue: 2.7.14 @@ -5458,6 +6914,16 @@ packages: '@types/babel__traverse': 7.14.2 dev: true + /@types/babel__core/7.20.1: + resolution: {integrity: sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==} + dependencies: + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 + '@types/babel__generator': 7.6.3 + '@types/babel__template': 7.4.1 + '@types/babel__traverse': 7.14.2 + dev: true + /@types/babel__generator/7.6.3: resolution: {integrity: sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==} dependencies: @@ -6027,21 +7493,21 @@ packages: resolution: {integrity: sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==} dev: false - /@vue/babel-plugin-transform-vue-jsx/1.4.0_@babel+core@7.21.3: + /@vue/babel-plugin-transform-vue-jsx/1.4.0_@babel+core@7.22.5: resolution: {integrity: sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/helper-module-imports': 7.18.6 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.21.3 + '@babel/core': 7.22.5 + '@babel/helper-module-imports': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.5 '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 html-tags: 2.0.0 lodash.kebabcase: 4.1.1 svg-tags: 1.0.0 dev: false - /@vue/babel-preset-jsx/1.4.0_db64vrtfadvbj3xicvww7soojy: + /@vue/babel-preset-jsx/1.4.0_ycdttchozy6xip4e5kqqyp2ctm: resolution: {integrity: sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==} peerDependencies: '@babel/core': ^7.0.0-0 @@ -6050,76 +7516,76 @@ packages: vue: optional: true dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.22.5 '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 - '@vue/babel-plugin-transform-vue-jsx': 1.4.0_@babel+core@7.21.3 - '@vue/babel-sugar-composition-api-inject-h': 1.4.0_@babel+core@7.21.3 - '@vue/babel-sugar-composition-api-render-instance': 1.4.0_@babel+core@7.21.3 - '@vue/babel-sugar-functional-vue': 1.4.0_@babel+core@7.21.3 - '@vue/babel-sugar-inject-h': 1.4.0_@babel+core@7.21.3 - '@vue/babel-sugar-v-model': 1.4.0_@babel+core@7.21.3 - '@vue/babel-sugar-v-on': 1.4.0_@babel+core@7.21.3 + '@vue/babel-plugin-transform-vue-jsx': 1.4.0_@babel+core@7.22.5 + '@vue/babel-sugar-composition-api-inject-h': 1.4.0_@babel+core@7.22.5 + '@vue/babel-sugar-composition-api-render-instance': 1.4.0_@babel+core@7.22.5 + '@vue/babel-sugar-functional-vue': 1.4.0_@babel+core@7.22.5 + '@vue/babel-sugar-inject-h': 1.4.0_@babel+core@7.22.5 + '@vue/babel-sugar-v-model': 1.4.0_@babel+core@7.22.5 + '@vue/babel-sugar-v-on': 1.4.0_@babel+core@7.22.5 vue: 2.7.14 dev: false - /@vue/babel-sugar-composition-api-inject-h/1.4.0_@babel+core@7.21.3: + /@vue/babel-sugar-composition-api-inject-h/1.4.0_@babel+core@7.22.5: resolution: {integrity: sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.21.3 + '@babel/core': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.5 dev: false - /@vue/babel-sugar-composition-api-render-instance/1.4.0_@babel+core@7.21.3: + /@vue/babel-sugar-composition-api-render-instance/1.4.0_@babel+core@7.22.5: resolution: {integrity: sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.21.3 + '@babel/core': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.5 dev: false - /@vue/babel-sugar-functional-vue/1.4.0_@babel+core@7.21.3: + /@vue/babel-sugar-functional-vue/1.4.0_@babel+core@7.22.5: resolution: {integrity: sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.21.3 + '@babel/core': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.5 dev: false - /@vue/babel-sugar-inject-h/1.4.0_@babel+core@7.21.3: + /@vue/babel-sugar-inject-h/1.4.0_@babel+core@7.22.5: resolution: {integrity: sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.21.3 + '@babel/core': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.5 dev: false - /@vue/babel-sugar-v-model/1.4.0_@babel+core@7.21.3: + /@vue/babel-sugar-v-model/1.4.0_@babel+core@7.22.5: resolution: {integrity: sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.21.3 + '@babel/core': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.5 '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 - '@vue/babel-plugin-transform-vue-jsx': 1.4.0_@babel+core@7.21.3 + '@vue/babel-plugin-transform-vue-jsx': 1.4.0_@babel+core@7.22.5 camelcase: 5.3.1 html-tags: 2.0.0 svg-tags: 1.0.0 dev: false - /@vue/babel-sugar-v-on/1.4.0_@babel+core@7.21.3: + /@vue/babel-sugar-v-on/1.4.0_@babel+core@7.22.5: resolution: {integrity: sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.21.3 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.21.3 - '@vue/babel-plugin-transform-vue-jsx': 1.4.0_@babel+core@7.21.3 + '@babel/core': 7.22.5 + '@babel/plugin-syntax-jsx': 7.22.5_@babel+core@7.22.5 + '@vue/babel-plugin-transform-vue-jsx': 1.4.0_@babel+core@7.22.5 camelcase: 5.3.1 dev: false @@ -6234,7 +7700,7 @@ packages: source-map: 0.6.1 vue-template-es2015-compiler: 1.9.1 optionalDependencies: - prettier: 2.8.3 + prettier: 2.8.8 transitivePeerDependencies: - arc-templates - atpl @@ -6303,7 +7769,7 @@ packages: source-map: 0.6.1 vue-template-es2015-compiler: 1.9.1 optionalDependencies: - prettier: 2.8.3 + prettier: 2.8.8 transitivePeerDependencies: - arc-templates - atpl @@ -6620,6 +8086,12 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + /acorn/8.9.0: + resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: false + /address/1.1.2: resolution: {integrity: sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==} engines: {node: '>= 0.12.0'} @@ -7049,19 +8521,19 @@ packages: postcss-value-parser: 4.2.0 dev: true - /autoprefixer/10.4.14_postcss@8.4.21: + /autoprefixer/10.4.14_postcss@8.4.24: resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 dependencies: - browserslist: 4.21.5 - caniuse-lite: 1.0.30001468 + browserslist: 4.21.9 + caniuse-lite: 1.0.30001503 fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false @@ -7158,16 +8630,16 @@ packages: webpack: 4.46.0 dev: true - /babel-loader/8.3.0_y3c3uzyfhmxjbwhc6k6hyxg3aa: + /babel-loader/8.3.0_rf5mwho5nu3s3spznxs3423x5y: resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} peerDependencies: '@babel/core': ^7.0.0 webpack: '>=2' dependencies: - '@babel/core': 7.21.3 + '@babel/core': 7.22.5 find-cache-dir: 3.3.2 - loader-utils: 2.0.2 + loader-utils: 2.0.4 make-dir: 3.1.0 schema-utils: 2.7.1 webpack: 4.46.0 @@ -7238,6 +8710,20 @@ packages: semver: 6.3.0 transitivePeerDependencies: - supports-color + dev: true + + /babel-plugin-polyfill-corejs2/0.4.3_@babel+core@7.22.5: + resolution: {integrity: sha512-bM3gHc337Dta490gg+/AseNB9L4YLHxq1nGKZZSHbhXv4aTYU2MD2cjza1Ru4S6975YLTaL1K8uJf6ukJhhmtw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/compat-data': 7.22.5 + '@babel/core': 7.22.5 + '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.5 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: false /babel-plugin-polyfill-corejs3/0.1.7_@babel+core@7.21.3: resolution: {integrity: sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==} @@ -7261,6 +8747,19 @@ packages: core-js-compat: 3.29.1 transitivePeerDependencies: - supports-color + dev: true + + /babel-plugin-polyfill-corejs3/0.8.1_@babel+core@7.22.5: + resolution: {integrity: sha512-ikFrZITKg1xH6pLND8zT14UPgjKHiGLqex7rGEZCH2EvhsneJaJPemmpQaIZV5AL03II+lXylw3UmddDK8RU5Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.5 + core-js-compat: 3.31.0 + transitivePeerDependencies: + - supports-color + dev: false /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.21.3: resolution: {integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==} @@ -7271,6 +8770,18 @@ packages: '@babel/helper-define-polyfill-provider': 0.3.3_@babel+core@7.21.3 transitivePeerDependencies: - supports-color + dev: true + + /babel-plugin-polyfill-regenerator/0.5.0_@babel+core@7.22.5: + resolution: {integrity: sha512-hDJtKjMLVa7Z+LwnTCxoDLQj6wdc+B8dun7ayF2fYieI6OzfuvcLMB32ihJZ4UhCBwNYGl5bg/x/P9cMdnkc2g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': 7.22.5 + '@babel/helper-define-polyfill-provider': 0.4.0_@babel+core@7.22.5 + transitivePeerDependencies: + - supports-color + dev: false /babel-plugin-transform-es2015-modules-commonjs/6.26.2: resolution: {integrity: sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==} @@ -7369,7 +8880,7 @@ packages: resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/types': 7.21.3 + '@babel/types': 7.22.5 dev: true /babylon/6.18.0: @@ -7608,6 +9119,17 @@ packages: update-browserslist-db: 1.0.11_browserslist@4.21.7 dev: true + /browserslist/4.21.9: + resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001503 + electron-to-chromium: 1.4.433 + node-releases: 2.0.12 + update-browserslist-db: 1.0.11_browserslist@4.21.9 + dev: false + /bser/2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -7809,8 +9331,8 @@ packages: /caniuse-api/3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} dependencies: - browserslist: 4.21.5 - caniuse-lite: 1.0.30001468 + browserslist: 4.21.9 + caniuse-lite: 1.0.30001503 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 dev: false @@ -7826,6 +9348,10 @@ packages: resolution: {integrity: sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==} dev: true + /caniuse-lite/1.0.30001503: + resolution: {integrity: sha512-Sf9NiF+wZxPfzv8Z3iS0rXM1Do+iOy2Lxvib38glFX+08TCYYYGR5fRJXk4d77C4AYwhUjgYgMsMudbh2TqCKw==} + dev: false + /capture-exit/2.0.0: resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} engines: {node: 6.* || 8.* || >= 10.*} @@ -8122,8 +9648,8 @@ packages: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} dev: false - /colorette/2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + /colorette/2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} dev: false /colors/1.4.0: @@ -8247,6 +9773,10 @@ packages: /consola/2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + /consola/3.1.0: + resolution: {integrity: sha512-rrrJE6rP0qzl/Srg+C9x/AE5Kxfux7reVm1Wh0wCjuXvih6DqZgqDZe8auTD28fzJ9TF0mHlSDrPpWlujQRo1Q==} + dev: false + /console-browserify/1.2.0: resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} @@ -8596,8 +10126,8 @@ packages: /constantinople/4.0.1: resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} dependencies: - '@babel/parser': 7.21.3 - '@babel/types': 7.21.3 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 dev: true /constants-browserify/1.0.0: @@ -8622,7 +10152,6 @@ packages: /convert-source-map/1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: true /cookie-signature/1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} @@ -8677,6 +10206,13 @@ packages: resolution: {integrity: sha512-QmchCua884D8wWskMX8tW5ydINzd8oSJVx38lx/pVkFGqztxt73GYre3pm/hyYq8bPf+MW5In4I/uRShFDsbrA==} dependencies: browserslist: 4.21.5 + dev: true + + /core-js-compat/3.31.0: + resolution: {integrity: sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==} + dependencies: + browserslist: 4.21.9 + dev: false /core-js-pure/3.26.1: resolution: {integrity: sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==} @@ -8693,6 +10229,11 @@ packages: resolution: {integrity: sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==} requiresBuild: true + /core-js/3.31.0: + resolution: {integrity: sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==} + requiresBuild: true + dev: false + /core-util-is/1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -8816,34 +10357,34 @@ packages: randombytes: 2.1.0 randomfill: 1.0.4 - /css-blank-pseudo/5.0.2_postcss@8.4.21: + /css-blank-pseudo/5.0.2_postcss@8.4.24: resolution: {integrity: sha512-aCU4AZ7uEcVSUzagTlA9pHciz7aWPKA/YzrEkpdSopJ2pvhIxiQ5sYeMz1/KByxlIo4XBdvMNJAVKMg/GRnhfw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /css-declaration-sorter/6.3.1_postcss@8.4.21: - resolution: {integrity: sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==} + /css-declaration-sorter/6.4.0_postcss@8.4.24: + resolution: {integrity: sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==} engines: {node: ^10 || ^12 || >=14} peerDependencies: postcss: ^8.0.9 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /css-has-pseudo/5.0.2_postcss@8.4.21: + /css-has-pseudo/5.0.2_postcss@8.4.24: resolution: {integrity: sha512-q+U+4QdwwB7T9VEW/LyO6CFrLAeLqOykC5mDqJXc7aKZAhDbq7BvGT13VGJe+IwBfdN2o3Xdw2kJ5IxwV1Sc9Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + '@csstools/selector-specificity': 2.2.0_c3vcbepomgmxc74cgtawpgpkyi + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: false @@ -8887,13 +10428,13 @@ packages: semver: 7.3.7 webpack: 4.46.0 - /css-prefers-color-scheme/8.0.2_postcss@8.4.21: + /css-prefers-color-scheme/8.0.2_postcss@8.4.24: resolution: {integrity: sha512-OvFghizHJ45x7nsJJUSYLyQNTzsCU8yWjxAc/nhPQg1pbs18LMoET8N3kOweFDPy0JV0OSXN2iqRFhPBHYOeMA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false /css-select-base-adapter/0.1.1: @@ -8924,8 +10465,8 @@ packages: boolbase: 1.0.0 css-what: 6.1.0 domhandler: 5.0.3 - domutils: 3.0.1 - nth-check: 2.0.1 + domutils: 3.1.0 + nth-check: 2.1.1 dev: false /css-tree/1.0.0-alpha.37: @@ -8944,6 +10485,22 @@ packages: source-map: 0.6.1 dev: false + /css-tree/2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.0.2 + dev: false + + /css-tree/2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.0.2 + dev: false + /css-what/3.4.2: resolution: {integrity: sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==} engines: {node: '>= 6'} @@ -8974,8 +10531,8 @@ packages: source-map-resolve: 0.6.0 dev: true - /cssdb/7.4.1: - resolution: {integrity: sha512-0Q8NOMpXJ3iTDDbUv9grcmQAfdDx4qz+fN/+Md2FGbevT+6+bJNQ2LjB2YIUlLbpBTM32idU1Sb+tb/uGt6/XQ==} + /cssdb/7.6.0: + resolution: {integrity: sha512-Nna7rph8V0jC6+JBY4Vk4ndErUmfJfV6NJCaZdurL0omggabiy+QB2HCQtu5c/ACLZ0I7REv7A4QyPIoYzZx0w==} dev: false /cssesc/3.0.0: @@ -8983,65 +10540,123 @@ packages: engines: {node: '>=4'} hasBin: true - /cssnano-preset-default/5.2.14_postcss@8.4.21: + /cssnano-preset-default/5.2.14_postcss@8.4.24: resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - css-declaration-sorter: 6.3.1_postcss@8.4.21 - cssnano-utils: 3.1.0_postcss@8.4.21 - postcss: 8.4.21 - postcss-calc: 8.2.4_postcss@8.4.21 - postcss-colormin: 5.3.1_postcss@8.4.21 - postcss-convert-values: 5.1.3_postcss@8.4.21 - postcss-discard-comments: 5.1.2_postcss@8.4.21 - postcss-discard-duplicates: 5.1.0_postcss@8.4.21 - postcss-discard-empty: 5.1.1_postcss@8.4.21 - postcss-discard-overridden: 5.1.0_postcss@8.4.21 - postcss-merge-longhand: 5.1.7_postcss@8.4.21 - postcss-merge-rules: 5.1.4_postcss@8.4.21 - postcss-minify-font-values: 5.1.0_postcss@8.4.21 - postcss-minify-gradients: 5.1.1_postcss@8.4.21 - postcss-minify-params: 5.1.4_postcss@8.4.21 - postcss-minify-selectors: 5.2.1_postcss@8.4.21 - postcss-normalize-charset: 5.1.0_postcss@8.4.21 - postcss-normalize-display-values: 5.1.0_postcss@8.4.21 - postcss-normalize-positions: 5.1.1_postcss@8.4.21 - postcss-normalize-repeat-style: 5.1.1_postcss@8.4.21 - postcss-normalize-string: 5.1.0_postcss@8.4.21 - postcss-normalize-timing-functions: 5.1.0_postcss@8.4.21 - postcss-normalize-unicode: 5.1.1_postcss@8.4.21 - postcss-normalize-url: 5.1.0_postcss@8.4.21 - postcss-normalize-whitespace: 5.1.1_postcss@8.4.21 - postcss-ordered-values: 5.1.3_postcss@8.4.21 - postcss-reduce-initial: 5.1.2_postcss@8.4.21 - postcss-reduce-transforms: 5.1.0_postcss@8.4.21 - postcss-svgo: 5.1.0_postcss@8.4.21 - postcss-unique-selectors: 5.1.1_postcss@8.4.21 - dev: false - - /cssnano-utils/3.1.0_postcss@8.4.21: + css-declaration-sorter: 6.4.0_postcss@8.4.24 + cssnano-utils: 3.1.0_postcss@8.4.24 + postcss: 8.4.24 + postcss-calc: 8.2.4_postcss@8.4.24 + postcss-colormin: 5.3.1_postcss@8.4.24 + postcss-convert-values: 5.1.3_postcss@8.4.24 + postcss-discard-comments: 5.1.2_postcss@8.4.24 + postcss-discard-duplicates: 5.1.0_postcss@8.4.24 + postcss-discard-empty: 5.1.1_postcss@8.4.24 + postcss-discard-overridden: 5.1.0_postcss@8.4.24 + postcss-merge-longhand: 5.1.7_postcss@8.4.24 + postcss-merge-rules: 5.1.4_postcss@8.4.24 + postcss-minify-font-values: 5.1.0_postcss@8.4.24 + postcss-minify-gradients: 5.1.1_postcss@8.4.24 + postcss-minify-params: 5.1.4_postcss@8.4.24 + postcss-minify-selectors: 5.2.1_postcss@8.4.24 + postcss-normalize-charset: 5.1.0_postcss@8.4.24 + postcss-normalize-display-values: 5.1.0_postcss@8.4.24 + postcss-normalize-positions: 5.1.1_postcss@8.4.24 + postcss-normalize-repeat-style: 5.1.1_postcss@8.4.24 + postcss-normalize-string: 5.1.0_postcss@8.4.24 + postcss-normalize-timing-functions: 5.1.0_postcss@8.4.24 + postcss-normalize-unicode: 5.1.1_postcss@8.4.24 + postcss-normalize-url: 5.1.0_postcss@8.4.24 + postcss-normalize-whitespace: 5.1.1_postcss@8.4.24 + postcss-ordered-values: 5.1.3_postcss@8.4.24 + postcss-reduce-initial: 5.1.2_postcss@8.4.24 + postcss-reduce-transforms: 5.1.0_postcss@8.4.24 + postcss-svgo: 5.1.0_postcss@8.4.24 + postcss-unique-selectors: 5.1.1_postcss@8.4.24 + dev: false + + /cssnano-preset-default/6.0.1_postcss@8.4.24: + resolution: {integrity: sha512-7VzyFZ5zEB1+l1nToKyrRkuaJIx0zi/1npjvZfbBwbtNTzhLtlvYraK/7/uqmX2Wb2aQtd983uuGw79jAjLSuQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + css-declaration-sorter: 6.4.0_postcss@8.4.24 + cssnano-utils: 4.0.0_postcss@8.4.24 + postcss: 8.4.24 + postcss-calc: 9.0.1_postcss@8.4.24 + postcss-colormin: 6.0.0_postcss@8.4.24 + postcss-convert-values: 6.0.0_postcss@8.4.24 + postcss-discard-comments: 6.0.0_postcss@8.4.24 + postcss-discard-duplicates: 6.0.0_postcss@8.4.24 + postcss-discard-empty: 6.0.0_postcss@8.4.24 + postcss-discard-overridden: 6.0.0_postcss@8.4.24 + postcss-merge-longhand: 6.0.0_postcss@8.4.24 + postcss-merge-rules: 6.0.1_postcss@8.4.24 + postcss-minify-font-values: 6.0.0_postcss@8.4.24 + postcss-minify-gradients: 6.0.0_postcss@8.4.24 + postcss-minify-params: 6.0.0_postcss@8.4.24 + postcss-minify-selectors: 6.0.0_postcss@8.4.24 + postcss-normalize-charset: 6.0.0_postcss@8.4.24 + postcss-normalize-display-values: 6.0.0_postcss@8.4.24 + postcss-normalize-positions: 6.0.0_postcss@8.4.24 + postcss-normalize-repeat-style: 6.0.0_postcss@8.4.24 + postcss-normalize-string: 6.0.0_postcss@8.4.24 + postcss-normalize-timing-functions: 6.0.0_postcss@8.4.24 + postcss-normalize-unicode: 6.0.0_postcss@8.4.24 + postcss-normalize-url: 6.0.0_postcss@8.4.24 + postcss-normalize-whitespace: 6.0.0_postcss@8.4.24 + postcss-ordered-values: 6.0.0_postcss@8.4.24 + postcss-reduce-initial: 6.0.0_postcss@8.4.24 + postcss-reduce-transforms: 6.0.0_postcss@8.4.24 + postcss-svgo: 6.0.0_postcss@8.4.24 + postcss-unique-selectors: 6.0.0_postcss@8.4.24 + dev: false + + /cssnano-utils/3.1.0_postcss@8.4.24: resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /cssnano/5.1.15_postcss@8.4.21: + /cssnano-utils/4.0.0_postcss@8.4.24: + resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: false + + /cssnano/5.1.15_postcss@8.4.24: resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-preset-default: 5.2.14_postcss@8.4.21 - lilconfig: 2.0.6 - postcss: 8.4.21 + cssnano-preset-default: 5.2.14_postcss@8.4.24 + lilconfig: 2.1.0 + postcss: 8.4.24 yaml: 1.10.2 dev: false + /cssnano/6.0.1_postcss@8.4.24: + resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-preset-default: 6.0.1_postcss@8.4.24 + lilconfig: 2.1.0 + postcss: 8.4.24 + dev: false + /csso/4.2.0: resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} engines: {node: '>=8.0.0'} @@ -9049,6 +10664,13 @@ packages: css-tree: 1.1.3 dev: false + /csso/5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + dependencies: + css-tree: 2.2.1 + dev: false + /cssom/0.3.8: resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} dev: true @@ -9428,7 +11050,7 @@ packages: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 - entities: 4.4.0 + entities: 4.5.0 dev: false /dom-walk/0.1.2: @@ -9484,8 +11106,8 @@ packages: domelementtype: 2.2.0 domhandler: 4.3.1 - /domutils/3.0.1: - resolution: {integrity: sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==} + /domutils/3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 @@ -9510,8 +11132,8 @@ packages: resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} dev: true - /dotenv/16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + /dotenv/16.3.0: + resolution: {integrity: sha512-tHB+hmf8MRCkT3VVivGiG8kq9HiGTmQ3FzOKgztfpJQH1IWuZTOvKSJmHNnQPowecAmkCJhLrxdPhOr06LLqIQ==} engines: {node: '>=12'} dev: false @@ -9557,6 +11179,10 @@ packages: resolution: {integrity: sha512-Gd+/OAhRca06dkVxIQo/W7dr6Nmk9cx6lQdZ19GvFp51k5B/lUAokm6SJfNkdV8kFLsC3Z4sLTyEHWCnB1Efbw==} dev: true + /electron-to-chromium/1.4.433: + resolution: {integrity: sha512-MGO1k0w1RgrfdbLVwmXcDhHHuxCn2qRgR7dYsJvWFKDttvYPx6FNzCGG0c/fBBvzK2LDh3UV7Tt9awnHnvAAUQ==} + dev: false + /elliptic/6.5.4: resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} dependencies: @@ -9612,8 +11238,8 @@ packages: /entities/2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} - /entities/4.4.0: - resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==} + /entities/4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} dev: false @@ -9628,10 +11254,10 @@ packages: dependencies: is-arrayish: 0.2.1 - /error-stack-parser/2.0.6: - resolution: {integrity: sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==} + /error-stack-parser/2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} dependencies: - stackframe: 1.2.0 + stackframe: 1.3.4 dev: false /es-abstract/1.21.1: @@ -10397,7 +12023,7 @@ packages: peerDependencies: webpack: ^4.4.0 || ^5.0.0 dependencies: - loader-utils: 2.0.2 + loader-utils: 2.0.4 normalize-url: 1.9.1 schema-utils: 1.0.0 webpack: 4.46.0 @@ -10808,6 +12434,11 @@ packages: /fs-monkey/1.0.3: resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + dev: true + + /fs-monkey/1.0.4: + resolution: {integrity: sha512-INM/fWAxMICjttnD0DX1rBvinKskj5G1w+oy/pnm9u/tSlnBrzFonJMcalKJ30P8RRsPzKcCG7Q8l0jx5Fh9YQ==} + dev: false /fs-write-stream-atomic/1.0.10: resolution: {integrity: sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==} @@ -11046,7 +12677,7 @@ packages: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 5.0.1 + minimatch: 5.1.6 once: 1.4.0 dev: false @@ -11374,6 +13005,11 @@ packages: /html-entities/2.3.2: resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==} + dev: true + + /html-entities/2.3.6: + resolution: {integrity: sha512-9o0+dcpIw2/HxkNuYKxSJUF/MMRZQECK4GnF+oQOmJ83yCVHTWgCH5aOXxK5bozNRmM8wtgryjHD3uloPBDEGw==} + dev: false /html-escaper/2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -11813,7 +13449,6 @@ packages: resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} dependencies: has: 1.0.3 - dev: true /is-data-descriptor/0.1.4: resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} @@ -13018,7 +14653,7 @@ packages: resolution: {integrity: sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==} dependencies: picocolors: 1.0.0 - shell-quote: 1.7.3 + shell-quote: 1.8.1 dev: false /lazy-universal-dotenv/3.0.1: @@ -13063,6 +14698,11 @@ packages: resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} engines: {node: '>=10'} + /lilconfig/2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: false + /lines-and-columns/1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -13092,8 +14732,8 @@ packages: resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==} engines: {node: '>=4.3.0 <5.0.0 || >=5.10'} - /loader-runner/4.2.0: - resolution: {integrity: sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==} + /loader-runner/4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} dev: false @@ -13121,6 +14761,15 @@ packages: emojis-list: 3.0.0 json5: 2.2.3 + /loader-utils/2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + dev: false + /localforage/1.10.0: resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} dependencies: @@ -13380,6 +15029,14 @@ packages: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} dev: false + /mdn-data/2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + dev: false + + /mdn-data/2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + dev: false + /mdn-data/2.0.4: resolution: {integrity: sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==} dev: false @@ -13398,6 +15055,14 @@ packages: engines: {node: '>= 4.0.0'} dependencies: fs-monkey: 1.0.3 + dev: true + + /memfs/3.5.3: + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.4 + dev: false /memoizerific/1.11.3: resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} @@ -13518,11 +15183,23 @@ packages: resolution: {integrity: sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==} engines: {node: '>= 0.6'} + /mime-db/1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + dev: false + /mime-types/2.1.34: resolution: {integrity: sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==} engines: {node: '>= 0.6'} dependencies: - mime-db: 1.51.0 + mime-db: 1.51.0 + + /mime-types/2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + dependencies: + mime-db: 1.52.0 + dev: false /mime/1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} @@ -13577,6 +15254,13 @@ packages: dependencies: brace-expansion: 2.0.1 + /minimatch/5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + dependencies: + brace-expansion: 2.0.1 + dev: false + /minimatch/6.2.0: resolution: {integrity: sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==} engines: {node: '>=10'} @@ -13707,8 +15391,8 @@ packages: rimraf: 2.7.1 run-queue: 1.0.3 - /mrmime/1.0.0: - resolution: {integrity: sha512-a70zx7zFfVO7XpnQ2IX1Myh9yY4UYvfld/dikWRnsXxbyvMcfz+u6UfgNAtH+k2QqtJuzVpv6eLTx1G2+WKZbQ==} + /mrmime/1.0.1: + resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} engines: {node: '>=10'} dev: false @@ -13760,7 +15444,6 @@ packages: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - dev: true /nanomatch/1.2.13: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} @@ -13834,8 +15517,8 @@ packages: minimatch: 3.1.2 dev: true - /node-fetch-native/1.0.2: - resolution: {integrity: sha512-KIkvH1jl6b3O7es/0ShyCgWLcfXxlBrLBbP3rOr23WArC66IMcU4DeZEeYEOwnopYhawLTn7/y+YtmASe8DFVQ==} + /node-fetch-native/1.2.0: + resolution: {integrity: sha512-5IAMBTl9p6PaAjYCnMv5FmqIF6GcZnawAVnzaCG0rX2aYZJ4CxEkZNtVPuTRug7fL7wyM5BQYTlAzcyMPi6oTQ==} dev: false /node-fetch/2.6.7: @@ -13917,7 +15600,6 @@ packages: /node-releases/2.0.12: resolution: {integrity: sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==} - dev: true /node-releases/2.0.6: resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} @@ -14032,7 +15714,6 @@ packages: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 - dev: true /num2fraction/1.2.2: resolution: {integrity: sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==} @@ -14053,26 +15734,26 @@ packages: commander: 5.1.0 dev: false - /nuxt/2.16.3_463pqhi6eauw3mjqcyq4fuonrm: - resolution: {integrity: sha512-KfqOwtsgo2vew+mHNTQZOf23SlUYYnppH65Rj7whmbXJ+J28Rdvx8ccTj0Mir13TVpjUMtxYBq9VWAL6cFZyOA==} + /nuxt/2.17.0_463pqhi6eauw3mjqcyq4fuonrm: + resolution: {integrity: sha512-+xEB8VReXqvSVvizBQ2mpV4nW8U3o2r4fctJ1XIzxgvYszrUSXeQf2mfF/1kKpJJTdReNMspaF6UCB7qz2bkYw==} hasBin: true requiresBuild: true dependencies: - '@nuxt/babel-preset-app': 2.16.3_vue@2.7.14 - '@nuxt/builder': 2.16.3_463pqhi6eauw3mjqcyq4fuonrm - '@nuxt/cli': 2.16.3 + '@nuxt/babel-preset-app': 2.17.0_vue@2.7.14 + '@nuxt/builder': 2.17.0_463pqhi6eauw3mjqcyq4fuonrm + '@nuxt/cli': 2.17.0 '@nuxt/components': 2.2.1 - '@nuxt/config': 2.16.3 - '@nuxt/core': 2.16.3 - '@nuxt/generator': 2.16.3 + '@nuxt/config': 2.17.0 + '@nuxt/core': 2.17.0 + '@nuxt/generator': 2.17.0 '@nuxt/loading-screen': 2.0.4 '@nuxt/opencollective': 0.3.3 - '@nuxt/server': 2.16.3 + '@nuxt/server': 2.17.0 '@nuxt/telemetry': 1.4.1 - '@nuxt/utils': 2.16.3 - '@nuxt/vue-app': 2.16.3 - '@nuxt/vue-renderer': 2.16.3 - '@nuxt/webpack': 2.16.3_463pqhi6eauw3mjqcyq4fuonrm + '@nuxt/utils': 2.17.0 + '@nuxt/vue-app': 2.17.0 + '@nuxt/vue-renderer': 2.17.0 + '@nuxt/webpack': 2.17.0_463pqhi6eauw3mjqcyq4fuonrm transitivePeerDependencies: - '@vue/compiler-sfc' - arc-templates @@ -14293,9 +15974,9 @@ packages: peerDependencies: webpack: ^4.0.0 dependencies: - cssnano: 5.1.15_postcss@8.4.21 + cssnano: 5.1.15_postcss@8.4.24 last-call-webpack-plugin: 3.0.0 - postcss: 8.4.21 + postcss: 8.4.24 webpack: 4.46.0 dev: false @@ -14807,183 +16488,255 @@ packages: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} - /postcss-attribute-case-insensitive/6.0.2_postcss@8.4.21: + /postcss-attribute-case-insensitive/6.0.2_postcss@8.4.24: resolution: {integrity: sha512-IRuCwwAAQbgaLhxQdQcIIK0dCVXg3XDUnzgKD8iwdiYdwU4rMWRWyl/W9/0nA4ihVpq5pyALiHB2veBJ0292pw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /postcss-calc/8.2.4_postcss@8.4.21: + /postcss-calc/8.2.4_postcss@8.4.24: resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} peerDependencies: postcss: ^8.2.2 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-calc/9.0.1_postcss@8.4.24: + resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.2 + dependencies: + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 postcss-value-parser: 4.2.0 dev: false - /postcss-clamp/4.1.0_postcss@8.4.21: + /postcss-clamp/4.1.0_postcss@8.4.24: resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} engines: {node: '>=7.6.0'} peerDependencies: postcss: ^8.4.6 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-color-functional-notation/5.0.2_postcss@8.4.21: - resolution: {integrity: sha512-M6ygxWOyd6eWf3sd1Lv8xi4SeF4iBPfJvkfMU4ITh8ExJc1qhbvh/U8Cv/uOvBgUVOMDdScvCdlg8+hREQzs7w==} + /postcss-color-functional-notation/5.1.0_postcss@8.4.24: + resolution: {integrity: sha512-w2R4py6zrVE1U7FwNaAc76tNQlG9GLkrBbcFw+VhUjyDDiV28vfZG+l4LyPmpoQpeSJVtu8VgNjE8Jv5SpC7dQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-color-hex-alpha/9.0.2_postcss@8.4.21: + /postcss-color-hex-alpha/9.0.2_postcss@8.4.24: resolution: {integrity: sha512-SfPjgr//VQ/DOCf80STIAsdAs7sbIbxATvVmd+Ec7JvR8onz9pjawhq3BJM3Pie40EE3TyB0P6hft16D33Nlyg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-color-rebeccapurple/8.0.2_postcss@8.4.21: + /postcss-color-rebeccapurple/8.0.2_postcss@8.4.24: resolution: {integrity: sha512-xWf/JmAxVoB5bltHpXk+uGRoGFwu4WDAR7210el+iyvTdqiKpDhtcT8N3edXMoVJY0WHFMrKMUieql/wRNiXkw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-colormin/5.3.1_postcss@8.4.21: + /postcss-colormin/5.3.1_postcss@8.4.24: resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: 4.21.9 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.4.21 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-colormin/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-EuO+bAUmutWoZYgHn2T1dG1pPqHU6L4TjzPlu4t1wZGXQ/fxV16xg2EJmYi0z+6r+MGV1yvpx1BHkUaRrPa2bw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.9 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-convert-values/5.1.3_postcss@8.4.21: + /postcss-convert-values/5.1.3_postcss@8.4.24: resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 - postcss: 8.4.21 + browserslist: 4.21.9 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-convert-values/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-U5D8QhVwqT++ecmy8rnTb+RL9n/B806UVaS3m60lqle4YDFcpbS3ae5bTQIh3wOGUSDHSEtMYLs/38dNG7EYFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.9 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-custom-media/9.1.2_postcss@8.4.21: - resolution: {integrity: sha512-osM9g4UKq4XKimAC7RAXroqi3BXpxfwTswAJQiZdrBjWGFGEyxQrY5H2eDWI8F+MEvEUfYDxA8scqi3QWROCSw==} + /postcss-custom-media/9.1.4_postcss@8.4.24: + resolution: {integrity: sha512-4A7WEG3iIyKwfpxL5bkuSlHoHHGRTHl0212Z3uvpwJPyVfZJlkZAQNNgVC+oogrJgksDnfKyuuMbG6HafZPW8Q==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.1_ppok7cytzjc65mcyxmtit3wdyi - '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm - '@csstools/css-tokenizer': 2.1.0 - '@csstools/media-query-list-parser': 2.0.1_ppok7cytzjc65mcyxmtit3wdyi - postcss: 8.4.21 + '@csstools/cascade-layer-name-parser': 1.0.2_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + '@csstools/media-query-list-parser': 2.1.0_g5wmdbqtzzaodrrmvxcit5gfji + postcss: 8.4.24 dev: false - /postcss-custom-properties/13.1.4_postcss@8.4.21: - resolution: {integrity: sha512-iSAdaZrM3KMec8cOSzeTUNXPYDlhqsMJHpt62yrjwG6nAnMtRHPk5JdMzGosBJtqEahDolvD5LNbcq+EZ78o5g==} + /postcss-custom-properties/13.2.0_postcss@8.4.24: + resolution: {integrity: sha512-UYiPqbqmVayyv56y0mtGhvUKZClflwE9cTTmPaqEX8fOVjVwsotqKGYtJXSLxrJLwf9tt7ka+Luyh1ZAOhGHWA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.1_ppok7cytzjc65mcyxmtit3wdyi - '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm - '@csstools/css-tokenizer': 2.1.0 - postcss: 8.4.21 + '@csstools/cascade-layer-name-parser': 1.0.2_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-custom-selectors/7.1.2_postcss@8.4.21: - resolution: {integrity: sha512-jX7VlE3jrgfBIOfxiGNRFq81xUoHSZhvxhQurzE7ZFRv+bUmMwB7/XnA0nNlts2CwNtbXm4Ozy0ZAYKHlCRmBQ==} + /postcss-custom-selectors/7.1.3_postcss@8.4.24: + resolution: {integrity: sha512-GTVscax6O/8s7agFF0HsOoIyjrnAbLjgCUle8tn+0oDGJuVx7p56U7ClSRoC49poxFuMfu2B4Q8GnxSCOeuFKw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/cascade-layer-name-parser': 1.0.1_ppok7cytzjc65mcyxmtit3wdyi - '@csstools/css-parser-algorithms': 2.0.1_5vzy4lghjvuzkedkkk4tqwjftm - '@csstools/css-tokenizer': 2.1.0 - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + '@csstools/cascade-layer-name-parser': 1.0.2_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /postcss-dir-pseudo-class/7.0.2_postcss@8.4.21: + /postcss-dir-pseudo-class/7.0.2_postcss@8.4.24: resolution: {integrity: sha512-cMnslilYxBf9k3qejnovrUONZx1rXeUZJw06fgIUBzABJe3D2LiLL5WAER7Imt3nrkaIgG05XZBztueLEf5P8w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /postcss-discard-comments/5.1.2_postcss@8.4.21: + /postcss-discard-comments/5.1.2_postcss@8.4.24: resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-discard-duplicates/5.1.0_postcss@8.4.21: + /postcss-discard-comments/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: false + + /postcss-discard-duplicates/5.1.0_postcss@8.4.24: resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-discard-empty/5.1.1_postcss@8.4.21: + /postcss-discard-duplicates/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: false + + /postcss-discard-empty/5.1.1_postcss@8.4.24: resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-discard-overridden/5.1.0_postcss@8.4.21: + /postcss-discard-empty/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: false + + /postcss-discard-overridden/5.1.0_postcss@8.4.24: resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-double-position-gradients/4.0.2_postcss@8.4.21: - resolution: {integrity: sha512-GXL1RmFREDK4Q9aYvI2RhVrA6a6qqSMQQ5ke8gSH1xgV6exsqbcJpIumC7AOgooH6/WIG3/K/T8xxAiVHy/tJg==} + /postcss-discard-overridden/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: false + + /postcss-double-position-gradients/4.0.4_postcss@8.4.24: + resolution: {integrity: sha512-nUAbUXURemLXIrl4Xoia2tiu5z/n8sY+BVDZApoeT9BlpByyrp02P/lFCRrRvZ/zrGRE+MOGLhk8o7VcMCtPtQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 - postcss: 8.4.21 + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false @@ -15003,50 +16756,50 @@ packages: postcss-selector-parser: 6.0.11 dev: false - /postcss-focus-visible/8.0.2_postcss@8.4.21: + /postcss-focus-visible/8.0.2_postcss@8.4.24: resolution: {integrity: sha512-f/Vd+EC/GaKElknU59esVcRYr/Y3t1ZAQyL4u2xSOgkDy4bMCmG7VP5cGvj3+BTLNE9ETfEuz2nnt4qkZwTTeA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /postcss-focus-within/7.0.2_postcss@8.4.21: + /postcss-focus-within/7.0.2_postcss@8.4.24: resolution: {integrity: sha512-AHAJ89UQBcqBvFgQJE9XasGuwMNkKsGj4D/f9Uk60jFmEBHpAL14DrnSk3Rj+SwZTr/WUG+mh+Rvf8fid/346w==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /postcss-font-variant/5.0.0_postcss@8.4.21: + /postcss-font-variant/5.0.0_postcss@8.4.24: resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} peerDependencies: postcss: ^8.1.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-gap-properties/4.0.1_postcss@8.4.21: + /postcss-gap-properties/4.0.1_postcss@8.4.24: resolution: {integrity: sha512-V5OuQGw4lBumPlwHWk/PRfMKjaq/LTGR4WDTemIMCaMevArVfCCA9wBJiL1VjDAd+rzuCIlkRoRvDsSiAaZ4Fg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-image-set-function/5.0.2_postcss@8.4.21: + /postcss-image-set-function/5.0.2_postcss@8.4.24: resolution: {integrity: sha512-Sszjwo0ubETX0Fi5MvpYzsONwrsjeabjMoc5YqHvURFItXgIu3HdCjcVuVKGMPGzKRhgaknmdM5uVWInWPJmeg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false @@ -15079,24 +16832,24 @@ packages: read-cache: 1.0.0 resolve: 1.22.1 - /postcss-import/15.1.0_postcss@8.4.21: + /postcss-import/15.1.0_postcss@8.4.24: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.1 + resolve: 1.22.2 dev: false - /postcss-initial/4.0.1_postcss@8.4.21: + /postcss-initial/4.0.1_postcss@8.4.24: resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false /postcss-js/4.0.0_postcss@8.4.21: @@ -15108,16 +16861,17 @@ packages: camelcase-css: 2.0.1 postcss: 8.4.21 - /postcss-lab-function/5.1.0_postcss@8.4.21: - resolution: {integrity: sha512-iZApRTNcpc71uTn7PkzjHtj5cmuZpvu6okX4jHnM5OFi2fG97sodjxkq6SpL65xhW0NviQrAMSX97ntyGVRV0w==} + /postcss-lab-function/5.2.3_postcss@8.4.24: + resolution: {integrity: sha512-fi32AYKzji5/rvgxo5zXHFvAYBw0u0OzELbeCNjEZVLUir18Oj+9RmNphtM8QdLUaUnrfx8zy8vVYLmFLkdmrQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/color-helpers': 1.0.0 - '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 - postcss: 8.4.21 - postcss-value-parser: 4.2.0 + '@csstools/css-color-parser': 1.2.1_g5wmdbqtzzaodrrmvxcit5gfji + '@csstools/css-parser-algorithms': 2.2.0_gdfqdfecdiaxr4x3xd7wxrvuhq + '@csstools/css-tokenizer': 2.1.1 + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + postcss: 8.4.24 dev: false /postcss-load-config/3.1.4_postcss@8.4.21: @@ -15150,6 +16904,23 @@ packages: schema-utils: 3.1.1 semver: 7.3.8 webpack: 4.46.0 + dev: true + + /postcss-loader/4.3.0_gt2pqllsmoslwxdqx2yura5nt4: + resolution: {integrity: sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==} + engines: {node: '>= 10.13.0'} + peerDependencies: + postcss: ^7.0.0 || ^8.0.1 + webpack: ^4.0.0 || ^5.0.0 + dependencies: + cosmiconfig: 7.0.1 + klona: 2.0.5 + loader-utils: 2.0.2 + postcss: 8.4.24 + schema-utils: 3.1.1 + semver: 7.3.8 + webpack: 4.46.0 + dev: false /postcss-loader/4.3.0_gzaxsinx64nntyd3vmdqwl7coe: resolution: {integrity: sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==} @@ -15167,91 +16938,150 @@ packages: webpack: 4.46.0 dev: true - /postcss-logical/6.1.0_postcss@8.4.21: - resolution: {integrity: sha512-qb1+LpClhYjxac8SfOcWotnY3unKZesDqIOm+jnGt8rTl7xaIWpE2bPGZHxflOip1E/4ETo79qlJyRL3yrHn1g==} + /postcss-logical/6.2.0_postcss@8.4.24: + resolution: {integrity: sha512-aqlfKGaY0nnbgI9jwUikp4gJKBqcH5noU/EdnIVceghaaDPYhZuyJVxlvWNy55tlTG5tunRKCTAX9yljLiFgmw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-media-minmax/5.0.0_postcss@8.4.21: - resolution: {integrity: sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==} - engines: {node: '>=10.0.0'} + /postcss-merge-longhand/5.1.7_postcss@8.4.24: + resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} + engines: {node: ^10 || ^12 || >=14.0} peerDependencies: - postcss: ^8.1.0 + postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1_postcss@8.4.24 dev: false - /postcss-merge-longhand/5.1.7_postcss@8.4.21: - resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-merge-longhand/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-4VSfd1lvGkLTLYcxFuISDtWUfFS4zXe0FpF149AyziftPFQIWxjvFSKhA4MIxMe4XM3yTDgQMbSNgzIVxChbIg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 - stylehacks: 5.1.1_postcss@8.4.21 + stylehacks: 6.0.0_postcss@8.4.24 dev: false - /postcss-merge-rules/5.1.4_postcss@8.4.21: + /postcss-merge-rules/5.1.4_postcss@8.4.24: resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: 4.21.9 caniuse-api: 3.0.0 - cssnano-utils: 3.1.0_postcss@8.4.21 - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + cssnano-utils: 3.1.0_postcss@8.4.24 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-merge-rules/6.0.1_postcss@8.4.24: + resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.9 + caniuse-api: 3.0.0 + cssnano-utils: 4.0.0_postcss@8.4.24 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /postcss-minify-font-values/5.1.0_postcss@8.4.21: + /postcss-minify-font-values/5.1.0_postcss@8.4.24: resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-minify-font-values/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-gradients/5.1.1_postcss@8.4.21: + /postcss-minify-gradients/5.1.1_postcss@8.4.24: resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: colord: 2.9.3 - cssnano-utils: 3.1.0_postcss@8.4.21 - postcss: 8.4.21 + cssnano-utils: 3.1.0_postcss@8.4.24 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-minify-gradients/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + colord: 2.9.3 + cssnano-utils: 4.0.0_postcss@8.4.24 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-params/5.1.4_postcss@8.4.21: + /postcss-minify-params/5.1.4_postcss@8.4.24: resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 - cssnano-utils: 3.1.0_postcss@8.4.21 - postcss: 8.4.21 + browserslist: 4.21.9 + cssnano-utils: 3.1.0_postcss@8.4.24 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-minify-selectors/5.2.1_postcss@8.4.21: + /postcss-minify-params/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.9 + cssnano-utils: 4.0.0_postcss@8.4.24 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-minify-selectors/5.2.1_postcss@8.4.24: resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-minify-selectors/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false /postcss-modules-extract-imports/2.0.0: @@ -15327,270 +17157,395 @@ packages: resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} engines: {node: '>=12.0'} peerDependencies: - postcss: ^8.2.14 + postcss: ^8.2.14 + dependencies: + postcss: 8.4.21 + postcss-selector-parser: 6.0.11 + + /postcss-nesting/11.3.0_postcss@8.4.24: + resolution: {integrity: sha512-JlS10AQm/RzyrUGgl5irVkAlZYTJ99mNueUl+Qab+TcHhVedLiylWVkKBhRale+rS9yWIJK48JVzQlq3LcSdeA==} + engines: {node: ^14 || ^16 || >=18} + peerDependencies: + postcss: ^8.4 + dependencies: + '@csstools/selector-specificity': 2.2.0_c3vcbepomgmxc74cgtawpgpkyi + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-normalize-charset/5.1.0_postcss@8.4.24: + resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: false + + /postcss-normalize-charset/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-cqundwChbu8yO/gSWkuFDmKrCZ2vJzDAocheT2JTd0sFNA4HMGoKMfbk2B+J0OmO0t5GUkiAkSM5yF2rSLUjgQ==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + dev: false + + /postcss-normalize-display-values/5.1.0_postcss@8.4.24: + resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-normalize-display-values/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-normalize-positions/5.1.1_postcss@8.4.24: + resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + engines: {node: ^10 || ^12 || >=14.0} + peerDependencies: + postcss: ^8.2.15 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false - /postcss-nesting/11.2.1_postcss@8.4.21: - resolution: {integrity: sha512-E6Jq74Jo/PbRAtZioON54NPhUNJYxVWhwxbweYl1vAoBYuGlDIts5yhtKiZFLvkvwT73e/9nFrW3oMqAtgG+GQ==} - engines: {node: ^14 || ^16 || >=18} + /postcss-normalize-positions/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: - postcss: ^8.4 + postcss: ^8.2.15 dependencies: - '@csstools/selector-specificity': 2.1.1_wajs5nedgkikc5pcuwett7legi - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-charset/5.1.0_postcss@8.4.21: - resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} + /postcss-normalize-repeat-style/5.1.1_postcss@8.4.24: + resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-display-values/5.1.0_postcss@8.4.21: - resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-repeat-style/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-positions/5.1.1_postcss@8.4.21: - resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} + /postcss-normalize-string/5.1.0_postcss@8.4.24: + resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-repeat-style/5.1.1_postcss@8.4.21: - resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-string/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-string/5.1.0_postcss@8.4.21: - resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} + /postcss-normalize-timing-functions/5.1.0_postcss@8.4.24: + resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-timing-functions/5.1.0_postcss@8.4.21: - resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} - engines: {node: ^10 || ^12 || >=14.0} + /postcss-normalize-timing-functions/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} + engines: {node: ^14 || ^16 || >=18.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-unicode/5.1.1_postcss@8.4.21: + /postcss-normalize-unicode/5.1.1_postcss@8.4.24: resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 - postcss: 8.4.21 + browserslist: 4.21.9 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-normalize-unicode/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.9 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-url/5.1.0_postcss@8.4.21: + /postcss-normalize-url/5.1.0_postcss@8.4.24: resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: normalize-url: 6.1.0 - postcss: 8.4.21 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-normalize-url/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-normalize-whitespace/5.1.1_postcss@8.4.21: + /postcss-normalize-whitespace/5.1.1_postcss@8.4.24: resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-opacity-percentage/1.1.3_postcss@8.4.21: - resolution: {integrity: sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==} - engines: {node: ^12 || ^14 || >=16} + /postcss-normalize-whitespace/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-opacity-percentage/2.0.0_postcss@8.4.24: + resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} + engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.2 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-ordered-values/5.1.3_postcss@8.4.21: + /postcss-ordered-values/5.1.3_postcss@8.4.24: resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - cssnano-utils: 3.1.0_postcss@8.4.21 - postcss: 8.4.21 + cssnano-utils: 3.1.0_postcss@8.4.24 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-ordered-values/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + cssnano-utils: 4.0.0_postcss@8.4.24 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-overflow-shorthand/4.0.1_postcss@8.4.21: + /postcss-overflow-shorthand/4.0.1_postcss@8.4.24: resolution: {integrity: sha512-HQZ0qi/9iSYHW4w3ogNqVNr2J49DHJAl7r8O2p0Meip38jsdnRPgiDW7r/LlLrrMBMe3KHkvNtAV2UmRVxzLIg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-page-break/3.0.4_postcss@8.4.21: + /postcss-page-break/3.0.4_postcss@8.4.24: resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} peerDependencies: postcss: ^8 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-place/8.0.1_postcss@8.4.21: + /postcss-place/8.0.1_postcss@8.4.24: resolution: {integrity: sha512-Ow2LedN8sL4pq8ubukO77phSVt4QyCm35ZGCYXKvRFayAwcpgB0sjNJglDoTuRdUL32q/ZC1VkPBo0AOEr4Uiw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-preset-env/8.0.1_postcss@8.4.21: - resolution: {integrity: sha512-IUbymw0JlUbyVG+I85963PNWgPp3KhnFa1sxU7M/2dGthxV8e297P0VV5W9XcyypoH4hirH2fp1c6fmqh6YnSg==} + /postcss-preset-env/8.5.0_postcss@8.4.24: + resolution: {integrity: sha512-aqAbT5dXqYX5ZvicGKQpaW/eDEZFRfnhV6Hn1Jn2bCKEB9L2MgsTdnIsXsZyFUQflIV2wIs9HTEQgkH5duMCNg==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - '@csstools/postcss-cascade-layers': 3.0.1_postcss@8.4.21 - '@csstools/postcss-color-function': 2.1.0_postcss@8.4.21 - '@csstools/postcss-font-format-keywords': 2.0.2_postcss@8.4.21 - '@csstools/postcss-hwb-function': 2.1.1_postcss@8.4.21 - '@csstools/postcss-ic-unit': 2.0.2_postcss@8.4.21 - '@csstools/postcss-is-pseudo-class': 3.1.1_postcss@8.4.21 - '@csstools/postcss-logical-float-and-clear': 1.0.1_postcss@8.4.21 - '@csstools/postcss-logical-resize': 1.0.1_postcss@8.4.21 - '@csstools/postcss-logical-viewport-units': 1.0.2_postcss@8.4.21 - '@csstools/postcss-media-queries-aspect-ratio-number-values': 1.0.1_postcss@8.4.21 - '@csstools/postcss-nested-calc': 2.0.2_postcss@8.4.21 - '@csstools/postcss-normalize-display-values': 2.0.1_postcss@8.4.21 - '@csstools/postcss-oklab-function': 2.1.0_postcss@8.4.21 - '@csstools/postcss-progressive-custom-properties': 2.1.0_postcss@8.4.21 - '@csstools/postcss-scope-pseudo-class': 2.0.2_postcss@8.4.21 - '@csstools/postcss-stepped-value-functions': 2.1.0_postcss@8.4.21 - '@csstools/postcss-text-decoration-shorthand': 2.2.1_postcss@8.4.21 - '@csstools/postcss-trigonometric-functions': 2.0.1_postcss@8.4.21 - '@csstools/postcss-unset-value': 2.0.1_postcss@8.4.21 - autoprefixer: 10.4.14_postcss@8.4.21 - browserslist: 4.21.5 - css-blank-pseudo: 5.0.2_postcss@8.4.21 - css-has-pseudo: 5.0.2_postcss@8.4.21 - css-prefers-color-scheme: 8.0.2_postcss@8.4.21 - cssdb: 7.4.1 - postcss: 8.4.21 - postcss-attribute-case-insensitive: 6.0.2_postcss@8.4.21 - postcss-clamp: 4.1.0_postcss@8.4.21 - postcss-color-functional-notation: 5.0.2_postcss@8.4.21 - postcss-color-hex-alpha: 9.0.2_postcss@8.4.21 - postcss-color-rebeccapurple: 8.0.2_postcss@8.4.21 - postcss-custom-media: 9.1.2_postcss@8.4.21 - postcss-custom-properties: 13.1.4_postcss@8.4.21 - postcss-custom-selectors: 7.1.2_postcss@8.4.21 - postcss-dir-pseudo-class: 7.0.2_postcss@8.4.21 - postcss-double-position-gradients: 4.0.2_postcss@8.4.21 - postcss-focus-visible: 8.0.2_postcss@8.4.21 - postcss-focus-within: 7.0.2_postcss@8.4.21 - postcss-font-variant: 5.0.0_postcss@8.4.21 - postcss-gap-properties: 4.0.1_postcss@8.4.21 - postcss-image-set-function: 5.0.2_postcss@8.4.21 - postcss-initial: 4.0.1_postcss@8.4.21 - postcss-lab-function: 5.1.0_postcss@8.4.21 - postcss-logical: 6.1.0_postcss@8.4.21 - postcss-media-minmax: 5.0.0_postcss@8.4.21 - postcss-nesting: 11.2.1_postcss@8.4.21 - postcss-opacity-percentage: 1.1.3_postcss@8.4.21 - postcss-overflow-shorthand: 4.0.1_postcss@8.4.21 - postcss-page-break: 3.0.4_postcss@8.4.21 - postcss-place: 8.0.1_postcss@8.4.21 - postcss-pseudo-class-any-link: 8.0.2_postcss@8.4.21 - postcss-replace-overflow-wrap: 4.0.0_postcss@8.4.21 - postcss-selector-not: 7.0.1_postcss@8.4.21 + '@csstools/postcss-cascade-layers': 3.0.1_postcss@8.4.24 + '@csstools/postcss-color-function': 2.2.3_postcss@8.4.24 + '@csstools/postcss-color-mix-function': 1.0.3_postcss@8.4.24 + '@csstools/postcss-font-format-keywords': 2.0.2_postcss@8.4.24 + '@csstools/postcss-gradients-interpolation-method': 3.0.6_postcss@8.4.24 + '@csstools/postcss-hwb-function': 2.2.2_postcss@8.4.24 + '@csstools/postcss-ic-unit': 2.0.4_postcss@8.4.24 + '@csstools/postcss-is-pseudo-class': 3.2.1_postcss@8.4.24 + '@csstools/postcss-logical-float-and-clear': 1.0.1_postcss@8.4.24 + '@csstools/postcss-logical-resize': 1.0.1_postcss@8.4.24 + '@csstools/postcss-logical-viewport-units': 1.0.3_postcss@8.4.24 + '@csstools/postcss-media-minmax': 1.0.3_postcss@8.4.24 + '@csstools/postcss-media-queries-aspect-ratio-number-values': 1.0.3_postcss@8.4.24 + '@csstools/postcss-nested-calc': 2.0.2_postcss@8.4.24 + '@csstools/postcss-normalize-display-values': 2.0.1_postcss@8.4.24 + '@csstools/postcss-oklab-function': 2.2.3_postcss@8.4.24 + '@csstools/postcss-progressive-custom-properties': 2.3.0_postcss@8.4.24 + '@csstools/postcss-relative-color-syntax': 1.0.2_postcss@8.4.24 + '@csstools/postcss-scope-pseudo-class': 2.0.2_postcss@8.4.24 + '@csstools/postcss-stepped-value-functions': 2.1.1_postcss@8.4.24 + '@csstools/postcss-text-decoration-shorthand': 2.2.4_postcss@8.4.24 + '@csstools/postcss-trigonometric-functions': 2.1.1_postcss@8.4.24 + '@csstools/postcss-unset-value': 2.0.1_postcss@8.4.24 + autoprefixer: 10.4.14_postcss@8.4.24 + browserslist: 4.21.9 + css-blank-pseudo: 5.0.2_postcss@8.4.24 + css-has-pseudo: 5.0.2_postcss@8.4.24 + css-prefers-color-scheme: 8.0.2_postcss@8.4.24 + cssdb: 7.6.0 + postcss: 8.4.24 + postcss-attribute-case-insensitive: 6.0.2_postcss@8.4.24 + postcss-clamp: 4.1.0_postcss@8.4.24 + postcss-color-functional-notation: 5.1.0_postcss@8.4.24 + postcss-color-hex-alpha: 9.0.2_postcss@8.4.24 + postcss-color-rebeccapurple: 8.0.2_postcss@8.4.24 + postcss-custom-media: 9.1.4_postcss@8.4.24 + postcss-custom-properties: 13.2.0_postcss@8.4.24 + postcss-custom-selectors: 7.1.3_postcss@8.4.24 + postcss-dir-pseudo-class: 7.0.2_postcss@8.4.24 + postcss-double-position-gradients: 4.0.4_postcss@8.4.24 + postcss-focus-visible: 8.0.2_postcss@8.4.24 + postcss-focus-within: 7.0.2_postcss@8.4.24 + postcss-font-variant: 5.0.0_postcss@8.4.24 + postcss-gap-properties: 4.0.1_postcss@8.4.24 + postcss-image-set-function: 5.0.2_postcss@8.4.24 + postcss-initial: 4.0.1_postcss@8.4.24 + postcss-lab-function: 5.2.3_postcss@8.4.24 + postcss-logical: 6.2.0_postcss@8.4.24 + postcss-nesting: 11.3.0_postcss@8.4.24 + postcss-opacity-percentage: 2.0.0_postcss@8.4.24 + postcss-overflow-shorthand: 4.0.1_postcss@8.4.24 + postcss-page-break: 3.0.4_postcss@8.4.24 + postcss-place: 8.0.1_postcss@8.4.24 + postcss-pseudo-class-any-link: 8.0.2_postcss@8.4.24 + postcss-replace-overflow-wrap: 4.0.0_postcss@8.4.24 + postcss-selector-not: 7.0.1_postcss@8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-pseudo-class-any-link/8.0.2_postcss@8.4.21: + /postcss-pseudo-class-any-link/8.0.2_postcss@8.4.24: resolution: {integrity: sha512-FYTIuRE07jZ2CW8POvctRgArQJ43yxhr5vLmImdKUvjFCkR09kh8pIdlCwdx/jbFm7MiW4QP58L4oOUv3grQYA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false - /postcss-reduce-initial/5.1.2_postcss@8.4.21: + /postcss-reduce-initial/5.1.2_postcss@8.4.24: resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 + browserslist: 4.21.9 caniuse-api: 3.0.0 - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-reduce-transforms/5.1.0_postcss@8.4.21: + /postcss-reduce-initial/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.9 + caniuse-api: 3.0.0 + postcss: 8.4.24 + dev: false + + /postcss-reduce-transforms/5.1.0_postcss@8.4.24: resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + dev: false + + /postcss-reduce-transforms/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 postcss-value-parser: 4.2.0 dev: false - /postcss-replace-overflow-wrap/4.0.0_postcss@8.4.21: + /postcss-replace-overflow-wrap/4.0.0_postcss@8.4.24: resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} peerDependencies: postcss: ^8.0.3 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 dev: false - /postcss-selector-not/7.0.1_postcss@8.4.21: + /postcss-selector-not/7.0.1_postcss@8.4.24: resolution: {integrity: sha512-1zT5C27b/zeJhchN7fP0kBr16Cc61mu7Si9uWWLoA3Px/D9tIJPKchJCkUH3tPO5D0pCFmGeApAv8XpXBQJ8SQ==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false /postcss-selector-parser/6.0.10: @@ -15614,27 +17569,47 @@ packages: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - dev: true - /postcss-svgo/5.1.0_postcss@8.4.21: + /postcss-svgo/5.1.0_postcss@8.4.24: resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 + postcss: 8.4.24 postcss-value-parser: 4.2.0 svgo: 2.8.0 dev: false - /postcss-unique-selectors/5.1.1_postcss@8.4.21: + /postcss-svgo/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} + engines: {node: ^14 || ^16 || >= 18} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-value-parser: 4.2.0 + svgo: 3.0.2 + dev: false + + /postcss-unique-selectors/5.1.1_postcss@8.4.24: resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 + dev: false + + /postcss-unique-selectors/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false /postcss-url/10.1.3_postcss@8.4.21: @@ -15648,6 +17623,20 @@ packages: minimatch: 3.0.4 postcss: 8.4.21 xxhashjs: 0.2.2 + dev: true + + /postcss-url/10.1.3_postcss@8.4.24: + resolution: {integrity: sha512-FUzyxfI5l2tKmXdYc6VTu3TWZsInayEKPbiyW+P6vmmIrrb4I6CGX0BFoewgYHLK+oIL5FECEK02REYRpBvUCw==} + engines: {node: '>=10'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + make-dir: 3.1.0 + mime: 2.5.2 + minimatch: 3.0.4 + postcss: 8.4.24 + xxhashjs: 0.2.2 + dev: false /postcss-value-parser/4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -15674,7 +17663,6 @@ packages: nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 - dev: true /prelude-ls/1.1.2: resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} @@ -15760,6 +17748,14 @@ packages: resolution: {integrity: sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==} engines: {node: '>=10.13.0'} hasBin: true + dev: true + + /prettier/2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + requiresBuild: true + optional: true /pretty-bytes/5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} @@ -16161,6 +18157,14 @@ packages: flat: 5.0.2 dev: false + /rc9/2.1.0: + resolution: {integrity: sha512-ROO9bv8PPqngWKoiUZU3JDQ4sugpdRs9DfwHnzDSxK25XtQn6BEHL6EOd/OtKuDT2qodrtNR+0WkPT6l0jxH5Q==} + dependencies: + defu: 6.1.2 + destr: 1.2.2 + flat: 5.0.2 + dev: false + /react-docgen-typescript/2.2.2_typescript@4.9.5: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -16420,6 +18424,18 @@ packages: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.1.0 + /regexpu-core/5.3.2: + resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + engines: {node: '>=4'} + dependencies: + '@babel/regjsgen': 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: false + /regjsgen/0.7.1: resolution: {integrity: sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==} @@ -16603,7 +18619,6 @@ packages: is-core-module: 2.12.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true /restore-cursor/3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} @@ -16783,8 +18798,17 @@ packages: ajv: 6.12.6 ajv-keywords: 3.5.2_ajv@6.12.6 - /schema-utils/4.0.0: - resolution: {integrity: sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==} + /schema-utils/3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + dependencies: + '@types/json-schema': 7.0.12 + ajv: 6.12.6 + ajv-keywords: 3.5.2_ajv@6.12.6 + dev: false + + /schema-utils/4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} engines: {node: '>= 12.13.0'} dependencies: '@types/json-schema': 7.0.12 @@ -16834,6 +18858,14 @@ packages: dependencies: lru-cache: 6.0.0 + /semver/7.5.2: + resolution: {integrity: sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + /send/0.17.2: resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==} engines: {node: '>= 0.8.0'} @@ -17001,6 +19033,11 @@ packages: /shell-quote/1.7.3: resolution: {integrity: sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==} + dev: true + + /shell-quote/1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + dev: false /shellwords/0.1.1: resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} @@ -17025,12 +19062,17 @@ packages: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: false + /signal-exit/4.0.2: + resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + engines: {node: '>=14'} + dev: false + /sirv/1.0.19: resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==} engines: {node: '>= 10'} dependencies: '@polka/url': 1.0.0-next.21 - mrmime: 1.0.0 + mrmime: 1.0.1 totalist: 1.1.0 dev: false @@ -17218,8 +19260,8 @@ packages: escape-string-regexp: 2.0.0 dev: true - /stackframe/1.2.0: - resolution: {integrity: sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==} + /stackframe/1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} dev: false /state-toggle/1.0.3: @@ -17246,6 +19288,10 @@ packages: resolution: {integrity: sha512-uUZI65yrV2Qva5gqE0+A7uVAvO40iPo6jGhs7s8keRfHCmtg+uB2X6EiLGCI9IgL1J17xGhvoOqSz79lzICPTA==} dev: false + /std-env/3.3.3: + resolution: {integrity: sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==} + dev: false + /stop-iteration-iterator/1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -17452,10 +19498,10 @@ packages: peerDependencies: webpack: ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - glob: 7.2.0 - loader-utils: 2.0.2 + glob: 7.2.3 + loader-utils: 2.0.4 schema-utils: 2.7.1 - tslib: 2.3.1 + tslib: 2.5.3 webpack: 4.46.0 dev: false @@ -17465,15 +19511,26 @@ packages: inline-style-parser: 0.1.1 dev: true - /stylehacks/5.1.1_postcss@8.4.21: + /stylehacks/5.1.1_postcss@8.4.24: resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} engines: {node: ^10 || ^12 || >=14.0} peerDependencies: postcss: ^8.2.15 dependencies: - browserslist: 4.21.5 - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 + browserslist: 4.21.9 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 + dev: false + + /stylehacks/6.0.0_postcss@8.4.24: + resolution: {integrity: sha512-+UT589qhHPwz6mTlCLSt/vMNTJx8dopeJlZAlBMJPWA3ORqu6wmQY7FBXf+qD+FsqoBJODyqNxOUP3jdntFRdw==} + engines: {node: ^14 || ^16 || >=18.0} + peerDependencies: + postcss: ^8.2.15 + dependencies: + browserslist: 4.21.9 + postcss: 8.4.24 + postcss-selector-parser: 6.0.13 dev: false /sucrase/3.32.0: @@ -17564,6 +19621,19 @@ packages: stable: 0.1.8 dev: false + /svgo/3.0.2: + resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + csso: 5.0.5 + picocolors: 1.0.0 + dev: false + /symbol-tree/3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} dev: true @@ -17795,10 +19865,10 @@ packages: webpack: ^4.27.0 || ^5.0.0 dependencies: json-parse-better-errors: 1.0.2 - loader-runner: 4.2.0 - loader-utils: 2.0.2 + loader-runner: 4.3.0 + loader-utils: 2.0.4 neo-async: 2.6.2 - schema-utils: 3.1.1 + schema-utils: 3.3.0 webpack: 4.46.0 dev: false @@ -18055,6 +20125,10 @@ packages: /tslib/2.3.1: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + /tslib/2.5.3: + resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + dev: false + /tsscmp/1.0.6: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} @@ -18148,8 +20222,8 @@ packages: resolution: {integrity: sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==} dev: false - /ua-parser-js/1.0.34: - resolution: {integrity: sha512-K9mwJm/DaB6mRLZfw6q8IMXipcrmuT6yfhYmwhAkuh+81sChuYstYA+znlgaflUPaYUa3odxKPKGw6Vw/lANew==} + /ua-parser-js/1.0.35: + resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==} dev: false /ufo/0.7.9: @@ -18165,6 +20239,10 @@ packages: resolution: {integrity: sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==} dev: false + /ufo/1.1.2: + resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} + dev: false + /uglify-js/3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -18369,6 +20447,17 @@ packages: picocolors: 1.0.0 dev: true + /update-browserslist-db/1.0.11_browserslist@4.21.9: + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.9 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: false + /upper-case/1.1.3: resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} dev: false @@ -18970,13 +21059,13 @@ packages: engines: {node: '>=10.4'} dev: true - /webpack-bundle-analyzer/4.8.0: - resolution: {integrity: sha512-ZzoSBePshOKhr+hd8u6oCkZVwpVaXgpw23ScGLFpR6SjYI7+7iIWYarjN6OEYOfRt8o7ZyZZQk0DuMizJ+LEIg==} + /webpack-bundle-analyzer/4.9.0: + resolution: {integrity: sha512-+bXGmO1LyiNx0i9enBu3H8mv42sj/BJWhZNFwjz92tVnBa9J3JMGo2an2IXlEleoDOPn/Hofl5hr/xCpObUDtw==} engines: {node: '>= 10.13.0'} hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.8.2 + acorn: 8.9.0 acorn-walk: 8.2.0 chalk: 4.1.2 commander: 7.2.0 @@ -18984,7 +21073,7 @@ packages: lodash: 4.17.21 opener: 1.5.2 sirv: 1.0.19 - ws: 7.5.6 + ws: 7.5.9 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -19010,11 +21099,11 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 dependencies: - colorette: 2.0.19 - memfs: 3.4.13 - mime-types: 2.1.34 + colorette: 2.0.20 + memfs: 3.5.3 + mime-types: 2.1.35 range-parser: 1.2.1 - schema-utils: 4.0.0 + schema-utils: 4.2.0 webpack: 4.46.0 dev: false @@ -19040,7 +21129,7 @@ packages: resolution: {integrity: sha512-IK/0WAHs7MTu1tzLTjio73LjS3Ov+VvBKQmE8WPlJutgG5zT6Urgq/BbAdRrHTRpyzK0dvAvFh1Qg98akxgZpA==} dependencies: ansi-html-community: 0.0.8 - html-entities: 2.3.2 + html-entities: 2.3.6 strip-ansi: 6.0.1 dev: false @@ -19119,7 +21208,7 @@ packages: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 - std-env: 3.3.2 + std-env: 3.3.3 webpack: 4.46.0 dev: false @@ -19211,8 +21300,8 @@ packages: resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} engines: {node: '>= 10.0.0'} dependencies: - '@babel/parser': 7.21.3 - '@babel/types': 7.21.3 + '@babel/parser': 7.22.5 + '@babel/types': 7.22.5 assert-never: 1.2.1 babel-walk: 3.0.0-canary-5 dev: true @@ -19296,6 +21385,20 @@ packages: optional: true utf-8-validate: optional: true + dev: true + + /ws/7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false /ws/8.5.0: resolution: {integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==}