From b3be5b2c496582401ca588ff03cb73108aa6e35a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stephan=20Ko=CC=88ninger?= Date: Fri, 16 Aug 2024 08:59:21 +0200 Subject: [PATCH] feat(#1510): implement grouping of services in wallboard --- .github/workflows/build-feature.yml | 19 +- .github/workflows/build-main.yml | 16 +- .github/workflows/build-pullrequest.yml | 42 - .../workflows/release-to-maven-central.yml | 32 +- .mvn/wrapper/maven-wrapper.properties | 3 +- README.md | 11 +- mvnw | 428 +- mvnw.cmd | 301 +- pom.xml | 65 +- .../client/config/ClientRuntimeHints.java | 6 +- spring-boot-admin-docs/pom.xml | 7 +- .../src/site/asciidoc/_server-clustering.adoc | 2 +- .../src/site/asciidoc/client.adoc | 8 +- .../site/asciidoc/customize_http-headers.adoc | 2 +- .../site/asciidoc/customize_interceptors.adoc | 2 +- .../site/asciidoc/customize_notifiers.adoc | 2 +- .../src/site/asciidoc/faq.adoc | 5 + .../src/site/asciidoc/getting-started.adoc | 3 +- .../src/site/asciidoc/security.adoc | 2 +- .../site/asciidoc/server-notifications.adoc | 62 +- .../src/site/asciidoc/server.adoc | 10 +- .../resources/images/notification-filter.png | Bin 0 -> 213707 bytes .../docker-compose.yml | 2 +- .../spring-boot-admin-sample-consul/pom.xml | 2 +- .../SpringBootAdminConsulApplication.java | 7 +- .../SpringBootAdminConsulApplicationTest.java | 2 +- .../package-lock.json | 1558 +- .../package.json | 10 +- .../src/main/docker/Dockerfile | 2 +- .../SpringBootAdminEurekaApplication.java | 112 +- .../SpringBootAdminEurekaApplicationTest.java | 4 +- .../pom.xml | 2 +- .../SpringBootAdminHazelcastApplication.java | 7 +- ...ringBootAdminHazelcastApplicationTest.java | 2 +- .../spring-boot-admin-sample-reactive/pom.xml | 2 +- .../SpringBootAdminReactiveApplication.java | 8 +- ...pringBootAdminReactiveApplicationTest.java | 2 +- .../Readme.md | 24 +- .../pom.xml | 6 +- .../SpringBootAdminServletApplication.java | 8 +- .../src/main/resources/application.yml | 6 +- .../spring-boot-admin-sample-servlet/pom.xml | 20 +- .../admin/{ => sample}/CustomCsrfFilter.java | 2 +- .../admin/{ => sample}/CustomEndpoint.java | 2 +- .../admin/{ => sample}/CustomNotifier.java | 2 +- .../admin/{ => sample}/NotifierConfig.java | 2 +- .../{ => sample}/SecurityPermitAllConfig.java | 4 +- .../{ => sample}/SecuritySecureConfig.java | 2 +- .../SpringBootAdminServletApplication.java | 10 +- .../src/main/resources/application.yml | 8 + ...SpringBootAdminServletApplicationTest.java | 2 +- .../SpringBootAdminWarApplication.java | 7 +- .../docker-compose.yml | 5 + .../pom.xml | 2 +- .../SpringBootAdminZookeeperApplication.java | 7 +- ...ringBootAdminZookeeperApplicationTest.java | 2 +- .../DefaultServiceInstanceConverter.java | 2 +- ...nServerDiscoveryAutoConfigurationTest.java | 14 +- .../InstanceDiscoveryListenerTest.java | 58 +- spring-boot-admin-server-ui/.prettierrc.json | 1 + .../.storybook/preview.js | 10 +- spring-boot-admin-server-ui/README.md | 2 +- spring-boot-admin-server-ui/package-lock.json | 19234 +++++++--------- spring-boot-admin-server-ui/package.json | 125 +- spring-boot-admin-server-ui/pom.xml | 44 +- spring-boot-admin-server-ui/postcss.config.js | 6 +- .../frontend/components/font-awesome-icon.ts | 8 +- .../sba-action-button-scoped.spec.ts | 4 +- .../components/sba-action-button-scoped.vue | 7 +- .../components/sba-confirm-button.spec.ts | 6 +- .../main/frontend/components/sba-input.vue | 5 +- .../components/sba-nav/sba-nav-item.vue | 20 +- .../components/sba-pagination-nav.spec.ts | 24 +- .../main/frontend/components/sba-panel.vue | 20 +- .../main/frontend/components/sba-select.vue | 4 +- .../sba-toggle-scope-button.spec.ts | 6 +- .../composables/useApplicationStore.ts | 65 +- .../src/main/frontend/global.d.ts | 2 +- .../src/main/frontend/i18n/i18n.de.json | 10 +- .../src/main/frontend/i18n/i18n.en.json | 10 +- .../src/main/frontend/i18n/index.ts | 2 +- .../src/main/frontend/index.css | 53 +- .../src/main/frontend/index.html | 62 +- .../src/main/frontend/index.ts | 2 - .../src/main/frontend/login.css | 28 +- .../src/main/frontend/login.html | 62 +- .../src/main/frontend/login/login.vue | 1 + .../src/main/frontend/mixins/subscribing.ts | 4 +- .../main/frontend/mocks/applications/index.ts | 4 +- .../src/main/frontend/mocks/browser.ts | 2 +- .../mocks/instance/auditevents/index.ts | 6 +- .../mocks/instance/dependencies/data.ts | 5057 ++++ .../mocks/instance/dependencies/index.ts | 21 + .../frontend/mocks/instance/flyway/index.ts | 6 +- .../frontend/mocks/instance/health/index.ts | 87 +- .../frontend/mocks/instance/info/index.ts | 6 +- .../frontend/mocks/instance/jolokia/index.ts | 25 +- .../mocks/instance/liquibase/index.ts | 6 +- .../frontend/mocks/instance/mappings/index.ts | 6 +- .../frontend/mocks/instance/metrics/data.ts | 55 + .../frontend/mocks/instance/metrics/index.ts | 24 + .../src/main/frontend/mocks/server.ts | 4 + .../src/main/frontend/notificationcenter.d.ts | 1 + .../src/main/frontend/notifications.ts | 8 +- .../src/main/frontend/plugins/modal/api.ts | 4 +- .../main/frontend/public/mockServiceWorker.js | 181 +- .../src/main/frontend/sba-config.ts | 2 +- .../frontend/services/application.spec.ts | 6 +- .../src/main/frontend/services/application.ts | 54 +- .../src/main/frontend/services/instance.ts | 834 +- .../frontend/services/instanceGroupService.ts | 44 - .../frontend/services/notification-filter.ts | 127 +- .../services/startup-activator-tree.ts | 4 +- .../services/startup-actuator.spec.ts | 7 +- .../frontend/services/startup-actuator.ts | 4 +- .../src/main/frontend/shell/navbar.spec.ts | 5 +- .../shell/sba-dropdown-logout-item.vue | 2 +- .../shell/sba-nav-language-selector.spec.ts | 2 +- .../shell/sba-nav-language-selector.vue | 2 +- .../src/main/frontend/store.spec.ts | 8 +- .../src/main/frontend/store.ts | 18 +- .../src/main/frontend/test-utils.ts | 9 +- .../src/main/frontend/tests/setup.ts | 2 +- .../src/main/frontend/toast-theme.css | 4 +- .../src/main/frontend/utils/autolink.spec.ts | 6 +- .../src/main/frontend/utils/axios.spec.ts | 2 +- .../src/main/frontend/utils/axios.ts | 6 +- .../main/frontend/utils/collections.spec.ts | 2 +- .../frontend/utils/iso8601-duration.spec.ts | 2 +- .../src/main/frontend/utils/logtail.ts | 4 +- .../src/main/frontend/utils/rxjs.ts | 8 +- .../frontend/utils/shortenClassname.spec.ts | 12 +- .../src/main/frontend/utils/uri.spec.ts | 2 +- .../frontend/utils/useRouterState.spec.ts | 106 + .../src/main/frontend/utils/useRouterState.ts | 80 + .../main/frontend/utils/useSubscription.ts | 34 + .../src/main/frontend/viewRegistry.spec.ts | 24 +- .../src/main/frontend/viewRegistry.ts | 12 +- .../src/main/frontend/views/ViewGroup.ts | 5 + .../src/main/frontend/views/about/index.vue | 2 +- .../views/applications/ActionHandler.ts | 286 +- .../ApplicationListItemAction.spec.ts | 220 +- .../ApplicationListItemAction.vue | 81 +- .../ApplicationNotificationCenter.vue | 2 +- .../views/applications/ApplicationStats.vue | 2 +- .../ApplicationStatusHero.spec.ts | 66 + .../applications/ApplicationStatusHero.vue | 68 +- .../views/applications/InstancesList.vue | 72 +- .../views/applications/applications.spec.ts | 232 + .../frontend/views/applications/i18n.de.json | 5 +- .../frontend/views/applications/i18n.en.json | 5 +- .../frontend/views/applications/i18n.es.json | 2 +- .../frontend/views/applications/i18n.fr.json | 2 +- .../frontend/views/applications/i18n.is.json | 2 +- .../frontend/views/applications/i18n.ko.json | 2 +- .../views/applications/i18n.pt-BR.json | 2 +- .../frontend/views/applications/i18n.ru.json | 2 +- .../views/applications/i18n.zh-CN.json | 2 +- .../views/applications/i18n.zh-TW.json | 2 +- .../frontend/views/applications/index.vue | 498 +- .../frontend/views/external/index.spec.ts | 96 + .../src/main/frontend/views/external/index.ts | 17 +- .../src/main/frontend/views/index.ts | 5 +- .../views/instances/auditevents/index.spec.ts | 6 +- .../views/instances/auditevents/index.vue | 10 +- .../views/instances/caches/caches-list.vue | 17 +- .../frontend/views/instances/caches/index.vue | 10 +- .../conditions-list-details.spec.ts | 75 + .../conditions/conditions-list-details.vue | 72 + .../instances/conditions/conditions-list.vue | 112 + .../views/instances/conditions/i18n.de.json | 13 + .../views/instances/conditions/i18n.en.json | 13 + .../views/instances/conditions/index.vue | 218 + .../views/instances/configprops/index.vue | 6 +- .../views/instances/dependencies/SbomList.vue | 233 + .../views/instances/dependencies/i18n.de.json | 17 + .../views/instances/dependencies/i18n.en.json | 17 + .../instances/dependencies/index.spec.ts | 367 + .../views/instances/dependencies/index.vue | 80 + .../views/instances/details/LineChart.vue | 2 +- .../views/instances/details/cache-chart.vue | 8 +- .../instances/details/datasource-chart.vue | 6 +- .../views/instances/details/details-cache.vue | 10 +- .../instances/details/details-caches.vue | 4 +- .../instances/details/details-datasource.vue | 10 +- .../instances/details/details-datasources.vue | 4 +- .../views/instances/details/details-gc.vue | 6 +- .../instances/details/details-health.spec.ts | 130 +- .../instances/details/details-health.vue | 99 +- .../instances/details/details-memory.spec.ts | 119 + .../instances/details/details-memory.vue | 61 +- .../instances/details/details-process.vue | 2 +- .../instances/details/details-threads.vue | 2 +- .../instances/details/health-details.vue | 16 +- .../views/instances/details/i18n.zh-CN.json | 2 +- .../views/instances/details/index.spec.ts | 12 +- .../views/instances/details/index.vue | 26 +- .../views/instances/details/process-uptime.ts | 2 +- .../views/instances/env/env-manager.vue | 14 +- .../views/instances/env/refresh.spec.ts | 4 +- .../frontend/views/instances/env/refresh.vue | 4 +- .../instances/gateway/global-filters.vue | 4 +- .../instances/gateway/route-definition.vue | 4 +- .../views/instances/gateway/route.vue | 4 +- .../views/instances/gateway/routes.vue | 2 +- .../httpexchanges/exchanges-chart.vue | 24 +- .../views/instances/httpexchanges/index.vue | 20 +- .../views/instances/httptrace/index.vue | 12 +- .../instances/httptrace/traces-chart.vue | 22 +- .../views/instances/jolokia/index.spec.ts | 2 +- .../views/instances/jolokia/index.vue | 8 +- .../instances/jolokia/m-bean-attributes.vue | 4 +- .../jolokia/m-bean-operation-invocation.vue | 2 +- .../instances/jolokia/m-bean-operations.vue | 2 +- .../instances/jolokia/responseHandler.spec.ts | 4 +- .../views/instances/logfile/index.vue | 179 +- .../views/instances/loggers/loggers.vue | 10 +- .../views/instances/loggers/service.spec.ts | 4 +- .../views/instances/loggers/service.ts | 8 +- .../instances/mappings/DispatcherMappings.vue | 10 +- .../views/instances/mappings/index.spec.ts | 8 +- .../views/instances/mappings/index.vue | 2 +- .../views/instances/metrics/index.vue | 10 +- .../views/instances/metrics/metric.vue | 4 +- .../frontend/views/instances/quartz/index.vue | 12 +- .../sbomdependencytrees/dependencyTree.ts | 319 + .../sbomdependencytrees/i18n.en.json | 7 + .../instances/sbomdependencytrees/index.vue | 106 + .../sbomdependencytrees/sbomUtils.spec.ts | 122 + .../sbomdependencytrees/sbomUtils.ts | 72 + .../sbomdependencytrees/tree.spec.ts | 146 + .../instances/sbomdependencytrees/tree.vue | 143 + .../views/instances/sessions/index.vue | 4 +- .../instances/sessions/sessions-list.vue | 4 +- .../views/instances/shell/i18n.de.json | 3 + .../views/instances/shell/i18n.en.json | 3 + .../views/instances/shell/sidebar.vue | 2 +- .../views/instances/startup/index.vue | 89 +- .../views/instances/startup/tree-table.vue | 78 +- .../views/instances/threaddump/index.vue | 2 +- .../instances/threaddump/threads-list.vue | 19 +- .../src/main/frontend/views/journal/index.vue | 4 +- .../frontend/views/wallboard/hex-mesh.vue | 4 +- .../main/frontend/views/wallboard/index.vue | 135 +- .../views/wallboard/wallboard.spec.ts | 30 +- .../views/wallboard/wallboard.stories.ts | 56 +- .../src/main/frontend/vite-env.d.ts | 4 +- .../server/ui/config/ServerRuntimeHints.java | 8 + .../admin/server/ui/web/UiController.java | 4 + .../admin/server/ui/web/UiControllerTest.java | 44 +- spring-boot-admin-server-ui/tsconfig.json | 3 +- .../tsconfig.node.json | 2 +- .../{vite.config.ts => vite.config.mts} | 7 +- .../config/AdminServerAutoConfiguration.java | 28 +- .../AdminServerNotifierAutoConfiguration.java | 18 +- .../server/config/AdminServerProperties.java | 14 + .../admin/server/notify/WebexNotifier.java | 191 + .../server/services/InfoUpdateTrigger.java | 5 +- .../admin/server/services/IntervalCheck.java | 11 +- .../server/services/StatusUpdateTrigger.java | 6 +- .../endpoints/ProbeEndpointsStrategy.java | 2 +- ...inServerNotifierAutoConfigurationTest.java | 10 +- .../server/notify/WebexNotifierTest.java | 135 + .../EndpointDetectionTriggerTest.java | 6 +- .../services/InfoUpdateTriggerTest.java | 9 +- .../server/services/IntervalCheckTest.java | 16 +- .../services/StatusUpdateTriggerTest.java | 5 +- ...stancesProxyControllerIntegrationTest.java | 23 +- 268 files changed, 20861 insertions(+), 14595 deletions(-) delete mode 100644 .github/workflows/build-pullrequest.yml create mode 100644 spring-boot-admin-docs/src/site/resources/images/notification-filter.png rename spring-boot-admin-samples/spring-boot-admin-sample-consul/src/main/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminConsulApplication.java (96%) rename spring-boot-admin-samples/spring-boot-admin-sample-consul/src/test/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminConsulApplicationTest.java (96%) rename spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/main/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminHazelcastApplication.java (97%) rename spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/test/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminHazelcastApplicationTest.java (96%) rename spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/main/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminReactiveApplication.java (94%) rename spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/test/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminReactiveApplicationTest.java (96%) rename spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminServletApplication.java (79%) rename spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/{ => sample}/CustomCsrfFilter.java (97%) rename spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/{ => sample}/CustomEndpoint.java (95%) rename spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/{ => sample}/CustomNotifier.java (97%) rename spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/{ => sample}/NotifierConfig.java (98%) rename spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/{ => sample}/SecurityPermitAllConfig.java (91%) rename spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/{ => sample}/SecuritySecureConfig.java (99%) rename spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminServletApplication.java (91%) rename spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/test/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminServletApplicationTest.java (96%) rename spring-boot-admin-samples/spring-boot-admin-sample-war/src/main/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminWarApplication.java (96%) create mode 100644 spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/docker-compose.yml rename spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/main/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminZookeeperApplication.java (96%) rename spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/test/java/de/codecentric/boot/admin/{ => sample}/SpringBootAdminZookeeperApplicationTest.java (96%) create mode 100644 spring-boot-admin-server-ui/src/main/frontend/mocks/instance/dependencies/data.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/mocks/instance/dependencies/index.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/mocks/instance/metrics/data.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/mocks/instance/metrics/index.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/notificationcenter.d.ts delete mode 100644 spring-boot-admin-server-ui/src/main/frontend/services/instanceGroupService.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/utils/useRouterState.spec.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/utils/useRouterState.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/utils/useSubscription.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStatusHero.spec.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/applications/applications.spec.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/external/index.spec.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/conditions/conditions-list-details.spec.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/conditions/conditions-list-details.vue create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/conditions/conditions-list.vue create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/conditions/i18n.de.json create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/conditions/i18n.en.json create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/conditions/index.vue create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/dependencies/SbomList.vue create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/dependencies/i18n.de.json create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/dependencies/i18n.en.json create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/dependencies/index.spec.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/dependencies/index.vue create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/details/details-memory.spec.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/sbomdependencytrees/dependencyTree.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/sbomdependencytrees/i18n.en.json create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/sbomdependencytrees/index.vue create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/sbomdependencytrees/sbomUtils.spec.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/sbomdependencytrees/sbomUtils.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/sbomdependencytrees/tree.spec.ts create mode 100644 spring-boot-admin-server-ui/src/main/frontend/views/instances/sbomdependencytrees/tree.vue rename spring-boot-admin-server-ui/{vite.config.ts => vite.config.mts} (92%) create mode 100644 spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/notify/WebexNotifier.java create mode 100644 spring-boot-admin-server/src/test/java/de/codecentric/boot/admin/server/notify/WebexNotifierTest.java diff --git a/.github/workflows/build-feature.yml b/.github/workflows/build-feature.yml index c4167f1cd05..41ffa85c4ba 100644 --- a/.github/workflows/build-feature.yml +++ b/.github/workflows/build-feature.yml @@ -6,10 +6,10 @@ on: - master - 1.* - 2.* + pull_request: jobs: build: - strategy: matrix: os: [ubuntu-latest] @@ -17,17 +17,26 @@ jobs: runs-on: ${{ matrix.os }} steps: + - name: free disk space + run: | + df -h + sudo swapoff -a + sudo rm -f /swapfile + sudo apt clean + docker rmi $(docker image ls -aq) + df -h + - uses: actions/checkout@v4 - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: '17' cache: 'maven' - name: Cache node modules - uses: actions/cache@v3 + uses: actions/cache@v4 env: cache-name: cache-node-modules with: @@ -42,6 +51,6 @@ jobs: run: | mvn -B verify -P coverage --no-transfer-progress -D maven.javadoc.skip=true - - uses: codecov/codecov-action@v3 + - uses: codecov/codecov-action@v4 with: files: "'*/jacoco.xml'" diff --git a/.github/workflows/build-main.yml b/.github/workflows/build-main.yml index 62b5780df26..a619270a5ba 100644 --- a/.github/workflows/build-main.yml +++ b/.github/workflows/build-main.yml @@ -19,14 +19,14 @@ jobs: - uses: actions/checkout@v4 - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: '17' cache: 'maven' - name: Cache node modules - uses: actions/cache@v3 + uses: actions/cache@v4 env: cache-name: cache-node-modules with: @@ -41,7 +41,7 @@ jobs: run: | mvn -B verify -P coverage --no-transfer-progress -D maven.javadoc.skip=true - - uses: codecov/codecov-action@v3 + - uses: codecov/codecov-action@v4 with: files: "'*/jacoco.xml'" @@ -53,14 +53,14 @@ jobs: - uses: actions/checkout@v4 - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: '17' cache: 'maven' - name: Cache node modules - uses: actions/cache@v3 + uses: actions/cache@v4 env: cache-name: cache-node-modules with: @@ -84,7 +84,7 @@ jobs: run: echo ${{ steps.project.outputs.version }} - name: Deploy Asciidoc docs output to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4.4.3 + uses: JamesIves/github-pages-deploy-action@v4.6.3 with: branch: gh-pages # The branch the action should deploy to. folder: spring-boot-admin-docs/target/generated-docs # The folder the action should deploy. diff --git a/.github/workflows/build-pullrequest.yml b/.github/workflows/build-pullrequest.yml deleted file mode 100644 index c8dd8c0397c..00000000000 --- a/.github/workflows/build-pullrequest.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: build pull requests - -on: - pull_request: - -jobs: - build: - strategy: - matrix: - os: [ubuntu-latest] - - runs-on: ${{ matrix.os }} - steps: - - - uses: actions/checkout@v4 - - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - distribution: 'adopt' - java-version: '17' - cache: 'maven' - - - name: Cache node modules - uses: actions/cache@v3 - env: - cache-name: cache-node-modules - with: - path: ~/.npm - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - - # since we also build on Windows Powershell, we need to add a space between -D maven.javadoc.skip=true - # otherwise the build will fail https://stackoverflow.com/questions/38051787/maven-javadoc-skip-true-throws-an-error - - name: Build with Maven - run: | - mvn -B verify -P coverage --no-transfer-progress -D maven.javadoc.skip=true - - - uses: codecov/codecov-action@v3 - with: - files: "'*/jacoco.xml'" diff --git a/.github/workflows/release-to-maven-central.yml b/.github/workflows/release-to-maven-central.yml index 39f05e0ea57..4c29f76b79a 100644 --- a/.github/workflows/release-to-maven-central.yml +++ b/.github/workflows/release-to-maven-central.yml @@ -19,12 +19,21 @@ jobs: steps: - run: echo "Will start a Maven Central upload with version ${{ github.event.inputs.releaseversion }}" + - name: free disk space + run: | + df -h + sudo swapoff -a + sudo rm -f /swapfile + sudo apt clean + docker rmi $(docker image ls -aq) + df -h + - uses: actions/checkout@v4 - name: Set up settings.xml for Maven Central Repository - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: '17' server-id: oss.sonatype.org server-username: MAVEN_USERNAME @@ -34,7 +43,7 @@ jobs: cache: 'maven' - name: Cache node modules - uses: actions/cache@v3 + uses: actions/cache@v4 env: cache-name: cache-node-modules with: @@ -56,7 +65,7 @@ jobs: MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} - name: Deploy Asciidoc docs output to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4.4.3 + uses: JamesIves/github-pages-deploy-action@v4.6.3 with: branch: gh-pages # The branch the action should deploy to. folder: spring-boot-admin-docs/target/generated-docs # The folder the action should deploy. @@ -64,7 +73,7 @@ jobs: clean: true # Automatically remove deleted files from the deploy branch - name: Deploy Asciidoc docs output to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4.4.3 + uses: JamesIves/github-pages-deploy-action@v4.6.3 if: github.event.inputs.copyDocsToCurrent == 'true' with: branch: gh-pages # The branch the action should deploy to. @@ -80,9 +89,18 @@ jobs: steps: - uses: actions/checkout@v4 + - name: free disk space + run: | + df -h + sudo swapoff -a + sudo rm -f /swapfile + sudo apt clean + docker rmi $(docker image ls -aq) + df -h + - name: Generate changelog id: changelog - uses: metcalfc/changelog-generator@v4.1.0 + uses: metcalfc/changelog-generator@v4.3.1 with: myToken: ${{ secrets.GITHUB_TOKEN }} @@ -124,7 +142,7 @@ jobs: mvn versions:commit - name: Commit new SNAPSHOT version - uses: stefanzweifel/git-auto-commit-action@v4 + uses: stefanzweifel/git-auto-commit-action@v5 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties index eacdc9ed17a..e56bc18068f 100644 --- a/.mvn/wrapper/maven-wrapper.properties +++ b/.mvn/wrapper/maven-wrapper.properties @@ -14,5 +14,4 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.5/apache-maven-3.9.5-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar +distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.8/apache-maven-3.9.8-bin.zip diff --git a/README.md b/README.md index 58823c38de4..0f10a7d45ac 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,12 @@ Monitoring Python applications is available using [Pyctuator](https://github.com ## Compatibility Matrix In the Spring Boot Admin Server App, the Spring Boot Admin's version matches the major and minor versions of Spring Boot. -| Spring Boot Version | Spring Boot Admin | -|---------------------|--------------------| -| 2.6 | 2.6.Y | -| 2.7 | 2.7.Y | -| 3.0 | 3.0.Y | +| Spring Boot Version | Spring Boot Admin | +|---------------------|-------------------| +| 2.7 | 2.7.Y | +| 3.0 | 3.0.Y | +| ... | ... | +| 3.3 | 3.3.Y | Nevertheless, it is possible to monitor any version of a Spring Boot service independently of the underlying Spring Boot version in the service. Hence, it is possible to run Spring Boot Admin Server version 2.6 and monitor a service that is running on Spring Boot 2.3 using Spring Boot Admin Client version 2.3. diff --git a/mvnw b/mvnw index 8d937f4c14f..08303327cbc 100755 --- a/mvnw +++ b/mvnw @@ -19,290 +19,232 @@ # ---------------------------------------------------------------------------- # ---------------------------------------------------------------------------- -# Apache Maven Wrapper startup batch script, version 3.2.0 -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of a JDK home dir +# Apache Maven Wrapper startup batch script, version 3.3.0 # # Optional ENV vars # ----------------- -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# JAVA_HOME - location of a JDK home dir, required when download maven via java source +# MVNW_REPOURL - repo url base for downloading maven distribution +# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output # ---------------------------------------------------------------------------- -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /usr/local/etc/mavenrc ] ; then - . /usr/local/etc/mavenrc - fi - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi +set -euf +[ "${MVNW_VERBOSE-}" != debug ] || set -x -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false +# OS specific support. +native_path() { printf %s\\n "$1"; } case "$(uname)" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME - else - JAVA_HOME="/Library/Java/Home"; export JAVA_HOME - fi - fi - ;; +CYGWIN* | MINGW*) + [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")" + native_path() { cygpath --path --windows "$1"; } + ;; esac -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=$(java-config --jre-home) - fi -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --unix "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --unix "$CLASSPATH") -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] && - JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="$(which javac)" - if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=$(which readlink) - if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then - if $darwin ; then - javaHome="$(dirname "\"$javaExecutable\"")" - javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac" - else - javaExecutable="$(readlink -f "\"$javaExecutable\"")" - fi - javaHome="$(dirname "\"$javaExecutable\"")" - javaHome=$(expr "$javaHome" : '\(.*\)/bin') - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then +# set JAVACMD and JAVACCMD +set_java_home() { + # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched + if [ -n "${JAVA_HOME-}" ]; then + if [ -x "$JAVA_HOME/jre/sh/java" ]; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACCMD="$JAVA_HOME/jre/sh/javac" else JAVACMD="$JAVA_HOME/bin/java" + JAVACCMD="$JAVA_HOME/bin/javac" + + if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then + echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2 + echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2 + return 1 + fi fi else - JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 + JAVACMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v java + )" || : + JAVACCMD="$( + 'set' +e + 'unset' -f command 2>/dev/null + 'command' -v javac + )" || : + + if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then + echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2 + return 1 + fi fi +} - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=$(cd "$wdir/.." || exit 1; pwd) - fi - # end of workaround +# hash string like Java String::hashCode +hash_string() { + str="${1:-}" h=0 + while [ -n "$str" ]; do + char="${str%"${str#?}"}" + h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296)) + str="${str#?}" done - printf '%s' "$(cd "$basedir" || exit 1; pwd)" + printf %x\\n $h } -# concatenates all lines of a file -concat_lines() { - if [ -f "$1" ]; then - # Remove \r in case we run on Windows within Git Bash - # and check out the repository with auto CRLF management - # enabled. Otherwise, we may read lines that are delimited with - # \r\n and produce $'-Xarg\r' rather than -Xarg due to word - # splitting rules. - tr -s '\r\n' ' ' < "$1" - fi +verbose() { :; } +[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; } + +die() { + printf %s\\n "$1" >&2 + exit 1 } -log() { - if [ "$MVNW_VERBOSE" = true ]; then - printf '%s\n' "$1" - fi +# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties +while IFS="=" read -r key value; do + case "${key-}" in + distributionUrl) distributionUrl="${value-}" ;; + distributionSha256Sum) distributionSha256Sum="${value-}" ;; + esac +done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties" +[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties" + +case "${distributionUrl##*/}" in +maven-mvnd-*bin.*) + MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ + case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in + *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;; + :Darwin*x86_64) distributionPlatform=darwin-amd64 ;; + :Darwin*arm64) distributionPlatform=darwin-aarch64 ;; + :Linux*x86_64*) distributionPlatform=linux-amd64 ;; + *) + echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2 + distributionPlatform=linux-amd64 + ;; + esac + distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip" + ;; +maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;; +*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;; +esac + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}" +distributionUrlName="${distributionUrl##*/}" +distributionUrlNameMain="${distributionUrlName%.*}" +distributionUrlNameMain="${distributionUrlNameMain%-bin}" +MAVEN_HOME="$HOME/.m2/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")" + +exec_maven() { + unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || : + exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD" } -BASE_DIR=$(find_maven_basedir "$(dirname "$0")") -if [ -z "$BASE_DIR" ]; then - exit 1; +if [ -d "$MAVEN_HOME" ]; then + verbose "found existing MAVEN_HOME at $MAVEN_HOME" + exec_maven "$@" fi -MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR -log "$MAVEN_PROJECTBASEDIR" +case "${distributionUrl-}" in +*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;; +*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;; +esac -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" -if [ -r "$wrapperJarPath" ]; then - log "Found $wrapperJarPath" +# prepare tmp dir +if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then + clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; } + trap clean HUP INT TERM EXIT else - log "Couldn't find $wrapperJarPath, downloading it ..." + die "cannot create temp dir" +fi - if [ -n "$MVNW_REPOURL" ]; then - wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - else - wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - fi - while IFS="=" read -r key value; do - # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' ) - safeValue=$(echo "$value" | tr -d '\r') - case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;; - esac - done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" - log "Downloading from: $wrapperUrl" +mkdir -p -- "${MAVEN_HOME%/*}" - if $cygwin; then - wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath") - fi +# Download and Install Apache Maven +verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +verbose "Downloading from: $distributionUrl" +verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" - if command -v wget > /dev/null; then - log "Found wget ... using wget" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - log "Found curl ... using curl" - [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent" - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - else - curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath" - fi - else - log "Falling back to using Java to download" - javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java" - javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaSource=$(cygpath --path --windows "$javaSource") - javaClass=$(cygpath --path --windows "$javaClass") - fi - if [ -e "$javaSource" ]; then - if [ ! -e "$javaClass" ]; then - log " - Compiling MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/javac" "$javaSource") - fi - if [ -e "$javaClass" ]; then - log " - Running MavenWrapperDownloader.java ..." - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath" - fi - fi - fi +# select .zip or .tar.gz +if ! command -v unzip >/dev/null; then + distributionUrl="${distributionUrl%.zip}.tar.gz" + distributionUrlName="${distributionUrl##*/}" fi -########################################################################################## -# End of extension -########################################################################################## -# If specified, validate the SHA-256 sum of the Maven wrapper jar file -wrapperSha256Sum="" -while IFS="=" read -r key value; do - case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;; - esac -done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties" -if [ -n "$wrapperSha256Sum" ]; then - wrapperSha256Result=false - if command -v sha256sum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then - wrapperSha256Result=true +# verbose opt +__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR='' +[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v + +# normalize http auth +case "${MVNW_PASSWORD:+has-password}" in +'') MVNW_USERNAME='' MVNW_PASSWORD='' ;; +has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;; +esac + +if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then + verbose "Found wget ... using wget" + wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl" +elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then + verbose "Found curl ... using curl" + curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl" +elif set_java_home; then + verbose "Falling back to use Java to download" + javaSource="$TMP_DOWNLOAD_DIR/Downloader.java" + targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName" + cat >"$javaSource" <<-END + public class Downloader extends java.net.Authenticator + { + protected java.net.PasswordAuthentication getPasswordAuthentication() + { + return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() ); + } + public static void main( String[] args ) throws Exception + { + setDefault( new Downloader() ); + java.nio.file.Files.copy( new java.net.URL( args[0] ).openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() ); + } + } + END + # For Cygwin/MinGW, switch paths to Windows format before running javac and java + verbose " - Compiling Downloader.java ..." + "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java" + verbose " - Running Downloader.java ..." + "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")" +fi + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +if [ -n "${distributionSha256Sum-}" ]; then + distributionSha256Result=false + if [ "$MVN_CMD" = mvnd.sh ]; then + echo "Checksum validation is not supported for maven-mvnd." >&2 + echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 + exit 1 + elif command -v sha256sum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then + distributionSha256Result=true fi - elif command -v shasum > /dev/null; then - if echo "$wrapperSha256Sum $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then - wrapperSha256Result=true + elif command -v shasum >/dev/null; then + if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then + distributionSha256Result=true fi else - echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." - echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties." + echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2 + echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2 exit 1 fi - if [ $wrapperSha256Result = false ]; then - echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2 - echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2 - echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2 + if [ $distributionSha256Result = false ]; then + echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2 + echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2 exit 1 fi fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$JAVA_HOME" ] && - JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME") - [ -n "$CLASSPATH" ] && - CLASSPATH=$(cygpath --path --windows "$CLASSPATH") - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR") +# unzip and move +if command -v unzip >/dev/null; then + unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip" +else + tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar" fi +printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url" +mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME" -# Provide a "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -# shellcheck disable=SC2086 # safe args -exec "$JAVACMD" \ - $MAVEN_OPTS \ - $MAVEN_DEBUG_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" +clean || : +exec_maven "$@" diff --git a/mvnw.cmd b/mvnw.cmd index c4586b564e6..136e686a896 100644 --- a/mvnw.cmd +++ b/mvnw.cmd @@ -1,3 +1,4 @@ +<# : batch portion @REM ---------------------------------------------------------------------------- @REM Licensed to the Apache Software Foundation (ASF) under one @REM or more contributor license agreements. See the NOTICE file @@ -18,188 +19,128 @@ @REM ---------------------------------------------------------------------------- @REM ---------------------------------------------------------------------------- -@REM Apache Maven Wrapper startup batch script, version 3.2.0 -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir +@REM Apache Maven Wrapper startup batch script, version 3.3.0 @REM @REM Optional ENV vars -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM MVNW_REPOURL - repo url base for downloading maven distribution +@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven +@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output @REM ---------------------------------------------------------------------------- -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* -if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %WRAPPER_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file -SET WRAPPER_SHA_256_SUM="" -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B +@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0) +@SET __MVNW_CMD__= +@SET __MVNW_ERROR__= +@SET __MVNW_PSMODULEP_SAVE=%PSModulePath% +@SET PSModulePath= +@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @( + IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B) ) -IF NOT %WRAPPER_SHA_256_SUM%=="" ( - powershell -Command "&{"^ - "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^ - "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^ - " Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^ - " Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^ - " Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^ - " exit 1;"^ - "}"^ - "}" - if ERRORLEVEL 1 goto error -) - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% ^ - %JVM_CONFIG_MAVEN_PROPS% ^ - %MAVEN_OPTS% ^ - %MAVEN_DEBUG_OPTS% ^ - -classpath %WRAPPER_JAR% ^ - "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ - %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" -if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%"=="on" pause - -if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% - -cmd /C exit /B %ERROR_CODE% +@SET PSModulePath=%__MVNW_PSMODULEP_SAVE% +@SET __MVNW_PSMODULEP_SAVE= +@SET __MVNW_ARG0_NAME__= +@SET MVNW_USERNAME= +@SET MVNW_PASSWORD= +@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*) +@echo Cannot start maven from wrapper >&2 && exit /b 1 +@GOTO :EOF +: end batch / begin powershell #> + +$ErrorActionPreference = "Stop" +if ($env:MVNW_VERBOSE -eq "true") { + $VerbosePreference = "Continue" +} + +# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties +$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl +if (!$distributionUrl) { + Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties" +} + +switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) { + "maven-mvnd-*" { + $USE_MVND = $true + $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip" + $MVN_CMD = "mvnd.cmd" + break + } + default { + $USE_MVND = $false + $MVN_CMD = $script -replace '^mvnw','mvn' + break + } +} + +# apply MVNW_REPOURL and calculate MAVEN_HOME +# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/ +if ($env:MVNW_REPOURL) { + $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" } + $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')" +} +$distributionUrlName = $distributionUrl -replace '^.*/','' +$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$','' +$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain" +$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join '' +$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME" + +if (Test-Path -Path "$MAVEN_HOME" -PathType Container) { + Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME" + Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" + exit $? +} + +if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) { + Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl" +} + +# prepare tmp dir +$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile +$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir" +$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null +trap { + if ($TMP_DOWNLOAD_DIR.Exists) { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } + } +} + +New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null + +# Download and Install Apache Maven +Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..." +Write-Verbose "Downloading from: $distributionUrl" +Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName" + +$webclient = New-Object System.Net.WebClient +if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) { + $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD) +} +[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 +$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null + +# If specified, validate the SHA-256 sum of the Maven distribution zip file +$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum +if ($distributionSha256Sum) { + if ($USE_MVND) { + Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." + } + Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash + if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) { + Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property." + } +} + +# unzip and move +Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null +Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null +try { + Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null +} catch { + if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) { + Write-Error "fail to move MAVEN_HOME" + } +} finally { + try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null } + catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" } +} + +Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD" diff --git a/pom.xml b/pom.xml index 901b239e33c..93fb7498619 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Spring Boot Admin https://github.com/codecentric/spring-boot-admin/ - 3.1.8-SNAPSHOT + 3.3.4-SNAPSHOT 17 ${java.version} @@ -36,48 +36,47 @@ UTF-8 - 3.1.4 - 2022.0.4 + 3.3.2 + 2023.0.3 3.0.1 - 5.3.2 + 5.4.0 3.0.2 - 4.2.0 - 1.19.1 + 4.2.2 + 1.20.1 3.1.1 - - - 12.0.1 + 12.0.12 - 3.4.0 - 3.11.0 - 2.16.1 + 3.6.0 + 3.13.0 + 2.17.1 - 3.3.1 + 3.4.0 3.12.1 - 3.6.0 - 3.1.1 - 3.4.1 - 3.1.2 - 3.1.2 - 3.1.1 - 3.3.0 - 3.6.0 + 3.7.1 + 3.1.2 + 3.5.0 + 3.3.1 + 3.3.1 + 3.1.2 + 3.4.2 + 3.8.0 3.3.1 - 3.3.0 + 3.3.1 3.4.0 - 3.1.0 - 1.14.0 - 0.8.10 - 2.2.4 + 3.2.5 + 1.15.0 + 0.8.12 + 3.0.0 + 3.0.0 4.9.10 - 1.5.0 - 3.3.0 - 10.12.4 - 0.0.39 - 1.6.13 - v18.16.0 - 9.5.1 + 1.6.0 + 3.4.0 + 10.17.0 + 0.0.43 + 1.7.0 + v18.20.2 + 10.5.2 spring-boot-admin-server diff --git a/spring-boot-admin-client/src/main/java/de/codecentric/boot/admin/client/config/ClientRuntimeHints.java b/spring-boot-admin-client/src/main/java/de/codecentric/boot/admin/client/config/ClientRuntimeHints.java index 28b45c9fb32..b8f5ffaf2f8 100644 --- a/spring-boot-admin-client/src/main/java/de/codecentric/boot/admin/client/config/ClientRuntimeHints.java +++ b/spring-boot-admin-client/src/main/java/de/codecentric/boot/admin/client/config/ClientRuntimeHints.java @@ -21,9 +21,11 @@ import org.springframework.aot.hint.MemberCategory; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsRegistrar; +import org.springframework.boot.web.context.WebServerInitializedEvent; import org.springframework.context.annotation.Configuration; import de.codecentric.boot.admin.client.registration.Application; +import de.codecentric.boot.admin.client.registration.DefaultApplicationFactory; @Configuration public class ClientRuntimeHints implements RuntimeHintsRegistrar { @@ -42,7 +44,9 @@ private static void registerReflectionHints(RuntimeHints hints) { MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS) .registerConstructor(Application.Builder.class.getDeclaredConstructor(), ExecutableMode.INVOKE) .registerMethod(Application.Builder.class.getMethod("build"), ExecutableMode.INVOKE) - .registerMethod(Application.class.getMethod("builder"), ExecutableMode.INVOKE); + .registerMethod(Application.class.getMethod("builder"), ExecutableMode.INVOKE) + .registerMethod(DefaultApplicationFactory.class.getMethod("onWebServerInitialized", + WebServerInitializedEvent.class), ExecutableMode.INVOKE); } } diff --git a/spring-boot-admin-docs/pom.xml b/spring-boot-admin-docs/pom.xml index a9863138596..1a39b800fda 100644 --- a/spring-boot-admin-docs/pom.xml +++ b/spring-boot-admin-docs/pom.xml @@ -85,6 +85,11 @@ docs-maven-skin ${site.skin.version} + + org.asciidoctor + asciidoctor-converter-doxia-module + ${asciidoctor-converter-doxia-module.version} + @@ -95,7 +100,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.4.5 + 3.6.2 diff --git a/spring-boot-admin-docs/src/site/asciidoc/_server-clustering.adoc b/spring-boot-admin-docs/src/site/asciidoc/_server-clustering.adoc index 58afcfab885..4e53a680f7f 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/_server-clustering.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/_server-clustering.adoc @@ -16,7 +16,7 @@ include::{samples-dir}/spring-boot-admin-sample-hazelcast/pom.xml[tags=dependenc + [source,java,indent=0] ---- -include::{samples-dir}/spring-boot-admin-sample-hazelcast/src/main/java/de/codecentric/boot/admin/SpringBootAdminHazelcastApplication.java[tags=application-hazelcast] +include::{samples-dir}/spring-boot-admin-sample-hazelcast/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminHazelcastApplication.java[tags=application-hazelcast] ---- .Hazelcast configuration options diff --git a/spring-boot-admin-docs/src/site/asciidoc/client.adoc b/spring-boot-admin-docs/src/site/asciidoc/client.adoc index 350bca44028..f464dda78c1 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/client.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/client.adoc @@ -153,15 +153,15 @@ spring.boot.admin.client.password | spring.boot.admin.client.instance.health-url | Health-url to register with. Can be overridden in case the reachable URL is different (e.g. Docker). Must be unique in registry. -| Guessed based on management-url and `endpoints.health.id`. +| Guessed based on management-base-url and `endpoints.health.id`. | spring.boot.admin.client.instance.management-base-url | Base url for computing the management-url to register with. The path is inferred at runtime, and appended to the base url. -| Guessed based on `management.port`, service-url and `server.servlet-path`. +| Guessed based on `management.server.port`, service-url and `server.servlet-path`. | spring.boot.admin.client.instance.management-url | Management-url to register with. Can be overridden in case the reachable url is different (e.g. Docker). -| Guessed based on management-base-url and `management.context-path`. +| Guessed based on management-base-url and `management.server.base-path`. | spring.boot.admin.client.instance.service-base-url | Base url for computing the service-url to register with. The path is inferred at runtime, and appended to the base url. In Cloudfoundry environments you can switching to https like this: `spring.boot.admin.client.instance.service-base-url=https://${vcap.application.uris[0]}` @@ -184,7 +184,7 @@ spring.boot.admin.client.password * `IP`: Uses the IP returned by `InetAddress.getHostAddress()` + * `HOST_NAME`: Uses the host name of a single machine returned by `InetAddress.getHostName()` + * `CANONICAL_HOST_NAME`: Uses the FQDN returned by `InetAddress.geCanonicalHostName()` + - If `server.address` or `management.address` is set in the service, the value will overrule this property. + If `server.address` or `management.server.address` is set in the service, the value will overrule this property. | `CANONICAL_HOST_NAME` diff --git a/spring-boot-admin-docs/src/site/asciidoc/customize_http-headers.adoc b/spring-boot-admin-docs/src/site/asciidoc/customize_http-headers.adoc index e97a822b3f9..9ad16f49033 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/customize_http-headers.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/customize_http-headers.adoc @@ -5,5 +5,5 @@ In case you need to inject custom HTTP headers into the requests made to the mon [source,java,indent=0] ---- -include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SpringBootAdminServletApplication.java[tags=customization-http-headers-providers] +include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplication.java[tags=customization-http-headers-providers] ---- diff --git a/spring-boot-admin-docs/src/site/asciidoc/customize_interceptors.adoc b/spring-boot-admin-docs/src/site/asciidoc/customize_interceptors.adoc index 16c17895dc8..0d1fdf104e7 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/customize_interceptors.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/customize_interceptors.adoc @@ -6,5 +6,5 @@ This can be useful for auditing or adding some extra security checks. [source,java,indent=0] ---- -include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SpringBootAdminServletApplication.java[tags=customization-instance-exchange-filter-function] +include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplication.java[tags=customization-instance-exchange-filter-function] ---- diff --git a/spring-boot-admin-docs/src/site/asciidoc/customize_notifiers.adoc b/spring-boot-admin-docs/src/site/asciidoc/customize_notifiers.adoc index 601ca2f2f9a..7fcf2b08648 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/customize_notifiers.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/customize_notifiers.adoc @@ -6,5 +6,5 @@ You can add your own Notifiers by adding Spring Beans which implement the `Notif [source,java,indent=0] ---- -include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomNotifier.java[tags=customization-notifiers] +include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomNotifier.java[tags=customization-notifiers] ---- diff --git a/spring-boot-admin-docs/src/site/asciidoc/faq.adoc b/spring-boot-admin-docs/src/site/asciidoc/faq.adoc index f8593c6c0a2..e09dc907f7b 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/faq.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/faq.adoc @@ -5,3 +5,8 @@ Can I include spring-boot-admin into my business application?:: *tl;dr* You can, but you shouldn't. + You can set `spring.boot.admin.context-path` to alter the path where the UI and REST-API is served, but depending on the complexity of your application you might get in trouble. On the other hand in my opinion it makes no sense for an application to monitor itself. In case your application goes down your monitoring tool also does. + +Can I change or reload Spring Boot properties at runtime?:: + Yes, you can refresh the entire environment or set/update individual properties for both single instances as well as for the entire application. + Note, however, that the Spring Boot application needs to have https://docs.spring.io/spring-cloud-commons/docs/current/reference/html/#endpoints[Spring Cloud Commons] and `management.endpoint.env.post.enabled=true` in place. + Also check the details of `@RefreshScope` https://docs.spring.io/spring-cloud-commons/docs/current/reference/html/#refresh-scope. diff --git a/spring-boot-admin-docs/src/site/asciidoc/getting-started.adoc b/spring-boot-admin-docs/src/site/asciidoc/getting-started.adoc index b92e6bc060f..f0be06cbe94 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/getting-started.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/getting-started.adoc @@ -32,8 +32,7 @@ Since Spring Boot Admin relies on Spring Boot, you have to set up a Spring Boot + [source,java] ---- -@Configuration -@EnableAutoConfiguration +@SpringBootApplication @EnableAdminServer public class SpringBootAdminApplication { public static void main(String[] args) { diff --git a/spring-boot-admin-docs/src/site/asciidoc/security.adoc b/spring-boot-admin-docs/src/site/asciidoc/security.adoc index b89cd402531..45028dcacec 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/security.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/security.adoc @@ -9,7 +9,7 @@ By default `spring-boot-admin-server-ui` provides a login page and a logout butt A Spring Security configuration for your server could look like this: [source,java,indent=0] ---- -include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SecuritySecureConfig.java[tags=configuration-spring-security] +include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SecuritySecureConfig.java[tags=configuration-spring-security] ---- <1> Grants public access to all static assets and the login page. <2> Every other request must be authenticated. diff --git a/spring-boot-admin-docs/src/site/asciidoc/server-notifications.adoc b/spring-boot-admin-docs/src/site/asciidoc/server-notifications.adoc index fef3169ebf9..582f572adf1 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/server-notifications.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/server-notifications.adoc @@ -196,7 +196,7 @@ To enable https://www.hipchat.com/[Hipchat] notifications you need to create an [[slack-notifications]] === Slack Notifications === -To enable https://slack.com/[Slack] notifications you need to add a incoming Webhook under custom integrations on your Slack +To enable https://slack.com/[Slack] notifications you need to add an incoming Webhook under custom integrations on your Slack account and configure it appropriately. .Slack notifications configuration options @@ -216,15 +216,15 @@ account and configure it appropriately. | | spring.boot.admin.notify.slack.channel -| Optional channel name (without # at the beginning). If different than channel in Slack Webhooks settings +| Optional channel name (without # at the beginning). If different from channel in Slack Webhooks settings | | spring.boot.admin.notify.slack.icon -| Optional icon name (without surrounding colons). If different than icon in Slack Webhooks settings +| Optional icon name (without surrounding colons). If different from icon in Slack Webhooks settings | | spring.boot.admin.notify.slack.username -| Optional username to send notification if different than in Slack Webhooks settings +| Optional username to send notification if different from in Slack Webhooks settings | `Spring Boot Admin` | spring.boot.admin.notify.slack.message @@ -275,7 +275,7 @@ To enable https://sdelements.github.io/lets-chat/[Let's Chat] notifications you [[ms-teams-notifications]] === Microsoft Teams Notifications === -To enable Microsoft Teams notifications you need to setup a connector webhook url and set the appropriate configuration property. +To enable Microsoft Teams notifications you need to set up a connector webhook url and set the appropriate configuration property. .Microsoft Teams notifications configuration options |=== @@ -348,7 +348,7 @@ To enable https://telegram.org/[Telegram] notifications you need to create and a | `false` | spring.boot.admin.notify.telegram.parse_mode -| The parsing mode for the sent message. Currently ``HTML'` and `'Markdown'` are supported. +| The parsing mode for the sent message. Currently, ``HTML'` and `'Markdown'` are supported. | `'HTML'` | spring.boot.admin.notify.telegram.message @@ -356,6 +356,34 @@ To enable https://telegram.org/[Telegram] notifications you need to create and a | `+++"<strong>#{instance.registration.name}</strong>/#{instance.id} is <strong>#{event.statusInfo.status}</strong>"+++` |=== +[[webex-notifications]] +=== Webex Notifications === +To enable https://www.webex.com/[Webex] notifications, you need to set the appropriate configuration properties for `auth-token` and `room-id`. + +.Webex notifications configuration options +|=== +| Property name |Description |Default value + +| spring.boot.admin.notify.webex.enabled +| Enable Webex notifications +| `true` + +| spring.boot.admin.notify.webex.url +| The Webex server url to send the notifications to. +| "https://webexapis.com/v1/messages" + +| spring.boot.admin.notify.webex.auth-token +| The authentication token for your Webex account (e.g. `123456-ascbhuwbtzzk-abtabhixta-788654`). +| + +| spring.boot.admin.notify.webex.room-id +| Unique identifier for the target room in Webex. +| + +| spring.boot.admin.notify.webex.message +| Text to send. SpEL-expressions are supported. By default, messages will be sent as Markdown, so you can include Markdown formatting. +| `+++"*#{instance.registration.name}* (#{instance.id}) is *#{event.statusInfo.status}*"+++` +|=== [[discord-notifications]] === Discord Notifications === @@ -421,9 +449,9 @@ All Notifiers which are using a `RestTemplate` can be configured to use a proxy. === Notification Reminder === The `RemindingNotifier` sends reminders for down/offline applications, it delegates the sending of notifications to another notifier. -By default a reminder is triggered when a registered application changes to `DOWN` or `OFFLINE`. You can alter this behaviour via `setReminderStatuses()`. The reminder ends when either the status changes to a non-triggering status or the regarding application gets deregistered. +By default, a reminder is triggered when a registered application changes to `DOWN` or `OFFLINE`. You can alter this behaviour via `setReminderStatuses()`. The reminder ends when either the status changes to a non-triggering status or the regarding application gets deregistered. -By default the reminders are sent every 10 minutes, to change this use `setReminderPeriod()`. The `RemindingNotifier` itself doesn't start the background thread to send the reminders, you need to take care of this as shown in the given example below; +By default, the reminders are sent every 10 minutes, to change this use `setReminderPeriod()`. The `RemindingNotifier` itself doesn't start the background thread to send the reminders, you need to take care of this as shown in the given example below; .How to configure reminders [source,java] @@ -452,13 +480,27 @@ public class NotifierConfiguration { The `FilteringNotifier` allows you to filter certain notification based on rules you can add/remove at runtime. It delegates the sending of notifications to another notifier. If you add a `FilteringNotifier` to your `ApplicationContext` a RESTful interface on `notifications/filter` gets available. +The restful interface provides the following methods for getting, adding, and deleting notification filters: + +* `GET notifications/filter` +** Returns a list of all registered notification filters. Each containing the attributes `id`, `applicationName`, `expiry`, and `expired`. + +* `POST notifications/filters?instanceId=&applicationName=&ttl=` +** Posts a new notification filter for the application/instance of the given `instanceId` or `applicationName`. Either `instanceId` or `applicationName` must be set. The parameter `ttl` is optional and represents the expiration of the filter as an instant (the number of seconds from the epoch of `1970-01-01T00:00:00Z`). + +* `DELETE notifications/filters/{id}` +** Deletes the notification filter with the requested id from the filters. + +You may as well access all notification filter configurations via the main applications view inside SBA client, as seen in the screenshot below. + +image::images/notification-filter.png[Sample notification filters] -This notifier is useful if you don't want receive notifications when deploying your applications. Before stopping the application you can add an (expiring) filter either via a `POST` request. +A `FilteringNotifier` might be useful, for instance, if you don't want to receive notifications when deploying your applications. Before stopping the application, you can add an (expiring) filter via a `POST` request. .How to configure filtering [source,java,indent=0] ---- -include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/NotifierConfig.java[tags=configuration-filtering-notifier] +include::{samples-dir}/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/NotifierConfig.java[tags=configuration-filtering-notifier] ---- <1> Add the `FilteringNotifier` bean using a delegate (e.g. `MailNotifier` when configured) <2> Add the `RemindingNotifier` as primary bean using the `FilteringNotifier` as delegate. diff --git a/spring-boot-admin-docs/src/site/asciidoc/server.adoc b/spring-boot-admin-docs/src/site/asciidoc/server.adoc index 42ef3b90918..6f5fdc45fbb 100644 --- a/spring-boot-admin-docs/src/site/asciidoc/server.adoc +++ b/spring-boot-admin-docs/src/site/asciidoc/server.adoc @@ -22,6 +22,10 @@ In addition when the reverse proxy terminates the https connection, it may be ne | Time interval to check the status of instances. | 10,000ms +| spring.boot.admin.monitor.status-max-backoff +| The maximal backoff for status check retries (retry after error has exponential backoff, minimum backoff is 1 second). +| 60,000ms + | spring.boot.admin.monitor.status-lifetime | Lifetime of status. The status won't be updated as long the last status isn't expired. | 10,000ms @@ -30,12 +34,16 @@ In addition when the reverse proxy terminates the https connection, it may be ne | Time interval to check the info of instances. | 1m +| spring.boot.admin.monitor.info-max-backoff +| The maximal backoff for info check retries (retry after error has exponential backoff, minimum backoff is 1 second). +| 10m + | spring.boot.admin.monitor.info-lifetime | Lifetime of info. The info won't be updated as long the last info isn't expired. | 1m | spring.boot.admin.monitor.default-timeout -| Default timeout when making requests. Individual values for specific endpoints can be overridden using `spring.boot.admin.monitor.timeout.*`. +| Default timeout when making requests. Individual values for specific endpoints can be overridden using `spring.boot.admin.monitor.timeout.*`. However, for interval based tasks like `statusUpdate` (i.e. HealthCheck) there are some limitations: the `default-timeout` cannot be longer than the interval. If so, the specified value of the interval is used as timeout. | 10,000 | spring.boot.admin.monitor.timeout.* diff --git a/spring-boot-admin-docs/src/site/resources/images/notification-filter.png b/spring-boot-admin-docs/src/site/resources/images/notification-filter.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc62f13c6b3349257b1e6c846341cb0ccc9fd6b GIT binary patch literal 213707 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 - de.codecentric.boot.admin.SpringBootAdminConsulApplication + de.codecentric.boot.admin.sample.SpringBootAdminConsulApplication false diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-consul/src/main/java/de/codecentric/boot/admin/SpringBootAdminConsulApplication.java b/spring-boot-admin-samples/spring-boot-admin-sample-consul/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminConsulApplication.java similarity index 96% rename from spring-boot-admin-samples/spring-boot-admin-sample-consul/src/main/java/de/codecentric/boot/admin/SpringBootAdminConsulApplication.java rename to spring-boot-admin-samples/spring-boot-admin-sample-consul/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminConsulApplication.java index 8087e167e30..4d90c27a347 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-consul/src/main/java/de/codecentric/boot/admin/SpringBootAdminConsulApplication.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-consul/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminConsulApplication.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -33,8 +33,7 @@ import de.codecentric.boot.admin.server.config.AdminServerProperties; import de.codecentric.boot.admin.server.config.EnableAdminServer; -@Configuration(proxyBeanMethods = false) -@EnableAutoConfiguration +@SpringBootApplication @EnableDiscoveryClient @EnableAdminServer public class SpringBootAdminConsulApplication { diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-consul/src/test/java/de/codecentric/boot/admin/SpringBootAdminConsulApplicationTest.java b/spring-boot-admin-samples/spring-boot-admin-sample-consul/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminConsulApplicationTest.java similarity index 96% rename from spring-boot-admin-samples/spring-boot-admin-sample-consul/src/test/java/de/codecentric/boot/admin/SpringBootAdminConsulApplicationTest.java rename to spring-boot-admin-samples/spring-boot-admin-sample-consul/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminConsulApplicationTest.java index 68170721d38..5d529dc7ca3 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-consul/src/test/java/de/codecentric/boot/admin/SpringBootAdminConsulApplicationTest.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-consul/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminConsulApplicationTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-custom-ui/package-lock.json b/spring-boot-admin-samples/spring-boot-admin-sample-custom-ui/package-lock.json index 6d1a757a928..a017ddeb7d5 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-custom-ui/package-lock.json +++ b/spring-boot-admin-samples/spring-boot-admin-sample-custom-ui/package-lock.json @@ -8,37 +8,38 @@ "name": "spring-boot-admin-sample-custom-ui", "version": "0.0.0", "dependencies": { - "vue": "3.3.4" + "vue": "3.4.38" }, "devDependencies": { - "@vitejs/plugin-vue": "4.4.0", - "@vue-macros/reactivity-transform": "^0.3.0", - "vite": "4.4.11", - "vite-plugin-static-copy": "^0.17.0" + "@vitejs/plugin-vue": "5.1.2", + "@vue-macros/reactivity-transform": "^1.0.0", + "vite": "5.4.1", + "vite-plugin-static-copy": "^1.0.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -47,23 +48,38 @@ } }, "node_modules/@babel/types": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", - "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", - "dev": true, + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.11.tgz", - "integrity": "sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -77,9 +93,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.11.tgz", - "integrity": "sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -93,9 +109,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.11.tgz", - "integrity": "sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -109,9 +125,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.11.tgz", - "integrity": "sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -125,9 +141,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.11.tgz", - "integrity": "sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -141,9 +157,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.11.tgz", - "integrity": "sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -157,9 +173,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.11.tgz", - "integrity": "sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -173,9 +189,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.11.tgz", - "integrity": "sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -189,9 +205,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.11.tgz", - "integrity": "sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -205,9 +221,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.11.tgz", - "integrity": "sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -221,9 +237,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.11.tgz", - "integrity": "sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -237,9 +253,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.11.tgz", - "integrity": "sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -253,9 +269,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.11.tgz", - "integrity": "sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -269,9 +285,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.11.tgz", - "integrity": "sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -285,9 +301,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.11.tgz", - "integrity": "sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -301,9 +317,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.11.tgz", - "integrity": "sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -317,9 +333,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.11.tgz", - "integrity": "sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -333,9 +349,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.11.tgz", - "integrity": "sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -349,9 +365,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.11.tgz", - "integrity": "sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -365,9 +381,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.11.tgz", - "integrity": "sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -381,9 +397,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.11.tgz", - "integrity": "sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -397,9 +413,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.11.tgz", - "integrity": "sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -413,9 +429,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -453,9 +469,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz", - "integrity": "sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, "dependencies": { "@types/estree": "^1.0.0", @@ -466,7 +482,7 @@ "node": ">=14.0.0" }, "peerDependencies": { - "rollup": "^1.20.0||^2.0.0||^3.0.0" + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -474,37 +490,206 @@ } } }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", + "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", + "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", + "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", + "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", + "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", + "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", + "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", + "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", + "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", + "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", + "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", + "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", + "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "node_modules/@vitejs/plugin-vue": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz", - "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz", + "integrity": "sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A==", "dev": true, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^4.0.0", + "vite": "^5.0.0", "vue": "^3.2.25" } }, "node_modules/@vue-macros/common": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.8.0.tgz", - "integrity": "sha512-auDJJzE0z3uRe3867e0DsqcseKImktNf5ojCZgUKqiVxb2yTlwlgOVAYCgoep9oITqxkXQymSvFeKhedi8PhaA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.12.2.tgz", + "integrity": "sha512-+NGfhrPvPNOb3Wg9PNPEXPe0HTXmVe6XJawL1gi3cIjOSGIhpOdvmMT2cRuWb265IpA/PeL5Sqo0+DQnEDxLvw==", "dev": true, "dependencies": { - "@babel/types": "^7.22.17", - "@rollup/pluginutils": "^5.0.4", - "@vue/compiler-sfc": "^3.3.4", - "ast-kit": "^0.11.2", - "local-pkg": "^0.4.3", - "magic-string-ast": "^0.3.0" + "@babel/types": "^7.25.0", + "@rollup/pluginutils": "^5.1.0", + "@vue/compiler-sfc": "^3.4.34", + "ast-kit": "^1.0.1", + "local-pkg": "^0.5.0", + "magic-string-ast": "^0.6.2" }, "engines": { "node": ">=16.14.0" @@ -519,17 +704,17 @@ } }, "node_modules/@vue-macros/reactivity-transform": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/@vue-macros/reactivity-transform/-/reactivity-transform-0.3.23.tgz", - "integrity": "sha512-SubIg1GsNpQdIDJusrcA2FWBgwSY+4jmL0j6SJ6PU85r3rlS+uDhn6AUkqxeZRAdmJnrbGHXDyWUdygOZmWrSg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@vue-macros/reactivity-transform/-/reactivity-transform-1.0.3.tgz", + "integrity": "sha512-n6R9NBY33YIZ47p2+7Ylo87saqUiGoZtjgGCtuCr3eAqW3GJ2kH05WxgnwJFfmQFZav0e6KcmP0mIamTpwUFEQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.22.16", - "@vue-macros/common": "1.8.0", - "@vue/compiler-core": "^3.3.4", - "@vue/shared": "^3.3.4", - "magic-string": "^0.30.3", - "unplugin": "^1.4.0" + "@babel/parser": "^7.25.0", + "@vue-macros/common": "1.12.2", + "@vue/compiler-core": "^3.4.34", + "@vue/shared": "^3.4.34", + "magic-string": "^0.30.11", + "unplugin": "^1.12.0" }, "engines": { "node": ">=16.14.0" @@ -539,111 +724,100 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", - "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz", + "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==", "dependencies": { - "@babel/parser": "^7.21.3", - "@vue/shared": "3.3.4", + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.38", + "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", - "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz", + "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==", "dependencies": { - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-core": "3.4.38", + "@vue/shared": "3.4.38" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", - "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz", + "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==", "dependencies": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-ssr": "3.3.4", - "@vue/reactivity-transform": "3.3.4", - "@vue/shared": "3.3.4", + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.38", + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38", "estree-walker": "^2.0.2", - "magic-string": "^0.30.0", - "postcss": "^8.1.10", - "source-map-js": "^1.0.2" + "magic-string": "^0.30.10", + "postcss": "^8.4.40", + "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", - "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz", + "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==", "dependencies": { - "@vue/compiler-dom": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-dom": "3.4.38", + "@vue/shared": "3.4.38" } }, "node_modules/@vue/reactivity": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", - "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.38.tgz", + "integrity": "sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==", "dependencies": { - "@vue/shared": "3.3.4" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", - "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", - "dependencies": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.0" + "@vue/shared": "3.4.38" } }, "node_modules/@vue/runtime-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", - "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.38.tgz", + "integrity": "sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==", "dependencies": { - "@vue/reactivity": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/reactivity": "3.4.38", + "@vue/shared": "3.4.38" } }, "node_modules/@vue/runtime-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", - "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz", + "integrity": "sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==", "dependencies": { - "@vue/runtime-core": "3.3.4", - "@vue/shared": "3.3.4", - "csstype": "^3.1.1" + "@vue/reactivity": "3.4.38", + "@vue/runtime-core": "3.4.38", + "@vue/shared": "3.4.38", + "csstype": "^3.1.3" } }, "node_modules/@vue/server-renderer": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", - "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.38.tgz", + "integrity": "sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==", "dependencies": { - "@vue/compiler-ssr": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38" }, "peerDependencies": { - "vue": "3.3.4" + "vue": "3.4.38" } }, "node_modules/@vue/shared": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", - "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz", + "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==" }, "node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -666,14 +840,13 @@ } }, "node_modules/ast-kit": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-0.11.2.tgz", - "integrity": "sha512-Q0DjXK4ApbVoIf9GLyCo252tUH44iTnD/hiJ2TQaJeydYWSpKk0sI34+WMel8S9Wt5pbLgG02oJ+gkgX5DV3sQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-1.0.1.tgz", + "integrity": "sha512-XdXKlmX3YIrGKJS7d324CAbswH+C1klMCIRQ4VRy0+iPxGeP2scVOoYd09/V6uGjGAi/ZuEwBLzT7xBerSKNQg==", "dev": true, "dependencies": { - "@babel/parser": "^7.22.14", - "@rollup/pluginutils": "^5.0.4", - "pathe": "^1.1.1" + "@babel/parser": "^7.24.8", + "pathe": "^1.1.2" }, "engines": { "node": ">=16.14.0" @@ -701,16 +874,10 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -723,19 +890,33 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/esbuild": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.11.tgz", - "integrity": "sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, "bin": { @@ -745,28 +926,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.11", - "@esbuild/android-arm64": "0.18.11", - "@esbuild/android-x64": "0.18.11", - "@esbuild/darwin-arm64": "0.18.11", - "@esbuild/darwin-x64": "0.18.11", - "@esbuild/freebsd-arm64": "0.18.11", - "@esbuild/freebsd-x64": "0.18.11", - "@esbuild/linux-arm": "0.18.11", - "@esbuild/linux-arm64": "0.18.11", - "@esbuild/linux-ia32": "0.18.11", - "@esbuild/linux-loong64": "0.18.11", - "@esbuild/linux-mips64el": "0.18.11", - "@esbuild/linux-ppc64": "0.18.11", - "@esbuild/linux-riscv64": "0.18.11", - "@esbuild/linux-s390x": "0.18.11", - "@esbuild/linux-x64": "0.18.11", - "@esbuild/netbsd-x64": "0.18.11", - "@esbuild/openbsd-x64": "0.18.11", - "@esbuild/sunos-x64": "0.18.11", - "@esbuild/win32-arm64": "0.18.11", - "@esbuild/win32-ia32": "0.18.11", - "@esbuild/win32-x64": "0.18.11" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/estree-walker": { @@ -826,9 +1008,9 @@ } }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -907,6 +1089,12 @@ "node": ">=0.12.0" } }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -920,10 +1108,14 @@ } }, "node_modules/local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", "dev": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, "engines": { "node": ">=14" }, @@ -932,23 +1124,20 @@ } }, "node_modules/magic-string": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", - "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/magic-string-ast": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.3.0.tgz", - "integrity": "sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.6.2.tgz", + "integrity": "sha512-oN3Bcd7ZVt+0VGEs7402qR/tjgjbM7kPlH/z7ufJnzTLVBzXJITRHOJiwMmmYMgZfdoWQsfQcY+iKlxiBppnMA==", "dev": true, "dependencies": { - "magic-string": "^0.30.2" + "magic-string": "^0.30.10" }, "engines": { "node": ">=16.14.0" @@ -976,10 +1165,22 @@ "node": ">=8.6" } }, + "node_modules/mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dev": true, + "dependencies": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -1003,15 +1204,15 @@ } }, "node_modules/pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -1025,10 +1226,21 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, "node_modules/postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "funding": [ { "type": "opencollective", @@ -1044,9 +1256,9 @@ } ], "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -1095,18 +1307,34 @@ } }, "node_modules/rollup": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.2.tgz", - "integrity": "sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", + "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.13.0", + "@rollup/rollup-android-arm64": "4.13.0", + "@rollup/rollup-darwin-arm64": "4.13.0", + "@rollup/rollup-darwin-x64": "4.13.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", + "@rollup/rollup-linux-arm64-gnu": "4.13.0", + "@rollup/rollup-linux-arm64-musl": "4.13.0", + "@rollup/rollup-linux-riscv64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-musl": "4.13.0", + "@rollup/rollup-win32-arm64-msvc": "4.13.0", + "@rollup/rollup-win32-ia32-msvc": "4.13.0", + "@rollup/rollup-win32-x64-msvc": "4.13.0", "fsevents": "~2.3.2" } }, @@ -1153,9 +1381,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -1164,7 +1392,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, "engines": { "node": ">=4" } @@ -1181,6 +1408,12 @@ "node": ">=8.0" } }, + "node_modules/ufo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true + }, "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -1191,44 +1424,48 @@ } }, "node_modules/unplugin": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.4.0.tgz", - "integrity": "sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.12.0.tgz", + "integrity": "sha512-KeczzHl2sATPQUx1gzo+EnUkmN4VmGBYRRVOZSGvGITE9rGHRDGqft6ONceP3vgXcyJ2XjX5axG5jMWUwNCYLw==", "dev": true, "dependencies": { - "acorn": "^8.9.0", - "chokidar": "^3.5.3", + "acorn": "^8.12.1", + "chokidar": "^3.6.0", "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.5.0" + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/vite": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", - "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.1.tgz", + "integrity": "sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==", "dev": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.21.3", + "postcss": "^8.4.41", + "rollup": "^4.13.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -1246,6 +1483,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -1258,9 +1498,9 @@ } }, "node_modules/vite-plugin-static-copy": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-0.17.0.tgz", - "integrity": "sha512-2HpNbHfDt8SDy393AGXh9llHkc8FJMQkI8s3T5WsH3SWLMO+f5cFIyPErl4yGKU9Uh3Vaqsd4lHZYTf042fQ2A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.6.tgz", + "integrity": "sha512-3uSvsMwDVFZRitqoWHj0t4137Kz7UynnJeq1EZlRW7e25h2068fyIZX4ORCCOAkfp1FklGxJNVJBkBOD+PZIew==", "dev": true, "dependencies": { "chokidar": "^3.5.3", @@ -1269,22 +1509,30 @@ "picocolors": "^1.0.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" + "vite": "^5.0.0" } }, "node_modules/vue": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", - "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.38.tgz", + "integrity": "sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==", "dependencies": { - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-sfc": "3.3.4", - "@vue/runtime-dom": "3.3.4", - "@vue/server-renderer": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-sfc": "3.4.38", + "@vue/runtime-dom": "3.4.38", + "@vue/server-renderer": "3.4.38", + "@vue/shared": "3.4.38" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/webpack-sources": { @@ -1297,199 +1545,206 @@ } }, "node_modules/webpack-virtual-modules": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", - "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "dev": true } }, "dependencies": { "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==" }, "@babel/helper-validator-identifier": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz", - "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==", - "dev": true + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==" }, "@babel/parser": { - "version": "7.22.16", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", - "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==" + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "requires": { + "@babel/types": "^7.25.2" + } }, "@babel/types": { - "version": "7.22.17", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.17.tgz", - "integrity": "sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==", - "dev": true, + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.15", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" } }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.11.tgz", - "integrity": "sha512-q4qlUf5ucwbUJZXF5tEQ8LF7y0Nk4P58hOsGk3ucY0oCwgQqAnqXVbUuahCddVHfrxmpyewRpiTHwVHIETYu7Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.11.tgz", - "integrity": "sha512-snieiq75Z1z5LJX9cduSAjUr7vEI1OdlzFPMw0HH5YI7qQHDd3qs+WZoMrWYDsfRJSq36lIA6mfZBkvL46KoIw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.11.tgz", - "integrity": "sha512-iPuoxQEV34+hTF6FT7om+Qwziv1U519lEOvekXO9zaMMlT9+XneAhKL32DW3H7okrCOBQ44BMihE8dclbZtTuw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.11.tgz", - "integrity": "sha512-Gm0QkI3k402OpfMKyQEEMG0RuW2LQsSmI6OeO4El2ojJMoF5NLYb3qMIjvbG/lbMeLOGiW6ooU8xqc+S0fgz2w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.11.tgz", - "integrity": "sha512-N15Vzy0YNHu6cfyDOjiyfJlRJCB/ngKOAvoBf1qybG3eOq0SL2Lutzz9N7DYUbb7Q23XtHPn6lMDF6uWbGv9Fw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.11.tgz", - "integrity": "sha512-atEyuq6a3omEY5qAh5jIORWk8MzFnCpSTUruBgeyN9jZq1K/QI9uke0ATi3MHu4L8c59CnIi4+1jDKMuqmR71A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.11.tgz", - "integrity": "sha512-XtuPrEfBj/YYYnAAB7KcorzzpGTvOr/dTtXPGesRfmflqhA4LMF0Gh/n5+a9JBzPuJ+CGk17CA++Hmr1F/gI0Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.11.tgz", - "integrity": "sha512-Idipz+Taso/toi2ETugShXjQ3S59b6m62KmLHkJlSq/cBejixmIydqrtM2XTvNCywFl3VC7SreSf6NV0i6sRyg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.11.tgz", - "integrity": "sha512-c6Vh2WS9VFKxKZ2TvJdA7gdy0n6eSy+yunBvv4aqNCEhSWVor1TU43wNRp2YLO9Vng2G+W94aRz+ILDSwAiYog==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.11.tgz", - "integrity": "sha512-S3hkIF6KUqRh9n1Q0dSyYcWmcVa9Cg+mSoZEfFuzoYXXsk6196qndrM+ZiHNwpZKi3XOXpShZZ+9dfN5ykqjjw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.11.tgz", - "integrity": "sha512-MRESANOoObQINBA+RMZW+Z0TJWpibtE7cPFnahzyQHDCA9X9LOmGh68MVimZlM9J8n5Ia8lU773te6O3ILW8kw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.11.tgz", - "integrity": "sha512-qVyPIZrXNMOLYegtD1u8EBccCrBVshxMrn5MkuFc3mEVsw7CCQHaqZ4jm9hbn4gWY95XFnb7i4SsT3eflxZsUg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.11.tgz", - "integrity": "sha512-T3yd8vJXfPirZaUOoA9D2ZjxZX4Gr3QuC3GztBJA6PklLotc/7sXTOuuRkhE9W/5JvJP/K9b99ayPNAD+R+4qQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.11.tgz", - "integrity": "sha512-evUoRPWiwuFk++snjH9e2cAjF5VVSTj+Dnf+rkO/Q20tRqv+644279TZlPK8nUGunjPAtQRCj1jQkDAvL6rm2w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.11.tgz", - "integrity": "sha512-/SlRJ15XR6i93gRWquRxYCfhTeC5PdqEapKoLbX63PLCmAkXZHY2uQm2l9bN0oPHBsOw2IswRZctMYS0MijFcg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.11.tgz", - "integrity": "sha512-xcncej+wF16WEmIwPtCHi0qmx1FweBqgsRtEL1mSHLFR6/mb3GEZfLQnx+pUDfRDEM4DQF8dpXIW7eDOZl1IbA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.11.tgz", - "integrity": "sha512-aSjMHj/F7BuS1CptSXNg6S3M4F3bLp5wfFPIJM+Km2NfIVfFKhdmfHF9frhiCLIGVzDziggqWll0B+9AUbud/Q==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.11.tgz", - "integrity": "sha512-tNBq+6XIBZtht0xJGv7IBB5XaSyvYPCm1PxJ33zLQONdZoLVM0bgGqUrXnJyiEguD9LU4AHiu+GCXy/Hm9LsdQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.11.tgz", - "integrity": "sha512-kxfbDOrH4dHuAAOhr7D7EqaYf+W45LsAOOhAet99EyuxxQmjbk8M9N4ezHcEiCYPaiW8Dj3K26Z2V17Gt6p3ng==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.11.tgz", - "integrity": "sha512-Sh0dDRyk1Xi348idbal7lZyfSkjhJsdFeuC13zqdipsvMetlGiFQNdO+Yfp6f6B4FbyQm7qsk16yaZk25LChzg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.11.tgz", - "integrity": "sha512-o9JUIKF1j0rqJTFbIoF4bXj6rvrTZYOrfRcGyL0Vm5uJ/j5CkBD/51tpdxe9lXEDouhRgdr/BYzUrDOvrWwJpg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.11.tgz", - "integrity": "sha512-rQI4cjLHd2hGsM1LqgDI7oOCYbQ6IBOVsX9ejuRMSze0GqXUG2ekwiKkiBU1pRGSeCqFFHxTrcEydB2Hyoz9CA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "dev": true, "optional": true }, "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -1518,9 +1773,9 @@ } }, "@rollup/pluginutils": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.4.tgz", - "integrity": "sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", "dev": true, "requires": { "@types/estree": "^1.0.0", @@ -1528,150 +1783,230 @@ "picomatch": "^2.3.1" } }, + "@rollup/rollup-android-arm-eabi": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.13.0.tgz", + "integrity": "sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-android-arm64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.13.0.tgz", + "integrity": "sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-arm64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.13.0.tgz", + "integrity": "sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==", + "dev": true, + "optional": true + }, + "@rollup/rollup-darwin-x64": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.13.0.tgz", + "integrity": "sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.13.0.tgz", + "integrity": "sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.13.0.tgz", + "integrity": "sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm64-musl": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.13.0.tgz", + "integrity": "sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-riscv64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.13.0.tgz", + "integrity": "sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-gnu": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.13.0.tgz", + "integrity": "sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-x64-musl": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.13.0.tgz", + "integrity": "sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-arm64-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.13.0.tgz", + "integrity": "sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-ia32-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.13.0.tgz", + "integrity": "sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-win32-x64-msvc": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.13.0.tgz", + "integrity": "sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==", + "dev": true, + "optional": true + }, "@types/estree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", - "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, "@vitejs/plugin-vue": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz", - "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz", + "integrity": "sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A==", "dev": true, "requires": {} }, "@vue-macros/common": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.8.0.tgz", - "integrity": "sha512-auDJJzE0z3uRe3867e0DsqcseKImktNf5ojCZgUKqiVxb2yTlwlgOVAYCgoep9oITqxkXQymSvFeKhedi8PhaA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-1.12.2.tgz", + "integrity": "sha512-+NGfhrPvPNOb3Wg9PNPEXPe0HTXmVe6XJawL1gi3cIjOSGIhpOdvmMT2cRuWb265IpA/PeL5Sqo0+DQnEDxLvw==", "dev": true, "requires": { - "@babel/types": "^7.22.17", - "@rollup/pluginutils": "^5.0.4", - "@vue/compiler-sfc": "^3.3.4", - "ast-kit": "^0.11.2", - "local-pkg": "^0.4.3", - "magic-string-ast": "^0.3.0" + "@babel/types": "^7.25.0", + "@rollup/pluginutils": "^5.1.0", + "@vue/compiler-sfc": "^3.4.34", + "ast-kit": "^1.0.1", + "local-pkg": "^0.5.0", + "magic-string-ast": "^0.6.2" } }, "@vue-macros/reactivity-transform": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/@vue-macros/reactivity-transform/-/reactivity-transform-0.3.23.tgz", - "integrity": "sha512-SubIg1GsNpQdIDJusrcA2FWBgwSY+4jmL0j6SJ6PU85r3rlS+uDhn6AUkqxeZRAdmJnrbGHXDyWUdygOZmWrSg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@vue-macros/reactivity-transform/-/reactivity-transform-1.0.3.tgz", + "integrity": "sha512-n6R9NBY33YIZ47p2+7Ylo87saqUiGoZtjgGCtuCr3eAqW3GJ2kH05WxgnwJFfmQFZav0e6KcmP0mIamTpwUFEQ==", "dev": true, "requires": { - "@babel/parser": "^7.22.16", - "@vue-macros/common": "1.8.0", - "@vue/compiler-core": "^3.3.4", - "@vue/shared": "^3.3.4", - "magic-string": "^0.30.3", - "unplugin": "^1.4.0" + "@babel/parser": "^7.25.0", + "@vue-macros/common": "1.12.2", + "@vue/compiler-core": "^3.4.34", + "@vue/shared": "^3.4.34", + "magic-string": "^0.30.11", + "unplugin": "^1.12.0" } }, "@vue/compiler-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", - "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz", + "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==", "requires": { - "@babel/parser": "^7.21.3", - "@vue/shared": "3.3.4", + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.38", + "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" } }, "@vue/compiler-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", - "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz", + "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==", "requires": { - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-core": "3.4.38", + "@vue/shared": "3.4.38" } }, "@vue/compiler-sfc": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", - "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz", + "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==", "requires": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-ssr": "3.3.4", - "@vue/reactivity-transform": "3.3.4", - "@vue/shared": "3.3.4", + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.38", + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38", "estree-walker": "^2.0.2", - "magic-string": "^0.30.0", - "postcss": "^8.1.10", - "source-map-js": "^1.0.2" + "magic-string": "^0.30.10", + "postcss": "^8.4.40", + "source-map-js": "^1.2.0" } }, "@vue/compiler-ssr": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", - "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz", + "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==", "requires": { - "@vue/compiler-dom": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-dom": "3.4.38", + "@vue/shared": "3.4.38" } }, "@vue/reactivity": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", - "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.38.tgz", + "integrity": "sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==", "requires": { - "@vue/shared": "3.3.4" - } - }, - "@vue/reactivity-transform": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", - "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", - "requires": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.0" + "@vue/shared": "3.4.38" } }, "@vue/runtime-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", - "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.38.tgz", + "integrity": "sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==", "requires": { - "@vue/reactivity": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/reactivity": "3.4.38", + "@vue/shared": "3.4.38" } }, "@vue/runtime-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", - "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz", + "integrity": "sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==", "requires": { - "@vue/runtime-core": "3.3.4", - "@vue/shared": "3.3.4", - "csstype": "^3.1.1" + "@vue/reactivity": "3.4.38", + "@vue/runtime-core": "3.4.38", + "@vue/shared": "3.4.38", + "csstype": "^3.1.3" } }, "@vue/server-renderer": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", - "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.38.tgz", + "integrity": "sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==", "requires": { - "@vue/compiler-ssr": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38" } }, "@vue/shared": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", - "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz", + "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==" }, "acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true }, "anymatch": { @@ -1685,14 +2020,13 @@ } }, "ast-kit": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-0.11.2.tgz", - "integrity": "sha512-Q0DjXK4ApbVoIf9GLyCo252tUH44iTnD/hiJ2TQaJeydYWSpKk0sI34+WMel8S9Wt5pbLgG02oJ+gkgX5DV3sQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ast-kit/-/ast-kit-1.0.1.tgz", + "integrity": "sha512-XdXKlmX3YIrGKJS7d324CAbswH+C1klMCIRQ4VRy0+iPxGeP2scVOoYd09/V6uGjGAi/ZuEwBLzT7xBerSKNQg==", "dev": true, "requires": { - "@babel/parser": "^7.22.14", - "@rollup/pluginutils": "^5.0.4", - "pathe": "^1.1.1" + "@babel/parser": "^7.24.8", + "pathe": "^1.1.2" } }, "binary-extensions": { @@ -1711,9 +2045,9 @@ } }, "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "requires": { "anymatch": "~3.1.2", @@ -1727,38 +2061,44 @@ } }, "csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" }, "esbuild": { - "version": "0.18.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.11.tgz", - "integrity": "sha512-i8u6mQF0JKJUlGR3OdFLKldJQMMs8OqM9Cc3UCi9XXziJ9WERM5bfkHaEAy0YAvPRMgqSW55W7xYn84XtEFTtA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "requires": { - "@esbuild/android-arm": "0.18.11", - "@esbuild/android-arm64": "0.18.11", - "@esbuild/android-x64": "0.18.11", - "@esbuild/darwin-arm64": "0.18.11", - "@esbuild/darwin-x64": "0.18.11", - "@esbuild/freebsd-arm64": "0.18.11", - "@esbuild/freebsd-x64": "0.18.11", - "@esbuild/linux-arm": "0.18.11", - "@esbuild/linux-arm64": "0.18.11", - "@esbuild/linux-ia32": "0.18.11", - "@esbuild/linux-loong64": "0.18.11", - "@esbuild/linux-mips64el": "0.18.11", - "@esbuild/linux-ppc64": "0.18.11", - "@esbuild/linux-riscv64": "0.18.11", - "@esbuild/linux-s390x": "0.18.11", - "@esbuild/linux-x64": "0.18.11", - "@esbuild/netbsd-x64": "0.18.11", - "@esbuild/openbsd-x64": "0.18.11", - "@esbuild/sunos-x64": "0.18.11", - "@esbuild/win32-arm64": "0.18.11", - "@esbuild/win32-ia32": "0.18.11", - "@esbuild/win32-x64": "0.18.11" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "estree-walker": { @@ -1809,9 +2149,9 @@ } }, "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "optional": true }, @@ -1868,6 +2208,12 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -1879,26 +2225,30 @@ } }, "local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", - "dev": true + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dev": true, + "requires": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + } }, "magic-string": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", - "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "requires": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "magic-string-ast": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.3.0.tgz", - "integrity": "sha512-0shqecEPgdFpnI3AP90epXyxZy9g6CRZ+SZ7BcqFwYmtFEnZ1jpevcV5HoyVnlDS9gCnc1UIg3Rsvp3Ci7r8OA==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/magic-string-ast/-/magic-string-ast-0.6.2.tgz", + "integrity": "sha512-oN3Bcd7ZVt+0VGEs7402qR/tjgjbM7kPlH/z7ufJnzTLVBzXJITRHOJiwMmmYMgZfdoWQsfQcY+iKlxiBppnMA==", "dev": true, "requires": { - "magic-string": "^0.30.2" + "magic-string": "^0.30.10" } }, "merge2": { @@ -1917,10 +2267,22 @@ "picomatch": "^2.3.1" } }, + "mlly": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.2.tgz", + "integrity": "sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==", + "dev": true, + "requires": { + "acorn": "^8.10.0", + "pathe": "^1.1.1", + "pkg-types": "^1.0.3", + "ufo": "^1.3.0" + } + }, "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" }, "normalize-path": { "version": "3.0.0", @@ -1929,15 +2291,15 @@ "dev": true }, "pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "picomatch": { "version": "2.3.1", @@ -1945,14 +2307,25 @@ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, + "pkg-types": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", + "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "dev": true, + "requires": { + "jsonc-parser": "^3.2.0", + "mlly": "^1.2.0", + "pathe": "^1.1.0" + } + }, "postcss": { - "version": "8.4.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.27.tgz", - "integrity": "sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" } }, "queue-microtask": { @@ -1977,11 +2350,25 @@ "dev": true }, "rollup": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.2.tgz", - "integrity": "sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.13.0.tgz", + "integrity": "sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==", "dev": true, "requires": { + "@rollup/rollup-android-arm-eabi": "4.13.0", + "@rollup/rollup-android-arm64": "4.13.0", + "@rollup/rollup-darwin-arm64": "4.13.0", + "@rollup/rollup-darwin-x64": "4.13.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.13.0", + "@rollup/rollup-linux-arm64-gnu": "4.13.0", + "@rollup/rollup-linux-arm64-musl": "4.13.0", + "@rollup/rollup-linux-riscv64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-gnu": "4.13.0", + "@rollup/rollup-linux-x64-musl": "4.13.0", + "@rollup/rollup-win32-arm64-msvc": "4.13.0", + "@rollup/rollup-win32-ia32-msvc": "4.13.0", + "@rollup/rollup-win32-x64-msvc": "4.13.0", + "@types/estree": "1.0.5", "fsevents": "~2.3.2" } }, @@ -2008,15 +2395,14 @@ } }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-regex-range": { "version": "5.0.1", @@ -2027,6 +2413,12 @@ "is-number": "^7.0.0" } }, + "ufo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.3.2.tgz", + "integrity": "sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==", + "dev": true + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -2034,33 +2426,33 @@ "dev": true }, "unplugin": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.4.0.tgz", - "integrity": "sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.12.0.tgz", + "integrity": "sha512-KeczzHl2sATPQUx1gzo+EnUkmN4VmGBYRRVOZSGvGITE9rGHRDGqft6ONceP3vgXcyJ2XjX5axG5jMWUwNCYLw==", "dev": true, "requires": { - "acorn": "^8.9.0", - "chokidar": "^3.5.3", + "acorn": "^8.12.1", + "chokidar": "^3.6.0", "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.5.0" + "webpack-virtual-modules": "^0.6.2" } }, "vite": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", - "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.1.tgz", + "integrity": "sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==", "dev": true, "requires": { - "esbuild": "^0.18.10", - "fsevents": "~2.3.2", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.21.3", + "fsevents": "~2.3.3", + "postcss": "^8.4.41", + "rollup": "^4.13.0" } }, "vite-plugin-static-copy": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-0.17.0.tgz", - "integrity": "sha512-2HpNbHfDt8SDy393AGXh9llHkc8FJMQkI8s3T5WsH3SWLMO+f5cFIyPErl4yGKU9Uh3Vaqsd4lHZYTf042fQ2A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.6.tgz", + "integrity": "sha512-3uSvsMwDVFZRitqoWHj0t4137Kz7UynnJeq1EZlRW7e25h2068fyIZX4ORCCOAkfp1FklGxJNVJBkBOD+PZIew==", "dev": true, "requires": { "chokidar": "^3.5.3", @@ -2070,15 +2462,15 @@ } }, "vue": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", - "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.38.tgz", + "integrity": "sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==", "requires": { - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-sfc": "3.3.4", - "@vue/runtime-dom": "3.3.4", - "@vue/server-renderer": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-sfc": "3.4.38", + "@vue/runtime-dom": "3.4.38", + "@vue/server-renderer": "3.4.38", + "@vue/shared": "3.4.38" } }, "webpack-sources": { @@ -2088,9 +2480,9 @@ "dev": true }, "webpack-virtual-modules": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", - "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "dev": true } } diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-custom-ui/package.json b/spring-boot-admin-samples/spring-boot-admin-sample-custom-ui/package.json index dbf19d93580..bfe1d402dd6 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-custom-ui/package.json +++ b/spring-boot-admin-samples/spring-boot-admin-sample-custom-ui/package.json @@ -10,13 +10,13 @@ "preview": "vite preview" }, "dependencies": { - "vue": "3.3.4" + "vue": "3.4.38" }, "devDependencies": { - "@vitejs/plugin-vue": "4.4.0", - "@vue-macros/reactivity-transform": "^0.3.0", - "vite": "4.4.11", - "vite-plugin-static-copy": "^0.17.0" + "@vitejs/plugin-vue": "5.1.2", + "@vue-macros/reactivity-transform": "^1.0.0", + "vite": "5.4.1", + "vite-plugin-static-copy": "^1.0.0" }, "browserslist": [ "> 1%", diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/main/docker/Dockerfile b/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/main/docker/Dockerfile index fde36de487a..ec6e9bee478 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/main/docker/Dockerfile +++ b/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/main/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM java:9 +FROM eclipse-temurin:21 VOLUME /tmp ADD target/spring-boot-admin-sample-eureka.jar /app.jar RUN bash -c 'touch /app.jar' diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/main/java/de/codecentric/boot/admin/SpringBootAdminEurekaApplication.java b/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/main/java/de/codecentric/boot/admin/SpringBootAdminEurekaApplication.java index 3b680ce5207..8c0aaa63722 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/main/java/de/codecentric/boot/admin/SpringBootAdminEurekaApplication.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/main/java/de/codecentric/boot/admin/SpringBootAdminEurekaApplication.java @@ -16,19 +16,21 @@ package de.codecentric.boot.admin; +import java.net.URI; + import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; -import org.springframework.http.HttpMethod; import org.springframework.security.config.Customizer; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.web.SecurityFilterChain; -import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; -import org.springframework.security.web.csrf.CookieCsrfTokenRepository; -import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import org.springframework.security.config.web.server.ServerHttpSecurity; +import org.springframework.security.web.server.SecurityWebFilterChain; +import org.springframework.security.web.server.authentication.RedirectServerAuthenticationSuccessHandler; +import org.springframework.security.web.server.authentication.ServerAuthenticationSuccessHandler; +import org.springframework.security.web.server.authentication.logout.RedirectServerLogoutSuccessHandler; +import org.springframework.security.web.server.authentication.logout.ServerLogoutSuccessHandler; import de.codecentric.boot.admin.server.config.AdminServerProperties; import de.codecentric.boot.admin.server.config.EnableAdminServer; @@ -39,72 +41,58 @@ @EnableAdminServer public class SpringBootAdminEurekaApplication { + private final AdminServerProperties adminServer; + + public SpringBootAdminEurekaApplication(AdminServerProperties adminServer) { + this.adminServer = adminServer; + } + public static void main(String[] args) { SpringApplication.run(SpringBootAdminEurekaApplication.class, args); } + @Bean @Profile("insecure") - @Configuration(proxyBeanMethods = false) - public static class SecurityPermitAllConfig { - - private final String adminContextPath; - - public SecurityPermitAllConfig(AdminServerProperties adminServerProperties) { - this.adminContextPath = adminServerProperties.getContextPath(); - } - - @Bean - protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception { - http.authorizeHttpRequests((authorizeRequests) -> authorizeRequests.anyRequest().permitAll()) - .csrf((csrf) -> csrf.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) - .ignoringRequestMatchers( - new AntPathRequestMatcher(this.adminContextPath + "/instances", HttpMethod.POST.toString()), - new AntPathRequestMatcher(this.adminContextPath + "/instances/*", - HttpMethod.DELETE.toString()), - new AntPathRequestMatcher(this.adminContextPath + "/actuator/**"))); - - return http.build(); - } - + public SecurityWebFilterChain securityWebFilterChainPermitAll(ServerHttpSecurity http) { + return http.authorizeExchange((authorizeExchange) -> authorizeExchange.anyExchange().permitAll()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) + .build(); } + @Bean @Profile("secure") - @Configuration(proxyBeanMethods = false) - public static class SecuritySecureConfig { - - private final String adminContextPath; - - public SecuritySecureConfig(AdminServerProperties adminServerProperties) { - this.adminContextPath = adminServerProperties.getContextPath(); - } - - @Bean - protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception { - SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); - successHandler.setTargetUrlParameter("redirectTo"); - successHandler.setDefaultTargetUrl(this.adminContextPath + "/"); - - http.authorizeHttpRequests((authorizeRequests) -> authorizeRequests - .requestMatchers(new AntPathRequestMatcher(this.adminContextPath + "/assets/**")) - .permitAll() - .requestMatchers(new AntPathRequestMatcher(this.adminContextPath + "/login")) - .permitAll() - .anyRequest() - .authenticated()) - .formLogin((formLogin) -> formLogin.loginPage(this.adminContextPath + "/login") - .successHandler(successHandler)) - .logout((logout) -> logout.logoutUrl(this.adminContextPath + "/logout")) - .httpBasic(Customizer.withDefaults()) - .csrf((csrf) -> csrf.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) - .ignoringRequestMatchers( - new AntPathRequestMatcher(this.adminContextPath + "/instances", HttpMethod.POST.toString()), - new AntPathRequestMatcher(this.adminContextPath + "/instances/*", - HttpMethod.DELETE.toString()), - new AntPathRequestMatcher(this.adminContextPath + "/actuator/**"))); + public SecurityWebFilterChain securityWebFilterChainSecure(ServerHttpSecurity http) { + return http + .authorizeExchange( + (authorizeExchange) -> authorizeExchange.pathMatchers(this.adminServer.path("/assets/**")) + .permitAll() + .pathMatchers("/actuator/health/**") + .permitAll() + .pathMatchers(this.adminServer.path("/login")) + .permitAll() + .anyExchange() + .authenticated()) + .formLogin((formLogin) -> formLogin.loginPage(this.adminServer.path("/login")) + .authenticationSuccessHandler(loginSuccessHandler(this.adminServer.path("/")))) + .logout((logout) -> logout.logoutUrl(this.adminServer.path("/logout")) + .logoutSuccessHandler(logoutSuccessHandler(this.adminServer.path("/login?logout")))) + .httpBasic(Customizer.withDefaults()) + .csrf(ServerHttpSecurity.CsrfSpec::disable) + .build(); + } - return http.build(); - } + // The following two methods are only required when setting a custom base-path (see + // 'basepath' profile in application.yml) + private ServerLogoutSuccessHandler logoutSuccessHandler(String uri) { + RedirectServerLogoutSuccessHandler successHandler = new RedirectServerLogoutSuccessHandler(); + successHandler.setLogoutSuccessUrl(URI.create(uri)); + return successHandler; + } + private ServerAuthenticationSuccessHandler loginSuccessHandler(String uri) { + RedirectServerAuthenticationSuccessHandler successHandler = new RedirectServerAuthenticationSuccessHandler(); + successHandler.setLocation(URI.create(uri)); + return successHandler; } } diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/test/java/de/codecentric/boot/admin/SpringBootAdminEurekaApplicationTest.java b/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/test/java/de/codecentric/boot/admin/SpringBootAdminEurekaApplicationTest.java index 7fde83e5ac1..0fafff901fe 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/test/java/de/codecentric/boot/admin/SpringBootAdminEurekaApplicationTest.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-eureka/src/test/java/de/codecentric/boot/admin/SpringBootAdminEurekaApplicationTest.java @@ -23,10 +23,10 @@ @ExtendWith(SpringExtension.class) @SpringBootTest(classes = { SpringBootAdminEurekaApplication.class }) -public class SpringBootAdminEurekaApplicationTest { +class SpringBootAdminEurekaApplicationTest { @Test - public void contextLoads() { + void contextLoads() { } } diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/pom.xml b/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/pom.xml index 8a814cf5212..cfa1f9fa7e8 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/pom.xml +++ b/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/pom.xml @@ -72,7 +72,7 @@ - de.codecentric.boot.admin.SpringBootAdminHazelcastApplication + de.codecentric.boot.admin.sample.SpringBootAdminHazelcastApplication false diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/main/java/de/codecentric/boot/admin/SpringBootAdminHazelcastApplication.java b/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminHazelcastApplication.java similarity index 97% rename from spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/main/java/de/codecentric/boot/admin/SpringBootAdminHazelcastApplication.java rename to spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminHazelcastApplication.java index 7e28a84d505..de106ac2ef2 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/main/java/de/codecentric/boot/admin/SpringBootAdminHazelcastApplication.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminHazelcastApplication.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import com.hazelcast.config.Config; import com.hazelcast.config.EvictionConfig; @@ -28,7 +28,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; @@ -49,8 +49,7 @@ import static de.codecentric.boot.admin.server.config.AdminServerHazelcastAutoConfiguration.DEFAULT_NAME_SENT_NOTIFICATIONS_MAP; import static java.util.Collections.singletonList; -@Configuration(proxyBeanMethods = false) -@EnableAutoConfiguration +@SpringBootApplication @EnableAdminServer public class SpringBootAdminHazelcastApplication { diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/test/java/de/codecentric/boot/admin/SpringBootAdminHazelcastApplicationTest.java b/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminHazelcastApplicationTest.java similarity index 96% rename from spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/test/java/de/codecentric/boot/admin/SpringBootAdminHazelcastApplicationTest.java rename to spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminHazelcastApplicationTest.java index 5cf6d249046..9d8c08ef341 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/test/java/de/codecentric/boot/admin/SpringBootAdminHazelcastApplicationTest.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-hazelcast/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminHazelcastApplicationTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-reactive/pom.xml b/spring-boot-admin-samples/spring-boot-admin-sample-reactive/pom.xml index 2c41a0645df..68d12786c46 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-reactive/pom.xml +++ b/spring-boot-admin-samples/spring-boot-admin-sample-reactive/pom.xml @@ -67,7 +67,7 @@ - de.codecentric.boot.admin.SpringBootAdminReactiveApplication + de.codecentric.boot.admin.sample.SpringBootAdminReactiveApplication false diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/main/java/de/codecentric/boot/admin/SpringBootAdminReactiveApplication.java b/spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminReactiveApplication.java similarity index 94% rename from spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/main/java/de/codecentric/boot/admin/SpringBootAdminReactiveApplication.java rename to spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminReactiveApplication.java index bf6a597eac6..d08aa191b1f 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/main/java/de/codecentric/boot/admin/SpringBootAdminReactiveApplication.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminReactiveApplication.java @@ -14,14 +14,13 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import java.net.URI; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import org.springframework.security.config.Customizer; import org.springframework.security.config.web.server.ServerHttpSecurity; @@ -36,8 +35,7 @@ import de.codecentric.boot.admin.server.config.EnableAdminServer; import de.codecentric.boot.admin.server.notify.Notifier; -@Configuration(proxyBeanMethods = false) -@EnableAutoConfiguration +@SpringBootApplication @EnableAdminServer public class SpringBootAdminReactiveApplication { diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/test/java/de/codecentric/boot/admin/SpringBootAdminReactiveApplicationTest.java b/spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminReactiveApplicationTest.java similarity index 96% rename from spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/test/java/de/codecentric/boot/admin/SpringBootAdminReactiveApplicationTest.java rename to spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminReactiveApplicationTest.java index acc279d963a..71ba957f745 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/test/java/de/codecentric/boot/admin/SpringBootAdminReactiveApplicationTest.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-reactive/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminReactiveApplicationTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/Readme.md b/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/Readme.md index cc47928c49e..461038e3f6c 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/Readme.md +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/Readme.md @@ -6,22 +6,26 @@ In order to show basic functionalities, the server itself is registered as a cli ## Build project -Make sure to use a GraalVM with a v17-BaseJDK to build the project (e.g. 22.3.1.r17-grl). - +Make sure to use a GraalVM with a v17-BaseJDK to build the project (e.g. GraalVM Oracle 17.0.8). +If you're using sdkman: +```bash +sdk install java 17.0.8-graal ``` -$ mvn -Pnative native:compile +Build the application with the `native` profile: +```bash +mvn -Pnative native:compile ``` The native application will now be build in the target folder. -``` -$ cd target -$ ./spring-boot-admin-sample-servlet-graalvm +```bash +cd target +./spring-boot-admin-sample-servlet-graalvm ``` You should now be able to access Spring Boot Admin locally under http://localhost:8080/ ## Build an OCI image that can be run with Docker -``` -$ mvn spring-boot:build-image -Pnative -Dspring-boot.build-image.imageName=spring-boot-admin-sample-servlet-graalvm:latest +```bash +mvn spring-boot:build-image -Pnative -Dspring-boot.build-image.imageName=spring-boot-admin-sample-servlet-graalvm:latest ``` Depending on your OS, you might want to change the builder in your `pom.xml`. @@ -31,8 +35,8 @@ In most other cases `paketobuildpacks/builder:tiny` should do ## Running the example -``` -$ docker run --rm -p 8080:8080 docker.io/library/spring-boot-admin-sample-servlet-graalvm:latest +```bash +docker run --rm -p 8080:8080 docker.io/library/spring-boot-admin-sample-servlet-graalvm:latest ``` You should now be able to access Spring Boot Admin locally under http://localhost:8080/ diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/pom.xml b/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/pom.xml index 98fc71dff78..87fb7549e78 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/pom.xml +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/pom.xml @@ -29,7 +29,7 @@ - 0.9.27 + 0.10.2 true @@ -50,7 +50,7 @@ com.github.luben zstd-jni - 1.5.5-6 + 1.5.6-4 io.netty @@ -124,7 +124,6 @@ true - 22.3.1 @@ -169,7 +168,6 @@ true - 22.3 diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/java/de/codecentric/boot/admin/SpringBootAdminServletApplication.java b/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplication.java similarity index 79% rename from spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/java/de/codecentric/boot/admin/SpringBootAdminServletApplication.java rename to spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplication.java index 56f15cc7cc1..3538d981334 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/java/de/codecentric/boot/admin/SpringBootAdminServletApplication.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplication.java @@ -14,16 +14,14 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.context.annotation.Configuration; +import org.springframework.boot.autoconfigure.SpringBootApplication; import de.codecentric.boot.admin.server.config.EnableAdminServer; -@Configuration(proxyBeanMethods = false) -@EnableAutoConfiguration +@SpringBootApplication @EnableAdminServer public class SpringBootAdminServletApplication { diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/resources/application.yml b/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/resources/application.yml index 7b9c7437f0e..a1bcb516bfb 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/resources/application.yml +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet-graalvm/src/main/resources/application.yml @@ -33,5 +33,7 @@ spring: admin: client: url: http://localhost:8080 - instance: - service-base-url: http://localhost:8080 + ui: + external-views: + - label: 'Is it Christmas yet?' + url: https://isitchristmas.com/ diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/pom.xml b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/pom.xml index dd9f9ee984b..b4b68b9742c 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/pom.xml +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/pom.xml @@ -89,6 +89,23 @@ ${project.artifactId} + + org.cyclonedx + cyclonedx-maven-plugin + 2.8.1 + + + validate + + makeAggregateBom + + + + + json + classes/bom + + org.springframework.boot spring-boot-maven-plugin @@ -101,8 +118,9 @@ - de.codecentric.boot.admin.SpringBootAdminServletApplication + de.codecentric.boot.admin.sample.SpringBootAdminServletApplication false + true diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomCsrfFilter.java b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomCsrfFilter.java similarity index 97% rename from spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomCsrfFilter.java rename to spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomCsrfFilter.java index 6e94f045381..e3530b6a79e 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomCsrfFilter.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomCsrfFilter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import java.io.IOException; diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomEndpoint.java b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomEndpoint.java similarity index 95% rename from spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomEndpoint.java rename to spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomEndpoint.java index fa6a48cc63a..a5eb998c5f3 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomEndpoint.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomEndpoint.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomNotifier.java b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomNotifier.java similarity index 97% rename from spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomNotifier.java rename to spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomNotifier.java index 706fedc3803..f1a27d20d76 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/CustomNotifier.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/CustomNotifier.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/NotifierConfig.java b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/NotifierConfig.java similarity index 98% rename from spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/NotifierConfig.java rename to spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/NotifierConfig.java index dafabdd809b..ea8e9be7cae 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/NotifierConfig.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/NotifierConfig.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import java.time.Duration; import java.util.Collections; diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SecurityPermitAllConfig.java b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SecurityPermitAllConfig.java similarity index 91% rename from spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SecurityPermitAllConfig.java rename to spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SecurityPermitAllConfig.java index 9c13a71235c..7ad5f8e4bf6 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SecurityPermitAllConfig.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SecurityPermitAllConfig.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -51,6 +51,8 @@ protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception { .csrfTokenRequestHandler(new CsrfTokenRequestAttributeHandler()) .ignoringRequestMatchers( new AntPathRequestMatcher(this.adminServer.path("/instances"), POST.toString()), + new AntPathRequestMatcher(this.adminServer.path("/notifications/**"), POST.toString()), + new AntPathRequestMatcher(this.adminServer.path("/notifications/**"), DELETE.toString()), new AntPathRequestMatcher(this.adminServer.path("/instances/*"), DELETE.toString()), new AntPathRequestMatcher(this.adminServer.path("/actuator/**")))); diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SecuritySecureConfig.java b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SecuritySecureConfig.java similarity index 99% rename from spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SecuritySecureConfig.java rename to spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SecuritySecureConfig.java index c1a6490b82e..59e49881417 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SecuritySecureConfig.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SecuritySecureConfig.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import java.util.UUID; diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SpringBootAdminServletApplication.java b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplication.java similarity index 91% rename from spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SpringBootAdminServletApplication.java rename to spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplication.java index 742bc712108..d5ff8df1025 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/SpringBootAdminServletApplication.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplication.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,14 +23,12 @@ import org.springframework.boot.actuate.audit.InMemoryAuditEventRepository; import org.springframework.boot.actuate.web.exchanges.HttpExchangeRepository; import org.springframework.boot.actuate.web.exchanges.InMemoryHttpExchangeRepository; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; import org.springframework.cache.CacheManager; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cache.concurrent.ConcurrentMapCacheManager; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Lazy; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -43,10 +41,8 @@ import de.codecentric.boot.admin.server.web.client.HttpHeadersProvider; import de.codecentric.boot.admin.server.web.client.InstanceExchangeFilterFunction; -@Configuration(proxyBeanMethods = false) -@EnableAutoConfiguration +@SpringBootApplication @EnableAdminServer -@Import({ SecurityPermitAllConfig.class, SecuritySecureConfig.class, NotifierConfig.class }) @Lazy(false) @EnableCaching public class SpringBootAdminServletApplication { diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/resources/application.yml b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/resources/application.yml index 1ede5a84380..15792ac1736 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/resources/application.yml +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/main/resources/application.yml @@ -100,6 +100,9 @@ spring: url: https://search.maven.org/search?q=g:de.codecentric%20AND%20a:spring-boot-admin-starter-server - label: "🐙 GitHub" url: https://github.com/codecentric/spring-boot-admin + - label: "🎅 Is it christmas" + url: https://isitchristmas.com + iframe: true # end::customization-external-views-dropdown-is-link-with-links-as-children[] --- # tag::customization-view-settings[] @@ -112,3 +115,8 @@ spring: enabled: false # end::customization-view-settings[] +management: + endpoint: + sbom: + application: + location: classpath:bom.json diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/test/java/de/codecentric/boot/admin/SpringBootAdminServletApplicationTest.java b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplicationTest.java similarity index 96% rename from spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/test/java/de/codecentric/boot/admin/SpringBootAdminServletApplicationTest.java rename to spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplicationTest.java index d2cc4090a44..d58ce5ce880 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/test/java/de/codecentric/boot/admin/SpringBootAdminServletApplicationTest.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-servlet/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminServletApplicationTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-war/src/main/java/de/codecentric/boot/admin/SpringBootAdminWarApplication.java b/spring-boot-admin-samples/spring-boot-admin-sample-war/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminWarApplication.java similarity index 96% rename from spring-boot-admin-samples/spring-boot-admin-sample-war/src/main/java/de/codecentric/boot/admin/SpringBootAdminWarApplication.java rename to spring-boot-admin-samples/spring-boot-admin-sample-war/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminWarApplication.java index 5982d38a729..c6beb7706fb 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-war/src/main/java/de/codecentric/boot/admin/SpringBootAdminWarApplication.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-war/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminWarApplication.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.annotation.Bean; @@ -34,8 +34,7 @@ import de.codecentric.boot.admin.server.config.AdminServerProperties; import de.codecentric.boot.admin.server.config.EnableAdminServer; -@Configuration(proxyBeanMethods = false) -@EnableAutoConfiguration +@SpringBootApplication @EnableAdminServer public class SpringBootAdminWarApplication extends SpringBootServletInitializer { diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/docker-compose.yml b/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/docker-compose.yml new file mode 100644 index 00000000000..6ee07ed22b6 --- /dev/null +++ b/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/docker-compose.yml @@ -0,0 +1,5 @@ +services: + zookeeper: + image: zookeeper + ports: + - 2181:2181 diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/pom.xml b/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/pom.xml index cb0198985d3..8e319a90c78 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/pom.xml +++ b/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/pom.xml @@ -68,7 +68,7 @@ - de.codecentric.boot.admin.SpringBootAdminZookeeperApplication + de.codecentric.boot.admin.sample.SpringBootAdminZookeeperApplication false diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/main/java/de/codecentric/boot/admin/SpringBootAdminZookeeperApplication.java b/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminZookeeperApplication.java similarity index 96% rename from spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/main/java/de/codecentric/boot/admin/SpringBootAdminZookeeperApplication.java rename to spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminZookeeperApplication.java index 339a3ef8f36..516a788f162 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/main/java/de/codecentric/boot/admin/SpringBootAdminZookeeperApplication.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/main/java/de/codecentric/boot/admin/sample/SpringBootAdminZookeeperApplication.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -33,8 +33,7 @@ import de.codecentric.boot.admin.server.config.AdminServerProperties; import de.codecentric.boot.admin.server.config.EnableAdminServer; -@Configuration(proxyBeanMethods = false) -@EnableAutoConfiguration +@SpringBootApplication @EnableDiscoveryClient @EnableAdminServer public class SpringBootAdminZookeeperApplication { diff --git a/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/test/java/de/codecentric/boot/admin/SpringBootAdminZookeeperApplicationTest.java b/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminZookeeperApplicationTest.java similarity index 96% rename from spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/test/java/de/codecentric/boot/admin/SpringBootAdminZookeeperApplicationTest.java rename to spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminZookeeperApplicationTest.java index e5970827f22..dfc99a22242 100644 --- a/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/test/java/de/codecentric/boot/admin/SpringBootAdminZookeeperApplicationTest.java +++ b/spring-boot-admin-samples/spring-boot-admin-sample-zookeeper/src/test/java/de/codecentric/boot/admin/sample/SpringBootAdminZookeeperApplicationTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package de.codecentric.boot.admin; +package de.codecentric.boot.admin.sample; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/spring-boot-admin-server-cloud/src/main/java/de/codecentric/boot/admin/server/cloud/discovery/DefaultServiceInstanceConverter.java b/spring-boot-admin-server-cloud/src/main/java/de/codecentric/boot/admin/server/cloud/discovery/DefaultServiceInstanceConverter.java index fbc7cf7c6d2..65f1434bd0d 100644 --- a/spring-boot-admin-server-cloud/src/main/java/de/codecentric/boot/admin/server/cloud/discovery/DefaultServiceInstanceConverter.java +++ b/spring-boot-admin-server-cloud/src/main/java/de/codecentric/boot/admin/server/cloud/discovery/DefaultServiceInstanceConverter.java @@ -50,7 +50,7 @@ public class DefaultServiceInstanceConverter implements ServiceInstanceConverter private static final String[] KEYS_MANAGEMENT_ADDRESS = { "management.address", "management-address" }; - private static final String[] KEYS_MANAGEMENT_PORT = { "management.port", "management-port" }; + private static final String[] KEYS_MANAGEMENT_PORT = { "management.port", "management-port", "port.management" }; private static final String[] KEYS_MANAGEMENT_PATH = { "management.context-path", "management-context-path" }; diff --git a/spring-boot-admin-server-cloud/src/test/java/de/codecentric/boot/admin/server/cloud/config/AdminServerDiscoveryAutoConfigurationTest.java b/spring-boot-admin-server-cloud/src/test/java/de/codecentric/boot/admin/server/cloud/config/AdminServerDiscoveryAutoConfigurationTest.java index 9e33649660d..fb597bf933c 100644 --- a/spring-boot-admin-server-cloud/src/test/java/de/codecentric/boot/admin/server/cloud/config/AdminServerDiscoveryAutoConfigurationTest.java +++ b/spring-boot-admin-server-cloud/src/test/java/de/codecentric/boot/admin/server/cloud/config/AdminServerDiscoveryAutoConfigurationTest.java @@ -17,6 +17,7 @@ package de.codecentric.boot.admin.server.cloud.config; import com.netflix.discovery.EurekaClient; +import io.kubernetes.client.openapi.apis.CoreV1Api; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration; @@ -42,7 +43,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; -public class AdminServerDiscoveryAutoConfigurationTest { +class AdminServerDiscoveryAutoConfigurationTest { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(UtilAutoConfiguration.class, @@ -51,14 +52,14 @@ public class AdminServerDiscoveryAutoConfigurationTest { .withUserConfiguration(AdminServerMarkerConfiguration.class); @Test - public void defaultServiceInstanceConverter() { + void defaultServiceInstanceConverter() { this.contextRunner.withUserConfiguration(SimpleDiscoveryClientAutoConfiguration.class) .run((context) -> assertThat(context.getBean(ServiceInstanceConverter.class)) .isInstanceOf(DefaultServiceInstanceConverter.class)); } @Test - public void eurekaServiceInstanceConverter() { + void eurekaServiceInstanceConverter() { this.contextRunner.withBean(EurekaClient.class, () -> mock(EurekaClient.class)) .withBean(DiscoveryClient.class, () -> mock(DiscoveryClient.class)) .run((context) -> assertThat(context).getBean(ServiceInstanceConverter.class) @@ -66,15 +67,16 @@ public void eurekaServiceInstanceConverter() { } @Test - public void officialKubernetesServiceInstanceConverter() { + void officialKubernetesServiceInstanceConverter() { this.contextRunner.withUserConfiguration(KubernetesDiscoveryPropertiesConfiguration.class) + .withBean(CoreV1Api.class, () -> mock(CoreV1Api.class)) .withBean(KubernetesInformerDiscoveryClient.class, () -> mock(KubernetesInformerDiscoveryClient.class)) .run((context) -> assertThat(context).getBean(ServiceInstanceConverter.class) .isInstanceOf(KubernetesServiceInstanceConverter.class)); } @Test - public void fabric8KubernetesServiceInstanceConverter() { + void fabric8KubernetesServiceInstanceConverter() { this.contextRunner.withUserConfiguration(KubernetesDiscoveryPropertiesConfiguration.class) .withBean(KubernetesDiscoveryClient.class, () -> mock(KubernetesDiscoveryClient.class)) .run((context) -> assertThat(context).getBean(ServiceInstanceConverter.class) @@ -82,7 +84,7 @@ public void fabric8KubernetesServiceInstanceConverter() { } @Test - public void customServiceInstanceConverter() { + void customServiceInstanceConverter() { this.contextRunner.withUserConfiguration(SimpleDiscoveryClientAutoConfiguration.class) .withBean(CustomServiceInstanceConverter.class) .run((context) -> assertThat(context).getBean(ServiceInstanceConverter.class) diff --git a/spring-boot-admin-server-cloud/src/test/java/de/codecentric/boot/admin/server/cloud/discovery/InstanceDiscoveryListenerTest.java b/spring-boot-admin-server-cloud/src/test/java/de/codecentric/boot/admin/server/cloud/discovery/InstanceDiscoveryListenerTest.java index aa9dc47d472..2cd900df1b8 100644 --- a/spring-boot-admin-server-cloud/src/test/java/de/codecentric/boot/admin/server/cloud/discovery/InstanceDiscoveryListenerTest.java +++ b/spring-boot-admin-server-cloud/src/test/java/de/codecentric/boot/admin/server/cloud/discovery/InstanceDiscoveryListenerTest.java @@ -75,14 +75,15 @@ public void should_discover_instances_when_application_is_ready() { this.listener.onApplicationReady(null); StepVerifier.create(this.registry.getInstances()) - .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")).verifyComplete(); + .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")) + .verifyComplete(); } @Test public void should_not_register_instance_when_serviceId_is_ignored() { when(this.discovery.getServices()).thenReturn(singletonList("service")); when(this.discovery.getInstances("service")) - .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); + .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); this.listener.setIgnoredServices(singleton("service")); this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); @@ -106,7 +107,7 @@ public void should_not_register_instance_when_instanceMetadata_is_ignored() { public void should_register_instance_when_serviceId_is_not_ignored() { when(this.discovery.getServices()).thenReturn(singletonList("service")); when(this.discovery.getInstances("service")) - .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); + .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); this.listener.setServices(singleton("notService2")); this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); @@ -130,13 +131,14 @@ public void should_register_instance_when_instanceMetadata_is_not_ignored() { public void should_not_register_instance_when_serviceId_matches_ignored_pattern() { when(this.discovery.getServices()).thenReturn(asList("service", "rabbit-1", "rabbit-2")); when(this.discovery.getInstances("service")) - .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); + .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); this.listener.setIgnoredServices(singleton("rabbit-*")); this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); StepVerifier.create(this.registry.getInstances()) - .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")).verifyComplete(); + .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")) + .verifyComplete(); } @Test @@ -145,30 +147,32 @@ public void should_not_register_instance_when_instanceMetadata_matches_ignored_m when(this.discovery.getInstances("service")).thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false, Collections.singletonMap("monitoring", "true")))); when(this.discovery.getInstances("rabbit-1")) - .thenReturn(singletonList(new DefaultServiceInstance("rabbit-test-1", "rabbit-1", "localhost", 80, - false, Collections.singletonMap("monitoring", "false")))); + .thenReturn(singletonList(new DefaultServiceInstance("rabbit-test-1", "rabbit-1", "localhost", 80, false, + Collections.singletonMap("monitoring", "false")))); when(this.discovery.getInstances("rabbit-2")) - .thenReturn(singletonList(new DefaultServiceInstance("rabbit-test-1", "rabbit-2", "localhost", 80, - false, Collections.singletonMap("monitoring", "false")))); + .thenReturn(singletonList(new DefaultServiceInstance("rabbit-test-1", "rabbit-2", "localhost", 80, false, + Collections.singletonMap("monitoring", "false")))); this.listener.setIgnoredInstancesMetadata(Collections.singletonMap("monitoring", "false")); this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); StepVerifier.create(this.registry.getInstances()) - .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")).verifyComplete(); + .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")) + .verifyComplete(); } @Test public void should_register_instances_when_serviceId_matches_wanted_pattern() { when(this.discovery.getServices()).thenReturn(asList("service", "rabbit-1", "rabbit-2")); when(this.discovery.getInstances("service")) - .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); + .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); this.listener.setServices(singleton("ser*")); this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); StepVerifier.create(this.registry.getInstances()) - .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")).verifyComplete(); + .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")) + .verifyComplete(); } @Test @@ -177,33 +181,35 @@ public void should_register_instances_when_instanceMetadata_matches_wanted_metad when(this.discovery.getInstances("service")).thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false, Collections.singletonMap("monitoring", "true")))); when(this.discovery.getInstances("rabbit-1")) - .thenReturn(singletonList(new DefaultServiceInstance("rabbit-test-1", "rabbit-1", "localhost", 80, - false, Collections.singletonMap("monitoring", "false")))); + .thenReturn(singletonList(new DefaultServiceInstance("rabbit-test-1", "rabbit-1", "localhost", 80, false, + Collections.singletonMap("monitoring", "false")))); when(this.discovery.getInstances("rabbit-2")) - .thenReturn(singletonList(new DefaultServiceInstance("rabbit-test-1", "rabbit-2", "localhost", 80, - false, Collections.singletonMap("monitoring", "false")))); + .thenReturn(singletonList(new DefaultServiceInstance("rabbit-test-1", "rabbit-2", "localhost", 80, false, + Collections.singletonMap("monitoring", "false")))); this.listener.setInstancesMetadata(Collections.singletonMap("monitoring", "true")); this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); StepVerifier.create(this.registry.getInstances()) - .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")).verifyComplete(); + .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")) + .verifyComplete(); } @Test public void should_register_instances_when_serviceId_matches_wanted_pattern_and_ignored_pattern() { when(this.discovery.getServices()).thenReturn(asList("service-1", "service", "rabbit-1", "rabbit-2")); when(this.discovery.getInstances("service")) - .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); + .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); when(this.discovery.getInstances("service-1")) - .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service-1", "localhost", 80, false))); + .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service-1", "localhost", 80, false))); this.listener.setServices(singleton("ser*")); this.listener.setIgnoredServices(singleton("service-*")); this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); StepVerifier.create(this.registry.getInstances()) - .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")).verifyComplete(); + .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")) + .verifyComplete(); } @Test @@ -229,14 +235,15 @@ public void should_not_register_instances_when_instanceMetadata_matches_wanted_m this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); StepVerifier.create(this.registry.getInstances()) - .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service-1")).verifyComplete(); + .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service-1")) + .verifyComplete(); } @Test public void should_register_instance_when_new_service_instance_is_discovered() { when(this.discovery.getServices()).thenReturn(singletonList("service")); when(this.discovery.getInstances("service")) - .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); + .thenReturn(singletonList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false))); this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); @@ -328,8 +335,8 @@ public void should_remove_instances_when_they_are_no_longer_available_in_discove public void should_not_throw_error_when_conversion_fails_and_proceed_with_next_instance() { when(this.discovery.getServices()).thenReturn(singletonList("service")); when(this.discovery.getInstances("service")) - .thenReturn(asList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false), - new DefaultServiceInstance("error-1", "error", "localhost", 80, false))); + .thenReturn(asList(new DefaultServiceInstance("test-1", "service", "localhost", 80, false), + new DefaultServiceInstance("error-1", "error", "localhost", 80, false))); this.listener.setConverter((instance) -> { if (instance.getServiceId().equals("error")) { throw new IllegalStateException("Test-Error"); @@ -342,7 +349,8 @@ public void should_not_throw_error_when_conversion_fails_and_proceed_with_next_i this.listener.onInstanceRegistered(new InstanceRegisteredEvent<>(new Object(), null)); StepVerifier.create(this.registry.getInstances()) - .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")).verifyComplete(); + .assertNext((a) -> assertThat(a.getRegistration().getName()).isEqualTo("service")) + .verifyComplete(); } } diff --git a/spring-boot-admin-server-ui/.prettierrc.json b/spring-boot-admin-server-ui/.prettierrc.json index dd7a68fc43d..95e34ef3ee3 100644 --- a/spring-boot-admin-server-ui/.prettierrc.json +++ b/spring-boot-admin-server-ui/.prettierrc.json @@ -1,5 +1,6 @@ { "singleQuote": true, + "plugins": ["@trivago/prettier-plugin-sort-imports"], "importOrder": ["(.*).css$","^[./]" ,"^@/components/(.*)$","^@/(.*)$"], "importOrderSeparation": true, "importOrderSortSpecifiers": true diff --git a/spring-boot-admin-server-ui/.storybook/preview.js b/spring-boot-admin-server-ui/.storybook/preview.js index 42dcd3127aa..0ca2687ad6d 100644 --- a/spring-boot-admin-server-ui/.storybook/preview.js +++ b/spring-boot-admin-server-ui/.storybook/preview.js @@ -1,20 +1,28 @@ import { setup } from '@storybook/vue3'; import { initialize, mswDecorator } from 'msw-storybook-addon'; +import { createRouter, createWebHistory } from 'vue-router'; import './storybook.css'; import '@/index.css'; import components from '@/components'; - +import { createApplicationStore } from '@/composables/useApplicationStore'; import i18n from '@/i18n'; import applicationsEndpoint from '@/mocks/applications'; import mappingsEndpoint from '@/mocks/instance/mappings'; initialize(); +const router = createRouter({ + history: createWebHistory(), + routes: [], +}); +const applicationStore = createApplicationStore(); setup((app) => { app.use(components); app.use(i18n); + app.use(router); + app.use(applicationStore); }); export const parameters = { diff --git a/spring-boot-admin-server-ui/README.md b/spring-boot-admin-server-ui/README.md index f8c7a1f5b3e..abda64e9957 100644 --- a/spring-boot-admin-server-ui/README.md +++ b/spring-boot-admin-server-ui/README.md @@ -45,7 +45,7 @@ npm run test Repeated tests with watching the files: ```shell -npm run watch:test +npm run test:watch ``` ## Run Storybook diff --git a/spring-boot-admin-server-ui/package-lock.json b/spring-boot-admin-server-ui/package-lock.json index e8a4ac6390d..725517e4498 100644 --- a/spring-boot-admin-server-ui/package-lock.json +++ b/spring-boot-admin-server-ui/package-lock.json @@ -6,21 +6,22 @@ "": { "name": "spring-boot-admin-server-ui", "dependencies": { - "@fortawesome/fontawesome-svg-core": "6.4.2", - "@fortawesome/free-brands-svg-icons": "6.4.2", - "@fortawesome/free-regular-svg-icons": "6.4.2", - "@fortawesome/free-solid-svg-icons": "6.4.2", - "@fortawesome/vue-fontawesome": "3.0.3", - "@headlessui/vue": "1.7.16", + "@fortawesome/fontawesome-svg-core": "6.6.0", + "@fortawesome/free-brands-svg-icons": "6.6.0", + "@fortawesome/free-regular-svg-icons": "6.6.0", + "@fortawesome/free-solid-svg-icons": "6.6.0", + "@fortawesome/vue-fontawesome": "3.0.8", + "@headlessui/vue": "1.7.22", "@stekoe/vue-toast-notificationcenter": "https://github.com/SteKoe/vue-toast-notificationcenter/archive/refs/tags/1.0.0-RC5.tar.gz", - "@tailwindcss/forms": "0.5.6", - "@tailwindcss/typography": "0.5.10", + "@tailwindcss/forms": "0.5.7", + "@tailwindcss/typography": "0.5.14", "ansi_up": "6.0.2", "autolinker": "4.0.0", - "axios": "0.27.2", - "chart.js": "4.4.0", + "axios": "1.7.4", + "chart.js": "4.4.3", "chartjs-adapter-moment": "1.0.1", - "classnames": "2.3.2", + "classnames": "2.5.1", + "d3": "^7.9.0", "d3-array": "3.2.4", "d3-axis": "3.0.0", "d3-brush": "3.0.0", @@ -30,81 +31,84 @@ "d3-time": "3.1.0", "event-source-polyfill": "1.0.31", "file-saver": "2.0.5", - "fuse.js": "^6.6.2", - "iso8601-duration": "2.1.1", + "fuse.js": "^7.0.0", + "iso8601-duration": "2.1.2", "lodash-es": "4.17.21", "mitt": "^3.0.0", - "moment": "2.29.4", + "moment": "2.30.1", "popper.js": "1.16.1", "pretty-bytes": "6.1.1", + "qs": "^6.13.0", "random-string": "0.2.0", - "react": "18.2.0", - "react-dom": "18.2.0", + "react": "18.3.1", + "react-dom": "18.3.1", "resize-observer-polyfill": "1.5.1", "rxjs": "7.8.1", - "uuid": "9.0.1", + "uuid": "10.0.0", "v3-infinite-loading": "1.3.1", - "vue": "3.3.4", - "vue-i18n": "9.5.0", - "vue-router": "4.2.5", + "vue": "3.4.38", + "vue-i18n": "9.13.1", + "vue-router": "4.4.3", "vue3-click-away": "1.2.4" }, "devDependencies": { - "@babel/core": "7.23.0", - "@babel/eslint-parser": "7.22.15", - "@babel/plugin-transform-runtime": "7.22.15", - "@babel/preset-env": "7.22.20", - "@babel/runtime": "7.23.1", - "@storybook/addon-actions": "7.4.6", - "@storybook/addon-essentials": "7.4.6", - "@storybook/addon-links": "7.4.6", - "@storybook/addon-mdx-gfm": "^7.0.5", - "@storybook/vue3": "7.4.6", - "@storybook/vue3-vite": "^7.0.5", - "@testing-library/jest-dom": "6.1.3", - "@testing-library/user-event": "14.5.1", - "@testing-library/vue": "7.0.0", - "@trivago/prettier-plugin-sort-imports": "^4.0.0", + "@babel/core": "7.25.2", + "@babel/eslint-parser": "7.25.1", + "@babel/plugin-transform-runtime": "7.24.7", + "@babel/preset-env": "7.25.3", + "@babel/runtime": "7.25.0", + "@storybook/addon-actions": "8.2.9", + "@storybook/addon-essentials": "8.2.9", + "@storybook/addon-links": "8.2.9", + "@storybook/addon-mdx-gfm": "^8.0.0", + "@storybook/vue3": "8.2.9", + "@storybook/vue3-vite": "^8.0.0", + "@testing-library/jest-dom": "6.4.8", + "@testing-library/user-event": "14.5.2", + "@testing-library/vue": "8.1.0", + "@trivago/prettier-plugin-sort-imports": "^4.2.0", + "@types/d3": "^7.4.3", "@types/lodash-es": "^4.17.7", "@types/testing-library__jest-dom": "^6.0.0", - "@typescript-eslint/eslint-plugin": "^6.0.0", - "@typescript-eslint/parser": "^6.0.0", - "@vitejs/plugin-vue": "4.4.0", - "@vue/eslint-config-typescript": "^12.0.0", - "@vue/test-utils": "2.4.1", - "autoprefixer": "10.4.16", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", + "@vitejs/plugin-vue": "5.1.2", + "@vue/eslint-config-typescript": "^13.0.0", + "@vue/test-utils": "2.4.6", + "autoprefixer": "10.4.20", "babel-loader": "9.1.3", - "eslint": "^7.32.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.0", - "eslint-plugin-storybook": "0.6.14", + "eslint-plugin-storybook": "0.8.0", "eslint-plugin-vue": "^9.10.0", - "jsdom": "^22.0.0", - "msw": "1.3.2", - "msw-storybook-addon": "1.8.0", - "postcss": "8.4.31", - "prettier": "^3.0.0", - "rollup-plugin-visualizer": "5.9.2", + "happy-dom": "^14.12.3", + "jsdom": "^24.0.0", + "msw": "2.3.5", + "msw-storybook-addon": "2.0.3", + "postcss": "8.4.41", + "prettier": "^3.0.3", + "rollup-plugin-visualizer": "5.12.0", "sass": "^1.57.1", - "storybook": "7.4.6", - "tailwindcss": "3.3.3", + "storybook": "8.2.9", + "tailwindcss": "3.4.10", "ts-node-dev": "^2.0.0", "typescript": "^5.0.3", - "vite": "4.4.11", - "vite-plugin-static-copy": "0.17.0", - "vitest": "0.34.6", + "vite": "5.4.1", + "vite-plugin-static-copy": "1.0.6", + "vitest": "2.0.5", "vue-eslint-parser": "^9.1.0", - "vue-loader": "17.2.2" + "vue-loader": "17.4.2" }, "engines": { - "node": ">=16", - "npm": ">=8" + "node": "20.16.0", + "npm": "10.8.2" } }, "node_modules/@adobe/css-tools": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.1.tgz", - "integrity": "sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz", + "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==", "dev": true }, "node_modules/@alloc/quick-lru": { @@ -120,68 +124,56 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "dev": true, "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, - "node_modules/@aw-web-design/x-default-browser": { - "version": "1.4.126", - "resolved": "https://registry.npmjs.org/@aw-web-design/x-default-browser/-/x-default-browser-1.4.126.tgz", - "integrity": "sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==", - "dev": true, - "dependencies": { - "default-browser-id": "3.0.0" - }, - "bin": { - "x-default-browser": "bin/x-default-browser.js" - } - }, "node_modules/@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", - "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.2.tgz", + "integrity": "sha512-bYcppcpKBvX4znYaPEeFau03bp89ShqNMLs+rmdptMw+heSZh9+z84d2YG+K7cYLbWwzdjtDoW/uqZmPjulClQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.0.tgz", - "integrity": "sha512-97z/ju/Jy1rZmDxybphrBuI+jtJjFVoz7Mr9yUQVVVi+DNZE333uFQeMOqcCIy1x3WYBIbWftUSLmbNXNT7qFQ==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.0", - "@babel/parser": "^7.23.0", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -197,9 +189,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz", - "integrity": "sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz", + "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==", "dev": true, "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -211,71 +203,58 @@ }, "peerDependencies": { "@babel/core": "^7.11.0", - "eslint": "^7.5.0 || ^8.0.0" + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, "node_modules/@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz", - "integrity": "sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -283,35 +262,18 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.0.tgz", + "integrity": "sha512-GYM6BxeQsETc9mnct+nIIpf63SAyzvyYN7UB/IlTyd+MBg06afFGp0mIeUqGyWgS2mxad6vqbMrHVlaL3m70sQ==", "dev": true, "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.0", "semver": "^6.3.1" }, "engines": { @@ -322,14 +284,14 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.5.tgz", - "integrity": "sha512-1VpEFOIbMRaXyDeUwUfmTIxExLwQ+zkW+Bh5zXpApA3oQedBx9v/updixWxnx/bZpKw7u8VxWjb/qWpIcmPq8A==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -339,9 +301,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz", - "integrity": "sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", @@ -355,74 +317,78 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz", - "integrity": "sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz", - "integrity": "sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" }, "engines": { "node": ">=6.9.0" @@ -432,35 +398,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz", - "integrity": "sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-wrap-function": "^7.22.9" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -470,14 +436,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz", - "integrity": "sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", "dev": true, "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/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -487,114 +453,117 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true, + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz", - "integrity": "sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/types": "^7.22.10" + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.1.tgz", - "integrity": "sha512-chNpneuK18yW5Oxsr+t553UZzzAs3aZnFm4bxhebsNTeshrC95yA7l5yl7GBAG+JG1rF0F7zzD2EixK9mWSDoA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.0.tgz", + "integrity": "sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==", "dev": true, "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.0", - "@babel/types": "^7.23.0" + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz", - "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.22.5", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", + "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "dependencies": { + "@babel/types": "^7.25.2" + }, "bin": { "parser": "bin/babel-parser.js" }, @@ -602,13 +571,14 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz", - "integrity": "sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" }, "engines": { "node": ">=6.9.0" @@ -617,73 +587,67 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz", - "integrity": "sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.13.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", "dev": true, "dependencies": { - "@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/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { @@ -762,12 +726,12 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz", - "integrity": "sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz", + "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -777,12 +741,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz", - "integrity": "sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -792,12 +756,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz", - "integrity": "sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -831,12 +795,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -948,12 +912,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -979,12 +943,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz", - "integrity": "sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -994,15 +958,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz", - "integrity": "sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1012,14 +976,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz", - "integrity": "sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1029,12 +993,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz", - "integrity": "sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1044,12 +1008,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz", - "integrity": "sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1059,13 +1023,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz", - "integrity": "sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1075,13 +1039,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz", - "integrity": "sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -1092,19 +1056,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz", - "integrity": "sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.0.tgz", + "integrity": "sha512-xyi6qjr/fYU304fiRwFbekzkqVJZ6A7hOjWZd+89FVcBqPV3S9Wuozz82xdpLspckeaafntbzglaW4pqpzvtSw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.0", "globals": "^11.1.0" }, "engines": { @@ -1115,13 +1076,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz", - "integrity": "sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1131,12 +1092,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz", - "integrity": "sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1146,13 +1107,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz", - "integrity": "sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1162,12 +1123,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz", - "integrity": "sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1176,13 +1137,29 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz", - "integrity": "sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -1193,13 +1170,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz", - "integrity": "sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1209,12 +1186,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz", - "integrity": "sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -1225,13 +1202,13 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz", - "integrity": "sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.2.tgz", + "integrity": "sha512-InBZ0O8tew5V0K6cHcQ+wgxlrjOw1W4wDXLkOTjLRD8GYhTSkxTVBtdy3MMtvYBrbAWa1Qm3hNoTc1620Yj+Mg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-flow": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/plugin-syntax-flow": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1241,12 +1218,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz", - "integrity": "sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1256,14 +1234,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz", - "integrity": "sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==", + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" }, "engines": { "node": ">=6.9.0" @@ -1273,12 +1251,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz", - "integrity": "sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -1289,12 +1267,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz", - "integrity": "sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1304,12 +1282,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz", - "integrity": "sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -1320,12 +1298,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz", - "integrity": "sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1335,13 +1313,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz", - "integrity": "sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1351,14 +1329,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.0.tgz", - "integrity": "sha512-32Xzss14/UVc7k9g775yMIvkVK8xwKE0DPdP5JTapr3+Z9w4tzeOuLNY6BXDQR6BdnzIlXnCGAzsk/ICHBLVWQ==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1368,15 +1346,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz", - "integrity": "sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5" + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" }, "engines": { "node": ">=6.9.0" @@ -1386,13 +1364,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz", - "integrity": "sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1402,13 +1380,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1418,12 +1396,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz", - "integrity": "sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1433,12 +1411,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz", - "integrity": "sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -1449,12 +1427,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz", - "integrity": "sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -1465,16 +1443,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz", - "integrity": "sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" + "@babel/plugin-transform-parameters": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1484,13 +1461,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz", - "integrity": "sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1500,12 +1477,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz", - "integrity": "sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -1516,13 +1493,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz", - "integrity": "sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1533,12 +1510,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz", - "integrity": "sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1548,13 +1525,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz", - "integrity": "sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1564,14 +1541,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz", - "integrity": "sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1582,12 +1559,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz", - "integrity": "sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1597,12 +1574,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz", - "integrity": "sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-plugin-utils": "^7.24.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1613,12 +1590,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz", - "integrity": "sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1628,16 +1605,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz", - "integrity": "sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, "engines": { @@ -1648,12 +1625,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz", - "integrity": "sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1663,13 +1640,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz", - "integrity": "sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1679,12 +1656,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz", - "integrity": "sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1694,12 +1671,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz", - "integrity": "sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1709,12 +1686,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz", - "integrity": "sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==", + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.8" }, "engines": { "node": ">=6.9.0" @@ -1724,15 +1701,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz", - "integrity": "sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==", + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz", + "integrity": "sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1742,12 +1720,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.22.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz", - "integrity": "sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1757,13 +1735,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz", - "integrity": "sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1773,13 +1751,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz", - "integrity": "sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1789,13 +1767,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz", - "integrity": "sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1805,25 +1783,28 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.22.20.tgz", - "integrity": "sha512-11MY04gGC4kSzlPHRfvVkNAZhUxOvm7DCJ37hPDnUENwe06npjIRAfInEMTGSb4LZK5ZgDFkv5hw0lGebHeTyg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.20", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -1835,60 +1816,60 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.22.15", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.22.15", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.22.15", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.15", - "@babel/plugin-transform-modules-systemjs": "^7.22.11", - "@babel/plugin-transform-modules-umd": "^7.22.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.22.15", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.22.19", - "babel-plugin-polyfill-corejs2": "^0.4.5", - "babel-plugin-polyfill-corejs3": "^0.8.3", - "babel-plugin-polyfill-regenerator": "^0.5.2", - "core-js-compat": "^3.31.0", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", "semver": "^6.3.1" }, "engines": { @@ -1899,14 +1880,14 @@ } }, "node_modules/@babel/preset-flow": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.22.15.tgz", - "integrity": "sha512-dB5aIMqpkgbTfN5vDdTRPzjqtWiZcRESNR88QYnoPR+bmdYoluOzMX9tQerTv0XzSgZYctPfO1oc0N5zdog1ew==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.24.7.tgz", + "integrity": "sha512-NL3Lo0NorCU607zU3NwRyJbpaB6E3t0xtd3LfAQKDfkeX4/ggcDXvkmkW42QWT5owUeW/jAe4hn+2qvkV1IbfQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-flow-strip-types": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-flow-strip-types": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1930,16 +1911,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.0.tgz", - "integrity": "sha512-6P6VVa/NM/VlAYj5s2Aq/gdVg8FSENCg3wlZ6Qau9AcPaoF5LbN1nyGlR9DTRIw9PpxI94e+ReydsJHcjwAweg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-typescript": "^7.22.15" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -1949,15 +1930,15 @@ } }, "node_modules/@babel/register": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.22.15.tgz", - "integrity": "sha512-V3Q3EqoQdn65RCgTLwauZaTfd1ShhwPmbBv+1dkZV/HpCGMKVyn6oFcRlI7RaKqiDQjX2Qd3AuoEguBgdjIKlg==", + "version": "7.24.6", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.24.6.tgz", + "integrity": "sha512-WSuFCc2wCqMeXkz/i3yfAAsxwWflEgbVkZzivgAmXl/MxrXeoYFZOOPllbC8R8WTF7u61wSRQtDVZ1879cdu6w==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", "find-cache-dir": "^2.0.0", "make-dir": "^2.1.0", - "pirates": "^4.0.5", + "pirates": "^4.0.6", "source-map-support": "^0.5.16" }, "engines": { @@ -2055,6 +2036,15 @@ "node": ">=4" } }, + "node_modules/@babel/register/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/@babel/register/node_modules/pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", @@ -2083,9 +2073,9 @@ "dev": true }, "node_modules/@babel/runtime": { - "version": "7.23.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.1.tgz", - "integrity": "sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", "dev": true, "dependencies": { "regenerator-runtime": "^0.14.0" @@ -2095,34 +2085,31 @@ } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", - "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.3.tgz", + "integrity": "sha512-HefgyP1x754oGCsKmV5reSmtV7IXj/kpaE1XYY+D9G5PvKKoFfSbiS4M77MdjuwlZKDIKFCffq9rPU+H/s3ZdQ==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/parser": "^7.25.3", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.2", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -2130,27 +2117,53 @@ } }, "node_modules/@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "node_modules/@bundled-es-modules/cookie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/cookie/-/cookie-2.0.0.tgz", + "integrity": "sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==", + "dev": true, + "dependencies": { + "cookie": "^0.5.0" + } + }, + "node_modules/@bundled-es-modules/cookie/node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, - "optional": true, "engines": { - "node": ">=0.1.90" + "node": ">= 0.6" + } + }, + "node_modules/@bundled-es-modules/statuses": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/statuses/-/statuses-1.0.1.tgz", + "integrity": "sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==", + "dev": true, + "dependencies": { + "statuses": "^2.0.1" + } + }, + "node_modules/@bundled-es-modules/tough-cookie": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@bundled-es-modules/tough-cookie/-/tough-cookie-0.1.6.tgz", + "integrity": "sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==", + "dev": true, + "dependencies": { + "@types/tough-cookie": "^4.0.5", + "tough-cookie": "^4.1.4" } }, "node_modules/@cspotcode/source-map-support": { @@ -2175,28 +2188,26 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], "dev": true, + "optional": true, + "os": [ + "aix" + ], "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", - "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", - "dev": true, - "peerDependencies": { - "react": ">=16.8.0" + "node": ">=12" } }, "node_modules/@esbuild/android-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.17.tgz", - "integrity": "sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], @@ -2210,9 +2221,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.17.tgz", - "integrity": "sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], @@ -2226,9 +2237,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.17.tgz", - "integrity": "sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], @@ -2242,9 +2253,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.17.tgz", - "integrity": "sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], @@ -2258,9 +2269,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.17.tgz", - "integrity": "sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], @@ -2274,9 +2285,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.17.tgz", - "integrity": "sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], @@ -2290,9 +2301,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.17.tgz", - "integrity": "sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], @@ -2306,9 +2317,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.17.tgz", - "integrity": "sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], @@ -2322,9 +2333,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.17.tgz", - "integrity": "sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], @@ -2338,9 +2349,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.17.tgz", - "integrity": "sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], @@ -2354,9 +2365,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.17.tgz", - "integrity": "sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], @@ -2370,9 +2381,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.17.tgz", - "integrity": "sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], @@ -2386,9 +2397,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.17.tgz", - "integrity": "sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], @@ -2402,9 +2413,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.17.tgz", - "integrity": "sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], @@ -2418,9 +2429,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.17.tgz", - "integrity": "sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], @@ -2434,9 +2445,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.17.tgz", - "integrity": "sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], @@ -2450,9 +2461,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.17.tgz", - "integrity": "sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], @@ -2466,9 +2477,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.17.tgz", - "integrity": "sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], @@ -2482,9 +2493,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.17.tgz", - "integrity": "sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], @@ -2498,9 +2509,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.17.tgz", - "integrity": "sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], @@ -2514,9 +2525,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.17.tgz", - "integrity": "sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], @@ -2530,9 +2541,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.17.tgz", - "integrity": "sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], @@ -2561,47 +2572,63 @@ } }, "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint-community/regexpp": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.6.2.tgz", - "integrity": "sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2613,120 +2640,107 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@fal-works/esbuild-plugin-global-externals": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz", - "integrity": "sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==", - "dev": true - }, - "node_modules/@floating-ui/core": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.4.1.tgz", - "integrity": "sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==", + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "@floating-ui/utils": "^0.1.1" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/@floating-ui/dom": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.1.tgz", - "integrity": "sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==", + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "@floating-ui/core": "^1.4.1", - "@floating-ui/utils": "^0.1.1" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@floating-ui/react-dom": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.1.tgz", - "integrity": "sha512-rZtAmSht4Lry6gdhAJDrCp/6rKN7++JnL1/Anbr/DdeyYXQPxvg/ivrbYvJulbRf4vL8b212suwMM2lxbv+RQA==", + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, - "dependencies": { - "@floating-ui/dom": "^1.3.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@floating-ui/utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.1.tgz", - "integrity": "sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==", - "dev": true - }, "node_modules/@fortawesome/fontawesome-common-types": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.4.2.tgz", - "integrity": "sha512-1DgP7f+XQIJbLFCTX1V2QnxVmpLdKdzzo2k8EmvDOePfchaIGQ9eCHj2up3/jNEbZuBqel5OxiaOJf37TWauRA==", - "hasInstallScript": true, + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.6.0.tgz", + "integrity": "sha512-xyX0X9mc0kyz9plIyryrRbl7ngsA9jz77mCZJsUkLl+ZKs0KWObgaEBoSgQiYWAsSmjz/yjl0F++Got0Mdp4Rw==", "engines": { "node": ">=6" } }, "node_modules/@fortawesome/fontawesome-svg-core": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.4.2.tgz", - "integrity": "sha512-gjYDSKv3TrM2sLTOKBc5rH9ckje8Wrwgx1CxAPbN5N3Fm4prfi7NsJVWd1jklp7i5uSCVwhZS5qlhMXqLrpAIg==", - "hasInstallScript": true, + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.6.0.tgz", + "integrity": "sha512-KHwPkCk6oRT4HADE7smhfsKudt9N/9lm6EJ5BVg0tD1yPA5hht837fB87F8pn15D8JfTqQOjhKTktwmLMiD7Kg==", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.2" + "@fortawesome/fontawesome-common-types": "6.6.0" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-brands-svg-icons": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.4.2.tgz", - "integrity": "sha512-LKOwJX0I7+mR/cvvf6qIiqcERbdnY+24zgpUSouySml+5w8B4BJOx8EhDR/FTKAu06W12fmUIcv6lzPSwYKGGg==", - "hasInstallScript": true, + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-6.6.0.tgz", + "integrity": "sha512-1MPD8lMNW/earme4OQi1IFHtmHUwAKgghXlNwWi9GO7QkTfD+IIaYpIai4m2YJEzqfEji3jFHX1DZI5pbY/biQ==", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.2" + "@fortawesome/fontawesome-common-types": "6.6.0" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-regular-svg-icons": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.4.2.tgz", - "integrity": "sha512-0+sIUWnkgTVVXVAPQmW4vxb9ZTHv0WstOa3rBx9iPxrrrDH6bNLsDYuwXF9b6fGm+iR7DKQvQshUH/FJm3ed9Q==", - "hasInstallScript": true, + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.6.0.tgz", + "integrity": "sha512-Yv9hDzL4aI73BEwSEh20clrY8q/uLxawaQ98lekBx6t9dQKDHcDzzV1p2YtBGTtolYtNqcWdniOnhzB+JPnQEQ==", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.2" + "@fortawesome/fontawesome-common-types": "6.6.0" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/free-solid-svg-icons": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.4.2.tgz", - "integrity": "sha512-sYwXurXUEQS32fZz9hVCUUv/xu49PEJEyUOsA51l6PU/qVgfbTb2glsTEaJngVVT8VqBATRIdh7XVgV1JF1LkA==", - "hasInstallScript": true, + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.6.0.tgz", + "integrity": "sha512-IYv/2skhEDFc2WGUcqvFJkeK39Q+HyPf5GHUrT/l2pKbtgEIv1al1TKd6qStR5OIwQdN1GZP54ci3y4mroJWjA==", "dependencies": { - "@fortawesome/fontawesome-common-types": "6.4.2" + "@fortawesome/fontawesome-common-types": "6.6.0" }, "engines": { "node": ">=6" } }, "node_modules/@fortawesome/vue-fontawesome": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.3.tgz", - "integrity": "sha512-KCPHi9QemVXGMrfuwf3nNnNo129resAIQWut9QTAMXmXqL2ErABC6ohd2yY5Ipq0CLWNbKHk8TMdTXL/Zf3ZhA==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.8.tgz", + "integrity": "sha512-yyHHAj4G8pQIDfaIsMvQpwKMboIZtcHTUvPqXjOHyldh1O1vZfH4W03VDPv5RvI9P6DLTzJQlmVgj9wCf7c2Fw==", "peerDependencies": { "@fortawesome/fontawesome-svg-core": "~1 || ~6", "vue": ">= 3.0.0 < 4" } }, "node_modules/@headlessui/vue": { - "version": "1.7.16", - "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.16.tgz", - "integrity": "sha512-nKT+nf/q6x198SsyK54mSszaQl/z+QxtASmgMEJtpxSX2Q0OPJX0upS/9daDyiECpeAsvjkoOrm2O/6PyBQ+Qg==", + "version": "1.7.22", + "resolved": "https://registry.npmjs.org/@headlessui/vue/-/vue-1.7.22.tgz", + "integrity": "sha512-Hoffjoolq1rY+LOfJ+B/OvkhuBXXBFgd8oBlN+l1TApma2dB0En0ucFZrwQtb33SmcCqd32EQd0y07oziXWNYg==", + "dependencies": { + "@tanstack/vue-virtual": "^3.0.0-beta.60" + }, "engines": { "node": ">=10" }, @@ -2735,32 +2749,176 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@inquirer/confirm": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", + "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "dev": true, + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.0.10.tgz", + "integrity": "sha512-TdESOKSVwf6+YWDz8GhS6nKscwzkIyakEzCLJ5Vh6O3Co2ClhCJ0A4MG909MUWfaWdpJm7DE45ii51/2Kat9tA==", + "dev": true, + "dependencies": { + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.2", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.1.0", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-spinners": "^2.9.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@inquirer/core/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, + "node_modules/@inquirer/core/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.5.tgz", + "integrity": "sha512-79hP/VWdZ2UVc9bFGJnoQ/lQMpL74mGgzSYX1xUqCVk7/v73vJCMw1VuyWN1jGkZ9B3z7THAbySqGbCNefcjfA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.2.tgz", + "integrity": "sha512-w9qFkumYDCNyDZmNQjf/n6qQuvQ4dMC3BJesY4oF+yr0CxR5vxujflAVeIcS6U336uzi9GM0kAfZlLrZ9UTkpA==", + "dev": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@intlify/core-base": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.5.0.tgz", - "integrity": "sha512-y3ufM1RJbI/DSmJf3lYs9ACq3S/iRvaSsE3rPIk0MGH7fp+JxU6rdryv/EYcwfcr3Y1aHFlCBir6S391hRZ57w==", + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", "dependencies": { - "@intlify/message-compiler": "9.5.0", - "@intlify/shared": "9.5.0" + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" }, "engines": { "node": ">= 16" @@ -2770,11 +2928,11 @@ } }, "node_modules/@intlify/message-compiler": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.5.0.tgz", - "integrity": "sha512-CAhVNfEZcOVFg0/5MNyt+OFjvs4J/ARjCj2b+54/FvFP0EDJI5lIqMTSDBE7k0atMROSP0SvWCkwu/AZ5xkK1g==", + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", "dependencies": { - "@intlify/shared": "9.5.0", + "@intlify/shared": "9.13.1", "source-map-js": "^1.0.2" }, "engines": { @@ -2785,9 +2943,9 @@ } }, "node_modules/@intlify/shared": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.5.0.tgz", - "integrity": "sha512-tAxV14LMXZDZbu32XzLMTsowNlgJNmLwWHYzvMUl6L8gvQeoYiZONjY7AUsqZW8TOZDX9lfvF6adPkk9FSRdDA==", + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==", "engines": { "node": ">= 16" }, @@ -2824,41 +2982,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", @@ -2874,450 +2997,162 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">=6.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, + "node_modules/@mdx-js/react": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", "dev": true, "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "@types/mdx": "^2.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/@mswjs/interceptors": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.29.1.tgz", + "integrity": "sha512-3rDakgJZ77+RiQUuSK69t1F0m8BQKA8Vh5DCS5V0DWvNY67zob2JhhQrhCO0AKLGINTRSFd1tBaHcJTkhefoSw==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", + "outvariant": "^1.2.1", + "strict-event-emitter": "^0.5.1" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "eslint-scope": "5.1.1" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/@jest/transform": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.5.0.tgz", - "integrity": "sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.5.0", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.5.0", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">= 8" } }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true + }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "dev": true + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.5.0.tgz", - "integrity": "sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.4.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@juggle/resize-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==", - "dev": true - }, - "node_modules/@kurkle/color": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", - "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" - }, - "node_modules/@mswjs/cookies": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@mswjs/cookies/-/cookies-0.2.2.tgz", - "integrity": "sha512-mlN83YSrcFgk7Dm1Mys40DLssI1KdJji2CMKN8eOlBqsTADYzj2+jWzsANsUTFbxDMWPD5e9bfA1RGqBpS3O1g==", - "dev": true, - "dependencies": { - "@types/set-cookie-parser": "^2.4.0", - "set-cookie-parser": "^2.4.6" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@mswjs/interceptors": { - "version": "0.17.10", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.10.tgz", - "integrity": "sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==", - "dev": true, - "dependencies": { - "@open-draft/until": "^1.0.3", - "@types/debug": "^4.1.7", - "@xmldom/xmldom": "^0.8.3", - "debug": "^4.3.3", - "headers-polyfill": "3.2.5", - "outvariant": "^1.2.1", - "strict-event-emitter": "^0.2.4", - "web-encoding": "^1.1.5" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@ndelangen/get-tarball": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@ndelangen/get-tarball/-/get-tarball-3.0.7.tgz", - "integrity": "sha512-NqGfTZIZpRFef1GoVaShSSRwDC3vde3ThtTeqFdcYd6ipKqnfEVhjK2hUeHjCQUcptyZr2TONqcloFXM+5QBrQ==", - "dev": true, - "dependencies": { - "gunzip-maybe": "^1.4.2", - "pump": "^3.0.0", - "tar-fs": "^2.1.1" - } - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", - "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", - "dev": true, - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" } }, - "node_modules/@one-ini/wasm": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", - "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", - "dev": true - }, "node_modules/@open-draft/until": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-1.0.3.tgz", - "integrity": "sha512-Aq58f5HiWdyDlFffbbSjAlv596h/cOnt2DO1w3DOC7OJ5EHs0hd/nycJfiu9RJbT6Yk6F1knnRRXNSpxoIVZ9Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", "dev": true }, "node_modules/@pkgjs/parseargs": { @@ -3330,19 +3165,11 @@ "node": ">=14" } }, - "node_modules/@pkgr/utils": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", - "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "fast-glob": "^3.3.0", - "is-glob": "^4.0.3", - "open": "^9.1.0", - "picocolors": "^1.0.0", - "tslib": "^2.6.0" - }, "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, @@ -3350,5229 +3177,2682 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/@pkgr/utils/node_modules/define-lazy-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", - "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", + "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", + "cpu": [ + "arm" + ], "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@pkgr/utils/node_modules/open": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", - "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", + "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "default-browser": "^4.0.0", - "define-lazy-prop": "^3.0.0", - "is-inside-container": "^1.0.0", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@radix-ui/number": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.0.1.tgz", - "integrity": "sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@radix-ui/primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", - "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", - "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", - "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", - "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", - "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", - "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.4.tgz", - "integrity": "sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-escape-keydown": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", - "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.3.tgz", - "integrity": "sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", - "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.2.tgz", - "integrity": "sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-rect": "1.0.1", - "@radix-ui/react-use-size": "1.0.1", - "@radix-ui/rect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.3.tgz", - "integrity": "sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", - "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-slot": "1.0.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", - "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-1.2.2.tgz", - "integrity": "sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/number": "1.0.1", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-collection": "1.0.3", - "@radix-ui/react-compose-refs": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-dismissable-layer": "1.0.4", - "@radix-ui/react-focus-guards": "1.0.1", - "@radix-ui/react-focus-scope": "1.0.3", - "@radix-ui/react-id": "1.0.1", - "@radix-ui/react-popper": "1.1.2", - "@radix-ui/react-portal": "1.0.3", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-slot": "1.0.2", - "@radix-ui/react-use-callback-ref": "1.0.1", - "@radix-ui/react-use-controllable-state": "1.0.1", - "@radix-ui/react-use-layout-effect": "1.0.1", - "@radix-ui/react-use-previous": "1.0.1", - "@radix-ui/react-visually-hidden": "1.0.3", - "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.5.5" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-separator": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-separator/-/react-separator-1.0.3.tgz", - "integrity": "sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", - "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-compose-refs": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.0.3.tgz", - "integrity": "sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toggle-group": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.0.4.tgz", - "integrity": "sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-toggle": "1.0.3", - "@radix-ui/react-use-controllable-state": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-toolbar": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-toolbar/-/react-toolbar-1.0.4.tgz", - "integrity": "sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/primitive": "1.0.1", - "@radix-ui/react-context": "1.0.1", - "@radix-ui/react-direction": "1.0.1", - "@radix-ui/react-primitive": "1.0.3", - "@radix-ui/react-roving-focus": "1.0.4", - "@radix-ui/react-separator": "1.0.3", - "@radix-ui/react-toggle-group": "1.0.4" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", - "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", - "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", - "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-callback-ref": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", - "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.0.1.tgz", - "integrity": "sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", - "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/rect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", - "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-use-layout-effect": "1.0.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.0.3.tgz", - "integrity": "sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10", - "@radix-ui/react-primitive": "1.0.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/rect": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", - "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.13.10" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@stekoe/vue-toast-notificationcenter": { - "version": "1.0.0", - "resolved": "https://github.com/SteKoe/vue-toast-notificationcenter/archive/refs/tags/1.0.0-RC5.tar.gz", - "integrity": "sha512-ilr6m5m0SIyDI6ecfdDNv9baiQCbf+hh7xblPVd60/KuMSoc5DJgUKpRcN7aDVzrY2Y9dj+nP433LbeFFffYtw==", - "peerDependencies": { - "vue": "^3.2.25" - } - }, - "node_modules/@storybook/addon-actions": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-7.4.6.tgz", - "integrity": "sha512-SsqZr3js5NinKPnC8AeNI7Ij+Q6fIl9tRdRmSulEgjksjOg7E5S1/Wsn5Bb2CCgj7MaX6VxGyC7s3XskQtDiIQ==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "polished": "^4.2.2", - "prop-types": "^15.7.2", - "react-inspector": "^6.0.0", - "telejson": "^7.2.0", - "ts-dedent": "^2.0.0", - "uuid": "^9.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-backgrounds": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-7.4.6.tgz", - "integrity": "sha512-+LHTZB/ZYMAzkyD5ZxSriBsqmsrvIaW/Nnd/BeuXGbkrVKKqM0qAKiFZAfjc2WchA1piVNy0/1Rsf+kuYCEiJw==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", - "memoizerific": "^1.11.3", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-controls": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-7.4.6.tgz", - "integrity": "sha512-4lq3sycEUIsK8SUWDYc60QgF4vV9FZZ3lDr6M7j2W9bOnvGw49d2fbdlnq+bX1ZprZZ9VgglQpBAorQB3BXZRw==", - "dev": true, - "dependencies": { - "@storybook/blocks": "7.4.6", - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/core-common": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/manager-api": "7.4.6", - "@storybook/node-logger": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", - "lodash": "^4.17.21", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-docs": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-7.4.6.tgz", - "integrity": "sha512-dLaub+XWFq4hChw+xfuF9yYg0Txp77FUawKoAigccfjWXx+OOhRV3XTuAcknpXkYq94GWynHgUFXosXT9kbDNA==", - "dev": true, - "dependencies": { - "@jest/transform": "^29.3.1", - "@mdx-js/react": "^2.1.5", - "@storybook/blocks": "7.4.6", - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/csf-plugin": "7.4.6", - "@storybook/csf-tools": "7.4.6", - "@storybook/global": "^5.0.0", - "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.4.6", - "@storybook/postinstall": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/react-dom-shim": "7.4.6", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", - "fs-extra": "^11.1.0", - "remark-external-links": "^8.0.0", - "remark-slug": "^6.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/addon-docs/node_modules/@mdx-js/react": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-2.3.0.tgz", - "integrity": "sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==", - "dev": true, - "dependencies": { - "@types/mdx": "^2.0.0", - "@types/react": ">=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "react": ">=16" - } - }, - "node_modules/@storybook/addon-essentials": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-7.4.6.tgz", - "integrity": "sha512-dWodufrt71TK7ELkeIvVae/x4PzECUlbOm57Iqqt4yQCyR291CgvI4PjeB8un2HbpcXCGZ+N/Oj3YkytvzBi4A==", - "dev": true, - "dependencies": { - "@storybook/addon-actions": "7.4.6", - "@storybook/addon-backgrounds": "7.4.6", - "@storybook/addon-controls": "7.4.6", - "@storybook/addon-docs": "7.4.6", - "@storybook/addon-highlight": "7.4.6", - "@storybook/addon-measure": "7.4.6", - "@storybook/addon-outline": "7.4.6", - "@storybook/addon-toolbars": "7.4.6", - "@storybook/addon-viewport": "7.4.6", - "@storybook/core-common": "7.4.6", - "@storybook/manager-api": "7.4.6", - "@storybook/node-logger": "7.4.6", - "@storybook/preview-api": "7.4.6", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/addon-highlight": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-7.4.6.tgz", - "integrity": "sha512-zCufxxD2KS5VwczxfkcBxe1oR/juTTn2H1Qm8kYvWCJQx3UxzX0+G9cwafbpV7eivqaufLweEwROkH+0KjAtkQ==", - "dev": true, - "dependencies": { - "@storybook/core-events": "7.4.6", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.4.6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/addon-links": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-7.4.6.tgz", - "integrity": "sha512-BPygElZKX+CPI9Se6GJNk1dYc5oxuhA+vHigO1tBqhiM6VkHyFP3cvezJNQvpNYhkUnu3cxnZXb3UJnlRbPY3g==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/csf": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/router": "7.4.6", - "@storybook/types": "7.4.6", - "prop-types": "^15.7.2", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-mdx-gfm": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-mdx-gfm/-/addon-mdx-gfm-7.4.6.tgz", - "integrity": "sha512-5DCQd9syEsCjB4q8lplHwqOlrdgFn/Ttm7/7aNTeZxF1a4qH/n3Yi7P2SAehaKpJLU61aRFILzE46JD4yvMaHg==", - "dev": true, - "dependencies": { - "@storybook/node-logger": "7.4.6", - "remark-gfm": "^3.0.1", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/addon-measure": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-7.4.6.tgz", - "integrity": "sha512-nCymMLaHnxv8TE3yEM1A9Tulb1NuRXRNmtsdHTkjv7P1aWCxZo8A/GZaottKe/GLT8jSRjZ+dnpYWrbAhw6wTQ==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/types": "7.4.6", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-outline": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-7.4.6.tgz", - "integrity": "sha512-errNUblRVDLpuEaHQPr/nsrnsUkD2ARmXawkRvizgDWLIDMDJYjTON3MUCaVx3x+hlZ3I6X//G5TVcma8tCc8A==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/types": "7.4.6", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-toolbars": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-7.4.6.tgz", - "integrity": "sha512-L9m2FBcKeteGq7qIYsMJr0LEfiH7Wdrv5IDcldZTn68eZUJTh1p4GdJZcOmzX1P5IFRr76hpu03iWsNlWQjpbQ==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/manager-api": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/theming": "7.4.6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/addon-viewport": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-7.4.6.tgz", - "integrity": "sha512-INDtk54j7bi7NgxMfd2ATmbA0J7nAd6X8itMkLIyPuPJtx8bYHPDORyemDOd0AojgmAdTOAyUtDYdI/PFeo4Cw==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/theming": "7.4.6", - "memoizerific": "^1.11.3", - "prop-types": "^15.7.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/@storybook/blocks": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-7.4.6.tgz", - "integrity": "sha512-HxBSAeOiTZW2jbHQlo1upRWFgoMsaAyKijUFf5MwwMNIesXCuuTGZDJ3xTABwAVLK2qC9Ektfbo0CZCiPVuDRQ==", - "dev": true, - "dependencies": { - "@storybook/channels": "7.4.6", - "@storybook/client-logger": "7.4.6", - "@storybook/components": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/csf": "^0.1.0", - "@storybook/docs-tools": "7.4.6", - "@storybook/global": "^5.0.0", - "@storybook/manager-api": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", - "@types/lodash": "^4.14.167", - "color-convert": "^2.0.1", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "markdown-to-jsx": "^7.1.8", - "memoizerific": "^1.11.3", - "polished": "^4.2.2", - "react-colorful": "^5.1.2", - "telejson": "^7.2.0", - "tocbot": "^4.20.1", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/blocks/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/blocks/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/builder-manager": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.4.6.tgz", - "integrity": "sha512-zylZCD2rmyLOOFBFmUgtJg6UNUKmRNgXiig1XApzS2TkIbTZP827DsVEUl0ey/lskCe0uArkrEBR6ICba8p/Rw==", - "dev": true, - "dependencies": { - "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.4.6", - "@storybook/manager": "7.4.6", - "@storybook/node-logger": "7.4.6", - "@types/ejs": "^3.1.1", - "@types/find-cache-dir": "^3.2.1", - "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", - "browser-assert": "^1.2.1", - "ejs": "^3.1.8", - "esbuild": "^0.18.0", - "esbuild-plugin-alias": "^0.2.1", - "express": "^4.17.3", - "find-cache-dir": "^3.0.0", - "fs-extra": "^11.1.0", - "process": "^0.11.10", - "util": "^0.12.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/builder-vite": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.4.6.tgz", - "integrity": "sha512-xV9STYK+TkqWWTf2ydm6jx+7P70fjD2UPd1XTUw08uKszIjhuuxk+bG/OF5R1E25mPunAKXm6kBFh351AKejBg==", - "dev": true, - "dependencies": { - "@storybook/channels": "7.4.6", - "@storybook/client-logger": "7.4.6", - "@storybook/core-common": "7.4.6", - "@storybook/csf-plugin": "7.4.6", - "@storybook/mdx2-csf": "^1.0.0", - "@storybook/node-logger": "7.4.6", - "@storybook/preview": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/types": "7.4.6", - "@types/find-cache-dir": "^3.2.1", - "browser-assert": "^1.2.1", - "es-module-lexer": "^0.9.3", - "express": "^4.17.3", - "find-cache-dir": "^3.0.0", - "fs-extra": "^11.1.0", - "magic-string": "^0.30.0", - "remark-external-links": "^8.0.0", - "remark-slug": "^6.0.0", - "rollup": "^2.25.0 || ^3.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@preact/preset-vite": "*", - "typescript": ">= 4.3.x", - "vite": "^3.0.0 || ^4.0.0", - "vite-plugin-glimmerx": "*" - }, - "peerDependenciesMeta": { - "@preact/preset-vite": { - "optional": true - }, - "typescript": { - "optional": true - }, - "vite-plugin-glimmerx": { - "optional": true - } - } - }, - "node_modules/@storybook/channels": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.4.6.tgz", - "integrity": "sha512-yPv/sfo2c18fM3fvG0i1xse63vG8l33Al/OU0k/dtovltPu001/HVa1QgBgsb/QrEfZtvGjGhmtdVeYb39fv3A==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/global": "^5.0.0", - "qs": "^6.10.0", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/cli": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.4.6.tgz", - "integrity": "sha512-rRwaH8pOL+FHz/pJMEkNpMH2xvZvWsrl7obBYw26NQiHmiVSAkfHJicndSN1mwc+p5w+9iXthrgzbLtSAOSvkA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/types": "^7.22.5", - "@ndelangen/get-tarball": "^3.0.7", - "@storybook/codemod": "7.4.6", - "@storybook/core-common": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/core-server": "7.4.6", - "@storybook/csf-tools": "7.4.6", - "@storybook/node-logger": "7.4.6", - "@storybook/telemetry": "7.4.6", - "@storybook/types": "7.4.6", - "@types/semver": "^7.3.4", - "@yarnpkg/fslib": "2.10.3", - "@yarnpkg/libzip": "2.3.0", - "chalk": "^4.1.0", - "commander": "^6.2.1", - "cross-spawn": "^7.0.3", - "detect-indent": "^6.1.0", - "envinfo": "^7.7.3", - "execa": "^5.0.0", - "express": "^4.17.3", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "get-npm-tarball-url": "^2.0.3", - "get-port": "^5.1.1", - "giget": "^1.0.0", - "globby": "^11.0.2", - "jscodeshift": "^0.14.0", - "leven": "^3.1.0", - "ora": "^5.4.1", - "prettier": "^2.8.0", - "prompts": "^2.4.0", - "puppeteer-core": "^2.1.1", - "read-pkg-up": "^7.0.1", - "semver": "^7.3.7", - "simple-update-notifier": "^2.0.0", - "strip-json-comments": "^3.0.1", - "tempy": "^1.0.1", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "bin": { - "getstorybook": "bin/index.js", - "sb": "bin/index.js" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/cli/node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/@storybook/cli/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/client-logger": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.4.6.tgz", - "integrity": "sha512-XDw31ZziU//86PKuMRnmc+L/G0VopaGKENQOGEpvAXCU9IZASwGKlKAtcyosjrpi+ZiUXlMgUXCpXM7x3b1Ehw==", - "dev": true, - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/codemod": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-7.4.6.tgz", - "integrity": "sha512-lxmwEpwksCaAq96APN2YlooSDfKjJ1vKzN5Ni2EqQzf2TEXl7XQjLacHd7OOaII1kfsy+D5gNG4N5wBo7Ub30g==", - "dev": true, - "dependencies": { - "@babel/core": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/types": "^7.22.5", - "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.4.6", - "@storybook/node-logger": "7.4.6", - "@storybook/types": "7.4.6", - "@types/cross-spawn": "^6.0.2", - "cross-spawn": "^7.0.3", - "globby": "^11.0.2", - "jscodeshift": "^0.14.0", - "lodash": "^4.17.21", - "prettier": "^2.8.0", - "recast": "^0.23.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/codemod/node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/@storybook/components": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-7.4.6.tgz", - "integrity": "sha512-nIRBhewAgrJJVafyCzuaLx1l+YOfvvD5dOZ0JxZsxJsefOdw1jFpUqUZ5fIpQ2moyvrR0mAUFw378rBfMdHz5Q==", - "dev": true, - "dependencies": { - "@radix-ui/react-select": "^1.2.2", - "@radix-ui/react-toolbar": "^1.0.4", - "@storybook/client-logger": "7.4.6", - "@storybook/csf": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", - "memoizerific": "^1.11.3", - "use-resize-observer": "^9.1.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/core-client": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.4.6.tgz", - "integrity": "sha512-tfgxAHeCvMcs6DsVgtb4hQSDaCHeAPJOsoyhb47eDQfk4OmxzriM0qWucJV5DePSMi+KutX/rN2u0JxfOuN68g==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/preview-api": "7.4.6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-common": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.4.6.tgz", - "integrity": "sha512-05MJFmOM86qvTLtgDskokIFz9txe0Lbhq4L3by1FtF0GwgH+p+W6I94KI7c6ANER+kVZkXQZhiRzwBFnVTW+Cg==", - "dev": true, - "dependencies": { - "@storybook/core-events": "7.4.6", - "@storybook/node-logger": "7.4.6", - "@storybook/types": "7.4.6", - "@types/find-cache-dir": "^3.2.1", - "@types/node": "^16.0.0", - "@types/node-fetch": "^2.6.4", - "@types/pretty-hrtime": "^1.0.0", - "chalk": "^4.1.0", - "esbuild": "^0.18.0", - "esbuild-register": "^3.4.0", - "file-system-cache": "2.3.0", - "find-cache-dir": "^3.0.0", - "find-up": "^5.0.0", - "fs-extra": "^11.1.0", - "glob": "^10.0.0", - "handlebars": "^4.7.7", - "lazy-universal-dotenv": "^4.0.0", - "node-fetch": "^2.0.0", - "picomatch": "^2.3.0", - "pkg-dir": "^5.0.0", - "pretty-hrtime": "^1.0.3", - "resolve-from": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-common/node_modules/@types/node": { - "version": "16.18.57", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.57.tgz", - "integrity": "sha512-piPoDozdPaX1hNWFJQzzgWqE40gh986VvVx/QO9RU4qYRE55ld7iepDVgZ3ccGUw0R4wge0Oy1dd+3xOQNkkUQ==", - "dev": true - }, - "node_modules/@storybook/core-common/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@storybook/core-common/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/core-common/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/core-common/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/core-common/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/core-common/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-common/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@storybook/core-common/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/@storybook/core-common/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-events": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.4.6.tgz", - "integrity": "sha512-r5vrE+32lwrJh1NGFr1a0mWjvxo7q8FXYShylcwRWpacmL5NTtLkrXOoJSeGvJ4yKNYkvxQFtOPId4lzDxa32w==", - "dev": true, - "dependencies": { - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.4.6.tgz", - "integrity": "sha512-jqmRTGCJ1W0WReImivkisPVaLFT5sjtLnFoAk0feHp6QS5j7EYOPN7CYzliyQmARWTLUEXOVaFf3VD6nJZQhJQ==", - "dev": true, - "dependencies": { - "@aw-web-design/x-default-browser": "1.4.126", - "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.4.6", - "@storybook/channels": "7.4.6", - "@storybook/core-common": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/csf": "^0.1.0", - "@storybook/csf-tools": "7.4.6", - "@storybook/docs-mdx": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/manager": "7.4.6", - "@storybook/node-logger": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/telemetry": "7.4.6", - "@storybook/types": "7.4.6", - "@types/detect-port": "^1.3.0", - "@types/node": "^16.0.0", - "@types/pretty-hrtime": "^1.0.0", - "@types/semver": "^7.3.4", - "better-opn": "^3.0.2", - "chalk": "^4.1.0", - "cli-table3": "^0.6.1", - "compression": "^1.7.4", - "detect-port": "^1.3.0", - "express": "^4.17.3", - "fs-extra": "^11.1.0", - "globby": "^11.0.2", - "ip": "^2.0.0", - "lodash": "^4.17.21", - "open": "^8.4.0", - "pretty-hrtime": "^1.0.3", - "prompts": "^2.4.0", - "read-pkg-up": "^7.0.1", - "semver": "^7.3.7", - "telejson": "^7.2.0", - "tiny-invariant": "^1.3.1", - "ts-dedent": "^2.0.0", - "util": "^0.12.4", - "util-deprecate": "^1.0.2", - "watchpack": "^2.2.0", - "ws": "^8.2.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/core-server/node_modules/@types/node": { - "version": "16.18.57", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.57.tgz", - "integrity": "sha512-piPoDozdPaX1hNWFJQzzgWqE40gh986VvVx/QO9RU4qYRE55ld7iepDVgZ3ccGUw0R4wge0Oy1dd+3xOQNkkUQ==", - "dev": true - }, - "node_modules/@storybook/core-server/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/core-server/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/core-server/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/core-server/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/core-server/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/core-server/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/csf": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.0.tgz", - "integrity": "sha512-uk+jMXCZ8t38jSTHk2o5btI+aV2Ksbvl6DoOv3r6VaCM1KZqeuMwtwywIQdflkA8/6q/dKT8z8L+g8hC4GC3VQ==", - "dev": true, - "dependencies": { - "type-fest": "^2.19.0" - } - }, - "node_modules/@storybook/csf-plugin": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.4.6.tgz", - "integrity": "sha512-yi7Qa4NSqKOyiJTWCxlB0ih2ijXq6oY5qZKW6MuMMBP14xJNRGLbH5KabpfXgN2T7YECcOWG1uWaGj2veJb1KA==", - "dev": true, - "dependencies": { - "@storybook/csf-tools": "7.4.6", - "unplugin": "^1.3.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf-tools": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.4.6.tgz", - "integrity": "sha512-ocKpcIUtTBy6hlLY34RUFQyX403cWpB2gGfqvkHbpGe2BQj7EyV0zpWnjsfVxvw+M9OWlCdxHWDOPUgXM33ELw==", - "dev": true, - "dependencies": { - "@babel/generator": "^7.22.9", - "@babel/parser": "^7.22.7", - "@babel/traverse": "^7.22.8", - "@babel/types": "^7.22.5", - "@storybook/csf": "^0.1.0", - "@storybook/types": "7.4.6", - "fs-extra": "^11.1.0", - "recast": "^0.23.1", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/csf/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@storybook/docs-mdx": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@storybook/docs-mdx/-/docs-mdx-0.1.0.tgz", - "integrity": "sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==", - "dev": true - }, - "node_modules/@storybook/docs-tools": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.4.6.tgz", - "integrity": "sha512-nZj1L/8WwKWWJ41FW4MaKGajZUtrhnr9UwflRCkQJaWhAKmDfOb5M5TqI93uCOULpFPOm5wpoMBz2IHInQ2Lrg==", - "dev": true, - "dependencies": { - "@storybook/core-common": "7.4.6", - "@storybook/preview-api": "7.4.6", - "@storybook/types": "7.4.6", - "@types/doctrine": "^0.0.3", - "doctrine": "^3.0.0", - "lodash": "^4.17.21" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/global": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", - "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", - "dev": true - }, - "node_modules/@storybook/manager": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.4.6.tgz", - "integrity": "sha512-kA1hUDxpn1i2SO9OinvLvVXDeL4xgJkModp+pbE8IXv4NJWReNq1ecMeQCzPLS3Sil2gnrullQ9uYXsnZ9bxxA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/manager-api": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-7.4.6.tgz", - "integrity": "sha512-inrm3DIbCp8wjXSN/wK6e6i2ysQ/IEmtC7IN0OJ7vdrp+USCooPT448SQTUmVctUGCFmOU3fxXByq8g77oIi7w==", - "dev": true, - "dependencies": { - "@storybook/channels": "7.4.6", - "@storybook/client-logger": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/csf": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/router": "7.4.6", - "@storybook/theming": "7.4.6", - "@storybook/types": "7.4.6", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "semver": "^7.3.7", - "store2": "^2.14.2", - "telejson": "^7.2.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/manager-api/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@storybook/mdx2-csf": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@storybook/mdx2-csf/-/mdx2-csf-1.0.0.tgz", - "integrity": "sha512-dBAnEL4HfxxJmv7LdEYUoZlQbWj9APZNIbOaq0tgF8XkxiIbzqvgB0jhL/9UOrysSDbQWBiCRTu2wOVxedGfmw==", - "dev": true - }, - "node_modules/@storybook/node-logger": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.4.6.tgz", - "integrity": "sha512-djZb310Q27GviDug1XBv0jOEDLCiwr4hhDE0aifCEKZpfNCi/EaP31nbWimFzZwxu4hE/YAPWExzScruR1zw9Q==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/postinstall": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-7.4.6.tgz", - "integrity": "sha512-TqI5BucPAGRWrkh55BYiG2/gHLFtC0In4cuu0GsUzB/1jc4i51npLRorCwhmT7r7YliGl5F7JaP0Bni/qHN3Lg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/preview": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.4.6.tgz", - "integrity": "sha512-2RPXusJ4CTDrIipIKKvbotD7fP0+8VzoFjImunflIrzN9rni+2rq5eMjqlXAaB+77w064zIR4uDUzI9fxsMDeQ==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/preview-api": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.4.6.tgz", - "integrity": "sha512-byUS/Opt3ytWD4cWz3sNEKw5Yks8MkQgRN+GDSyIomaEAQkLAM0rchPC0MYjwCeUSecV7IIQweNX5RbV4a34BA==", - "dev": true, - "dependencies": { - "@storybook/channels": "7.4.6", - "@storybook/client-logger": "7.4.6", - "@storybook/core-events": "7.4.6", - "@storybook/csf": "^0.1.0", - "@storybook/global": "^5.0.0", - "@storybook/types": "7.4.6", - "@types/qs": "^6.9.5", - "dequal": "^2.0.2", - "lodash": "^4.17.21", - "memoizerific": "^1.11.3", - "qs": "^6.10.0", - "synchronous-promise": "^2.0.15", - "ts-dedent": "^2.0.0", - "util-deprecate": "^1.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/react-dom-shim": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.4.6.tgz", - "integrity": "sha512-DSq8l9FDocUF1ooVI+TF83pddj1LynE/Hv0/y8XZhc3IgJ/HkuOQuUmfz29ezgfAi9gFYUR8raTIBi3/xdoRmw==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/router": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.4.6.tgz", - "integrity": "sha512-Vl1esrHkcHxDKqc+HY7+6JQpBPW3zYvGk0cQ2rxVMhWdLZTAz1hss9DqzN9tFnPyfn0a1Q77EpMySkUrvWKKNQ==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "memoizerific": "^1.11.3", - "qs": "^6.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/telemetry": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.4.6.tgz", - "integrity": "sha512-c8p/C1NIH8EMBviZkBCx8MMDk6rrITJ+b29DEp5MaWSRlklIVyhGiC4RPIRv6sxJwlD41PnqWVFtfu2j2eXLdQ==", - "dev": true, - "dependencies": { - "@storybook/client-logger": "7.4.6", - "@storybook/core-common": "7.4.6", - "@storybook/csf-tools": "7.4.6", - "chalk": "^4.1.0", - "detect-package-manager": "^2.0.1", - "fetch-retry": "^5.0.2", - "fs-extra": "^11.1.0", - "read-pkg-up": "^7.0.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/telemetry/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@storybook/telemetry/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@storybook/telemetry/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@storybook/telemetry/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@storybook/telemetry/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/telemetry/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@storybook/theming": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.4.6.tgz", - "integrity": "sha512-HW77iJ9ptCMqhoBOYFjRQw7VBap+38fkJGHP5KylEJCyYCgIAm2dEcQmtWpMVYFssSGcb6djfbtAMhYU4TL4Iw==", - "dev": true, - "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", - "@storybook/client-logger": "7.4.6", - "@storybook/global": "^5.0.0", - "memoizerific": "^1.11.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/@storybook/types": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.4.6.tgz", - "integrity": "sha512-6QLXtMVsFZFpzPkdGWsu/iuc8na9dnS67AMOBKm5qCLPwtUJOYkwhMdFRSSeJthLRpzV7JLAL8Kwvl7MFP3QSw==", - "dev": true, - "dependencies": { - "@storybook/channels": "7.4.6", - "@types/babel__core": "^7.0.0", - "@types/express": "^4.7.0", - "file-system-cache": "2.3.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/@storybook/vue3": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-7.4.6.tgz", - "integrity": "sha512-Azv/GhmPlAUy8UbXZHKubrBlKhGimuJTT2O6zUvIzggR6sJdsRmdWaEv2S90ZpMBkVYyyM9oKS1fZ4eKi/Ds8g==", - "dev": true, - "dependencies": { - "@storybook/core-client": "7.4.6", - "@storybook/docs-tools": "7.4.6", - "@storybook/global": "^5.0.0", - "@storybook/preview-api": "7.4.6", - "@storybook/types": "7.4.6", - "lodash": "^4.17.21", - "ts-dedent": "^2.0.0", - "type-fest": "~2.19", - "vue-component-type-helpers": "latest" - }, - "engines": { - "node": ">=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "@vue/compiler-core": "^3.0.0", - "vue": "^3.0.0" - } - }, - "node_modules/@storybook/vue3-vite": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/@storybook/vue3-vite/-/vue3-vite-7.4.6.tgz", - "integrity": "sha512-r/mUDdCifpN99Cqmvm7IvPZGnur7lYiTxbQPhV8NdRBpQGxm3JC0life9yIvvHV9mYRCjn5MEzC65zWx03Nzig==", - "dev": true, - "dependencies": { - "@storybook/builder-vite": "7.4.6", - "@storybook/core-server": "7.4.6", - "@storybook/vue3": "7.4.6", - "@vitejs/plugin-vue": "^4.0.0", - "magic-string": "^0.30.0", - "vue-docgen-api": "^4.40.0" - }, - "engines": { - "node": "^14.18 || >=16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "vite": "^3.0.0 || ^4.0.0" - } - }, - "node_modules/@storybook/vue3/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "dev": true, - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@tailwindcss/forms": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.6.tgz", - "integrity": "sha512-Fw+2BJ0tmAwK/w01tEFL5TiaJBX1NLT1/YbWgvm7ws3Qcn11kiXxzNTEQDMs5V3mQemhB56l3u0i9dwdzSQldA==", - "dependencies": { - "mini-svg-data-uri": "^1.2.3" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" - } - }, - "node_modules/@tailwindcss/typography": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", - "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", - "dependencies": { - "lodash.castarray": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.merge": "^4.6.2", - "postcss-selector-parser": "6.0.10" - }, - "peerDependencies": { - "tailwindcss": ">=3.0.0 || insiders" - } - }, - "node_modules/@testing-library/dom": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.0.1.tgz", - "integrity": "sha512-fTOVsMY9QLFCCXRHG3Ese6cMH5qIWwSbgxZsgeF5TNsy81HKaZ4kgehnSF8FsR3OF+numlIV2YcU79MzbnhSig==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^5.0.1", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.5.0", - "pretty-format": "^27.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@testing-library/dom/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@testing-library/dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.1.3.tgz", - "integrity": "sha512-YzpjRHoCBWPzpPNtg6gnhasqtE/5O4qz8WCwDEaxtfnPO6gkaLrnuXusrGSPyhIGPezr1HM7ZH0CFaUTY9PJEQ==", - "dev": true, - "dependencies": { - "@adobe/css-tools": "^4.3.0", - "@babel/runtime": "^7.9.2", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^3.0.0" - }, - "engines": { - "node": ">=14", - "npm": ">=6", - "yarn": ">=1" - }, - "peerDependencies": { - "@jest/globals": ">= 28", - "@types/jest": ">= 28", - "jest": ">= 28", - "vitest": ">= 0.32" - }, - "peerDependenciesMeta": { - "@jest/globals": { - "optional": true - }, - "@types/jest": { - "optional": true - }, - "jest": { - "optional": true - }, - "vitest": { - "optional": true - } - } - }, - "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@testing-library/jest-dom/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/jest-dom/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@testing-library/user-event": { - "version": "14.5.1", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.1.tgz", - "integrity": "sha512-UCcUKrUYGj7ClomOo2SpNVvx4/fkd/2BbIHDCle8A0ax+P3bU7yJwDBDrS6ZwdTMARWTGODX1hEsCcO+7beJjg==", - "dev": true, - "engines": { - "node": ">=12", - "npm": ">=6" - }, - "peerDependencies": { - "@testing-library/dom": ">=7.21.4" - } - }, - "node_modules/@testing-library/vue": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@testing-library/vue/-/vue-7.0.0.tgz", - "integrity": "sha512-JU/q93HGo2qdm1dCgWymkeQlfpC0/0/DBZ2nAHgEAsVZxX11xVIxT7gbXdI7HACQpUbsUWt1zABGU075Fzt9XQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0", - "@testing-library/dom": "^9.0.1", - "@vue/test-utils": "^2.3.1" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "@vue/compiler-sfc": ">= 3", - "vue": ">= 3" - } - }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.2.0.tgz", - "integrity": "sha512-YBepjbt+ZNBVmN3ev1amQH3lWCmHyt5qTbLCp/syXJRu/Kw2koXh44qayB1gMRxcL/gV8egmjN5xWSrYyfUtyw==", - "dev": true, - "dependencies": { - "@babel/generator": "7.17.7", - "@babel/parser": "^7.20.5", - "@babel/traverse": "7.17.3", - "@babel/types": "7.17.0", - "javascript-natural-sort": "0.7.1", - "lodash": "^4.17.21" - }, - "peerDependencies": { - "@vue/compiler-sfc": "3.x", - "prettier": "2.x - 3.x" - }, - "peerDependenciesMeta": { - "@vue/compiler-sfc": { - "optional": true - } - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", - "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.17.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz", - "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.3", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.3", - "@babel/types": "^7.17.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/types": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", - "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@types/aria-query": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.1.tgz", - "integrity": "sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==", - "dev": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true - }, - "node_modules/@types/chai-subset": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@types/chai-subset/-/chai-subset-1.3.3.tgz", - "integrity": "sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", - "dev": true - }, - "node_modules/@types/cross-spawn": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.3.tgz", - "integrity": "sha512-BDAkU7WHHRHnvBf5z89lcvACsvkz/n7Tv+HyD/uW76O29HoH1Tk/W6iQrepaZVbisvlEek4ygwT8IW7ow9XLAA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", - "integrity": "sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==", - "dev": true, - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/detect-port": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/detect-port/-/detect-port-1.3.2.tgz", - "integrity": "sha512-xxgAGA2SAU4111QefXPSp5eGbDm/hW6zhvYl9IeEPZEry9F4d66QAHm5qpUXjb6IsevZV/7emAEx5MhP6O192g==", - "dev": true - }, - "node_modules/@types/doctrine": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/doctrine/-/doctrine-0.0.3.tgz", - "integrity": "sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==", - "dev": true - }, - "node_modules/@types/ejs": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/ejs/-/ejs-3.1.3.tgz", - "integrity": "sha512-mv5T/JI/bu+pbfz1o+TLl1NF0NIBbjS0Vl6Ppz1YY9DkXfzZT0lelXpfS5i3ZS3U/p90it7uERQpBvLYoK8e4A==", - "dev": true - }, - "node_modules/@types/emscripten": { - "version": "1.39.7", - "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.7.tgz", - "integrity": "sha512-tLqYV94vuqDrXh515F/FOGtBcRMTPGvVV1LzLbtYDcQmmhtpf/gLYf+hikBbQk8MzOHNz37wpFfJbYAuSn8HqA==", - "dev": true - }, - "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.33", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.33.tgz", - "integrity": "sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/find-cache-dir": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz", - "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==", - "dev": true - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } + "optional": true, + "os": [ + "android" + ] }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", + "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/js-levenshtein": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/js-levenshtein/-/js-levenshtein-1.1.1.tgz", - "integrity": "sha512-qC4bCqYGy1y/NP7dDVr7KJarn+PbX1nSpwA7JXdu0HxT3QYjO8MJ+cntENtHFVy2dRAyBV23OZ6MxsW1AM1L8g==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.12", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", - "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==", - "dev": true - }, - "node_modules/@types/lodash": { - "version": "4.14.186", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.186.tgz", - "integrity": "sha512-eHcVlLXP0c2FlMPm56ITode2AgLMSa6aJ05JTTbYbI+7EMkCEE5qk2E41d5g2lCVTqRe0GnnRFurmlCsDODrPw==", - "dev": true + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@types/lodash-es": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.9.tgz", - "integrity": "sha512-ZTcmhiI3NNU7dEvWLZJkzG6ao49zOIjEgIE0RgV7wbPxU0f2xT3VSAHw2gmst8swH6V0YkLRGp4qPlX/6I90MQ==", + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", + "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@types/lodash": "*" - } + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/@types/mdast": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", - "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", + "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@types/unist": "*" - } - }, - "node_modules/@types/mdx": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.4.tgz", - "integrity": "sha512-qCYrNdpKwN6YO6FVnx+ulfqifKlE3lQGsNhvDaW9Oxzyob/cRLBJWow8GHBBD4NxQ7BVvtsATgLsX0vZAWmtrg==", - "dev": true - }, - "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true - }, - "node_modules/@types/mime-types": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.1.tgz", - "integrity": "sha512-vXOTGVSLR2jMw440moWTC7H19iUyLtP3Z1YTj7cSsubOICinjMxFeb/V57v9QdyyPGbbWolUFSSmSiRSn94tFw==", - "dev": true - }, - "node_modules/@types/ms": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz", - "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.11.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.3.tgz", - "integrity": "sha512-fNjDQzzOsZeKZu5NATgXUPsaFaTxeRgFXoosrHivTl8RGeV733OLawXsGfEk9a8/tySyZUyiZ6E8LcjPFZ2y1A==", - "dev": true + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/node-fetch": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.4.tgz", - "integrity": "sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==", + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", + "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/normalize-package-data": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", - "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", - "dev": true - }, - "node_modules/@types/pretty-hrtime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/pretty-hrtime/-/pretty-hrtime-1.0.1.tgz", - "integrity": "sha512-VjID5MJb1eGKthz2qUerWT8+R4b9N+CHvGCzg9fn4kWZgaF9AhdYikQio3R7wV8YY1NsQKPaCwKz1Yff+aHNUQ==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/react": { - "version": "18.0.37", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.37.tgz", - "integrity": "sha512-4yaZZtkRN3ZIQD3KSEwkfcik8s0SWV+82dlJot1AbGYHCzJkWP3ENBY6wYeDRmKZ6HkrgoGAmR2HqdwYGp6OEw==", + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", + "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz", - "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==", - "dev": true + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==", - "dev": true + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", + "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", + "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/set-cookie-parser": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@types/set-cookie-parser/-/set-cookie-parser-2.4.3.tgz", - "integrity": "sha512-7QhnH7bi+6KAhBB+Auejz1uV9DHiopZqu7LfR/5gZZTkejJV5nYeZZpgfFoE0N8aDsXuiYpfKyfyMatCwQhyTQ==", + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", + "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", + "cpu": [ + "riscv64" + ], "dev": true, - "dependencies": { - "@types/node": "*" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", - "dev": true + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", + "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", + "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/testing-library__jest-dom": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-6.0.0.tgz", - "integrity": "sha512-bnreXCgus6IIadyHNlN/oI5FfX4dWgvGhOPvpr7zzCYDGAPIfvyIoAozMBINmhmsVuqV0cncejF2y5KC7ScqOg==", - "deprecated": "This is a stub types definition. @testing-library/jest-dom provides its own type definitions, so you do not need this installed.", + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", + "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@testing-library/jest-dom": "*" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@types/unist": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", - "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", - "dev": true + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", + "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@types/yargs": { - "version": "17.0.24", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", - "integrity": "sha512-6i0aC7jV6QzQB8ne1joVZ0eSFIstHsCrobmOtghM11yGlH0j43FKL2UhWdELkyps0zuf7qVTUVCCR+tgSlyLLw==", + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", + "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", + "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.4.tgz", - "integrity": "sha512-DAbgDXwtX+pDkAHwiGhqP3zWUGpW49B7eqmgpPtg+BKJXwdct79ut9+ifqOFPJGClGKSHXn2PTBatCnldJRUoA==", + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.7.4", - "@typescript-eslint/type-utils": "6.7.4", - "@typescript-eslint/utils": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@stekoe/vue-toast-notificationcenter": { + "version": "1.0.0", + "resolved": "https://github.com/SteKoe/vue-toast-notificationcenter/archive/refs/tags/1.0.0-RC5.tar.gz", + "integrity": "sha1-EbY3nFQmIdRZ8QqmyWvF7ZFaDCI= sha512-ilr6m5m0SIyDI6ecfdDNv9baiQCbf+hh7xblPVd60/KuMSoc5DJgUKpRcN7aDVzrY2Y9dj+nP433LbeFFffYtw==", "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "vue": "^3.2.25" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", - "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", + "node_modules/@storybook/addon-actions": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-8.2.9.tgz", + "integrity": "sha512-eh2teOqjga7aoClDVV+/b1gHJqsPwjiU1t+Hg/l4i2CkaBUNdYMEL90nR6fgReOdvvL5YhcPwJ8w38f9TrQcoQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@storybook/global": "^5.0.0", + "@types/uuid": "^9.0.1", + "dequal": "^2.0.2", + "polished": "^4.2.2", + "uuid": "^9.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", - "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", + "node_modules/@storybook/addon-actions/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", - "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", + "node_modules/@storybook/addon-backgrounds": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-8.2.9.tgz", + "integrity": "sha512-eGmZAd742ORBbQ6JepzBCko/in62T4Xg9j9LVa+Cvz/7L1C/RQSuU6sUwbRAsXaz+PMVDksPDCUUNsXl3zUL7w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@storybook/global": "^5.0.0", + "memoizerific": "^1.11.3", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz", - "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==", + "node_modules/@storybook/addon-controls": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-8.2.9.tgz", + "integrity": "sha512-vaSE78KOE7SO0GrW4e+mdQphSNpvCX/FGybIRxyaKX9h8smoyUwRNHVyCS3ROHTwH324QWu7GDzsOVrnyXOv0A==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.4", - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/typescript-estree": "6.7.4", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", - "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "node_modules/@storybook/addon-docs": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-8.2.9.tgz", + "integrity": "sha512-flDOxFIGmXg+6lVdwTLMOKsGob1WrT7rG98mn1SNW0Nxhg3Wg+9pQuq1GLxEzKtAgSflmu+xcBRfYhsogyDXkw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@babel/core": "^7.24.4", + "@mdx-js/react": "^3.0.0", + "@storybook/blocks": "8.2.9", + "@storybook/csf-plugin": "8.2.9", + "@storybook/global": "^5.0.0", + "@storybook/react-dom-shim": "8.2.9", + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "fs-extra": "^11.1.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "rehype-external-links": "^3.0.0", + "rehype-slug": "^6.0.0", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node_modules/@storybook/addon-essentials": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-8.2.9.tgz", + "integrity": "sha512-B2d3eznGZvPIyCVtYX0UhrYcEfK+3Y2sACmEWpSwtk8KXomFEsZnD95m397BYDRw3/X6qeSLWxqgMfqDTEDeMA==", + "dev": true, + "dependencies": { + "@storybook/addon-actions": "8.2.9", + "@storybook/addon-backgrounds": "8.2.9", + "@storybook/addon-controls": "8.2.9", + "@storybook/addon-docs": "8.2.9", + "@storybook/addon-highlight": "8.2.9", + "@storybook/addon-measure": "8.2.9", + "@storybook/addon-outline": "8.2.9", + "@storybook/addon-toolbars": "8.2.9", + "@storybook/addon-viewport": "8.2.9", + "ts-dedent": "^2.0.0" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/@storybook/addon-highlight": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-highlight/-/addon-highlight-8.2.9.tgz", + "integrity": "sha512-qdcazeNQoo9QKIq+LJJZZXvFZoLn+i4uhbt1Uf9WtW6oU/c1qxORGVD7jc3zsxbQN9nROVPbJ76sfthogxeqWA==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "@storybook/global": "^5.0.0" }, - "bin": { - "semver": "bin/semver.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/parser": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.4.tgz", - "integrity": "sha512-I5zVZFY+cw4IMZUeNCU7Sh2PO5O57F7Lr0uyhgCJmhN/BuTlnc55KxPonR4+EM3GBdfiCyGZye6DgMjtubQkmA==", + "node_modules/@storybook/addon-links": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-8.2.9.tgz", + "integrity": "sha512-RhJzUNdDb7lbliwXb64HMwieIeJ+OQ2Ditue1vmSox6NsSd+pshR+okHpAyoP1+fW+dahNENwAS2Kt2QiI78FA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.7.4", - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/typescript-estree": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@storybook/csf": "0.1.11", + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.2.9" }, "peerDependenciesMeta": { - "typescript": { + "react": { "optional": true } } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", - "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", + "node_modules/@storybook/addon-mdx-gfm": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-mdx-gfm/-/addon-mdx-gfm-8.2.9.tgz", + "integrity": "sha512-qpv3oVBVStXKcYmhmsEDVlWvdOpG4bHGOchCe2iU/wlcT5zFQSpQj2IoCNbj5MxhwAw2VobrAvRjNQjv95fYAg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", - "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "remark-gfm": "^4.0.0", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", - "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", + "node_modules/@storybook/addon-measure": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-8.2.9.tgz", + "integrity": "sha512-XUfQtYRKWB2dfbPRmHuos816wt1JrLbtRld5ZC8J8ljeqZ4hFBPTQcgI5GAzZqjQuclLC0KuhlA/0bKxdxMMGA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@storybook/global": "^5.0.0", + "tiny-invariant": "^1.3.1" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", - "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "node_modules/@storybook/addon-outline": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-8.2.9.tgz", + "integrity": "sha512-p22kI4W7MT0YJOCmg/FfhfH+NpZEDA5tgwstjazSg4ertyhaxziMwWZWiK2JCg0gOAfRJjoYjHz+6/u56iXwgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/parser/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/@storybook/addon-toolbars": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-8.2.9.tgz", + "integrity": "sha512-9LMZZ2jRD86Jh6KXedDbAYs4eHj9HtJA9VhSEE2wiqMGwXozpySi7B1GWniNzmFfcgMQ4JHfmD/OrBVTK7Ca/w==", "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, "funding": { - "url": "https://opencollective.com/eslint" + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/parser/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/@storybook/addon-viewport": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-8.2.9.tgz", + "integrity": "sha512-lyM24+DJEt8R0YZkJKee34NQWv0REACU6lYDalqJNdKS1sEwzLGWxg1hZXnw2JFdBID9NGVvyYU2w6LDozOB0g==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "memoizerific": "^1.11.3" }, - "bin": { - "semver": "bin/semver.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "node_modules/@storybook/blocks": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/blocks/-/blocks-8.2.9.tgz", + "integrity": "sha512-5276q/s/UL8arwftuBXovUNHqYo/HPQFMGXEmjVVAMXUyFjzEAfKj3+xU897J6AuL+7XVZG32WnqA+X6LJMrcQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "@storybook/csf": "0.1.11", + "@storybook/global": "^5.0.0", + "@storybook/icons": "^1.2.5", + "@types/lodash": "^4.14.167", + "color-convert": "^2.0.1", + "dequal": "^2.0.2", + "lodash": "^4.17.21", + "markdown-to-jsx": "^7.4.5", + "memoizerific": "^1.11.3", + "polished": "^4.2.2", + "react-colorful": "^5.1.2", + "telejson": "^7.2.0", + "ts-dedent": "^2.0.0", + "util-deprecate": "^1.0.2" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.2.9" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.4.tgz", - "integrity": "sha512-n+g3zi1QzpcAdHFP9KQF+rEFxMb2KxtnJGID3teA/nxKHOVi3ylKovaqEzGBbVY2pBttU6z85gp0D00ufLzViQ==", + "node_modules/@storybook/builder-vite": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-8.2.9.tgz", + "integrity": "sha512-MHD3ezRjKkJkOl0u7CRQoQD/LKd28YMWIcaz4YrV6ygokc0c3RFTlOefICQFgboc+1RwIUowxN1CJ2kJ7p4SWw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.7.4", - "@typescript-eslint/utils": "6.7.4", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@storybook/csf-plugin": "8.2.9", + "@types/find-cache-dir": "^3.2.1", + "browser-assert": "^1.2.1", + "es-module-lexer": "^1.5.0", + "express": "^4.19.2", + "find-cache-dir": "^3.0.0", + "fs-extra": "^11.1.0", + "magic-string": "^0.30.0", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "@preact/preset-vite": "*", + "storybook": "^8.2.9", + "typescript": ">= 4.3.x", + "vite": "^4.0.0 || ^5.0.0", + "vite-plugin-glimmerx": "*" }, "peerDependenciesMeta": { + "@preact/preset-vite": { + "optional": true + }, "typescript": { "optional": true + }, + "vite-plugin-glimmerx": { + "optional": true } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.4.tgz", - "integrity": "sha512-SdGqSLUPTXAXi7c3Ob7peAGVnmMoGzZ361VswK2Mqf8UOYcODiYvs8rs5ILqEdfvX1lE7wEZbLyELCW+Yrql1A==", + "node_modules/@storybook/codemod": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-8.2.9.tgz", + "integrity": "sha512-3yRx1lFMm1FXWVv+CKDiYM4gOQPEfpcZAQrjfcumxSDUrB091pnU1PeI92Prj3vCdi4+0oPNuN4yDGNUYTMP/A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@babel/core": "^7.24.4", + "@babel/preset-env": "^7.24.4", + "@babel/types": "^7.24.0", + "@storybook/core": "8.2.9", + "@storybook/csf": "0.1.11", + "@types/cross-spawn": "^6.0.2", + "cross-spawn": "^7.0.3", + "globby": "^14.0.1", + "jscodeshift": "^0.15.1", + "lodash": "^4.17.21", + "prettier": "^3.1.1", + "recast": "^0.23.5", + "tiny-invariant": "^1.3.1" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.4.tgz", - "integrity": "sha512-o9XWK2FLW6eSS/0r/tgjAGsYasLAnOWg7hvZ/dGYSSNjCh+49k5ocPN8OmG5aZcSJ8pclSOyVKP2x03Sj+RrCA==", + "node_modules/@storybook/codemod/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.4.tgz", - "integrity": "sha512-ty8b5qHKatlNYd9vmpHooQz3Vki3gG+3PchmtsA4TgrZBKWHNjWfkQid7K7xQogBqqc7/BhGazxMD5vr6Ha+iQ==", + "node_modules/@storybook/codemod/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/visitor-keys": "6.7.4", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=12" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.4.tgz", - "integrity": "sha512-PRQAs+HUn85Qdk+khAxsVV+oULy3VkbH3hQ8hxLRJXWBEd7iI+GbQxH5SEUSH7kbEoTp6oT1bOwyga24ELALTA==", + "node_modules/@storybook/codemod/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.7.4", - "@typescript-eslint/types": "6.7.4", - "@typescript-eslint/typescript-estree": "6.7.4", - "semver": "^7.5.4" - }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">=14.16" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@storybook/components": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-8.2.9.tgz", + "integrity": "sha512-OkkcZ/f/6o3GdFEEK9ZHKIGHWUHmavZUYs5xaSgU64bOrA2aqEFtfeWWitZYTv3Euhk8MVLWfyEMDfez0AlvDg==", + "dev": true, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.4.tgz", - "integrity": "sha512-pOW37DUhlTZbvph50x5zZCkFn3xzwkGtNoJHzIM3svpiSkJzwOYr/kVBaXmf+RAQiUDs1AHEZVNPg6UJCJpwRA==", + "node_modules/@storybook/core": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-8.2.9.tgz", + "integrity": "sha512-wSER8FpA6Il/jPyDfKm3yohxDtuhisNPTonMVzd3ulNWR4zERLddyO3HrHJJwdqYHLNk4SBFzwMGpQZVws1y0w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.7.4", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "@storybook/csf": "0.1.11", + "@types/express": "^4.17.21", + "@types/node": "^18.0.0", + "browser-assert": "^1.2.1", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0", + "esbuild-register": "^3.5.0", + "express": "^4.19.2", + "process": "^0.11.10", + "recast": "^0.23.5", + "util": "^0.12.4", + "ws": "^8.2.3" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/@storybook/core/node_modules/@types/node": { + "version": "18.19.44", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.44.tgz", + "integrity": "sha512-ZsbGerYg72WMXUIE9fYxtvfzLEuq6q8mKERdWFnqTmOvudMxnz+CBNRoOwJ2kNpFOncrKjT1hZwxjlFgQ9qvQA==", "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "dependencies": { + "undici-types": "~5.26.4" } }, - "node_modules/@typescript-eslint/type-utils/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/@storybook/core/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/@storybook/csf": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.1.11.tgz", + "integrity": "sha512-dHYFQH3mA+EtnCkHXzicbLgsvzYjcDJ1JWsogbItZogkPHgSJM/Wr71uMkcvw8v9mmCyP4NpXJuu6bPoVsOnzg==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "type-fest": "^2.19.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "node_modules/@storybook/csf-plugin": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-8.2.9.tgz", + "integrity": "sha512-QQCFb3g12VQQEraDV1UfCmniGhQZKyT6oEt1Im6dzzPJj9NQk+6BjWoDep33CZhBHWoLryrMQd2fjuHxnFRNEA==", "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "dependencies": { + "unplugin": "^1.3.1" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "node_modules/@storybook/global": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@storybook/global/-/global-5.0.0.tgz", + "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", + "dev": true + }, + "node_modules/@storybook/icons": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-1.2.10.tgz", + "integrity": "sha512-310apKdDcjbbX2VSLWPwhEwAgjxTzVagrwucVZIdGPErwiAppX8KvBuWZgPo+rQLVrtH8S+pw1dbUwjcE6d7og==", "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=14.0.0" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/@storybook/manager-api": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/manager-api/-/manager-api-8.2.9.tgz", + "integrity": "sha512-mkYvUlfqDw+0WbxIynh5TcrotmoXlumEsOA4+45zuNea8XpEgj5cNBUCnmfEO6yQ85swqkS8YYbMpg1cZyu/Vw==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "node_modules/@storybook/preview-api": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-8.2.9.tgz", + "integrity": "sha512-D8/t+a78OJqQAcT/ABa1C4YM/OaLGQ9IvCsp3Q9ruUqDCwuZBj8bG3D4477dlY4owX2ycC0rWYu3VvuK0EmJjA==", "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, + "peerDependencies": { + "storybook": "^8.2.9" + } + }, + "node_modules/@storybook/react-dom-shim": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-8.2.9.tgz", + "integrity": "sha512-uCAjSQEsNk8somVn1j/I1G9G/uUax5byHseIIV0Eq3gVXttGd7gaWcP+TDHtqIaenWHx4l+hCSuCesxiLWmx4Q==", + "dev": true, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "node_modules/@storybook/theming": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-8.2.9.tgz", + "integrity": "sha512-OL0NFvowPX85N5zIYdgeKKaFm7V4Vgtci093vL3cDZT13LGH6GuEzJKkUFGuUGNPFlJc+EgTj0o6PYKrOLyQ6w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "storybook": "^8.2.9" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "node_modules/@storybook/vue3": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-8.2.9.tgz", + "integrity": "sha512-ef3J8Vc7HpOWy4UB7c5SzEzRAOuTgC7kwE9bulOW7tG4RrH1yt9vyOuPaUj/mgsF4OWE69Rbbwvc/9Fnsq6cjw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@storybook/components": "^8.2.9", + "@storybook/global": "^5.0.0", + "@storybook/manager-api": "^8.2.9", + "@storybook/preview-api": "^8.2.9", + "@storybook/theming": "^8.2.9", + "@vue/compiler-core": "^3.0.0", + "lodash": "^4.17.21", + "ts-dedent": "^2.0.0", + "type-fest": "~2.19", + "vue-component-type-helpers": "latest" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.9", + "vue": "^3.0.0" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz", - "integrity": "sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==", + "node_modules/@storybook/vue3-vite": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/@storybook/vue3-vite/-/vue3-vite-8.2.9.tgz", + "integrity": "sha512-oan7w6xlKRu1/d4+Bg2ASzqpcS/MKZFkwS4Det5f6fASqUpN8SZMgFY8dm9/chTdo/FKJYXUfowDgZ33N6cnjQ==", "dev": true, + "dependencies": { + "@storybook/builder-vite": "8.2.9", + "@storybook/vue3": "8.2.9", + "find-package-json": "^1.2.0", + "magic-string": "^0.30.0", + "typescript": "^5.0.0", + "vue-component-meta": "^2.0.0", + "vue-docgen-api": "^4.75.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18.0.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^8.2.9", + "vite": "^4.0.0 || ^5.0.0" } }, - "node_modules/@vitejs/plugin-vue": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz", - "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==", - "dev": true, - "engines": { - "node": "^14.18.0 || >=16.0.0" + "node_modules/@tailwindcss/forms": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", + "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", + "dependencies": { + "mini-svg-data-uri": "^1.2.3" }, "peerDependencies": { - "vite": "^4.0.0", - "vue": "^3.2.25" + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" } }, - "node_modules/@vitest/expect": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-0.34.6.tgz", - "integrity": "sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==", - "dev": true, + "node_modules/@tailwindcss/typography": { + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.14.tgz", + "integrity": "sha512-ZvOCjUbsJBjL9CxQBn+VEnFpouzuKhxh2dH8xMIWHILL+HfOYtlAkWcyoon8LlzE53d2Yo6YO6pahKKNW3q1YQ==", "dependencies": { - "@vitest/spy": "0.34.6", - "@vitest/utils": "0.34.6", - "chai": "^4.3.10" + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.9.0.tgz", + "integrity": "sha512-Saga7/QRGej/IDCVP5BgJ1oDqlDT2d9rQyoflS3fgMS8ntJ8JGw/LBqK2GorHa06+VrNFc0tGz65XQHJQJetFQ==", "funding": { - "url": "https://opencollective.com/vitest" + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" } }, - "node_modules/@vitest/runner": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-0.34.6.tgz", - "integrity": "sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==", - "dev": true, + "node_modules/@tanstack/vue-virtual": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/@tanstack/vue-virtual/-/vue-virtual-3.9.0.tgz", + "integrity": "sha512-MVJhQh57OR3wg2pWL/25IN1/nITFNnpFaz4gOvRCqnxhsH0WRePBBKvixOaFTgiyYfmrjFbb4d0nRMTvsjZZdQ==", "dependencies": { - "@vitest/utils": "0.34.6", - "p-limit": "^4.0.0", - "pathe": "^1.1.1" + "@tanstack/virtual-core": "3.9.0" }, "funding": { - "url": "https://opencollective.com/vitest" + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "vue": "^2.7.0 || ^3.0.0" } }, - "node_modules/@vitest/runner/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", "dev": true, "dependencies": { - "yocto-queue": "^1.0.0" + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=14" } }, - "node_modules/@vitest/runner/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=12.20" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@vitest/snapshot": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-0.34.6.tgz", - "integrity": "sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==", + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dev": true, "dependencies": { - "magic-string": "^0.30.1", - "pathe": "^1.1.1", - "pretty-format": "^29.5.0" - }, - "funding": { - "url": "https://opencollective.com/vitest" + "deep-equal": "^2.0.5" } }, - "node_modules/@vitest/snapshot/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@vitest/snapshot/node_modules/pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", + "node_modules/@testing-library/dom/node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@vitest/snapshot/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@vitest/spy": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-0.34.6.tgz", - "integrity": "sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==", + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "tinyspy": "^2.1.1" + "has-flag": "^4.0.0" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">=8" } }, - "node_modules/@vitest/utils": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-0.34.6.tgz", - "integrity": "sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==", + "node_modules/@testing-library/jest-dom": { + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.4.8.tgz", + "integrity": "sha512-JD0G+Zc38f5MBHA4NgxQMR5XtO5Jx9g86jqturNTt2WUfRmLDIY7iKkWHDCCTiDuFMre6nxAD5wHw9W5kI4rGw==", "dev": true, "dependencies": { - "diff-sequences": "^29.4.3", - "loupe": "^2.3.6", - "pretty-format": "^29.5.0" + "@adobe/css-tools": "^4.4.0", + "@babel/runtime": "^7.9.2", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" }, - "funding": { - "url": "https://opencollective.com/vitest" + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" } }, - "node_modules/@vitest/utils/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=10" + "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@vitest/utils/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@vitest/utils/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/@vue/compiler-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", - "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", - "dependencies": { - "@babel/parser": "^7.21.3", - "@vue/shared": "3.3.4", - "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", - "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", - "dependencies": { - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4" + "node": ">=8" } }, - "node_modules/@vue/compiler-sfc": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", - "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", - "dependencies": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-ssr": "3.3.4", - "@vue/reactivity-transform": "3.3.4", - "@vue/shared": "3.3.4", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.0", - "postcss": "^8.1.10", - "source-map-js": "^1.0.2" + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/@vue/compiler-ssr": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", - "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "@vue/compiler-dom": "3.3.4", - "@vue/shared": "3.3.4" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/@vue/devtools-api": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", - "integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==" - }, - "node_modules/@vue/eslint-config-typescript": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-12.0.0.tgz", - "integrity": "sha512-StxLFet2Qe97T8+7L8pGlhYBBr8Eg05LPuTDVopQV6il+SK6qqom59BA/rcFipUef2jD8P2X44Vd8tMFytfvlg==", + "node_modules/@testing-library/user-event": { + "version": "14.5.2", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.5.2.tgz", + "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", "dev": true, - "dependencies": { - "@typescript-eslint/eslint-plugin": "^6.7.0", - "@typescript-eslint/parser": "^6.7.0", - "vue-eslint-parser": "^9.3.1" - }, "engines": { - "node": "^14.17.0 || >=16.0.0" + "node": ">=12", + "npm": ">=6" }, "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0", - "eslint-plugin-vue": "^9.0.0", - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@vue/reactivity": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", - "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", - "dependencies": { - "@vue/shared": "3.3.4" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", - "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", - "dependencies": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.0" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", - "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", - "dependencies": { - "@vue/reactivity": "3.3.4", - "@vue/shared": "3.3.4" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", - "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", - "dependencies": { - "@vue/runtime-core": "3.3.4", - "@vue/shared": "3.3.4", - "csstype": "^3.1.1" + "@testing-library/dom": ">=7.21.4" } }, - "node_modules/@vue/server-renderer": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", - "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "node_modules/@testing-library/vue": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/vue/-/vue-8.1.0.tgz", + "integrity": "sha512-ls4RiHO1ta4mxqqajWRh8158uFObVrrtAPoxk7cIp4HrnQUj/ScKzqz53HxYpG3X6Zb7H2v+0eTGLSoy8HQ2nA==", + "dev": true, "dependencies": { - "@vue/compiler-ssr": "3.3.4", - "@vue/shared": "3.3.4" + "@babel/runtime": "^7.23.2", + "@testing-library/dom": "^9.3.3", + "@vue/test-utils": "^2.4.1" + }, + "engines": { + "node": ">=14" }, "peerDependencies": { - "vue": "3.3.4" + "@vue/compiler-sfc": ">= 3", + "vue": ">= 3" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + } } }, - "node_modules/@vue/shared": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", - "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==" - }, - "node_modules/@vue/test-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.1.tgz", - "integrity": "sha512-VO8nragneNzUZUah6kOjiFmD/gwRjUauG9DROh6oaOeFwX1cZRUNHhdeogE8635cISigXFTtGLUQWx5KCb0xeg==", + "node_modules/@trivago/prettier-plugin-sort-imports": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz", + "integrity": "sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==", "dev": true, "dependencies": { - "js-beautify": "1.14.9", - "vue-component-type-helpers": "1.8.4" + "@babel/generator": "7.17.7", + "@babel/parser": "^7.20.5", + "@babel/traverse": "7.23.2", + "@babel/types": "7.17.0", + "javascript-natural-sort": "0.7.1", + "lodash": "^4.17.21" }, "peerDependencies": { - "@vue/server-renderer": "^3.0.1", - "vue": "^3.0.1" + "@vue/compiler-sfc": "3.x", + "prettier": "2.x - 3.x" }, "peerDependenciesMeta": { - "@vue/server-renderer": { + "@vue/compiler-sfc": { "optional": true } } }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.6.tgz", - "integrity": "sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/generator": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz", + "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==", "dev": true, + "dependencies": { + "@babel/types": "^7.17.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, "engines": { - "node": ">=10.0.0" + "node": ">=6.9.0" } }, - "node_modules/@yarnpkg/esbuild-plugin-pnp": { - "version": "3.0.0-rc.15", - "resolved": "https://registry.npmjs.org/@yarnpkg/esbuild-plugin-pnp/-/esbuild-plugin-pnp-3.0.0-rc.15.tgz", - "integrity": "sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "dependencies": { - "tslib": "^2.4.0" + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.0", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.0", + "@babel/types": "^7.23.0", + "debug": "^4.1.0", + "globals": "^11.1.0" }, "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "esbuild": ">=0.10.0" + "node": ">=6.9.0" } }, - "node_modules/@yarnpkg/fslib": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz", - "integrity": "sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", "dev": true, "dependencies": { - "@yarnpkg/libzip": "^2.3.0", - "tslib": "^1.13.0" + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" }, "engines": { - "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + "node": ">=6.9.0" } }, - "node_modules/@yarnpkg/fslib/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@yarnpkg/libzip": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.3.0.tgz", - "integrity": "sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", + "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", "dev": true, "dependencies": { - "@types/emscripten": "^1.39.6", - "tslib": "^1.13.0" + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" + "node": ">=6.9.0" } }, - "node_modules/@yarnpkg/libzip/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "dev": true, - "optional": true - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/@babel/types": { + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.0.tgz", + "integrity": "sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==", "dev": true, "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=6.9.0" } }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "node_modules/@trivago/prettier-plugin-sort-imports/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=0.10.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" + "@types/connect": "*", + "@types/node": "*" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" + "@types/node": "*" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true + }, + "node_modules/@types/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@types/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "@types/node": "*" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "node_modules/@types/d3": { + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz", + "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==", + "dev": true, + "dependencies": { + "@types/d3-array": "*", + "@types/d3-axis": "*", + "@types/d3-brush": "*", + "@types/d3-chord": "*", + "@types/d3-color": "*", + "@types/d3-contour": "*", + "@types/d3-delaunay": "*", + "@types/d3-dispatch": "*", + "@types/d3-drag": "*", + "@types/d3-dsv": "*", + "@types/d3-ease": "*", + "@types/d3-fetch": "*", + "@types/d3-force": "*", + "@types/d3-format": "*", + "@types/d3-geo": "*", + "@types/d3-hierarchy": "*", + "@types/d3-interpolate": "*", + "@types/d3-path": "*", + "@types/d3-polygon": "*", + "@types/d3-quadtree": "*", + "@types/d3-random": "*", + "@types/d3-scale": "*", + "@types/d3-scale-chromatic": "*", + "@types/d3-selection": "*", + "@types/d3-shape": "*", + "@types/d3-time": "*", + "@types/d3-time-format": "*", + "@types/d3-timer": "*", + "@types/d3-transition": "*", + "@types/d3-zoom": "*" + } + }, + "node_modules/@types/d3-array": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", + "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==", + "dev": true + }, + "node_modules/@types/d3-axis": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz", + "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==", "dev": true, "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } + "@types/d3-selection": "*" } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/@types/d3-brush": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz", + "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "@types/d3-selection": "*" } }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "node_modules/@types/d3-chord": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz", + "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==", "dev": true }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "dev": true + }, + "node_modules/@types/d3-contour": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz", + "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" + "@types/d3-array": "*", + "@types/geojson": "*" } }, - "node_modules/ansi_up": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ansi_up/-/ansi_up-6.0.2.tgz", - "integrity": "sha512-3G3vKvl1ilEp7J1u6BmULpMA0xVoW/f4Ekqhl8RTrJrhEBkonKn5k3bUc5Xt+qDayA6iDX0jyUh3AbZjB/l0tw==", - "engines": { - "node": "*" - } + "node_modules/@types/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==", + "dev": true }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } + "node_modules/@types/d3-dispatch": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz", + "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==", + "dev": true }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@types/d3-drag": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz", + "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==", "dev": true, "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "@types/d3-selection": "*" + } + }, + "node_modules/@types/d3-dsv": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz", + "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==", + "dev": true + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "dev": true + }, + "node_modules/@types/d3-fetch": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz", + "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==", + "dev": true, + "dependencies": { + "@types/d3-dsv": "*" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/@types/d3-force": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", + "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", + "dev": true + }, + "node_modules/@types/d3-format": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz", + "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==", + "dev": true + }, + "node_modules/@types/d3-geo": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz", + "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==", "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@types/geojson": "*" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@types/d3-hierarchy": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz", + "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==", + "dev": true + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@types/d3-color": "*" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@types/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==", + "dev": true + }, + "node_modules/@types/d3-polygon": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz", + "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==", + "dev": true + }, + "node_modules/@types/d3-quadtree": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz", + "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==", + "dev": true + }, + "node_modules/@types/d3-random": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz", + "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==", + "dev": true + }, + "node_modules/@types/d3-scale": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", + "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "@types/d3-time": "*" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "node_modules/@types/d3-scale-chromatic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.0.3.tgz", + "integrity": "sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==", "dev": true }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "node_modules/@types/d3-selection": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.10.tgz", + "integrity": "sha512-cuHoUgS/V3hLdjJOLTT691+G2QoqAjCVLmr4kJXR4ha56w1Zdu8UUQ5TxLRqudgNjwXeQxKMq4j+lyf9sWuslg==", + "dev": true + }, + "node_modules/@types/d3-shape": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", + "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" + "@types/d3-path": "*" } }, - "node_modules/app-root-dir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/app-root-dir/-/app-root-dir-1.0.2.tgz", - "integrity": "sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==", + "node_modules/@types/d3-time": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", + "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==", "dev": true }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "node_modules/@types/d3-time-format": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz", + "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==", "dev": true }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "dev": true + }, + "node_modules/@types/d3-transition": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.8.tgz", + "integrity": "sha512-ew63aJfQ/ms7QQ4X7pk5NxQ9fZH/z+i24ZfJ6tJSfqxJMrYLiK01EAs2/Rtw/JreGUsS3pLPNV644qXFGnoZNQ==", "dev": true, "dependencies": { - "sprintf-js": "~1.0.2" + "@types/d3-selection": "*" } }, - "node_modules/aria-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", - "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "node_modules/@types/d3-zoom": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz", + "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==", "dev": true, "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" + "@types/d3-interpolate": "*", + "@types/d3-selection": "*" } }, - "node_modules/aria-query": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.1.tgz", - "integrity": "sha512-4cPQjOYM2mqq7mZG8CSxkUvL2Yv/x29VhGq5LKehTsxRnoVQps1YGt9NyjcNQsznEsD4rr8a6zGxqeNTqJWjpA==", + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, "dependencies": { - "deep-equal": "^2.0.5" + "@types/ms": "*" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "node_modules/@types/emscripten": { + "version": "1.39.13", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.13.tgz", + "integrity": "sha512-cFq+fO/isvhvmuP/+Sl4K4jtU6E23DoivtbO4r50e3odaxAiVdbfSYRDdJ4gCdxx+3aRjhphS5ZMwIH4hFy/Cw==", "dev": true }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "node_modules/@types/express-serve-static-core": { + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/find-cache-dir": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/find-cache-dir/-/find-cache-dir-3.2.1.tgz", + "integrity": "sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==", "dev": true }, - "node_modules/assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", + "node_modules/@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", + "dev": true + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dev": true, "dependencies": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" + "@types/unist": "*" } }, - "node_modules/assert-never": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", - "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "dev": true }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/lodash": { + "version": "4.17.7", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.7.tgz", + "integrity": "sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==", + "dev": true + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", "dev": true, - "engines": { - "node": "*" + "dependencies": { + "@types/lodash": "*" } }, - "node_modules/ast-types": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", - "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "dev": true, "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" + "@types/unist": "*" } }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "dev": true + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "dev": true + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@types/node": "*" } }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "node_modules/@types/node": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", + "dev": true, + "dependencies": { + "undici-types": "~6.18.2" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", "dev": true }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "dev": true }, - "node_modules/autolinker": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.0.0.tgz", - "integrity": "sha512-fl5Kh6BmEEZx+IWBfEirnRUU5+cOiV0OK7PEt0RBKvJMJ8GaRseIOeDU3FKf4j3CE5HVefcjHmhYPOcaVt0bZw==", + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dev": true, "dependencies": { - "tslib": "^2.3.0" + "@types/prop-types": "*", + "csstype": "^3.0.2" } }, - "node_modules/autoprefixer": { - "version": "10.4.16", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", - "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/autoprefixer" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001538", - "fraction.js": "^4.3.6", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "@types/mime": "^1", + "@types/node": "*" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" } }, - "node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "node_modules/@types/statuses": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.5.tgz", + "integrity": "sha512-jmIUGWrAiwu3dZpxntxieC+1n/5c3mjrImkmOSQ2NC5uP6cYO4aAZDdSmRcI5C1oiTmqlZGHC+/NmJrKogbP5A==", + "dev": true + }, + "node_modules/@types/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", + "dev": true + }, + "node_modules/@types/strip-json-comments": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", + "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", + "dev": true + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-6.0.0.tgz", + "integrity": "sha512-bnreXCgus6IIadyHNlN/oI5FfX4dWgvGhOPvpr7zzCYDGAPIfvyIoAozMBINmhmsVuqV0cncejF2y5KC7ScqOg==", + "deprecated": "This is a stub types definition. @testing-library/jest-dom provides its own type definitions, so you do not need this installed.", + "dev": true, "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" + "@testing-library/jest-dom": "*" } }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true }, - "node_modules/babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "dev": true, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true }, - "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.1.0.tgz", + "integrity": "sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==", "dev": true, "dependencies": { - "find-cache-dir": "^4.0.0", - "schema-utils": "^4.0.0" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.1.0", + "@typescript-eslint/type-utils": "8.1.0", + "@typescript-eslint/utils": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": ">= 14.15.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/babel-loader/node_modules/find-cache-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "node_modules/@typescript-eslint/parser": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.1.0.tgz", + "integrity": "sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==", "dev": true, "dependencies": { - "common-path-prefix": "^3.0.0", - "pkg-dir": "^7.0.0" + "@typescript-eslint/scope-manager": "8.1.0", + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/typescript-estree": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=14.16" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/babel-loader/node_modules/find-up": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.1.0.tgz", + "integrity": "sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==", "dev": true, "dependencies": { - "locate-path": "^7.1.0", - "path-exists": "^5.0.0" + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/babel-loader/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.1.0.tgz", + "integrity": "sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==", "dev": true, "dependencies": { - "p-locate": "^6.0.0" + "@typescript-eslint/typescript-estree": "8.1.0", + "@typescript-eslint/utils": "8.1.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/babel-loader/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "node_modules/@typescript-eslint/types": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.1.0.tgz", + "integrity": "sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==", "dev": true, - "dependencies": { - "yocto-queue": "^1.0.0" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/babel-loader/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.1.0.tgz", + "integrity": "sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==", "dev": true, "dependencies": { - "p-limit": "^4.0.0" + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/visitor-keys": "8.1.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/babel-loader/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" } }, - "node_modules/babel-loader/node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "node_modules/@typescript-eslint/utils": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.1.0.tgz", + "integrity": "sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==", "dev": true, "dependencies": { - "find-up": "^6.3.0" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.1.0", + "@typescript-eslint/types": "8.1.0", + "@typescript-eslint/typescript-estree": "8.1.0" }, "engines": { - "node": ">=14.16" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" } }, - "node_modules/babel-loader/node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.1.0.tgz", + "integrity": "sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==", "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.1.0", + "eslint-visitor-keys": "^3.4.3" + }, "engines": { - "node": ">=12.20" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz", - "integrity": "sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.2.tgz", + "integrity": "sha512-nY9IwH12qeiJqumTCLJLE7IiNx7HZ39cbHaysEUd+Myvbz9KAqd2yq+U01Kab1R/H1BmiyM2ShTYlNH32Fzo3A==", "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.2", - "semver": "^6.3.1" + "engines": { + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "vite": "^5.0.0", + "vue": "^3.2.25" } }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz", - "integrity": "sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==", + "node_modules/@vitest/expect": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.0.5.tgz", + "integrity": "sha512-yHZtwuP7JZivj65Gxoi8upUN2OzHTi3zVfjwdpu2WrvCZPLwsJ2Ey5ILIPccoW23dd/zQBlJ4/dhi7DWNyXCpA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2", - "core-js-compat": "^3.31.0" + "@vitest/spy": "2.0.5", + "@vitest/utils": "2.0.5", + "chai": "^5.1.1", + "tinyrainbow": "^1.2.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz", - "integrity": "sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==", + "node_modules/@vitest/pretty-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", + "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.2" + "tinyrainbow": "^1.2.0" }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/babel-walk": { - "version": "3.0.0-canary-5", - "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", - "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "node_modules/@vitest/runner": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.0.5.tgz", + "integrity": "sha512-TfRfZa6Bkk9ky4tW0z20WKXFEwwvWhRY+84CnSEtq4+3ZvDlJyY32oNTJtM7AW9ihW90tX/1Q78cb6FjoAs+ig==", "dev": true, "dependencies": { - "@babel/types": "^7.9.6" + "@vitest/utils": "2.0.5", + "pathe": "^1.1.2" }, - "engines": { - "node": ">= 10.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "node_modules/@vitest/snapshot": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.0.5.tgz", + "integrity": "sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==", "dev": true, + "dependencies": { + "@vitest/pretty-format": "2.0.5", + "magic-string": "^0.30.10", + "pathe": "^1.1.2" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://opencollective.com/vitest" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", + "node_modules/@vitest/spy": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.0.5.tgz", + "integrity": "sha512-c/jdthAhvJdpfVuaexSrnawxZz6pywlTPe84LUB2m/4t3rl2fTo9NFGBG4oWgaD+FTgDDV8hJ/nibT7IfH3JfA==", "dev": true, "dependencies": { - "open": "^8.0.4" + "tinyspy": "^3.0.0" }, - "engines": { - "node": ">=12.0.0" + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "node_modules/@vitest/utils": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.0.5.tgz", + "integrity": "sha512-d8HKbqIcya+GR67mkZbrzhS5kKhtp8dQLcmRZLGTscGVg7yImT82cIrhtn2L8+VujWcy6KZweApgNmPsTAO/UQ==", "dev": true, - "engines": { - "node": ">=0.6" + "dependencies": { + "@vitest/pretty-format": "2.0.5", + "estree-walker": "^3.0.3", + "loupe": "^3.1.1", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" } }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "node_modules/@vitest/utils/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, - "engines": { - "node": ">=8" + "dependencies": { + "@types/estree": "^1.0.0" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/@volar/language-core": { + "version": "2.4.0-alpha.18", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0-alpha.18.tgz", + "integrity": "sha512-JAYeJvYQQROmVRtSBIczaPjP3DX4QW1fOqW1Ebs0d3Y3EwSNRglz03dSv0Dm61dzd0Yx3WgTW3hndDnTQqgmyg==", "dev": true, "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "@volar/source-map": "2.4.0-alpha.18" } }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "node_modules/@volar/source-map": { + "version": "2.4.0-alpha.18", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0-alpha.18.tgz", + "integrity": "sha512-MTeCV9MUwwsH0sNFiZwKtFrrVZUK6p8ioZs3xFzHc2cvDXHWlYN3bChdQtwKX+FY2HG6H3CfAu1pKijolzIQ8g==", + "dev": true + }, + "node_modules/@volar/typescript": { + "version": "2.4.0-alpha.18", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.0-alpha.18.tgz", + "integrity": "sha512-sXh5Y8sqGUkgxpMWUGvRXggxYHAVxg0Pa1C42lQZuPDrW6vHJPR0VCK8Sr7WJsAW530HuNQT/ZIskmXtxjybMQ==", "dev": true, "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "@volar/language-core": "2.4.0-alpha.18", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" } }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" + "node_modules/@vue/compiler-core": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz", + "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.38", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + "node_modules/@vue/compiler-dom": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz", + "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==", "dependencies": { - "ms": "2.0.0" + "@vue/compiler-core": "3.4.38", + "@vue/shared": "3.4.38" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "node_modules/@vue/compiler-sfc": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz", + "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.38", + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.40", + "source-map-js": "^1.2.0" + } }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true + "node_modules/@vue/compiler-ssr": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz", + "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==", + "dependencies": { + "@vue/compiler-dom": "3.4.38", + "@vue/shared": "3.4.38" + } }, - "node_modules/bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz", + "integrity": "sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==", "dev": true, "dependencies": { - "big-integer": "^1.6.44" + "@typescript-eslint/eslint-plugin": "^7.1.1", + "@typescript-eslint/parser": "^7.1.1", + "vue-eslint-parser": "^9.3.1" }, "engines": { - "node": ">= 5.10.0" + "node": "^18.18.0 || >=20.0.0" + }, + "peerDependencies": { + "eslint": "^8.56.0", + "eslint-plugin-vue": "^9.0.0", + "typescript": ">=4.7.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", + "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/type-utils": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/parser": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/browser-assert": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", - "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", - "dev": true - }, - "node_modules/browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==", + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/scope-manager": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", + "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", "dev": true, "dependencies": { - "pako": "~0.2.0" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/browserslist": { - "version": "4.21.10", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", - "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/type-utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", + "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "caniuse-lite": "^1.0.30001517", - "electron-to-chromium": "^1.4.477", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.11" - }, - "bin": { - "browserslist": "cli.js" + "@typescript-eslint/typescript-estree": "7.18.0", + "@typescript-eslint/utils": "7.18.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, - "dependencies": { - "node-int64": "^0.4.0" + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/utils": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", + "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.18.0", + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/typescript-estree": "7.18.0" + }, "engines": { - "node": "*" + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/bundle-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", - "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "node_modules/@vue/eslint-config-typescript/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", "dev": true, "dependencies": { - "run-applescript": "^5.0.0" + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": ">=12" + "node": "^18.18.0 || >=20.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "node_modules/@vue/eslint-config-typescript/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { - "node": ">= 0.8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/cac": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "node_modules/@vue/eslint-config-typescript/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">=8" + "node": ">=10" } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + }, + "node_modules/@vue/language-core": { + "version": "2.0.29", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.29.tgz", + "integrity": "sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "@volar/language-core": "~2.4.0-alpha.18", + "@vue/compiler-dom": "^3.4.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/@vue/reactivity": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.38.tgz", + "integrity": "sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==", + "dependencies": { + "@vue/shared": "3.4.38" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" + "node_modules/@vue/runtime-core": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.38.tgz", + "integrity": "sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==", + "dependencies": { + "@vue/reactivity": "3.4.38", + "@vue/shared": "3.4.38" } }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "dev": true, - "engines": { - "node": ">= 6" + "node_modules/@vue/runtime-dom": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.38.tgz", + "integrity": "sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==", + "dependencies": { + "@vue/reactivity": "3.4.38", + "@vue/runtime-core": "3.4.38", + "@vue/shared": "3.4.38", + "csstype": "^3.1.3" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001538", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz", - "integrity": "sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] + "node_modules/@vue/server-renderer": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.38.tgz", + "integrity": "sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==", + "dependencies": { + "@vue/compiler-ssr": "3.4.38", + "@vue/shared": "3.4.38" + }, + "peerDependencies": { + "vue": "3.4.38" + } }, - "node_modules/ccount": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", - "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "node_modules/@vue/shared": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz", + "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==" + }, + "node_modules/@vue/test-utils": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.6.tgz", + "integrity": "sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==", "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "dependencies": { + "js-beautify": "^1.14.9", + "vue-component-type-helpers": "^2.0.0" } }, - "node_modules/chai": { - "version": "4.3.10", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", - "integrity": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==", + "node_modules/@yarnpkg/fslib": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz", + "integrity": "sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==", "dev": true, "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.0.8" + "@yarnpkg/libzip": "^2.3.0", + "tslib": "^1.13.0" }, "engines": { - "node": ">=4" + "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@yarnpkg/fslib/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@yarnpkg/libzip": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.3.0.tgz", + "integrity": "sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@types/emscripten": "^1.39.6", + "tslib": "^1.13.0" }, "engines": { - "node": ">=4" + "node": ">=12 <14 || 14.2 - 14.9 || >14.10.0" } }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "node_modules/@yarnpkg/libzip/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "dependencies": { - "is-regex": "^1.0.3" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chart.js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz", - "integrity": "sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==", - "dependencies": { - "@kurkle/color": "^0.3.0" + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" }, "engines": { - "pnpm": ">=7" + "node": ">=0.4.0" } }, - "node_modules/chartjs-adapter-moment": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chartjs-adapter-moment/-/chartjs-adapter-moment-1.0.1.tgz", - "integrity": "sha512-Uz+nTX/GxocuqXpGylxK19YG4R3OSVf8326D+HwSTsNw1LgzyIGRo+Qujwro1wy6X+soNSnfj5t2vZ+r6EaDmA==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, "peerDependencies": { - "chart.js": ">=3.0.0", - "moment": "^2.10.2" + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, "dependencies": { - "get-func-name": "^2.0.2" + "acorn": "^8.11.0" }, "engines": { - "node": "*" + "node": ">=0.4.0" } }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "debug": "^4.3.4" }, "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": ">= 14" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true } - ], - "engines": { - "node": ">=8" } }, - "node_modules/classnames": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", - "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, - "engines": { - "node": ">=6" + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { - "restore-cursor": "^3.1.0" + "fast-deep-equal": "^3.1.3" }, - "engines": { - "node": ">=8" + "peerDependencies": { + "ajv": "^8.8.2" } }, - "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", - "dev": true, + "node_modules/ansi_up": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ansi_up/-/ansi_up-6.0.2.tgz", + "integrity": "sha512-3G3vKvl1ilEp7J1u6BmULpMA0xVoW/f4Ekqhl8RTrJrhEBkonKn5k3bUc5Xt+qDayA6iDX0jyUh3AbZjB/l0tw==", "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "*" } }, - "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { - "string-width": "^4.2.0" + "type-fest": "^0.21.3" }, "engines": { - "node": "10.* || >= 12.*" + "node": ">=8" }, - "optionalDependencies": { - "@colors/colors": "1.5.0" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { - "node": ">= 10" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" + "color-convert": "^1.9.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, - "node_modules/color-convert": { + "node_modules/ansi-styles/node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", @@ -8581,2256 +5861,2399 @@ "color-name": "1.1.3" } }, - "node_modules/color-name": { + "node_modules/ansi-styles/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", "dev": true }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, "dependencies": { - "delayed-stream": "~1.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" + "node": ">= 8" } }, - "node_modules/common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", "dev": true }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", "dev": true }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "dev": true, "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" + "dequal": "^2.0.3" } }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "engines": { + "node": ">=8" } }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", "dev": true }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } + "node_modules/assert-never": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.3.0.tgz", + "integrity": "sha512-9Z3vxQ+berkL/JJo0dK+EY3Lp0s3NtSnP3VCLsh5HDcZPrh0M+KQRK5sWhUeyPPH+/RCxZqOxLMR+YC6vlviEQ==", + "dev": true }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">=12" } }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", "dev": true, "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" } }, - "node_modules/constantinople": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", - "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.1" - } + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, + "node_modules/autolinker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-4.0.0.tgz", + "integrity": "sha512-fl5Kh6BmEEZx+IWBfEirnRUU5+cOiV0OK7PEt0RBKvJMJ8GaRseIOeDU3FKf4j3CE5HVefcjHmhYPOcaVt0bZw==", "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" + "tslib": "^2.3.0" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "github", + "url": "https://github.com/sponsors/ai" } - ] - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, "engines": { - "node": ">= 0.6" + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/core-js-compat": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.31.0.tgz", - "integrity": "sha512-hM7YCu1cU6Opx7MXNu0NuumM0ezNeAeRKadixyiQELWY3vT3De9S4J5ZBMraWV2vZnrE1Cirl0GtFtDtMUXzPw==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, "dependencies": { - "browserslist": "^4.21.5" + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "node_modules/axios": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "dev": true, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" } }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "node_modules/babel-loader/node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", - "dev": true - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" + "node_modules/babel-loader/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" }, "engines": { - "node": ">=4" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cssstyle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", - "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "node_modules/babel-loader/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, "dependencies": { - "rrweb-cssom": "^0.6.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=14" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "node_modules/babel-loader/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, "dependencies": { - "internmap": "1 - 2" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/d3-axis": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", - "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", + "node_modules/babel-loader/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/d3-brush": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", - "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-drag": "2 - 3", - "d3-interpolate": "1 - 3", - "d3-selection": "3", - "d3-transition": "3" - }, + "node_modules/babel-loader/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "node_modules/babel-loader/node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, "engines": { - "node": ">=12" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "node_modules/babel-loader/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, "engines": { - "node": ">=12" + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/d3-drag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", - "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, "dependencies": { - "d3-dispatch": "1 - 3", - "d3-selection": "3" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" }, - "engines": { - "node": ">=12" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "engines": { - "node": ">=12" + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "engines": { - "node": ">=12" + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, "dependencies": { - "d3-color": "1 - 3" + "@babel/types": "^7.9.6" }, "engines": { - "node": ">=12" + "node": ">= 10.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" + "node": ">=8" }, - "engines": { - "node": ">=12" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/d3-selection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", - "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", - "engines": { - "node": ">=12" + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dev": true, "dependencies": { - "d3-path": "^3.1.0" + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">=12" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" + "ms": "2.0.0" } }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "dependencies": { - "d3-time": "1 - 3" + "safer-buffer": ">= 2.1.2 < 3" }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "engines": { - "node": ">=12" - } + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, - "node_modules/d3-transition": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", - "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, "dependencies": { - "d3-color": "1 - 3", - "d3-dispatch": "1 - 3", - "d3-ease": "1 - 3", - "d3-interpolate": "1 - 3", - "d3-timer": "1 - 3" + "side-channel": "^1.0.4" }, "engines": { - "node": ">=12" + "node": ">=0.6" }, - "peerDependencies": { - "d3-selection": "2 - 3" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/data-urls": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", - "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^12.0.0" - }, - "engines": { - "node": ">=14" + "balanced-match": "^1.0.0" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "fill-range": "^7.1.1" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=8" } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "node_modules/browser-assert": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/browser-assert/-/browser-assert-1.2.1.tgz", + "integrity": "sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==", "dev": true }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "character-entities": "^2.0.0" + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" + "bin": { + "browserslist": "cli.js" }, "engines": { - "node": ">=6" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/deep-equal": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", - "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "call-bind": "^1.0.0", - "es-get-iterator": "^1.1.1", - "get-intrinsic": "^1.0.1", - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.2", - "is-regex": "^1.1.1", - "isarray": "^2.0.5", - "object-is": "^1.1.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3", - "which-boxed-primitive": "^1.0.1", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "node_modules/default-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", - "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, - "dependencies": { - "bundle-name": "^3.0.0", - "default-browser-id": "^3.0.0", - "execa": "^7.1.1", - "titleize": "^3.0.0" - }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/default-browser-id": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", - "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", - "dev": true, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dependencies": { - "bplist-parser": "^0.2.0", - "untildify": "^4.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" }, "engines": { - "node": ">=12" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/default-browser/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=6" } }, - "node_modules/default-browser/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", "dev": true, "engines": { - "node": ">=14.18.0" + "node": ">= 6" } }, - "node_modules/default-browser/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "node_modules/caniuse-lite": { + "version": "1.0.30001651", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz", + "integrity": "sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/default-browser/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "node_modules/chai": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.1.1.tgz", + "integrity": "sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==", "dev": true, + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/default-browser/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "path-key": "^4.0.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, + "node": ">=4" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "dev": true, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/default-browser/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", "dev": true, "dependencies": { - "mimic-fn": "^4.0.0" + "is-regex": "^1.0.3" + } + }, + "node_modules/chart.js": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.3.tgz", + "integrity": "sha512-qK1gkGSRYcJzqrrzdR6a+I0vQ4/R+SoODXyAjscQ/4mzuNzySaMCd+hyVxitSY1+L2fjPD1Gbn+ibNqRmwQeLw==", + "dependencies": { + "@kurkle/color": "^0.3.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "pnpm": ">=8" } }, - "node_modules/default-browser/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/chartjs-adapter-moment": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chartjs-adapter-moment/-/chartjs-adapter-moment-1.0.1.tgz", + "integrity": "sha512-Uz+nTX/GxocuqXpGylxK19YG4R3OSVf8326D+HwSTsNw1LgzyIGRo+Qujwro1wy6X+soNSnfj5t2vZ+r6EaDmA==", + "peerDependencies": { + "chart.js": ">=3.0.0", + "moment": "^2.10.2" } }, - "node_modules/default-browser/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 16" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "dependencies": { - "clone": "^1.0.2" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, "engines": { - "node": ">=0.8" + "node": ">= 6" } }, - "node_modules/define-lazy-prop": { + "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", "dev": true, "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "consola": "^3.2.3" } }, - "node_modules/defu": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.2.tgz", - "integrity": "sha512-+uO4+qr7msjNNWKYPHqN/3+Dx3NFkmIzayk2L1MyZQlvgZb/J1A0fo410dpKrN2SnqFjt8n4JL8fDJE0wIgjFQ==", - "dev": true + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" + "restore-cursor": "^3.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">= 12" } }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node": ">=12" } }, - "node_modules/detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "node_modules/cliui/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/detect-package-manager": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-package-manager/-/detect-package-manager-2.0.1.tgz", - "integrity": "sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==", + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "execa": "^5.1.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "address": "^1.0.1", - "debug": "4" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", - "dev": true - }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, "engines": { - "node": ">=0.3.1" + "node": ">=0.8" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "path-type": "^4.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { - "esutils": "^2.0.2" + "delayed-stream": "~1.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">= 0.8" } }, - "node_modules/doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", + "node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, - "node_modules/dom-accessibility-api": { - "version": "0.5.14", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", - "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==", + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", "dev": true, "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, - "node_modules/dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", "dev": true, "engines": { - "node": ">=12" + "node": "^14.18.0 || >=16.10.0" } }, - "node_modules/dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", + "node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" } }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" } }, - "node_modules/duplexify/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/duplexify/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "engines": { + "node": ">= 0.6" } }, - "node_modules/duplexify/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" + "engines": { + "node": ">= 0.6" } }, - "node_modules/dynamic-dedupe": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", - "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==", + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.0.tgz", + "integrity": "sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==", "dev": true, "dependencies": { - "xtend": "^4.0.0" + "browserslist": "^4.23.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, - "node_modules/editorconfig": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", - "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { - "@one-ini/wasm": "0.1.1", - "commander": "^10.0.0", - "minimatch": "9.0.1", - "semver": "^7.5.3" - }, - "bin": { - "editorconfig": "bin/editorconfig" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" }, "engines": { - "node": ">=14" + "node": ">= 8" } }, - "node_modules/editorconfig/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/crypto-random-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", + "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "type-fest": "^1.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/editorconfig/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "node_modules/crypto-random-string/node_modules/type-fest": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", + "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, "engines": { - "node": ">=14" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/editorconfig/node_modules/minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=4" } }, - "node_modules/editorconfig/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/cssstyle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", + "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "rrweb-cssom": "^0.6.0" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", "dev": true }, - "node_modules/ejs": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", - "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", - "dev": true, - "dependencies": { - "jake": "^10.8.5" - }, - "bin": { - "ejs": "bin/cli.js" + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d3": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz", + "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==", + "dependencies": { + "d3-array": "3", + "d3-axis": "3", + "d3-brush": "3", + "d3-chord": "3", + "d3-color": "3", + "d3-contour": "4", + "d3-delaunay": "6", + "d3-dispatch": "3", + "d3-drag": "3", + "d3-dsv": "3", + "d3-ease": "3", + "d3-fetch": "3", + "d3-force": "3", + "d3-format": "3", + "d3-geo": "3", + "d3-hierarchy": "3", + "d3-interpolate": "3", + "d3-path": "3", + "d3-polygon": "3", + "d3-quadtree": "3", + "d3-random": "3", + "d3-scale": "4", + "d3-scale-chromatic": "3", + "d3-selection": "3", + "d3-shape": "3", + "d3-time": "3", + "d3-time-format": "4", + "d3-timer": "3", + "d3-transition": "3", + "d3-zoom": "3" }, "engines": { - "node": ">=0.10.0" + "node": ">=12" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.490", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.490.tgz", - "integrity": "sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "dependencies": { + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" + } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, + "node_modules/d3-axis": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz", + "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==", "engines": { - "node": ">= 0.8" + "node": ">=12" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, + "node_modules/d3-brush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz", + "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==", "dependencies": { - "once": "^1.4.0" + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "3", + "d3-transition": "3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, + "node_modules/d3-chord": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz", + "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==", "dependencies": { - "ansi-colors": "^4.1.1" + "d3-path": "1 - 3" }, "engines": { - "node": ">=8.6" + "node": ">=12" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=12" } }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" + "node_modules/d3-contour": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz", + "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==", + "dependencies": { + "d3-array": "^3.2.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, + "node_modules/d3-delaunay": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz", + "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==", "dependencies": { - "is-arrayish": "^0.2.1" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, - "node_modules/es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" + "d3-dispatch": "1 - 3", + "d3-selection": "3" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, + "node_modules/d3-dsv": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "commander": "7", + "iconv-lite": "0.6", + "rw": "1" }, - "engines": { - "node": ">= 0.4" + "bin": { + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, - "node_modules/es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", - "dev": true + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "engines": { + "node": ">=12" + } }, - "node_modules/esbuild": { - "version": "0.18.17", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.17.tgz", - "integrity": "sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "node_modules/d3-fetch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz", + "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==", + "dependencies": { + "d3-dsv": "1 - 3" }, "engines": { "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.17", - "@esbuild/android-arm64": "0.18.17", - "@esbuild/android-x64": "0.18.17", - "@esbuild/darwin-arm64": "0.18.17", - "@esbuild/darwin-x64": "0.18.17", - "@esbuild/freebsd-arm64": "0.18.17", - "@esbuild/freebsd-x64": "0.18.17", - "@esbuild/linux-arm": "0.18.17", - "@esbuild/linux-arm64": "0.18.17", - "@esbuild/linux-ia32": "0.18.17", - "@esbuild/linux-loong64": "0.18.17", - "@esbuild/linux-mips64el": "0.18.17", - "@esbuild/linux-ppc64": "0.18.17", - "@esbuild/linux-riscv64": "0.18.17", - "@esbuild/linux-s390x": "0.18.17", - "@esbuild/linux-x64": "0.18.17", - "@esbuild/netbsd-x64": "0.18.17", - "@esbuild/openbsd-x64": "0.18.17", - "@esbuild/sunos-x64": "0.18.17", - "@esbuild/win32-arm64": "0.18.17", - "@esbuild/win32-ia32": "0.18.17", - "@esbuild/win32-x64": "0.18.17" - } - }, - "node_modules/esbuild-plugin-alias": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/esbuild-plugin-alias/-/esbuild-plugin-alias-0.2.1.tgz", - "integrity": "sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==", - "dev": true + } }, - "node_modules/esbuild-register": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.4.2.tgz", - "integrity": "sha512-kG/XyTDyz6+YDuyfB9ZoSIOOmgyFCH+xPRtsCa8W85HLRV5Csp+o3jWVbOSHgSLfyLc5DmP+KFDNwty4mEjC+Q==", - "dev": true, + "node_modules/d3-force": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dependencies": { - "debug": "^4.3.4" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" }, - "peerDependencies": { - "esbuild": ">=0.12 <1" + "engines": { + "node": ">=12" } }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true + "node_modules/d3-geo": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz", + "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==", + "dependencies": { + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" + } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, + "node_modules/d3-hierarchy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", "engines": { - "node": ">=0.8.0" + "node": ">=12" } }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" + "d3-color": "1 - 3" }, "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-polygon": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz", + "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==", + "engines": { + "node": ">=12" } }, - "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "node_modules/d3-quadtree": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.0.tgz", - "integrity": "sha512-AgaZCVuYDXHUGxj/ZGu1u8H8CYgDY3iG6w5kUFw4AzMVXzB7VvbKgYR4nATIN+OvUrghMbiDLeimVjVY5ilq3w==", - "dev": true, - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.5" - }, + "node_modules/d3-random": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz", + "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==", "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } + "node": ">=12" } }, - "node_modules/eslint-plugin-storybook": { - "version": "0.6.14", - "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.14.tgz", - "integrity": "sha512-IeYigPur/MvESNDo43Z+Z5UvlcEVnt0dDZmnw1odi9X2Th1R3bpGyOZsHXb9bp1pFecOpRUuoMG5xdID2TwwOg==", - "dev": true, + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dependencies": { - "@storybook/csf": "^0.0.1", - "@typescript-eslint/utils": "^5.45.0", - "requireindex": "^1.1.0", - "ts-dedent": "^2.2.0" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" }, "engines": { - "node": "12.x || 14.x || >= 16" - }, - "peerDependencies": { - "eslint": ">=6" + "node": ">=12" } }, - "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", - "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", - "dev": true, + "node_modules/d3-scale-chromatic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz", + "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==", "dependencies": { - "lodash": "^4.17.15" + "d3-color": "1 - 3", + "d3-interpolate": "1 - 3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/eslint-plugin-vue": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.17.0.tgz", - "integrity": "sha512-r7Bp79pxQk9I5XDP0k2dpUC7Ots3OSWgvGZNu3BxmKK6Zg7NgVtcOB6OCna5Kb9oQwJPl5hq183WD0SY5tZtIQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.1.1", - "postcss-selector-parser": "^6.0.13", - "semver": "^7.5.4", - "vue-eslint-parser": "^9.3.1", - "xml-name-validator": "^4.0.0" - }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + "node": ">=12" } }, - "node_modules/eslint-plugin-vue/node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "dev": true, + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" + "d3-path": "^3.1.0" }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/eslint-plugin-vue/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, + "node_modules/d3-time": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "d3-array": "2 - 3" }, "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "d3-time": "1 - 3" }, "engines": { - "node": ">=8.0.0" + "node": ">=12" } }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", "engines": { - "node": ">=4.0" + "node": ">=12" } }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" }, "engines": { - "node": ">=6" + "node": ">=12" }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "peerDependencies": { + "d3-selection": "2 - 3" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", "dev": true, + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "node_modules/data-urls/node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" + "engines": { + "node": ">=18" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "ms": "2.1.2" }, "engines": { - "node": ">=8" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", + "dev": true + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "character-entities": "^2.0.0" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=6" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint/node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" + "clone": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { "node": ">=8" } }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "dev": true + }, + "node_modules/delaunator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz", + "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==", + "dependencies": { + "robust-predicates": "^3.0.2" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, "engines": { - "node": ">=0.10" + "node": ">= 0.8" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, "engines": { - "node": ">=4.0" + "node": ">=6" } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "dev": true, - "engines": { - "node": ">= 0.6" + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/event-source-polyfill": { - "version": "1.0.31", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.31.tgz", - "integrity": "sha512-4IJSItgS/41IxN5UVAVuAyczwZF7ZIEsM1XAoUzIHA6A+xzusEZUutdXz2Nr+MQPLxfTiCvqE79/C8HT8fKFvA==" + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { - "node": ">=0.8.x" + "node": ">=0.3.1" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "node": ">=8" } }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "esutils": "^2.0.2" }, "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" + "node": ">=6.0.0" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", "dev": true }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", "dev": true }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/dynamic-dedupe": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", + "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==", "dev": true, "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" + "xtend": "^4.0.0" } }, - "node_modules/extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/editorconfig": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", "dev": true, "dependencies": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" }, "bin": { - "extract-zip": "cli.js" + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" } }, - "node_modules/extract-zip/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/editorconfig/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">=14" } }, - "node_modules/extract-zip/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "node_modules/editorconfig/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", "dev": true, "dependencies": { - "minimist": "^1.2.6" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/editorconfig/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, "bin": { - "mkdirp": "bin/cmd.js" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/extract-zip/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "node_modules/electron-to-chromium": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.8.tgz", + "integrity": "sha512-4Nx0gP2tPNBLTrFxBMHpkQbtn2hidPVr/+/FTtcCiBYTucqc70zRyVZiOLj17Ui3wTO7SQ1/N+hkHYzJjBzt6A==", "dev": true }, - "node_modules/fast-diff": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", - "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=8.6.0" + "node": ">= 0.4" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", "dev": true }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, - "dependencies": { - "reusify": "^1.0.4" + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "node_modules/esbuild-register": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", + "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", "dev": true, "dependencies": { - "bser": "2.1.1" + "debug": "^4.3.4" + }, + "peerDependencies": { + "esbuild": ">=0.12 <1" } }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, - "dependencies": { - "pend": "~1.2.0" + "engines": { + "node": ">=6" } }, - "node_modules/fetch-retry": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-5.0.6.tgz", - "integrity": "sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==", + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, "dependencies": { - "escape-string-regexp": "^1.0.5" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/file-saver": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" - }, - "node_modules/file-system-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/file-system-cache/-/file-system-cache-2.3.0.tgz", - "integrity": "sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==", + "node_modules/eslint-plugin-storybook": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-0.8.0.tgz", + "integrity": "sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==", "dev": true, "dependencies": { - "fs-extra": "11.1.1", - "ramda": "0.29.0" + "@storybook/csf": "^0.0.1", + "@typescript-eslint/utils": "^5.62.0", + "requireindex": "^1.2.0", + "ts-dedent": "^2.2.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "eslint": ">=6" } }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "node_modules/eslint-plugin-storybook/node_modules/@storybook/csf": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@storybook/csf/-/csf-0.0.1.tgz", + "integrity": "sha512-USTLkZze5gkel8MYCujSRBVIrUQ3YPBrLOx7GNk/0wttvVtlzWXAq9eLbQ4p/NicGxP+3T7KPEMVV//g+yubpw==", "dev": true, "dependencies": { - "minimatch": "^5.0.1" + "lodash": "^4.17.15" } }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", "dev": true, "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" }, "engines": { - "node": ">= 0.8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/eslint-plugin-storybook/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", "dev": true, "dependencies": { - "ms": "2.0.0" + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/eslint-plugin-storybook/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/eslint-plugin-storybook/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/eslint-plugin-vue": { + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.27.0.tgz", + "integrity": "sha512-5Dw3yxEyuBSXTzT5/Ge1X5kIkRTQ3nvBn/VwPwInNiZBSJOO/timWMUaflONnFBzU6NhB68lxnCda7ULV5N7LA==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.0", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "type-fest": "^0.20.2" }, "engines": { - "node": ">=6" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/eslint-plugin-vue/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "find-up": "^4.0.0" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/eslint-plugin-vue/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, "engines": { "node": ">=10" }, @@ -10838,399 +8261,441 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8.0.0" } }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "node_modules/flow-parser": { - "version": "0.217.2", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.217.2.tgz", - "integrity": "sha512-O+nt/FLXa1hTwtW0O9h36iZjbL84G8e1uByx5dDXMC97AJEbZXwJ4ohfaE8BNWrYFyYX0NGfz1o8AtLQvaaD/Q==", + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=0.4.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=4.0" + "node": ">=10" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "dependencies": { - "is-callable": "^1.1.3" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=14" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { - "node": ">=14" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint" } }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "type-fest": "^0.20.2" }, "engines": { - "node": ">= 6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=8" } }, - "node_modules/fraction.js": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz", - "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { "node": "*" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" }, - "funding": { - "type": "patreon", - "url": "https://github.com/sponsors/rawify" + "engines": { + "node": ">=8" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "node_modules/esm-resolve": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/esm-resolve/-/esm-resolve-1.0.11.tgz", + "integrity": "sha512-LxF0wfUQm3ldUDHkkV2MIbvvY0TgzIpJ420jHSV1Dm+IlplBEWiJTKWM61GtxUfvjV6iD4OtTYFGAGM2uuIUWg==", "dev": true }, - "node_modules/fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">=14.14" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "minipass": "^3.0.0" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "estraverse": "^5.1.0" }, "engines": { - "node": ">=8" + "node": ">=0.10" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=4.0" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4.0" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fuse.js": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.6.2.tgz", - "integrity": "sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA==", "engines": { - "node": ">=10" + "node": ">=4.0" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "engines": { - "node": ">=6.9.0" + "node": ">=4.0" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=0.10.0" } }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "node_modules/event-source-polyfill": { + "version": "1.0.31", + "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.31.tgz", + "integrity": "sha512-4IJSItgS/41IxN5UVAVuAyczwZF7ZIEsM1XAoUzIHA6A+xzusEZUutdXz2Nr+MQPLxfTiCvqE79/C8HT8fKFvA==" + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "dev": true, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/get-npm-tarball-url": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.0.3.tgz", - "integrity": "sha512-R/PW6RqyaBQNWYaSyfrh54/qtcnOp22FHCCiRhSSZj0FP3KQWCsxxt0DzIdVTbwTqe9CtQfvl/FPD4UIPt4pqw==", - "dev": true, - "engines": { - "node": ">=12.17" - } + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, "engines": { - "node": ">=8.0.0" + "node": ">= 0.10.0" } }, - "node_modules/get-port": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", - "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "ms": "2.0.0" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "side-channel": "^1.0.4" }, "engines": { - "node": ">= 0.4" + "node": ">=0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/giget": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/giget/-/giget-1.1.2.tgz", - "integrity": "sha512-HsLoS07HiQ5oqvObOI+Qb2tyZH4Gj5nYGfF9qQcZNrPw+uEFhdXtgJr01aO2pWadGHucajYDLxxbtQkm97ON2A==", - "dev": true, - "dependencies": { - "colorette": "^2.0.19", - "defu": "^6.1.2", - "https-proxy-agent": "^5.0.1", - "mri": "^1.2.0", - "node-fetch-native": "^1.0.2", - "pathe": "^1.1.0", - "tar": "^6.1.13" - }, - "bin": { - "giget": "dist/cli.mjs" - } + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, - "node_modules/github-slugger": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8.6.0" } }, - "node_modules/glob-parent": { + "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", @@ -11242,613 +8707,577 @@ "node": ">= 6" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "engines": { - "node": ">=4" + "dependencies": { + "reusify": "^1.0.4" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/fd-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fd-package-json/-/fd-package-json-1.2.0.tgz", + "integrity": "sha512-45LSPmWf+gC5tdCQMNH4s9Sr00bIkiD9aN7dc5hqkrEw1geRYyDQS1v1oMHAW3ysfxfndqGsrDREHHjNNbKUfA==", "dev": true, "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "walk-up-path": "^3.0.1" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, "engines": { - "node": ">= 4" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true + "node_modules/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + "node": ">= 0.8" } }, - "node_modules/gunzip-maybe": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/gunzip-maybe/-/gunzip-maybe-1.4.2.tgz", - "integrity": "sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==", + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "dependencies": { - "browserify-zlib": "^0.1.4", - "is-deflate": "^1.0.0", - "is-gzip": "^1.0.0", - "peek-stream": "^1.1.0", - "pumpify": "^1.3.3", - "through2": "^2.0.3" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, - "bin": { - "gunzip-maybe": "bin.js" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "node_modules/find-package-json": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/find-package-json/-/find-package-json-1.2.0.tgz", + "integrity": "sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==", + "dev": true + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=0.4.7" + "node": ">=10" }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">= 0.4.0" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/flow-parser": { + "version": "0.243.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.243.0.tgz", + "integrity": "sha512-HCDBfH+kZcY5etWYeAqatjW78gkIryzb9XixRsA8lGI1uyYc7aCpElkkO4H+KIpoyQMiY0VAZPI4cyac3wQe8w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=0.4.0" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "is-callable": "^1.1.3" } }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/hash-sum": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", - "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", - "dev": true - }, - "node_modules/headers-polyfill": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.5.tgz", - "integrity": "sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA==", - "dev": true - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "whatwg-encoding": "^2.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">=12" + "node": ">= 6" } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, "engines": { - "node": ">= 0.8" + "node": ">= 0.6" } }, - "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "engines": { + "node": "*" }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, "engines": { - "node": ">= 6" + "node": ">= 0.6" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": ">= 6" + "node": ">=14.14" } }, - "node_modules/human-signals": { + "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": ">=10.17.0" + "node": ">= 8" } }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "yallist": "^4.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, - "node_modules/immutable": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.2.tgz", - "integrity": "sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6" - }, + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, + "node_modules/fuse.js": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", + "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", "engines": { - "node": ">=0.8.19" + "node": ">=10" } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inquirer": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", - "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^7.0.0" - }, "engines": { - "node": ">=12.0.0" + "node": "*" } }, - "node_modules/inquirer/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "color-convert": "^2.0.1" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/inquirer/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/inquirer/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/giget": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.3.tgz", + "integrity": "sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "citty": "^0.1.6", + "consola": "^3.2.3", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.3", + "nypm": "^0.3.8", + "ohash": "^1.1.3", + "pathe": "^1.1.2", + "tar": "^6.2.0" }, - "engines": { - "node": ">=7.0.0" + "bin": { + "giget": "dist/cli.mjs" } }, - "node_modules/inquirer/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", "dev": true }, - "node_modules/inquirer/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=8" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" + "node": ">=10.13.0" } }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dependencies": { - "has-bigints": "^1.0.1" + "get-intrinsic": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/graphql": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", + "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, "engines": { - "node": ">=8" + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/happy-dom": { + "version": "14.12.3", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-14.12.3.tgz", + "integrity": "sha512-vsYlEs3E9gLwA1Hp+w3qzu+RUDFf4VTT8cyKqVICoZ2k7WM++Qyd2LwzyTi5bqMJFiIC/vNpTDYuxdreENRK/g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "entities": "^4.5.0", + "webidl-conversions": "^7.0.0", + "whatwg-mimetype": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, + "node": ">=16.0.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], "engines": { "node": ">=4" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -11856,25 +9285,24 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -11883,258 +9311,290 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-deflate": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", - "integrity": "sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==", + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", "dev": true }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + } + }, + "node_modules/hast-util-heading-rank": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-3.0.0.tgz", + "integrity": "sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-expression": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", - "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", "dev": true, "dependencies": { - "acorn": "^7.1.1", - "object-assign": "^4.1.1" + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/hast-util-to-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.0.tgz", + "integrity": "sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==", "dev": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, - "engines": { - "node": ">=8" + "bin": { + "he": "bin/he" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "node_modules/headers-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "whatwg-encoding": "^3.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.8" } }, - "node_modules/is-gzip": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-gzip/-/is-gzip-1.0.0.tgz", - "integrity": "sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==", + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 14" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 14" } }, - "node_modules/is-inside-container/node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, - "bin": { - "is-docker": "cli.js" - }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.17.0" } }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" } }, - "node_modules/is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.8.19" } }, - "node_modules/is-node-process": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", - "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { - "node": ">=0.12.0" + "node": ">=8" } }, - "node_modules/is-number-object": { + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/internal-slot": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.10" } }, - "node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "node_modules/is-absolute-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-4.0.1.tgz", + "integrity": "sha512-/51/TKE88Lmm7Gc4/8btclNXWS+g50wXhYJq8HWIBAGUBnoAdRu1aXeh364t/O7wXDAcTJDP8PNuNKWUDWie+A==", "dev": true, "engines": { - "node": ">=12" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -12147,45 +9607,53 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "has-bigints": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, "dependencies": { + "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" }, "engines": { @@ -12195,14 +9663,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, "engines": { "node": ">= 0.4" }, @@ -12210,17 +9675,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", - "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -12229,406 +9690,418 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2" + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "acorn": "^7.1.1", + "object-assign": "^4.1.1" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "node_modules/is-expression/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, - "dependencies": { - "is-docker": "^2.0.0" + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/iso8601-duration": { + "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/iso8601-duration/-/iso8601-duration-2.1.1.tgz", - "integrity": "sha512-VGGpW30/R57FpG1J7RqqKBAaK7lIiudlZkQ5tRoO9hNlKYQNnhs60DQpXlPFBmp6I+kJ61PHkI3f/T7cR4wfbw==" - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { - "@isaacs/cliui": "^8.0.2" + "is-extglob": "^2.1.1" }, "engines": { - "node": ">=14" + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jake": { - "version": "10.8.7", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", - "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, "engines": { - "node": ">=10" + "node": ">=0.12.0" } }, - "node_modules/jake/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jake/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jake/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "isobject": "^3.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=0.10.0" } }, - "node_modules/jake/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", "dev": true }, - "node_modules/jake/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true }, - "node_modules/jake/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/javascript-natural-sort": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", - "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", - "dev": true + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/jest-haste-map": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.5.0.tgz", - "integrity": "sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==", + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.4.3", - "jest-util": "^29.5.0", - "jest-worker": "^29.5.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "call-bind": "^1.0.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-regex-util": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.4.3.tgz", - "integrity": "sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-util": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.5.0.tgz", - "integrity": "sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==", + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, "dependencies": { - "@jest/types": "^29.5.0", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "has-symbols": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "which-typed-array": "^1.1.14" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, "engines": { - "node": ">=7.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-worker": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.5.0.tgz", - "integrity": "sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==", + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "dependencies": { - "@types/node": "*", - "jest-util": "^29.5.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "is-docker": "^2.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/iso8601-duration": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/iso8601-duration/-/iso8601-duration-2.1.2.tgz", + "integrity": "sha512-yXteYUiKv6x8seaDzyBwnZtPpmx766KfvQuaVNyPifYOjmPdOo3ajd4phDNa7Y5mTQGnXsNEcXFtVun1FjYXxQ==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" + "@isaacs/cliui": "^8.0.2" }, "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/javascript-natural-sort": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz", + "integrity": "sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw==", + "dev": true + }, "node_modules/jiti": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", "dev": true, "bin": { "jiti": "bin/jiti.js" } }, "node_modules/js-beautify": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.9.tgz", - "integrity": "sha512-coM7xq1syLcMyuVGyToxcj2AlzhkDjmfklL8r0JgJ7A76wyGMpJ1oA35mr4APdYNO/o/4YY8H54NQIJzhMbhBg==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz", + "integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==", "dev": true, "dependencies": { "config-chain": "^1.1.13", - "editorconfig": "^1.0.3", - "glob": "^8.1.0", - "nopt": "^6.0.0" + "editorconfig": "^1.0.4", + "glob": "^10.3.3", + "js-cookie": "^3.0.5", + "nopt": "^7.2.0" }, "bin": { "css-beautify": "js/bin/css-beautify.js", @@ -12636,56 +10109,16 @@ "js-beautify": "js/bin/js-beautify.js" }, "engines": { - "node": ">=12" - } - }, - "node_modules/js-beautify/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/js-beautify/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/js-beautify/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "node": ">=14" } }, - "node_modules/js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=14" } }, "node_modules/js-stringify": { @@ -12700,33 +10133,33 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/jscodeshift": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz", - "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.13.16", - "@babel/parser": "^7.13.16", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", - "@babel/preset-flow": "^7.13.13", - "@babel/preset-typescript": "^7.13.0", - "@babel/register": "^7.13.16", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.15.2.tgz", + "integrity": "sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/parser": "^7.23.0", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-modules-commonjs": "^7.23.0", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", + "@babel/plugin-transform-optional-chaining": "^7.23.0", + "@babel/plugin-transform-private-methods": "^7.22.5", + "@babel/preset-flow": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@babel/register": "^7.22.15", "babel-core": "^7.0.0-bridge.0", "chalk": "^4.1.2", "flow-parser": "0.*", @@ -12734,7 +10167,7 @@ "micromatch": "^4.0.4", "neo-async": "^2.5.0", "node-dir": "^0.1.17", - "recast": "^0.21.0", + "recast": "^0.23.3", "temp": "^0.8.4", "write-file-atomic": "^2.3.0" }, @@ -12743,6 +10176,11 @@ }, "peerDependencies": { "@babel/preset-env": "^7.1.6" + }, + "peerDependenciesMeta": { + "@babel/preset-env": { + "optional": true + } } }, "node_modules/jscodeshift/node_modules/ansi-styles": { @@ -12760,18 +10198,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jscodeshift/node_modules/ast-types": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", - "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/jscodeshift/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -12788,24 +10214,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jscodeshift/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jscodeshift/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/jscodeshift/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -12815,21 +10223,6 @@ "node": ">=8" } }, - "node_modules/jscodeshift/node_modules/recast": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz", - "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==", - "dev": true, - "dependencies": { - "ast-types": "0.15.2", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, "node_modules/jscodeshift/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -12842,52 +10235,39 @@ "node": ">=8" } }, - "node_modules/jscodeshift/node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, "node_modules/jsdom": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", - "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", + "version": "24.1.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.1.tgz", + "integrity": "sha512-5O1wWV99Jhq4DV7rCLIoZ/UIhyQeDR7wHVyZAHAshbrvZsLs+Xzz7gtwnlJTJDjleiTKh54F4dXrX70vJQTyJQ==", "dev": true, "dependencies": { - "abab": "^2.0.6", - "cssstyle": "^3.0.0", - "data-urls": "^4.0.0", + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", "decimal.js": "^10.4.3", - "domexception": "^4.0.0", "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.5", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.4", + "nwsapi": "^2.2.12", "parse5": "^7.1.2", - "rrweb-cssom": "^0.6.0", + "rrweb-cssom": "^0.7.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", + "tough-cookie": "^4.1.4", + "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^12.0.1", - "ws": "^8.13.0", - "xml-name-validator": "^4.0.0" + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "canvas": "^2.5.0" + "canvas": "^2.11.2" }, "peerDependenciesMeta": { "canvas": { @@ -12895,18 +10275,22 @@ } } }, - "node_modules/jsdom/node_modules/form-data": { + "node_modules/jsdom/node_modules/whatwg-mimetype": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, "engines": { - "node": ">= 6" + "node": ">=18" + } + }, + "node_modules/jsdom/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "engines": { + "node": ">=18" } }, "node_modules/jsesc": { @@ -12921,10 +10305,10 @@ "node": ">=4" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, "node_modules/json-schema-traverse": { @@ -12951,12 +10335,6 @@ "node": ">=6" } }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -12979,6 +10357,15 @@ "promise": "^7.0.1" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -12997,20 +10384,6 @@ "node": ">=6" } }, - "node_modules/lazy-universal-dotenv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lazy-universal-dotenv/-/lazy-universal-dotenv-4.0.0.tgz", - "integrity": "sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==", - "dev": true, - "dependencies": { - "app-root-dir": "^1.0.2", - "dotenv": "^16.0.0", - "dotenv-expand": "^10.0.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -13048,18 +10421,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "node_modules/local-pkg": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", - "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", - "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -13107,12 +10468,6 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -13160,24 +10515,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -13221,24 +10558,21 @@ } }, "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.1.tgz", + "integrity": "sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==", "dev": true, "dependencies": { - "get-func-name": "^2.0.0" + "get-func-name": "^2.0.1" } }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, "node_modules/lz-string": { @@ -13251,21 +10585,13 @@ } }, "node_modules/magic-string": { - "version": "0.30.2", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.2.tgz", - "integrity": "sha512-lNZdu7pewtq/ZvWUp9Wpf/x7WzMTsR26TWV03BRZrXFsv+BI6dy8RAiKgm1uM/kyR0rCfUcqvOlXKG66KhIGug==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "engines": { - "node": ">=12" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/magic-string/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -13287,15 +10613,6 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, "node_modules/map-or-similar": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/map-or-similar/-/map-or-similar-1.5.0.tgz", @@ -13313,9 +10630,9 @@ } }, "node_modules/markdown-to-jsx": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz", - "integrity": "sha512-B+28F5ucp83aQm+OxNrPkS8z0tMKaeHiy0lHJs3LqCyDQFtWuenaIrkaVTgAm1pf1AU85LXltva86hlaT17i8Q==", + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.7.tgz", + "integrity": "sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==", "dev": true, "engines": { "node": ">= 10" @@ -13324,29 +10641,16 @@ "react": ">= 0.14.0" } }, - "node_modules/mdast-util-definitions": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", - "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", - "dev": true, - "dependencies": { - "unist-util-visit": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-find-and-replace": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz", - "integrity": "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.0.0" + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", @@ -13365,51 +10669,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-find-and-replace/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-from-markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.0.tgz", - "integrity": "sha512-HN3W1gRIuN/ZW295c7zi7g9lVBllMgZE40RxCX37wrTPWXCWtpvOZdfnuK+1WNpvZje6XuJeI3Wnb4TJEUem+g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", @@ -13417,18 +10694,18 @@ } }, "node_modules/mdast-util-gfm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz", - "integrity": "sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", "dev": true, "dependencies": { - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-gfm-autolink-literal": "^1.0.0", - "mdast-util-gfm-footnote": "^1.0.0", - "mdast-util-gfm-strikethrough": "^1.0.0", - "mdast-util-gfm-table": "^1.0.0", - "mdast-util-gfm-task-list-item": "^1.0.0", - "mdast-util-to-markdown": "^1.0.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13436,15 +10713,16 @@ } }, "node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", "ccount": "^2.0.0", - "mdast-util-find-and-replace": "^2.0.0", - "micromark-util-character": "^1.0.0" + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13452,14 +10730,16 @@ } }, "node_modules/mdast-util-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0", - "micromark-util-normalize-identifier": "^1.0.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13467,13 +10747,14 @@ } }, "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13481,15 +10762,16 @@ } }, "node_modules/mdast-util-gfm-table": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz", - "integrity": "sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", "markdown-table": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "mdast-util-to-markdown": "^1.3.0" + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13497,13 +10779,15 @@ } }, "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.3.0" + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13511,26 +10795,13 @@ } }, "node_modules/mdast-util-phrasing": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz", - "integrity": "sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==", - "dev": true, - "dependencies": { - "@types/mdast": "^3.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-phrasing/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", "dev": true, "dependencies": { - "@types/unist": "^2.0.0" + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", @@ -13538,18 +10809,18 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz", - "integrity": "sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", + "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", - "mdast-util-phrasing": "^3.0.0", - "mdast-util-to-string": "^3.0.0", - "micromark-util-decode-string": "^1.0.0", - "unist-util-visit": "^4.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" }, "funding": { @@ -13557,55 +10828,13 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/mdast-util-to-markdown/node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-markdown/node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dev": true, - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0" + "@types/mdast": "^4.0.0" }, "funding": { "type": "opencollective", @@ -13661,9 +10890,9 @@ } }, "node_modules/micromark": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.1.0.tgz", - "integrity": "sha512-6Mj0yHLdUZjHnOPgr5xfWIMqMWS12zDN6iws9SLuSz76W8jTtAv24MN4/CL7gJrl5vtxGInkkqDv/JIoRsQOvA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", "dev": true, "funding": [ { @@ -13679,26 +10908,26 @@ "@types/debug": "^4.0.0", "debug": "^4.0.0", "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-core-commonmark": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", - "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", "dev": true, "funding": [ { @@ -13712,37 +10941,37 @@ ], "dependencies": { "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", - "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", "dev": true, "dependencies": { - "micromark-extension-gfm-autolink-literal": "^1.0.0", - "micromark-extension-gfm-footnote": "^1.0.0", - "micromark-extension-gfm-strikethrough": "^1.0.0", - "micromark-extension-gfm-table": "^1.0.0", - "micromark-extension-gfm-tagfilter": "^1.0.0", - "micromark-extension-gfm-task-list-item": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13750,16 +10979,15 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", - "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", "dev": true, "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13767,19 +10995,19 @@ } }, "node_modules/micromark-extension-gfm-footnote": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.0.tgz", - "integrity": "sha512-RWYce7j8+c0n7Djzv5NzGEGitNNYO3uj+h/XYMdS/JinH1Go+/Qkomg/rfxExFzYTiydaV6GLeffGO5qcJbMPA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", "dev": true, "dependencies": { - "micromark-core-commonmark": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13787,17 +11015,17 @@ } }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.5.tgz", - "integrity": "sha512-X0oI5eYYQVARhiNfbETy7BfLSmSilzN1eOuoRnrf9oUNsPRrWOAe9UqSizgw1vNxQBfOwL+n2610S3bYjVNi7w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", "dev": true, "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13805,16 +11033,16 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", - "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz", + "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==", "dev": true, "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13822,12 +11050,12 @@ } }, "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz", - "integrity": "sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", "dev": true, "dependencies": { - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13835,16 +11063,16 @@ } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.4.tgz", - "integrity": "sha512-9XlIUUVnYXHsFF2HZ9jby4h3npfX10S1coXTnV035QGPgrtNYQq3J6IfIvcCIUAJrrqBVi5BqA/LmaOMJqPwMQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", "dev": true, "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" }, "funding": { "type": "opencollective", @@ -13852,9 +11080,9 @@ } }, "node_modules/micromark-factory-destination": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.0.0.tgz", - "integrity": "sha512-eUBA7Rs1/xtTVun9TmV3gjfPz2wEwgK5R5xcbIM5ZYAtvGF6JkyaDsj0agx8urXnO31tEO6Ug83iVH3tdedLnw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", "dev": true, "funding": [ { @@ -13867,15 +11095,15 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-label": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", - "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", "dev": true, "funding": [ { @@ -13888,16 +11116,16 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-space": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.0.0.tgz", - "integrity": "sha512-qUmqs4kj9a5yBnk3JMLyjtWYN6Mzfcx8uJfi5XAveBniDevmZasdGBba5b4QsvRcAkmvGo5ACmSUmyGiKTLZew==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", "dev": true, "funding": [ { @@ -13910,14 +11138,14 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-title": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", - "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", "dev": true, "funding": [ { @@ -13930,17 +11158,16 @@ } ], "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-whitespace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.0.0.tgz", - "integrity": "sha512-Qx7uEyahU1lt1RnsECBiuEbfr9INjQTGa6Err+gF3g0Tx4YEviPbqqGKNv/NrBaE7dVHdn1bVZKM/n5I/Bak7A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", "dev": true, "funding": [ { @@ -13953,16 +11180,16 @@ } ], "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.1.0.tgz", - "integrity": "sha512-agJ5B3unGNJ9rJvADMJ5ZiYjBRyDpzKAOk01Kpi1TKhlT1APx3XZk6eN7RtSz1erbWHC2L8T3xLZ81wdtGRZzg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "dev": true, "funding": [ { @@ -13975,14 +11202,14 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-chunked": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.0.0.tgz", - "integrity": "sha512-5e8xTis5tEZKgesfbQMKRCyzvffRRUX+lK/y+DvsMFdabAicPkkZV6gO+FEWi9RfuKKoxxPwNL+dFF0SMImc1g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", "dev": true, "funding": [ { @@ -13995,13 +11222,13 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0" + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-classify-character": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.0.0.tgz", - "integrity": "sha512-F8oW2KKrQRb3vS5ud5HIqBVkCqQi224Nm55o5wYLzY/9PwHGXC01tr3d7+TqHHz6zrKQ72Okwtvm/xQm6OVNZA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", "dev": true, "funding": [ { @@ -14014,15 +11241,15 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-combine-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.0.0.tgz", - "integrity": "sha512-J8H058vFBdo/6+AsjHp2NF7AJ02SZtWaVUjsayNFeAiydTxUwViQPxN0Hf8dp4FmCQi0UUFovFsEyRSUmFH3MA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", "dev": true, "funding": [ { @@ -14035,14 +11262,14 @@ } ], "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.0.0.tgz", - "integrity": "sha512-OzO9AI5VUtrTD7KSdagf4MWgHMtET17Ua1fIpXTpuhclCqD8egFWo85GxSGvxgkGS74bEahvtM0WP0HjvV0e4w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", "dev": true, "funding": [ { @@ -14055,13 +11282,13 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0" + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-decode-string": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", - "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", "dev": true, "funding": [ { @@ -14075,15 +11302,15 @@ ], "dependencies": { "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-encode": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", - "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", "dev": true, "funding": [ { @@ -14097,9 +11324,9 @@ ] }, "node_modules/micromark-util-html-tag-name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.1.0.tgz", - "integrity": "sha512-BKlClMmYROy9UiV03SwNmckkjn8QHVaWkqoAqzivabvdGcwNGMMMH/5szAnywmsTBUzDsU57/mFi0sp4BQO6dA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", "dev": true, "funding": [ { @@ -14113,9 +11340,9 @@ ] }, "node_modules/micromark-util-normalize-identifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.0.0.tgz", - "integrity": "sha512-yg+zrL14bBTFrQ7n35CmByWUTFsgst5JhA4gJYoty4Dqzj4Z4Fr/DHekSS5aLfH9bdlfnSvKAWsAgJhIbogyBg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", "dev": true, "funding": [ { @@ -14128,13 +11355,13 @@ } ], "dependencies": { - "micromark-util-symbol": "^1.0.0" + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-resolve-all": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.0.0.tgz", - "integrity": "sha512-CB/AGk98u50k42kvgaMM94wzBqozSzDDaonKU7P7jwQIuH2RU0TeBqGYJz2WY1UdihhjweivStrJ2JdkdEmcfw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", "dev": true, "funding": [ { @@ -14147,13 +11374,13 @@ } ], "dependencies": { - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-sanitize-uri": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.1.0.tgz", - "integrity": "sha512-RoxtuSCX6sUNtxhbmsEFQfWzs8VN7cTctmBPvYivo98xb/kDEoTCtJQX5wyzIYEmk/lvNFTat4hL8oW0KndFpg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", "dev": true, "funding": [ { @@ -14166,15 +11393,15 @@ } ], "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-subtokenize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", - "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", "dev": true, "funding": [ { @@ -14187,16 +11414,16 @@ } ], "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", - "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", "dev": true, "funding": [ { @@ -14210,9 +11437,9 @@ ] }, "node_modules/micromark-util-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", - "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", "dev": true, "funding": [ { @@ -14226,12 +11453,12 @@ ] }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -14296,33 +11523,36 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "*" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, "node_modules/minizlib": { @@ -14350,6 +11580,12 @@ "node": ">=8" } }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", @@ -14367,53 +11603,26 @@ "node": ">=10" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "node_modules/mlly": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.4.0.tgz", - "integrity": "sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", + "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", "dev": true, "dependencies": { - "acorn": "^8.9.0", - "pathe": "^1.1.1", - "pkg-types": "^1.0.3", - "ufo": "^1.1.2" - } - }, - "node_modules/mlly/node_modules/acorn": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", - "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" } }, "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", "engines": { "node": "*" } }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -14421,44 +11630,41 @@ "dev": true }, "node_modules/msw": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/msw/-/msw-1.3.2.tgz", - "integrity": "sha512-wKLhFPR+NitYTkQl5047pia0reNGgf0P6a1eTnA5aNlripmiz0sabMvvHcicE8kQ3/gZcI0YiPFWmYfowfm3lA==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.3.5.tgz", + "integrity": "sha512-+GUI4gX5YC5Bv33epBrD+BGdmDvBg2XGruiWnI3GbIbRmMMBeZ5gs3mJ51OWSGHgJKztZ8AtZeYMMNMVrje2/Q==", "dev": true, "hasInstallScript": true, "dependencies": { - "@mswjs/cookies": "^0.2.2", - "@mswjs/interceptors": "^0.17.10", - "@open-draft/until": "^1.0.3", - "@types/cookie": "^0.4.1", - "@types/js-levenshtein": "^1.1.1", - "chalk": "^4.1.1", - "chokidar": "^3.4.2", - "cookie": "^0.4.2", + "@bundled-es-modules/cookie": "^2.0.0", + "@bundled-es-modules/statuses": "^1.0.1", + "@bundled-es-modules/tough-cookie": "^0.1.6", + "@inquirer/confirm": "^3.0.0", + "@mswjs/interceptors": "^0.29.0", + "@open-draft/until": "^2.1.0", + "@types/cookie": "^0.6.0", + "@types/statuses": "^2.0.4", + "chalk": "^4.1.2", "graphql": "^16.8.1", - "headers-polyfill": "3.2.5", - "inquirer": "^8.2.0", + "headers-polyfill": "^4.0.2", "is-node-process": "^1.2.0", - "js-levenshtein": "^1.1.6", - "node-fetch": "^2.6.7", - "outvariant": "^1.4.0", + "outvariant": "^1.4.2", "path-to-regexp": "^6.2.0", - "strict-event-emitter": "^0.4.3", - "type-fest": "^2.19.0", - "yargs": "^17.3.1" + "strict-event-emitter": "^0.5.1", + "type-fest": "^4.9.0", + "yargs": "^17.7.2" }, "bin": { "msw": "cli/index.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mswjs" + "url": "https://github.com/sponsors/mswjs" }, "peerDependencies": { - "typescript": ">= 4.4.x <= 5.2.x" + "typescript": ">= 4.7.x" }, "peerDependenciesMeta": { "typescript": { @@ -14467,15 +11673,15 @@ } }, "node_modules/msw-storybook-addon": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/msw-storybook-addon/-/msw-storybook-addon-1.8.0.tgz", - "integrity": "sha512-dw3vZwqjixmiur0vouRSOax7wPSu9Og2Hspy9JZFHf49bZRjwDiLF0Pfn2NXEkGviYJOJiGxS1ejoTiUwoSg4A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/msw-storybook-addon/-/msw-storybook-addon-2.0.3.tgz", + "integrity": "sha512-CzHmGO32JeOPnyUnRWnB0PFTXCY1HKfHiEB/6fYoUYiFm2NYosLjzs9aBd3XJUryYEN0avJqMNh7nCRDxE5JjQ==", "dev": true, "dependencies": { "is-node-process": "^1.0.1" }, "peerDependencies": { - "msw": ">=0.35.0 <2.0.0" + "msw": "^2.0.0" } }, "node_modules/msw/node_modules/ansi-styles": { @@ -14509,33 +11715,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/msw/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/msw/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/msw/node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/msw/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -14546,15 +11725,9 @@ } }, "node_modules/msw/node_modules/path-to-regexp": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true - }, - "node_modules/msw/node_modules/strict-event-emitter": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", - "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz", + "integrity": "sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==", "dev": true }, "node_modules/msw/node_modules/supports-color": { @@ -14570,23 +11743,32 @@ } }, "node_modules/msw/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.24.0.tgz", + "integrity": "sha512-spAaHzc6qre0TlZQQ2aA/nGMe+2Z/wyGk5Z+Ru2VUfdNwT6kWO6TjevOlpebsATEG1EIQ2sOiDszud3lO5mt/Q==", "dev": true, "engines": { - "node": ">=12.20" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", "dev": true }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -14599,9 +11781,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -14648,100 +11830,53 @@ "node": ">= 0.10.5" } }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/node-dir/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/node-fetch-native": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.1.0.tgz", - "integrity": "sha512-nl5goFCig93JZ9FIV8GHT9xpNqXbxQUzkOmKIMKmncsBH9jhg7qKex8hirpymkBFmNQ114chEEG5lS4wgK2I+Q==", - "dev": true - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "node_modules/node-dir/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "node_modules/node-fetch-native": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", "dev": true }, "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true }, "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, "dependencies": { - "abbrev": "^1.0.0" + "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/normalize-path": { @@ -14774,24 +11909,166 @@ "node": ">=8" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz", + "integrity": "sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==", + "dev": true + }, + "node_modules/nypm": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.9.tgz", + "integrity": "sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==", + "dev": true, + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "execa": "^8.0.1", + "pathe": "^1.1.2", + "pkg-types": "^1.1.1", + "ufo": "^1.5.3" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/nypm/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/nypm/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/nypm/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nypm/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "dev": true, - "dependencies": { - "boolbase": "^1.0.0" + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/nwsapi": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.4.tgz", - "integrity": "sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g==", - "dev": true - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -14811,22 +12088,24 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -14845,13 +12124,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -14862,6 +12141,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ohash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", + "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", + "dev": true + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -14874,15 +12159,6 @@ "node": ">= 0.8" } }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -14908,9 +12184,9 @@ } }, "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "dependencies": { "define-lazy-prop": "^2.0.0", @@ -14925,9 +12201,9 @@ } }, "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { "deep-is": "^0.1.3", @@ -14935,7 +12211,7 @@ "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", - "word-wrap": "^1.2.3" + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -14995,24 +12271,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -15034,19 +12292,10 @@ "node": ">=8" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/outvariant": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.0.tgz", - "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", + "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", "dev": true }, "node_modules/p-limit": { @@ -15079,21 +12328,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -15103,10 +12337,10 @@ "node": ">=6" } }, - "node_modules/pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", "dev": true }, "node_modules/parent-module": { @@ -15121,24 +12355,6 @@ "node": ">=6" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/parse5": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", @@ -15160,6 +12376,12 @@ "node": ">= 0.8" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -15194,38 +12416,26 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", + "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", - "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -15243,41 +12453,24 @@ } }, "node_modules/pathe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz", - "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", "dev": true }, "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", "dev": true, "engines": { - "node": "*" - } - }, - "node_modules/peek-stream": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/peek-stream/-/peek-stream-1.1.3.tgz", - "integrity": "sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "duplexify": "^3.5.0", - "through2": "^2.0.3" + "node": ">= 14.16" } }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "dev": true - }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -15292,50 +12485,102 @@ } }, "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "find-up": "^5.0.0" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=10" + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, "node_modules/pkg-types": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz", - "integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.3.tgz", + "integrity": "sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==", "dev": true, "dependencies": { - "jsonc-parser": "^3.2.0", - "mlly": "^1.2.0", - "pathe": "^1.1.0" + "confbox": "^0.1.7", + "mlly": "^1.7.1", + "pathe": "^1.1.2" } }, "node_modules/polished": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/polished/-/polished-4.2.2.tgz", - "integrity": "sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/polished/-/polished-4.3.1.tgz", + "integrity": "sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==", "dev": true, "dependencies": { "@babel/runtime": "^7.17.8" @@ -15354,10 +12599,19 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", "funding": [ { "type": "opencollective", @@ -15373,9 +12627,9 @@ } ], "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" @@ -15418,21 +12672,27 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" }, "engines": { "node": ">= 14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" @@ -15446,29 +12706,47 @@ } } }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "postcss-selector-parser": "^6.0.11" + "postcss-selector-parser": "^6.1.1" }, "engines": { "node": ">=12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.2.14" } }, "node_modules/postcss-nested/node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -15506,9 +12784,9 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" @@ -15569,15 +12847,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -15587,21 +12856,6 @@ "node": ">= 0.6.0" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", @@ -15622,24 +12876,7 @@ }, "engines": { "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true + } }, "node_modules/proto-list": { "version": "1.2.4", @@ -15663,8 +12900,7 @@ "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "node_modules/psl": { "version": "1.9.0", @@ -15673,12 +12909,12 @@ "dev": true }, "node_modules/pug": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", - "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.3.tgz", + "integrity": "sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==", "dev": true, "dependencies": { - "pug-code-gen": "^3.0.2", + "pug-code-gen": "^3.0.3", "pug-filters": "^4.0.0", "pug-lexer": "^5.0.1", "pug-linker": "^4.0.0", @@ -15700,25 +12936,25 @@ } }, "node_modules/pug-code-gen": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", - "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.3.tgz", + "integrity": "sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==", "dev": true, "dependencies": { "constantinople": "^4.0.1", "doctypes": "^1.1.0", "js-stringify": "^1.0.2", "pug-attrs": "^3.0.0", - "pug-error": "^2.0.0", - "pug-runtime": "^3.0.0", + "pug-error": "^2.1.0", + "pug-runtime": "^3.0.1", "void-elements": "^3.1.0", "with": "^7.0.0" } }, "node_modules/pug-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", - "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.1.0.tgz", + "integrity": "sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==", "dev": true }, "node_modules/pug-filters": { @@ -15796,129 +13032,21 @@ "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", "dev": true }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/puppeteer-core": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-2.1.1.tgz", - "integrity": "sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w==", - "dev": true, - "dependencies": { - "@types/mime-types": "^2.1.0", - "debug": "^4.1.0", - "extract-zip": "^1.6.6", - "https-proxy-agent": "^4.0.0", - "mime": "^2.0.3", - "mime-types": "^2.1.25", - "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", - "rimraf": "^2.6.1", - "ws": "^6.1.0" - }, - "engines": { - "node": ">=8.16.0" - } - }, - "node_modules/puppeteer-core/node_modules/agent-base": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", - "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/puppeteer-core/node_modules/https-proxy-agent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", - "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", - "dev": true, - "dependencies": { - "agent-base": "5", - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/puppeteer-core/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/puppeteer-core/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/puppeteer-core/node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -15953,16 +13081,6 @@ } ] }, - "node_modules/ramda": { - "version": "0.29.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.29.0.tgz", - "integrity": "sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/ramda" - } - }, "node_modules/random-string": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/random-string/-/random-string-0.2.0.tgz", @@ -15981,9 +13099,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -15995,19 +13113,22 @@ "node": ">= 0.8" } }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, "engines": { - "node": ">= 0.8" + "node": ">=0.10.0" } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -16026,24 +13147,15 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-inspector": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-6.0.1.tgz", - "integrity": "sha512-cxKSeFTf7jpSSVddm66sKdolG90qURAX3g1roTeaN6x0YEbtWc8JpmFN9+yIqLNH2uEkYerWLtJZIXRIFuBKrg==", - "dev": true, - "peerDependencies": { - "react": "^16.8.4 || ^17.0.0 || ^18.0.0" + "react": "^18.3.1" } }, "node_modules/react-is": { @@ -16052,76 +13164,6 @@ "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", "dev": true }, - "node_modules/react-remove-scroll": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", - "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", - "dev": true, - "dependencies": { - "react-remove-scroll-bar": "^2.3.3", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.4.tgz", - "integrity": "sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==", - "dev": true, - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "dev": true, - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -16131,121 +13173,10 @@ "pify": "^2.3.0" } }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "dependencies": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "dependencies": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg-up/node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/read-pkg/node_modules/type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -16269,21 +13200,30 @@ } }, "node_modules/recast": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.1.tgz", - "integrity": "sha512-RokaBcoxSjXUDzz1TXSZmZsSW6ZpLmlA3GGqJ8uuTrQ9hZhEz+4Tpsc+gRvYRJ2BU4H+ZyUlg91eSGDw7bwy7g==", + "version": "0.23.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.23.9.tgz", + "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==", "dev": true, "dependencies": { - "assert": "^2.0.0", "ast-types": "^0.16.1", "esprima": "~4.0.0", "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", "tslib": "^2.0.1" }, "engines": { "node": ">= 4" } }, + "node_modules/recast/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -16304,9 +13244,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -16316,9 +13256,9 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, "node_modules/regenerator-transform": { @@ -16331,14 +13271,15 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -16347,18 +13288,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -16397,17 +13326,35 @@ "jsesc": "bin/jsesc" } }, - "node_modules/remark-external-links": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/remark-external-links/-/remark-external-links-8.0.0.tgz", - "integrity": "sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==", + "node_modules/rehype-external-links": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", + "integrity": "sha512-yp+e5N9V3C6bwBeAC4n796kc86M4gJCdlVhiMTxIrJG5UHDMh+PJANf9heqORJbt1nrCbDwIlAZKjANIaVBbvw==", + "dev": true, + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-is-element": "^3.0.0", + "is-absolute-url": "^4.0.0", + "space-separated-tokens": "^2.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-slug": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-6.0.0.tgz", + "integrity": "sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==", "dev": true, "dependencies": { - "extend": "^3.0.0", - "is-absolute-url": "^3.0.0", - "mdast-util-definitions": "^4.0.0", - "space-separated-tokens": "^1.0.0", - "unist-util-visit": "^2.0.0" + "@types/hast": "^3.0.0", + "github-slugger": "^2.0.0", + "hast-util-heading-rank": "^3.0.0", + "hast-util-to-string": "^3.0.0", + "unist-util-visit": "^5.0.0" }, "funding": { "type": "opencollective", @@ -16415,41 +13362,49 @@ } }, "node_modules/remark-gfm": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", - "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^2.0.0", - "micromark-extension-gfm": "^2.0.0", - "unified": "^10.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-slug": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/remark-slug/-/remark-slug-6.1.0.tgz", - "integrity": "sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==", + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", "dev": true, "dependencies": { - "github-slugger": "^1.0.0", - "mdast-util-to-string": "^1.0.0", - "unist-util-visit": "^2.0.0" + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, - "node_modules/remark-slug/node_modules/mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==", + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", "dev": true, + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -16494,12 +13449,12 @@ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" }, "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.11.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -16511,12 +13466,12 @@ } }, "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/restore-cursor": { @@ -16532,6 +13487,12 @@ "node": ">=8" } }, + "node_modules/restore-cursor/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -16546,6 +13507,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -16557,26 +13519,93 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/robust-predicates": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", + "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==" + }, "node_modules/rollup": { - "version": "3.27.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.27.2.tgz", - "integrity": "sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", + "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.20.0", + "@rollup/rollup-android-arm64": "4.20.0", + "@rollup/rollup-darwin-arm64": "4.20.0", + "@rollup/rollup-darwin-x64": "4.20.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", + "@rollup/rollup-linux-arm-musleabihf": "4.20.0", + "@rollup/rollup-linux-arm64-gnu": "4.20.0", + "@rollup/rollup-linux-arm64-musl": "4.20.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", + "@rollup/rollup-linux-riscv64-gnu": "4.20.0", + "@rollup/rollup-linux-s390x-gnu": "4.20.0", + "@rollup/rollup-linux-x64-gnu": "4.20.0", + "@rollup/rollup-linux-x64-musl": "4.20.0", + "@rollup/rollup-win32-arm64-msvc": "4.20.0", + "@rollup/rollup-win32-ia32-msvc": "4.20.0", + "@rollup/rollup-win32-x64-msvc": "4.20.0", "fsevents": "~2.3.2" } }, "node_modules/rollup-plugin-visualizer": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.2.tgz", - "integrity": "sha512-waHktD5mlWrYFrhOLbti4YgQCn1uR24nYsNuXxg7LkPH8KdTXVWR9DNY1WU0QqokyMixVXJS4J04HNrVTMP01A==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.12.0.tgz", + "integrity": "sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==", "dev": true, "dependencies": { "open": "^8.4.0", @@ -16591,7 +13620,7 @@ "node": ">=14" }, "peerDependencies": { - "rollup": "2.x || 3.x" + "rollup": "2.x || 3.x || 4.x" }, "peerDependenciesMeta": { "rollup": { @@ -16599,45 +13628,12 @@ } } }, - "node_modules/rollup-plugin-visualizer/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", "dev": true }, - "node_modules/run-applescript": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", - "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -16661,6 +13657,11 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -16669,48 +13670,35 @@ "tslib": "^2.1.0" } }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dev": true, - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { - "version": "1.69.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.69.0.tgz", - "integrity": "sha512-l3bbFpfTOGgQZCLU/gvm1lbsQ5mC/WnLz3djL2v4WCJBDrWm58PO+jgngcGRNnKUh6wSsdm50YaovTqskZ0xDQ==", + "version": "1.77.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", + "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -16737,9 +13725,9 @@ } }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dependencies": { "loose-envify": "^1.1.0" } @@ -16764,15 +13752,15 @@ } }, "node_modules/schema-utils/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -16854,11 +13842,36 @@ "node": ">= 0.8.0" } }, - "node_modules/set-cookie-parser": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz", - "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==", - "dev": true + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -16900,14 +13913,17 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -16920,36 +13936,15 @@ "dev": true }, "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, "engines": { - "node": ">=10" - } - }, - "node_modules/simple-update-notifier/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "node": ">=14" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/sisteransi": { @@ -16967,24 +13962,131 @@ "node": ">=8" } }, - "node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz", + "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==", + "dev": true + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dev": true, + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/storybook": { + "version": "8.2.9", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-8.2.9.tgz", + "integrity": "sha512-S7Q/Yt4A+nu1O23rg39lQvBqL2Vg+PKXbserDWUR4LFJtfmoZ2xGO8oFIhJmvvhjUBvolw1q7QDeswPq2i0sGw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.4", + "@babel/types": "^7.24.0", + "@storybook/codemod": "8.2.9", + "@storybook/core": "8.2.9", + "@types/semver": "^7.3.4", + "@yarnpkg/fslib": "2.10.3", + "@yarnpkg/libzip": "2.3.0", + "chalk": "^4.1.0", + "commander": "^6.2.1", + "cross-spawn": "^7.0.3", + "detect-indent": "^6.1.0", + "envinfo": "^7.7.3", + "execa": "^5.0.0", + "fd-package-json": "^1.2.0", + "find-up": "^5.0.0", + "fs-extra": "^11.1.0", + "giget": "^1.0.0", + "globby": "^14.0.1", + "jscodeshift": "^0.15.1", + "leven": "^3.1.0", + "ora": "^5.4.1", + "prettier": "^3.1.1", + "prompts": "^2.4.0", + "semver": "^7.3.7", + "strip-json-comments": "^3.0.1", + "tempy": "^3.1.0", + "tiny-invariant": "^1.3.1", + "ts-dedent": "^2.0.0" }, - "engines": { - "node": ">=10" + "bin": { + "getstorybook": "bin/index.cjs", + "sb": "bin/index.cjs", + "storybook": "bin/index.cjs" }, "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/storybook" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { + "node_modules/storybook/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -16999,158 +14101,114 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/storybook/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=7.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "node_modules/storybook/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", "dev": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "node_modules/storybook/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", "dev": true, "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", - "dev": true, + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "node_modules/storybook/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">=8" } }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "node_modules/storybook/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==", - "dev": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stackback": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", - "dev": true - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "node_modules/storybook/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, + "bin": { + "semver": "bin/semver.js" + }, "engines": { - "node": ">= 0.8" + "node": ">=10" } }, - "node_modules/std-env": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz", - "integrity": "sha512-Rz6yejtVyWnVjC1RFvNmYL10kgjC49EOghxWn0RFqlCHGFpQx+Xe7yW3I4ceK1SGrWIGMjD5Kbue8W/udkbMJg==", - "dev": true - }, - "node_modules/store2": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==", - "dev": true - }, - "node_modules/storybook": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-7.4.6.tgz", - "integrity": "sha512-YkFSpnR47j5zz7yElA+2axLjXN7K7TxDGJRHHlqXmG5iQ0PXzmjrj2RxMDKFz4Ybp/QjEUoJ4rx//ESEY0Nb5A==", + "node_modules/storybook/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, - "dependencies": { - "@storybook/cli": "7.4.6" - }, - "bin": { - "sb": "index.js", - "storybook": "index.js" + "engines": { + "node": ">=14.16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/strict-event-emitter": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.2.8.tgz", - "integrity": "sha512-KDf/ujU8Zud3YaLtMCcTI4xkZlZVIYxTLr+XIULexP+77EEVWixeXroLUXQXiVtH4XH2W7jr/3PT1v3zBuvc3A==", + "node_modules/storybook/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "events": "^3.3.0" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, + "node_modules/strict-event-emitter": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", + "dev": true + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -17160,38 +14218,21 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { @@ -17209,32 +14250,37 @@ "node": ">=8" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-ansi": { @@ -17304,39 +14350,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/strip-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-1.0.1.tgz", - "integrity": "sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==", - "dev": true, - "dependencies": { - "acorn": "^8.8.2" - }, - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/strip-literal/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/sucrase": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz", - "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==", + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.2", "commander": "^4.0.0", - "glob": "7.1.6", + "glob": "^10.3.10", "lines-and-columns": "^1.1.6", "mz": "^2.7.0", "pirates": "^4.0.1", @@ -17347,21 +14369,7 @@ "sucrase-node": "bin/sucrase-node" }, "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" + "node": ">=16 || 14 >=14.17" } }, "node_modules/sucrase/node_modules/commander": { @@ -17373,26 +14381,6 @@ "node": ">= 6" } }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -17423,70 +14411,26 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "node_modules/synchronous-promise": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.16.tgz", - "integrity": "sha512-qImOD23aDfnIDNqlG1NOehdB9IYsn1V9oByPjKY1nakv2MQYCEMyX033/q+aEtYCpmYK1cv2+NTmlH+ra6GA5A==", - "dev": true - }, - "node_modules/synckit": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", - "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", - "dev": true, - "dependencies": { - "@pkgr/utils": "^2.3.1", - "tslib": "^2.5.0" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts" - } - }, - "node_modules/table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "node_modules/synckit": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", "dev": true, "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://opencollective.com/unts" } }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", + "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -17494,10 +14438,10 @@ "chokidar": "^3.5.3", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.18.2", + "jiti": "^1.21.0", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -17520,22 +14464,10 @@ "node": ">=14.0.0" } }, - "node_modules/tailwindcss/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -17546,14 +14478,14 @@ } }, "node_modules/tar": { - "version": "6.1.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", - "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^4.0.0", + "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" @@ -17562,40 +14494,21 @@ "node": ">=10" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "engines": { + "node": ">=8" } }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/telejson": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/telejson/-/telejson-7.2.0.tgz", @@ -17618,18 +14531,62 @@ } }, "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-3.0.0.tgz", + "integrity": "sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=14.16" + } + }, + "node_modules/temp/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/temp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/temp/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, "node_modules/temp/node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -17639,50 +14596,35 @@ } }, "node_modules/tempy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", - "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-3.1.0.tgz", + "integrity": "sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==", "dev": true, "dependencies": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" + "is-stream": "^3.0.0", + "temp-dir": "^3.0.0", + "type-fest": "^2.12.2", + "unique-string": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "node_modules/tempy/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "dev": true, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -17710,117 +14652,49 @@ "node": ">=0.8" } }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", "dev": true }, "node_modules/tinybench": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.5.0.tgz", - "integrity": "sha512-kRwSG8Zx4tjF9ZiyH4bhaebu+EDz1BOx9hOigYHlUW4xxI/wKIUQUqo018UlU4ar6ATPBsaMrdbKZ+tmPdohFA==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true }, "node_modules/tinypool": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.7.0.tgz", - "integrity": "sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.0.tgz", + "integrity": "sha512-KIKExllK7jp3uvrNtvRBYBWBOAXSX8ZvoaD8T+7KB/QHIuoJW3Pmr60zucywjAlMb5TeXUkcs/MWeWLu0qvuAQ==", "dev": true, "engines": { - "node": ">=14.0.0" + "node": "^18.0.0 || >=20.0.0" } }, - "node_modules/tinyspy": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.1.1.tgz", - "integrity": "sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==", + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", "dev": true, "engines": { "node": ">=14.0.0" } }, - "node_modules/titleize": { + "node_modules/tinyspy": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", - "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.0.tgz", + "integrity": "sha512-q5nmENpTHgiPVd1cJDDc9cVoYN5x4vCvwT3FMilvKPKneCBZAxn2YWQjDF0UMcE9k0Cay1gBiDfTMU0g+mPMQA==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" + "node": ">=14.0.0" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, "engines": { "node": ">=4" } @@ -17837,12 +14711,6 @@ "node": ">=8.0" } }, - "node_modules/tocbot": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/tocbot/-/tocbot-4.21.1.tgz", - "integrity": "sha512-IfajhBTeg0HlMXu1f+VMbPef05QpDTsZ9X2Yn1+8npdaXsXg/+wrm9Ze1WG5OS1UDC3qJ5EQN/XOZ3gfXjPFCw==", - "dev": true - }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -17859,9 +14727,9 @@ "dev": true }, "node_modules/tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dev": true, "dependencies": { "psl": "^1.1.33", @@ -17883,15 +14751,15 @@ } }, "node_modules/tr46": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", "dev": true, "dependencies": { - "punycode": "^2.3.0" + "punycode": "^2.3.1" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/tree-kill": { @@ -17904,9 +14772,9 @@ } }, "node_modules/trough": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", - "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", "dev": true, "funding": { "type": "github", @@ -17914,12 +14782,12 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.1.tgz", - "integrity": "sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, "engines": { - "node": ">=16.13.0" + "node": ">=16" }, "peerDependencies": { "typescript": ">=4.2.0" @@ -17947,9 +14815,9 @@ "dev": true }, "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", @@ -18023,10 +14891,54 @@ } } }, + "node_modules/ts-node-dev/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/ts-node-dev/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ts-node-dev/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/ts-node-dev/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, "dependencies": { "glob": "^7.1.3" @@ -18035,33 +14947,12 @@ "rimraf": "bin.js" } }, - "node_modules/ts-node/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/ts-node/node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, "node_modules/tsconfig": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", @@ -18084,9 +14975,9 @@ } }, "node_modules/tslib": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.1.tgz", - "integrity": "sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -18121,22 +15012,13 @@ "node": ">= 0.8.0" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -18155,58 +15037,30 @@ "node": ">= 0.6" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/ufo": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.1.2.tgz", - "integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.3.tgz", - "integrity": "sha512-JmMFDME3iufZnBpyKL+uS78LRiC+mK55zWfM5f/pWBJfpOttXAqYfdDGRukYhJuyRinvPVAtUhvy7rlDybNtFg==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "dev": true, - "optional": true, "bin": { - "uglifyjs": "bin/uglifyjs" + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">=0.8.0" + "node": ">=14.17" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true + }, + "node_modules/undici-types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "dev": true }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -18248,19 +15102,31 @@ "node": ">=4" } }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", "dev": true, "dependencies": { - "@types/unist": "^2.0.0", + "@types/unist": "^3.0.0", "bail": "^2.0.0", + "devlop": "^1.0.0", "extend": "^3.0.0", - "is-buffer": "^2.0.0", "is-plain-obj": "^4.0.0", "trough": "^2.0.0", - "vfile": "^5.0.0" + "vfile": "^6.0.0" }, "funding": { "type": "opencollective", @@ -18268,34 +15134,40 @@ } }, "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", + "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", "dev": true, "dependencies": { - "crypto-random-string": "^2.0.0" + "crypto-random-string": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/unist-util-is": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", - "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", "dev": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", "dev": true, "dependencies": { - "@types/unist": "^2.0.0" + "@types/unist": "^3.0.0" }, "funding": { "type": "opencollective", @@ -18303,14 +15175,14 @@ } }, "node_modules/unist-util-visit": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", - "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" }, "funding": { "type": "opencollective", @@ -18318,13 +15190,13 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", - "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" }, "funding": { "type": "opencollective", @@ -18332,9 +15204,9 @@ } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -18350,42 +15222,24 @@ } }, "node_modules/unplugin": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.4.0.tgz", - "integrity": "sha512-5x4eIEL6WgbzqGtF9UV8VEC/ehKptPXDS6L2b0mv4FRMkJxRtjaJfOWDd6a8+kYbqsjklix7yWP0N3SUepjXcg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.12.2.tgz", + "integrity": "sha512-bEqQxeC7rxtxPZ3M5V4Djcc4lQqKPgGe3mAWZvxcSmX5jhGxll19NliaRzQSQPrk4xJZSGniK3puLWpRuZN7VQ==", "dev": true, "dependencies": { - "acorn": "^8.9.0", - "chokidar": "^3.5.3", + "acorn": "^8.12.1", + "chokidar": "^3.6.0", "webpack-sources": "^3.2.3", - "webpack-virtual-modules": "^0.5.0" - } - }, - "node_modules/unplugin/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" + "webpack-virtual-modules": "^0.6.2" }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true, - "engines": { - "node": ">=8" + "node": ">=14.0.0" } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", "dev": true, "funding": [ { @@ -18402,8 +15256,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -18431,62 +15285,6 @@ "requires-port": "^1.0.0" } }, - "node_modules/use-callback-ref": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.0.tgz", - "integrity": "sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==", - "dev": true, - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-resize-observer": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/use-resize-observer/-/use-resize-observer-9.1.0.tgz", - "integrity": "sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==", - "dev": true, - "dependencies": { - "@juggle/resize-observer": "^3.3.1" - }, - "peerDependencies": { - "react": "16.8.0 - 18", - "react-dom": "16.8.0 - 18" - } - }, - "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "dev": true, - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -18515,9 +15313,9 @@ } }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" @@ -18526,60 +15324,17 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dev": true, - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/v3-infinite-loading": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/v3-infinite-loading/-/v3-infinite-loading-1.3.1.tgz", "integrity": "sha512-Yi/STWDo+jasQSd8sBCta2u5/C75eLWdTyqkUPOcCEWYFzzw0DddYrDfvjB2IEbcvFxNiA4ljBpNLcRLVe2adA==" }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -18590,15 +15345,14 @@ } }, "node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.2.tgz", + "integrity": "sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==", "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" }, "funding": { "type": "opencollective", @@ -18606,13 +15360,13 @@ } }, "node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", "dev": true, "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" }, "funding": { "type": "opencollective", @@ -18620,32 +15374,33 @@ } }, "node_modules/vite": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", - "integrity": "sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.1.tgz", + "integrity": "sha512-1oE6yuNXssjrZdblI9AfBbHCC41nnyoVoEZxQnID6yvQZAFBzxxkqoFLtHUMkYunL8hwOLEjgTuxpkRxvba3kA==", "dev": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "esbuild": "^0.21.3", + "postcss": "^8.4.41", + "rollup": "^4.13.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -18663,6 +15418,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -18675,32 +15433,31 @@ } }, "node_modules/vite-node": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-0.34.6.tgz", - "integrity": "sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.0.5.tgz", + "integrity": "sha512-LdsW4pxj0Ot69FAoXZ1yTnA9bjGohr2yNBU7QKRxpz8ITSkhuDl6h3zS/tvgz4qrNjeRnvrWeXQ8ZF7Um4W00Q==", "dev": true, "dependencies": { "cac": "^6.7.14", - "debug": "^4.3.4", - "mlly": "^1.4.0", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0-0" + "debug": "^4.3.5", + "pathe": "^1.1.2", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0" }, "bin": { "vite-node": "vite-node.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" } }, "node_modules/vite-plugin-static-copy": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-0.17.0.tgz", - "integrity": "sha512-2HpNbHfDt8SDy393AGXh9llHkc8FJMQkI8s3T5WsH3SWLMO+f5cFIyPErl4yGKU9Uh3Vaqsd4lHZYTf042fQ2A==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.6.tgz", + "integrity": "sha512-3uSvsMwDVFZRitqoWHj0t4137Kz7UynnJeq1EZlRW7e25h2068fyIZX4ORCCOAkfp1FklGxJNVJBkBOD+PZIew==", "dev": true, "dependencies": { "chokidar": "^3.5.3", @@ -18709,66 +15466,62 @@ "picocolors": "^1.0.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" + "vite": "^5.0.0" } }, "node_modules/vitest": { - "version": "0.34.6", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.34.6.tgz", - "integrity": "sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==", - "dev": true, - "dependencies": { - "@types/chai": "^4.3.5", - "@types/chai-subset": "^1.3.3", - "@types/node": "*", - "@vitest/expect": "0.34.6", - "@vitest/runner": "0.34.6", - "@vitest/snapshot": "0.34.6", - "@vitest/spy": "0.34.6", - "@vitest/utils": "0.34.6", - "acorn": "^8.9.0", - "acorn-walk": "^8.2.0", - "cac": "^6.7.14", - "chai": "^4.3.10", - "debug": "^4.3.4", - "local-pkg": "^0.4.3", - "magic-string": "^0.30.1", - "pathe": "^1.1.1", - "picocolors": "^1.0.0", - "std-env": "^3.3.3", - "strip-literal": "^1.0.1", - "tinybench": "^2.5.0", - "tinypool": "^0.7.0", - "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0", - "vite-node": "0.34.6", - "why-is-node-running": "^2.2.2" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.0.5.tgz", + "integrity": "sha512-8GUxONfauuIdeSl5f9GTgVEpg5BTOlplET4WEDaeY2QBiN8wSm68vxN/tb5z405OwppfoCavnwXafiaYBC/xOA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.3.0", + "@vitest/expect": "2.0.5", + "@vitest/pretty-format": "^2.0.5", + "@vitest/runner": "2.0.5", + "@vitest/snapshot": "2.0.5", + "@vitest/spy": "2.0.5", + "@vitest/utils": "2.0.5", + "chai": "^5.1.1", + "debug": "^4.3.5", + "execa": "^8.0.1", + "magic-string": "^0.30.10", + "pathe": "^1.1.2", + "std-env": "^3.7.0", + "tinybench": "^2.8.0", + "tinypool": "^1.0.0", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.0.5", + "why-is-node-running": "^2.3.0" }, "bin": { "vitest": "vitest.mjs" }, "engines": { - "node": ">=v14.18.0" + "node": "^18.0.0 || >=20.0.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { "@edge-runtime/vm": "*", - "@vitest/browser": "*", - "@vitest/ui": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.0.5", + "@vitest/ui": "2.0.5", "happy-dom": "*", - "jsdom": "*", - "playwright": "*", - "safaridriver": "*", - "webdriverio": "*" + "jsdom": "*" }, "peerDependenciesMeta": { "@edge-runtime/vm": { "optional": true }, + "@types/node": { + "optional": true + }, "@vitest/browser": { "optional": true }, @@ -18780,28 +15533,129 @@ }, "jsdom": { "optional": true - }, - "playwright": { - "optional": true - }, - "safaridriver": { - "optional": true - }, - "webdriverio": { - "optional": true } } }, - "node_modules/vitest/node_modules/acorn": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", - "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "node_modules/vitest/node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" }, "engines": { - "node": ">=0.4.0" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/vitest/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/vitest/node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vitest/node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/void-elements": { @@ -18813,41 +15667,79 @@ "node": ">=0.10.0" } }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, "node_modules/vue": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", - "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.38.tgz", + "integrity": "sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==", + "dependencies": { + "@vue/compiler-dom": "3.4.38", + "@vue/compiler-sfc": "3.4.38", + "@vue/runtime-dom": "3.4.38", + "@vue/server-renderer": "3.4.38", + "@vue/shared": "3.4.38" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-component-meta": { + "version": "2.0.29", + "resolved": "https://registry.npmjs.org/vue-component-meta/-/vue-component-meta-2.0.29.tgz", + "integrity": "sha512-yIfkOnlv4esuTWA3zyUMl5g6k1BLtwuykRbBH4/bcmaxFgtVSDS4nkrNwvb4Pf30nmAghtL3/YClRKc5dvxaBA==", + "dev": true, "dependencies": { - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-sfc": "3.3.4", - "@vue/runtime-dom": "3.3.4", - "@vue/server-renderer": "3.3.4", - "@vue/shared": "3.3.4" + "@volar/typescript": "~2.4.0-alpha.18", + "@vue/language-core": "2.0.29", + "path-browserify": "^1.0.1", + "vue-component-type-helpers": "2.0.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/vue-component-type-helpers": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-1.8.4.tgz", - "integrity": "sha512-6bnLkn8O0JJyiFSIF0EfCogzeqNXpnjJ0vW/SZzNHfe6sPx30lTtTXlE5TFs2qhJlAtDFybStVNpL73cPe3OMQ==", + "version": "2.0.29", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.0.29.tgz", + "integrity": "sha512-58i+ZhUAUpwQ+9h5Hck0D+jr1qbYl4voRt5KffBx8qzELViQ4XdT/Tuo+mzq8u63teAG8K0lLaOiL5ofqW38rg==", "dev": true }, "node_modules/vue-docgen-api": { - "version": "4.69.0", - "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.69.0.tgz", - "integrity": "sha512-qblSItgCfhtxptHgrtAfYmLkPcGqGu2GmwZtZnxaJP53Ik+mABlGzkF5P5DQed6EdrCQkEMvr6/Nc3CC0UMBFA==", + "version": "4.79.2", + "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.79.2.tgz", + "integrity": "sha512-n9ENAcs+40awPZMsas7STqjkZiVlIjxIKgiJr5rSohDP0/JCrD9VtlzNojafsA1MChm/hz2h3PDtUedx3lbgfA==", "dev": true, "dependencies": { - "@babel/parser": "^7.21.4", - "@babel/types": "^7.21.4", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", "@vue/compiler-dom": "^3.2.0", "@vue/compiler-sfc": "^3.2.0", "ast-types": "^0.16.1", + "esm-resolve": "^1.0.8", "hash-sum": "^2.0.0", "lru-cache": "^8.0.3", "pug": "^3.0.2", "recast": "^0.23.1", "ts-map": "^1.0.3", "vue-inbrowser-compiler-independent-utils": "^4.69.0" + }, + "peerDependencies": { + "vue": ">=2" } }, "node_modules/vue-docgen-api/node_modules/lru-cache": { @@ -18860,9 +15752,9 @@ } }, "node_modules/vue-eslint-parser": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.3.1.tgz", - "integrity": "sha512-Clr85iD2XFZ3lJ52/ppmUDG/spxQu6+MAeHXjjyI4I1NUYZ9xmenQp4N0oaHJhrA8OOxltCVxMRfANGa70vU0g==", + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", "dev": true, "dependencies": { "debug": "^4.3.4", @@ -18883,22 +15775,10 @@ "eslint": ">=6.0.0" } }, - "node_modules/vue-eslint-parser/node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", @@ -18906,42 +15786,37 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/vue-eslint-parser/node_modules/espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "node_modules/vue-eslint-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=4.0" } }, "node_modules/vue-eslint-parser/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -18950,12 +15825,12 @@ } }, "node_modules/vue-i18n": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.5.0.tgz", - "integrity": "sha512-NiI3Ph1qMstNf7uhYh8trQBOBFLxeJgcOxBq51pCcZ28Vs18Y7BDS58r8HGDKCYgXdLUYqPDXdKatIF4bvBVZg==", + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.13.1.tgz", + "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", "dependencies": { - "@intlify/core-base": "9.5.0", - "@intlify/shared": "9.5.0", + "@intlify/core-base": "9.13.1", + "@intlify/shared": "9.13.1", "@vue/devtools-api": "^6.5.0" }, "engines": { @@ -18969,18 +15844,18 @@ } }, "node_modules/vue-inbrowser-compiler-independent-utils": { - "version": "4.69.0", - "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-independent-utils/-/vue-inbrowser-compiler-independent-utils-4.69.0.tgz", - "integrity": "sha512-z9BTi8iXqS1ZLDK2quH6mrahMsaT+UuB5InhVPqR2Ft08OJw1Wxtalr9Cp5rRHOUirq9vaklzjEfD8WJGOIpuA==", + "version": "4.71.1", + "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-independent-utils/-/vue-inbrowser-compiler-independent-utils-4.71.1.tgz", + "integrity": "sha512-K3wt3iVmNGaFEOUR4JIThQRWfqokxLfnPslD41FDZB2ajXp789+wCqJyGYlIFsvEQ2P61PInw6/ph5iiqg51gg==", "dev": true, "peerDependencies": { "vue": ">=2" } }, "node_modules/vue-loader": { - "version": "17.2.2", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.2.2.tgz", - "integrity": "sha512-aqNvKJvnz2A/6VWeJZodAo8XLoAlVwBv+2Z6dama+LHsAF+P/xijQ+OfWrxIs0wcGSJduvdzvTuATzXbNKkpiw==", + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.4.2.tgz", + "integrity": "sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -19030,24 +15905,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/vue-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/vue-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/vue-loader/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -19070,11 +15927,11 @@ } }, "node_modules/vue-router": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz", - "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.4.3.tgz", + "integrity": "sha512-sv6wmNKx2j3aqJQDMxLFzs/u/mjA9Z5LCgy6BE0f7yFWMjrPLnS/sPNn8ARY/FXw6byV18EFutn5lTO6+UsV5A==", "dependencies": { - "@vue/devtools-api": "^6.5.0" + "@vue/devtools-api": "^6.6.3" }, "funding": { "url": "https://github.com/sponsors/posva" @@ -19089,30 +15946,36 @@ "integrity": "sha512-O9Z2KlvIhJT8OxaFy04eiZE9rc1Mk/bp+70dLok68ko3Kr8AW5dU+j8avSk4GDQu94FllSr4m5ul4BpzlKOw1A==" }, "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, "dependencies": { - "xml-name-validator": "^4.0.0" + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "dev": true, - "dependencies": { - "makeerror": "1.0.12" + "engines": { + "node": ">=18" } }, + "node_modules/walk-up-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", + "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", + "dev": true + }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -19131,18 +15994,6 @@ "defaults": "^1.0.3" } }, - "node_modules/web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dev": true, - "dependencies": { - "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" - } - }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -19162,33 +16013,21 @@ } }, "node_modules/webpack-virtual-modules": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz", - "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", "dev": true }, "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "dev": true, "dependencies": { "iconv-lite": "0.6.3" }, "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, "node_modules/whatwg-mimetype": { @@ -19201,16 +16040,16 @@ } }, "node_modules/whatwg-url": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", - "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", "dev": true, "dependencies": { - "tr46": "^4.1.1", + "tr46": "^5.0.0", "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/which": { @@ -19245,32 +16084,34 @@ } }, "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", - "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -19280,9 +16121,9 @@ } }, "node_modules/why-is-node-running": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz", - "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, "dependencies": { "siginfo": "^2.0.0", @@ -19311,32 +16152,26 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -19375,57 +16210,65 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/wrap-ansi-cjs/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -19433,22 +16276,26 @@ "dev": true }, "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, "dependencies": { + "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "signal-exit": "^3.0.2" } }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -19490,25 +16337,37 @@ "node": ">=0.4" } }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yaml": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.0.tgz", + "integrity": "sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } }, "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -19523,16 +16382,7 @@ "node": ">=12" } }, - "node_modules/yargs/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { + "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", @@ -19541,14 +16391,24 @@ "node": ">=12" } }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/yn": { @@ -19572,6 +16432,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/zwitch": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", diff --git a/spring-boot-admin-server-ui/package.json b/spring-boot-admin-server-ui/package.json index 40a111eb0f4..0fb37a2e32b 100644 --- a/spring-boot-admin-server-ui/package.json +++ b/spring-boot-admin-server-ui/package.json @@ -5,7 +5,7 @@ "scripts": { "build": "vite build --emptyOutDir --sourcemap", "build:dev": "NODE_ENV=development vite build --emptyOutDir --sourcemap --mode development", - "build:watch": "NODE_ENV=development vite build --emptyOutDir --watch --mode development", + "build:watch": "NODE_ENV=development vite build --emptyOutDir --sourcemap --watch --mode development", "dev": "vite", "test": "vitest run --silent", "test:watch": "vitest", @@ -17,21 +17,22 @@ "format:fix": "prettier src/main/frontend --write" }, "dependencies": { - "@fortawesome/fontawesome-svg-core": "6.4.2", - "@fortawesome/free-brands-svg-icons": "6.4.2", - "@fortawesome/free-regular-svg-icons": "6.4.2", - "@fortawesome/free-solid-svg-icons": "6.4.2", - "@fortawesome/vue-fontawesome": "3.0.3", - "@headlessui/vue": "1.7.16", + "@fortawesome/fontawesome-svg-core": "6.6.0", + "@fortawesome/free-brands-svg-icons": "6.6.0", + "@fortawesome/free-regular-svg-icons": "6.6.0", + "@fortawesome/free-solid-svg-icons": "6.6.0", + "@fortawesome/vue-fontawesome": "3.0.8", + "@headlessui/vue": "1.7.22", "@stekoe/vue-toast-notificationcenter": "https://github.com/SteKoe/vue-toast-notificationcenter/archive/refs/tags/1.0.0-RC5.tar.gz", - "@tailwindcss/forms": "0.5.6", - "@tailwindcss/typography": "0.5.10", + "@tailwindcss/forms": "0.5.7", + "@tailwindcss/typography": "0.5.14", "ansi_up": "6.0.2", "autolinker": "4.0.0", - "axios": "0.27.2", - "chart.js": "4.4.0", + "axios": "1.7.4", + "chart.js": "4.4.3", "chartjs-adapter-moment": "1.0.1", - "classnames": "2.3.2", + "classnames": "2.5.1", + "d3": "^7.9.0", "d3-array": "3.2.4", "d3-axis": "3.0.0", "d3-brush": "3.0.0", @@ -41,71 +42,74 @@ "d3-time": "3.1.0", "event-source-polyfill": "1.0.31", "file-saver": "2.0.5", - "fuse.js": "^6.6.2", - "iso8601-duration": "2.1.1", + "fuse.js": "^7.0.0", + "iso8601-duration": "2.1.2", "lodash-es": "4.17.21", "mitt": "^3.0.0", - "moment": "2.29.4", + "moment": "2.30.1", "popper.js": "1.16.1", "pretty-bytes": "6.1.1", + "qs": "^6.13.0", "random-string": "0.2.0", - "react": "18.2.0", - "react-dom": "18.2.0", + "react": "18.3.1", + "react-dom": "18.3.1", "resize-observer-polyfill": "1.5.1", "rxjs": "7.8.1", - "uuid": "9.0.1", + "uuid": "10.0.0", "v3-infinite-loading": "1.3.1", - "vue": "3.3.4", - "vue-i18n": "9.5.0", - "vue-router": "4.2.5", + "vue": "3.4.38", + "vue-i18n": "9.13.1", + "vue-router": "4.4.3", "vue3-click-away": "1.2.4" }, "devDependencies": { - "@babel/core": "7.23.0", - "@babel/eslint-parser": "7.22.15", - "@babel/plugin-transform-runtime": "7.22.15", - "@babel/preset-env": "7.22.20", - "@babel/runtime": "7.23.1", - "@storybook/addon-actions": "7.4.6", - "@storybook/addon-essentials": "7.4.6", - "@storybook/addon-links": "7.4.6", - "@storybook/addon-mdx-gfm": "^7.0.5", - "@storybook/vue3": "7.4.6", - "@storybook/vue3-vite": "^7.0.5", - "@testing-library/jest-dom": "6.1.3", - "@testing-library/user-event": "14.5.1", - "@testing-library/vue": "7.0.0", - "@trivago/prettier-plugin-sort-imports": "^4.0.0", + "@babel/core": "7.25.2", + "@babel/eslint-parser": "7.25.1", + "@babel/plugin-transform-runtime": "7.24.7", + "@babel/preset-env": "7.25.3", + "@babel/runtime": "7.25.0", + "@storybook/addon-actions": "8.2.9", + "@storybook/addon-essentials": "8.2.9", + "@storybook/addon-links": "8.2.9", + "@storybook/addon-mdx-gfm": "^8.0.0", + "@storybook/vue3": "8.2.9", + "@storybook/vue3-vite": "^8.0.0", + "@testing-library/jest-dom": "6.4.8", + "@testing-library/user-event": "14.5.2", + "@testing-library/vue": "8.1.0", + "@trivago/prettier-plugin-sort-imports": "^4.2.0", + "@types/d3": "^7.4.3", "@types/lodash-es": "^4.17.7", "@types/testing-library__jest-dom": "^6.0.0", - "@typescript-eslint/eslint-plugin": "^6.0.0", - "@typescript-eslint/parser": "^6.0.0", - "@vitejs/plugin-vue": "4.4.0", - "@vue/eslint-config-typescript": "^12.0.0", - "@vue/test-utils": "2.4.1", - "autoprefixer": "10.4.16", + "@typescript-eslint/eslint-plugin": "^8.0.0", + "@typescript-eslint/parser": "^8.0.0", + "@vitejs/plugin-vue": "5.1.2", + "@vue/eslint-config-typescript": "^13.0.0", + "@vue/test-utils": "2.4.6", + "autoprefixer": "10.4.20", "babel-loader": "9.1.3", - "eslint": "^7.32.0", + "eslint": "^8.57.0", "eslint-config-prettier": "^9.0.0", "eslint-plugin-prettier": "^5.0.0", - "eslint-plugin-storybook": "0.6.14", + "eslint-plugin-storybook": "0.8.0", "eslint-plugin-vue": "^9.10.0", - "jsdom": "^22.0.0", - "msw": "1.3.2", - "msw-storybook-addon": "1.8.0", - "postcss": "8.4.31", - "prettier": "^3.0.0", - "rollup-plugin-visualizer": "5.9.2", + "happy-dom": "^14.12.3", + "jsdom": "^24.0.0", + "msw": "2.3.5", + "msw-storybook-addon": "2.0.3", + "postcss": "8.4.41", + "prettier": "^3.0.3", + "rollup-plugin-visualizer": "5.12.0", "sass": "^1.57.1", - "storybook": "7.4.6", - "tailwindcss": "3.3.3", + "storybook": "8.2.9", + "tailwindcss": "3.4.10", "ts-node-dev": "^2.0.0", "typescript": "^5.0.3", - "vite": "4.4.11", - "vite-plugin-static-copy": "0.17.0", - "vitest": "0.34.6", + "vite": "5.4.1", + "vite-plugin-static-copy": "1.0.6", + "vitest": "2.0.5", "vue-eslint-parser": "^9.1.0", - "vue-loader": "17.2.2" + "vue-loader": "17.4.2" }, "browserslist": [ "> 1%", @@ -113,10 +117,13 @@ "not ie <= 8" ], "engines": { - "node": ">=16", - "npm": ">=8" + "node": "20.16.0", + "npm": "10.8.2" }, "msw": { - "workerDirectory": "./public" + "workerDirectory": [ + "./src/main/frontend/public", + "src/main/frontend/public" + ] } } diff --git a/spring-boot-admin-server-ui/pom.xml b/spring-boot-admin-server-ui/pom.xml index 8c50ff5f2ba..abd33572e52 100644 --- a/spring-boot-admin-server-ui/pom.xml +++ b/spring-boot-admin-server-ui/pom.xml @@ -90,7 +90,8 @@ npm - ci --no-save --no-progress --no-audit --quiet --silent + + i --no-progress --no-audit --quiet --silent @@ -105,18 +106,57 @@ + + npm-lint + + npm + + verify + + run lint + + npm-test npm - test + verify run test + + + + maven-clean-plugin + 3.4.0 + + + auto-clean + initialize + + clean + + + true + + + node_modules + + + ./ + + package-lock.json + + + + + + + org.apache.maven.plugins maven-resources-plugin diff --git a/spring-boot-admin-server-ui/postcss.config.js b/spring-boot-admin-server-ui/postcss.config.js index 7cd277e6816..27b47b59fe4 100644 --- a/spring-boot-admin-server-ui/postcss.config.js +++ b/spring-boot-admin-server-ui/postcss.config.js @@ -1,4 +1,8 @@ // Must be JavaScript as Storybook does not work otherwise. +import autoprefixer from 'autoprefixer'; + +import tailwindcss from 'tailwindcss'; + module.exports = { - plugins: [require('tailwindcss'), require('autoprefixer')], + plugins: [tailwindcss, autoprefixer], }; diff --git a/spring-boot-admin-server-ui/src/main/frontend/components/font-awesome-icon.ts b/spring-boot-admin-server-ui/src/main/frontend/components/font-awesome-icon.ts index 09061925370..7e424d2890c 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/components/font-awesome-icon.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/components/font-awesome-icon.ts @@ -21,8 +21,10 @@ import { faStopCircle as farStopCircle } from '@fortawesome/free-regular-svg-ico import { faTimesCircle as farTimesCircle } from '@fortawesome/free-regular-svg-icons/faTimesCircle'; import { faAngleDoubleLeft, - faCogs, faExpand, - faEye, faList, + faCogs, + faExpand, + faEye, + faList, faPowerOff, faUndoAlt, } from '@fortawesome/free-solid-svg-icons'; @@ -118,5 +120,5 @@ library.add( //brands faGithub, faGitter, - faStackOverflow + faStackOverflow, ); diff --git a/spring-boot-admin-server-ui/src/main/frontend/components/sba-action-button-scoped.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/components/sba-action-button-scoped.spec.ts index bcb1dfc5dc8..a66cf459312 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/components/sba-action-button-scoped.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/components/sba-action-button-scoped.spec.ts @@ -36,10 +36,10 @@ describe('SbaActionButtonScoped', function () { it('should cal actionFn when confirmed', async () => { await userEvent.click( - await screen.findByRole('button', { name: 'Execute' }) + await screen.findByRole('button', { name: 'Execute' }), ); await userEvent.click( - await screen.findByRole('button', { name: 'Confirm' }) + await screen.findByRole('button', { name: 'Confirm' }), ); expect(actionFn).toHaveBeenCalledTimes(1); diff --git a/spring-boot-admin-server-ui/src/main/frontend/components/sba-action-button-scoped.vue b/spring-boot-admin-server-ui/src/main/frontend/components/sba-action-button-scoped.vue index 0e67d1c3c1c..846f033f659 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/components/sba-action-button-scoped.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/components/sba-action-button-scoped.vue @@ -22,6 +22,7 @@ class="!rounded-r-none relative focus:z-10" :instance-count="instanceCount" :show-info="showInfo" + @update:model-value="emitScopeChanged" /> (this.refreshStatus = status)), - finalize(() => this.resetRefreshState()) + finalize(() => this.resetRefreshState()), ) .subscribe(); }, + emitScopeChanged(scope) { + this.$emit('scopeChanged', scope); + }, }, }; diff --git a/spring-boot-admin-server-ui/src/main/frontend/components/sba-confirm-button.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/components/sba-confirm-button.spec.ts index 8a49061d212..f501b9ad4b3 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/components/sba-confirm-button.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/components/sba-confirm-button.spec.ts @@ -31,7 +31,7 @@ describe('SbaConfirmButton', function () { it('should not emit when clicked once', async () => { await userEvent.click( - await screen.findByRole('button', { name: 'Execute' }) + await screen.findByRole('button', { name: 'Execute' }), ); expect(emitted().click).toBeUndefined(); @@ -39,10 +39,10 @@ describe('SbaConfirmButton', function () { it('should emit when click confirmed', async () => { await userEvent.click( - await screen.findByRole('button', { name: 'Execute' }) + await screen.findByRole('button', { name: 'Execute' }), ); await userEvent.click( - await screen.findByRole('button', { name: 'Confirm' }) + await screen.findByRole('button', { name: 'Confirm' }), ); expect(emitted().click).toBeDefined(); diff --git a/spring-boot-admin-server-ui/src/main/frontend/components/sba-input.vue b/spring-boot-admin-server-ui/src/main/frontend/components/sba-input.vue index 15fb13d816d..3d1243f31da 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/components/sba-input.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/components/sba-input.vue @@ -53,6 +53,7 @@ :readonly="readonly" :type="type" :value="modelValue" + :aria-label="label || placeholder" class="focus:z-10 p-2 relative flex-1 block w-full rounded-none bg-opacity-40 backdrop-blur-sm" @input="handleInput" /> @@ -153,11 +154,11 @@ export default { if (this.error !== null && this.error !== undefined) { classNames.push( - 'focus:ring-red-500 focus:border-red-500 border-red-400' + 'focus:ring-red-500 focus:border-red-500 border-red-400', ); } else { classNames.push( - 'focus:ring-indigo-500 focus:border-indigo-500 border-gray-300' + 'focus:ring-indigo-500 focus:border-indigo-500 border-gray-300', ); } diff --git a/spring-boot-admin-server-ui/src/main/frontend/components/sba-nav/sba-nav-item.vue b/spring-boot-admin-server-ui/src/main/frontend/components/sba-nav/sba-nav-item.vue index 12e576c9047..925cef00293 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/components/sba-nav/sba-nav-item.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/components/sba-nav/sba-nav-item.vue @@ -1,25 +1,25 @@ + - - -
+ + +
- - + + diff --git a/spring-boot-admin-server-ui/src/main/frontend/index.ts b/spring-boot-admin-server-ui/src/main/frontend/index.ts index 1ea9b4afabe..846762f5339 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/index.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/index.ts @@ -39,7 +39,6 @@ import views from './views'; import eventBus from '@/services/bus'; import sbaShell from '@/shell'; -import VueClickAwayPlugin from "vue3-click-away"; const applicationStore = createApplicationStore(); const viewRegistry = createViewRegistry(); @@ -129,7 +128,6 @@ const app = createApp({ app.use(i18n); app.use(components); -app.use(VueClickAwayPlugin); app.use(NotificationcenterPlugin, { duration: 10_000, }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/login.css b/spring-boot-admin-server-ui/src/main/frontend/login.css index 23b7ab6b254..16ceae001dd 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/login.css +++ b/spring-boot-admin-server-ui/src/main/frontend/login.css @@ -18,23 +18,33 @@ @tailwind utilities; :root { - --bg-color-start: #71e69c; - --bg-color-stop: #09351a; + --bg-color-start: #71e69c; + --bg-color-stop: #09351a; } .bg-color-start { - transition: 0.4s ease; - stop-color: var(--bg-color-start); + transition: 0.4s ease; + stop-color: var(--bg-color-start); } .bg-color-stop { - transition: 0.4s ease; - stop-color: var(--bg-color-stop); + transition: 0.4s ease; + stop-color: var(--bg-color-stop); } - body { - font-family: BlinkMacSystemFont, -apple-system, Segoe UI, Roboto, Oxygen, - Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, Helvetica, Arial, + font-family: + BlinkMacSystemFont, + -apple-system, + Segoe UI, + Roboto, + Oxygen, + Ubuntu, + Cantarell, + Fira Sans, + Droid Sans, + Helvetica Neue, + Helvetica, + Arial, sans-serif; } diff --git a/spring-boot-admin-server-ui/src/main/frontend/login.html b/spring-boot-admin-server-ui/src/main/frontend/login.html index 068d9fd0468..666d122bf9a 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/login.html +++ b/spring-boot-admin-server-ui/src/main/frontend/login.html @@ -14,37 +14,37 @@ ~ limitations under the License. --> - - - - - - - - - + + + + + + + + + - - Spring Boot Admin - Login - - - -
-
+ + Spring Boot Admin - Login + + + +
+
- - + + diff --git a/spring-boot-admin-server-ui/src/main/frontend/login/login.vue b/spring-boot-admin-server-ui/src/main/frontend/login/login.vue index e33291eda32..e495c8ad6c7 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/login/login.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/login/login.vue @@ -22,6 +22,7 @@ autocomplete="username" name="username" type="text" + autofocus /> { + http.get('/applications', () => { return res(ctx.status(404), ctx.json(applications)); }), ]; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/browser.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/browser.ts index f43c624832f..fd3127c5bb0 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/mocks/browser.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/browser.ts @@ -1,4 +1,4 @@ -import { setupWorker } from 'msw'; +import { setupWorker } from 'msw/browser'; import auditEventsEndpoint from './instance/auditevents/index.js'; import flywayEndpoints from './instance/flyway/index.js'; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/auditevents/index.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/auditevents/index.ts index 95eafba8a23..cc8d35f4eed 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/auditevents/index.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/auditevents/index.ts @@ -1,10 +1,10 @@ -import { rest } from 'msw'; +import { HttpResponse, http } from 'msw'; import { auditeventsresponse } from '@/mocks/instance/auditevents/data'; const endpoints = [ - rest.get('/instances/:instanceId/actuator/auditevents', (req, res, ctx) => { - return res(ctx.status(200), ctx.json(auditeventsresponse)); + http.get('/instances/:instanceId/actuator/auditevents', () => { + return HttpResponse.json(auditeventsresponse); }), ]; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/dependencies/data.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/dependencies/data.ts new file mode 100644 index 00000000000..c23390041ae --- /dev/null +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/dependencies/data.ts @@ -0,0 +1,5057 @@ +export const sbomsResponse = { + ids: ['application', 'system'], +}; + +export const applicationSbomResponse = { + bomFormat: 'CycloneDX', + specVersion: '1.5', + serialNumber: 'urn:uuid:9f17e432-9d33-3d31-aee7-bbda6211a526', + version: 1, + metadata: { + timestamp: '2024-04-29T14:17:19Z', + lifecycles: [ + { + phase: 'build', + }, + ], + tools: [ + { + vendor: 'OWASP Foundation', + name: 'CycloneDX Maven plugin', + version: '2.8.0', + hashes: [ + { + alg: 'MD5', + content: '76ffec6a7ddd46b2b24517411874eb99', + }, + { + alg: 'SHA-1', + content: '5b0d5b41975b53be4799b9621b4af0cfc41d44b6', + }, + { + alg: 'SHA-256', + content: + '6852aa0f4e42a2db745bab80e384951a6a65b9215d041081d675780999027e81', + }, + { + alg: 'SHA-512', + content: + '417de20fcdcb11c9713bacbd57290d8e68037fdb4553fd31b8cb08bd760ad52dc65ea88ad4be15844ad3fd5a4d3e440d2f70326f2fe1e63ec78e059c9a883f8d', + }, + { + alg: 'SHA-384', + content: + '5eb755c6492e7a7385fa9a1e1f4517875bcb834b2df437808a37a2d6f5285df428741762305980315a63fcef1406597d', + }, + { + alg: 'SHA3-384', + content: + '0fe16a47cf7aab0b22251dafcc39939b68e8f1778093309d8d2060b51a08df445a8b8ed5a9561669faf2e55f907c76d8', + }, + { + alg: 'SHA3-256', + content: + '3e5a1eb5ab7d0797498862794709ff8eaaa071fe4cc9ec77f52db7e2f97ef487', + }, + { + alg: 'SHA3-512', + content: + '59281a3e29e76270d7f44b40b5b9f05e55f1ae3ec716d80add806f360940809e3813998ac7c5758043b8e248aed73b86e37dc506cdb4cde03c16bb617d8e5a3a', + }, + ], + }, + ], + component: { + publisher: 'codecentric AG', + group: 'de.codecentric', + name: 'spring-boot-admin-sample-servlet', + version: '3.2.4-SNAPSHOT', + description: 'Spring Boot Admin Sample Servlet', + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/de.codecentric/spring-boot-admin-sample-servlet@3.2.4-SNAPSHOT?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/codecentric/spring-boot-admin/spring-boot-admin-dependencies/spring-boot-admin-build/spring-boot-admin-samples/spring-boot-admin-sample-servlet/', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/codecentric/spring-boot-admin/spring-boot-admin-dependencies/spring-boot-admin-build/spring-boot-admin-samples/spring-boot-admin-sample-servlet', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/de.codecentric/spring-boot-admin-sample-servlet@3.2.4-SNAPSHOT?type=jar', + }, + properties: [ + { + name: 'maven.goal', + value: 'makeBom', + }, + { + name: 'maven.scopes', + value: 'compile,provided,runtime,system', + }, + ], + }, + components: [ + { + group: 'de.codecentric', + name: 'spring-boot-admin-sample-custom-ui', + version: '3.2.4-SNAPSHOT', + scope: 'required', + purl: 'pkg:maven/de.codecentric/spring-boot-admin-sample-custom-ui@3.2.4-SNAPSHOT?type=jar', + type: 'library', + 'bom-ref': + 'pkg:maven/de.codecentric/spring-boot-admin-sample-custom-ui@3.2.4-SNAPSHOT?type=jar', + }, + { + group: 'de.codecentric', + name: 'spring-boot-admin-starter-server', + version: '3.2.4-SNAPSHOT', + scope: 'required', + purl: 'pkg:maven/de.codecentric/spring-boot-admin-starter-server@3.2.4-SNAPSHOT?type=jar', + type: 'library', + 'bom-ref': + 'pkg:maven/de.codecentric/spring-boot-admin-starter-server@3.2.4-SNAPSHOT?type=jar', + }, + { + publisher: 'VMware, Inc.', + group: 'org.springframework.boot', + name: 'spring-boot-starter-security', + version: '3.3.0-RC1', + description: 'Starter for using Spring Security', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '4dbb08add7a37e1e1f8b9a32cad03125', + }, + { + alg: 'SHA-1', + content: 'a67dc8d84c8a4562ad257d906a140b35bbe69ea3', + }, + { + alg: 'SHA-256', + content: + '5142a739b5dcc1fcf0ae83cd395b35375aee5a49a0b431579ed6b8c44690a93b', + }, + { + alg: 'SHA-512', + content: + 'b3565a006dcb8edd49d77be4cfb65b94c949599e3b4be3eb3291184ac9392ba78c7c9f8fd4316e0d721b92a59d99ac785536ebc8c49419e0029cc9d6f602acdf', + }, + { + alg: 'SHA-384', + content: + 'bddaf7e20a489e635e28d5511e16bd902ff61eb37f1793bde86f016ec7c5ae18eae07c939af5c7e7edae9bb8fc68911b', + }, + { + alg: 'SHA3-384', + content: + '630b82ecb8da9c548eab50f1e8ec923eeb6d4f3a5543ed1526eab98da7ab8b993df7687fd1d78c7df62a7b5ff8bf0a73', + }, + { + alg: 'SHA3-256', + content: + '37c888764bafa9f554b4030adebc6ce342a36b9132eab3e7ffeceb97e3b04973', + }, + { + alg: 'SHA3-512', + content: + '37660fe7bebb9569d62007fc89292620aeb5b860ce5eed515b5d9e0c7aa386d96b14a258d2d064910910b8c2abcc3ad9a0682d7afca76d3b04e33f53e9840924', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.boot/spring-boot-starter-security@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-boot', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-boot/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-boot', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.boot/spring-boot-starter-security@3.3.0-RC1?type=jar', + }, + { + publisher: 'VMware, Inc.', + group: 'org.springframework.boot', + name: 'spring-boot-starter', + version: '3.3.0-RC1', + description: + 'Core starter, including auto-configuration support, logging and YAML', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'dcf654ba1433f982859b6164500f0cc8', + }, + { + alg: 'SHA-1', + content: '1fa34d1ded58f3464160bb4796164eb97c793acc', + }, + { + alg: 'SHA-256', + content: + '161cfb61381a1569f0d0bc6f5bd61c945fc1453ae68690911052315a4aeed8fe', + }, + { + alg: 'SHA-512', + content: + '8d94109934e6283ce27527c3502c78f31076047f5ac557c029f14bc6db14b0ba995ff6ca7484d4ec70d3d92e01c6ce1d7fafff5ae5b382b54ab18073755cc97d', + }, + { + alg: 'SHA-384', + content: + '0cf7e45ac5e200e21c2552e8efe15f583b5482fadacf72d1726c2e0bedc57bbe759adb754ead2a6e29a693e69d4d6458', + }, + { + alg: 'SHA3-384', + content: + '6a5de8f018765305adc03a0c659da62e8b24c44e4453848d5cfb0ce1cb7e90bc1924a64aded610815f6d42cd870b6e22', + }, + { + alg: 'SHA3-256', + content: + '5dd5e08afa4f155445dcd7c39f64e53c92aeca801d0a39e0044d19fcfcb83ba7', + }, + { + alg: 'SHA3-512', + content: + '932b5627ad1f29802a1854e78ddb35e8fbe5a41884de4943203203640a7dabdd23ace6670204496152b7c92e45441770dcee9b6be5931f9f5eee5341c9fcc5c8', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.boot/spring-boot-starter@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-boot', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-boot/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-boot', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.boot/spring-boot-starter@3.3.0-RC1?type=jar', + }, + { + publisher: 'VMware, Inc.', + group: 'org.springframework.boot', + name: 'spring-boot', + version: '3.3.0-RC1', + description: 'Spring Boot', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '6670303cfb0ff56e5ac1d42a5dc1a159', + }, + { + alg: 'SHA-1', + content: 'b861466d5af7da9954661f20f851405aa5f8f5d0', + }, + { + alg: 'SHA-256', + content: + 'c6197c0ca9cdc8bb1aa47b5194c79d41fb08b4a12db20954faca2b796e395265', + }, + { + alg: 'SHA-512', + content: + '71932836039ea36ed5c9f00a83b83718083db69806425d49258c3b4c0047d60d7f9d6c2b416cc3fc9f4974496d5bf173fb734f1fc2ca44ba5496ade3edf85a05', + }, + { + alg: 'SHA-384', + content: + '09b2a5ccea74fea8933f525c919d1294689d1f3df7bc78ef0faff1429cc94edc519b8555acfe03162b677eba17b8cbce', + }, + { + alg: 'SHA3-384', + content: + '86f7da509f3f00ff3eeba112fd2427000499b850c0bcc28bd8496fd49c5bcf7e4c8b6226e1a1e21a79b43207a06a80a8', + }, + { + alg: 'SHA3-256', + content: + '59aae76d129902824c07e70e811087b084f74bbd1b651d0cb5befb8c9ef37d61', + }, + { + alg: 'SHA3-512', + content: + 'dcbf37d6c552fd0d2dae949e603f18181b6c58ebfaf3a51da680e44da77c79d470f237b256fbc53defcc651cd6fc319d42615af6752c735427975b3fa3827de6', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.boot/spring-boot@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-boot', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-boot/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-boot', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.boot/spring-boot@3.3.0-RC1?type=jar', + }, + { + publisher: 'VMware, Inc.', + group: 'org.springframework.boot', + name: 'spring-boot-autoconfigure', + version: '3.3.0-RC1', + description: 'Spring Boot AutoConfigure', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'c57c22c83a87833977f3a9d60f538580', + }, + { + alg: 'SHA-1', + content: '8f2eac2c0527567fbe3149dcda0d86c56fcf658e', + }, + { + alg: 'SHA-256', + content: + '0c48949b7ee05da897ccb5f06180bf495372163badd4c089fbdf1b3c1a0437bd', + }, + { + alg: 'SHA-512', + content: + 'ca39d678883d7c78d32eec49df582a2c9e3ce0423e22df33b6a2e19027fd180ed4f3bb3dc814e671c5d149f11fa971e77a064a327c2d4555972c66bc787f415d', + }, + { + alg: 'SHA-384', + content: + '7394307a140b1344157a016c88d31512ab2794481020b928a62def6a1acc4429028846997d1114182d6381e15ef678d1', + }, + { + alg: 'SHA3-384', + content: + 'be85aa9dd5b4135f5ca46e744cecfd4d7754530dbdabc0baef61fe4dc02fc44eb1f658151fdffe6ba0dcba2b5dbbca3d', + }, + { + alg: 'SHA3-256', + content: + 'b65e1946b8d0d64a949ed174107973227dc00cc14d9b745b09d157472b5ceb02', + }, + { + alg: 'SHA3-512', + content: + '79d79d1026d80dcdc3b967815a39b792e183666e16e55f2a86429b913e276a82c18b4bb2308786a002a68ffb2b89c706b610399d32c5d66750af949be485fad9', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.boot/spring-boot-autoconfigure@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-boot', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-boot/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-boot', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.boot/spring-boot-autoconfigure@3.3.0-RC1?type=jar', + }, + { + publisher: 'VMware, Inc.', + group: 'org.springframework.boot', + name: 'spring-boot-starter-logging', + version: '3.3.0-RC1', + description: 'Starter for logging using Logback. Default logging starter', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'e1110a14ce2877746f805cba59913bc5', + }, + { + alg: 'SHA-1', + content: 'df66b2674eca6a51aadcaf89f8a94f7d60f1e56f', + }, + { + alg: 'SHA-256', + content: + 'fba9b83103dafe5885fd22244f33a8afbec8fe5f94f9f09c19889aaeb638cd6e', + }, + { + alg: 'SHA-512', + content: + '8880d8536b0a322373dcc4496c00f44c3257ad5008e8f886f29ee54bcce4380bb9ba43f9a0d7d610ebe4ecd3117b1fd7fca3513895f14bed48ecabd7d7514aa0', + }, + { + alg: 'SHA-384', + content: + '9429194771ea17146bb151442bf72bc3e238f382c6cb76aadfede5cfd5fbbe9f1616a6cf5676ceecb07e04373cb3f5cb', + }, + { + alg: 'SHA3-384', + content: + '4db4bb42dda7fcdafa74e3543f853b4098efde28ff9d09f706932bb94826dbcf66d2afff86b7d526b8e780a292adb193', + }, + { + alg: 'SHA3-256', + content: + '4ff08b5b2abd9ddf507b5586bda88f7b2bce600143421b7d215f506d85f72345', + }, + { + alg: 'SHA3-512', + content: + '03a275dec748ce967180e40a31e76050ccdf83826335dc1b430b7576ebf86cc2952deff8b46a276edc60d437f373dbbdca6c3789102f7be5c8a19655fd39bf56', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.boot/spring-boot-starter-logging@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-boot', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-boot/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-boot', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.boot/spring-boot-starter-logging@3.3.0-RC1?type=jar', + }, + { + publisher: 'QOS.ch', + group: 'ch.qos.logback', + name: 'logback-classic', + version: '1.5.6', + description: 'logback-classic module', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '83cff9a718cf3449f75d2bda0b9276c6', + }, + { + alg: 'SHA-1', + content: 'afc75d260d838a3bddfb8f207c2805ed7d1b34f9', + }, + { + alg: 'SHA-256', + content: + '6115c6cac5ed1d9db810d14f2f7f4dd6a9f21f0acbba8016e4daaca2ba0f5eb8', + }, + { + alg: 'SHA-512', + content: + '9e3e227c0effccfd4938558f374877cda7c08c3abf3960bfcb6c7eb2bfdbb49d163484f7120c176b1eaef56e83d7e8921d8c19394a91c52d5bdbcbef660d3ec1', + }, + { + alg: 'SHA-384', + content: + '1c311989271a0dce0bcb38177fac80721100ed472fe4ec9746e56223e44dbfdbfbeb5b9c3e6b4ab635a5ca2635066bac', + }, + { + alg: 'SHA3-384', + content: + '0951ec84907202404fdbfb8c7cf8e4ced6aaf4e6fa8850b75a3692f51403508d2150a2c510744bb007bb31350d9ad2f4', + }, + { + alg: 'SHA3-256', + content: + '9d4d9f5794f39d2e2e83c8f8bae91636bc674d7d355cc450f239dea2905000cd', + }, + { + alg: 'SHA3-512', + content: + 'a3e1e03e9f3def61d619f86ee1126fc6ffa66a9c60624bf120f9beddbb1095195fbc3fddbc488f5393aea19cd5f4bf5dc47939e2daba15b24aacae392969aa70', + }, + ], + licenses: [ + { + license: { + id: 'EPL-1.0', + }, + }, + { + license: { + name: 'GNU Lesser General Public License', + url: 'http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html', + }, + }, + ], + purl: 'pkg:maven/ch.qos.logback/logback-classic@1.5.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'http://logback.qos.ch/logback-classic', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/qos-ch/logback/logback-classic', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/ch.qos.logback/logback-classic@1.5.6?type=jar', + }, + { + publisher: 'QOS.ch', + group: 'ch.qos.logback', + name: 'logback-core', + version: '1.5.6', + description: 'logback-core module', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'd0634e717a5e885c6b7eeb1bcfac5b61', + }, + { + alg: 'SHA-1', + content: '41cbe874701200c5624c19e0ab50d1b88dfcc77d', + }, + { + alg: 'SHA-256', + content: + '898c7d120199f37e1acc8118d97ab15a4d02b0e72e27ba9f05843cb374e160c6', + }, + { + alg: 'SHA-512', + content: + '44601eea5e12b2ca4a707cb43a04d863e0c5dedaf690a4d95772de725ea4097dcf4058d6449971253487803fdb6d534f107b2c7f17c7ffca5a4811e9bac71fdf', + }, + { + alg: 'SHA-384', + content: + 'becf9e457234636944263217e9aaa883eb669f5126e02038afe1e74a8e76dc90edd49b41c5d989b30bfda55f955c42f0', + }, + { + alg: 'SHA3-384', + content: + '8569d0f5bc0bb3ed3b4d4734ae52a88927fa61975c82e2769c18c9a9191659ee91ba095d8fdae7028cfd72455a3d994f', + }, + { + alg: 'SHA3-256', + content: + 'bde00a4a3cc9ab6e6aa4e76c85be1b13cc182a3db0bbc2fb2fe9e6ac2b2af3f3', + }, + { + alg: 'SHA3-512', + content: + 'c092d071084f6b4bab96ba5863fdf1c728b81bb789cc5b5c1ca3f7245303d45f1c59be84a7d06a7590f6362ea5dfe08d52ca108a296e338917282cda63608db1', + }, + ], + licenses: [ + { + license: { + id: 'EPL-1.0', + }, + }, + { + license: { + name: 'GNU Lesser General Public License', + url: 'http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html', + }, + }, + ], + purl: 'pkg:maven/ch.qos.logback/logback-core@1.5.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'http://logback.qos.ch/logback-core', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/qos-ch/logback/logback-core', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/ch.qos.logback/logback-core@1.5.6?type=jar', + }, + { + publisher: 'The Apache Software Foundation', + group: 'org.apache.logging.log4j', + name: 'log4j-to-slf4j', + version: '2.23.1', + description: 'The Apache Log4j binding between Log4j 2 API and SLF4J.', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'd60143628bb91f9dfa0148c213388b39', + }, + { + alg: 'SHA-1', + content: '425ad1eb8a39904d2830e907a324e956fb456520', + }, + { + alg: 'SHA-256', + content: + '7937a84055156910234e3b42868f55e68ff4b7becbb6ffd10146f72f5bf54dd5', + }, + { + alg: 'SHA-512', + content: + '86c4dce96d5a929b3adbf2283f7188660831b02f9b04eee55010d132cb50f5677b7bf30c478b432fa2053eb11dbf6744351ce60271bb5e0da3a3f555ed50ad0c', + }, + { + alg: 'SHA-384', + content: + '3d1423da6781764d19ea13c447da9ec5b9bccec4603dbd710b8e4f26fc53d3051a4d3082973a6b20b5edc024f2d4b4b4', + }, + { + alg: 'SHA3-384', + content: + '9c05c76f928c4ce7b1ced6a8642257a9036c7fa66fa9655964bc7e37d98a2443da550b0b62be7d3caa357ca714b6ad3b', + }, + { + alg: 'SHA3-256', + content: + '71f4969e9e3580f190e3194adc07afec56b676a4de3294600e09570497d8c573', + }, + { + alg: 'SHA3-512', + content: + '483c0ea25d108c651dd80d0b694e13084ea78d64831dbd4435117c2d612f2c25d6fe5ee2e6cd5acafed65aab475890529e3b0201adf9d7e366d4449737dd6d3b', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + url: 'https://www.apache.org/licenses/LICENSE-2.0', + }, + }, + ], + purl: 'pkg:maven/org.apache.logging.log4j/log4j-to-slf4j@2.23.1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://logging.apache.org/log4j/2.x/log4j/log4j-to-slf4j/', + }, + { + type: 'build-system', + url: 'https://github.com/apache/logging-log4j2/actions', + }, + { + type: 'distribution', + url: 'https://logging.apache.org/logging-parent/latest/#distribution', + }, + { + type: 'distribution-intake', + url: 'https://repository.apache.org/service/local/staging/deploy/maven2', + }, + { + type: 'issue-tracker', + url: 'https://github.com/apache/logging-log4j2/issues', + }, + { + type: 'mailing-list', + url: 'https://lists.apache.org/list.html?log4j-user@logging.apache.org', + }, + { + type: 'vcs', + url: 'https://github.com/apache/logging-log4j2', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.apache.logging.log4j/log4j-to-slf4j@2.23.1?type=jar', + }, + { + publisher: 'The Apache Software Foundation', + group: 'org.apache.logging.log4j', + name: 'log4j-api', + version: '2.23.1', + description: 'The Apache Log4j API', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'bee2e2dcbeeb983bdb6b71c9c3476b6a', + }, + { + alg: 'SHA-1', + content: '9c15c29c526d9c6783049c0a77722693c66706e1', + }, + { + alg: 'SHA-256', + content: + '92ec1fd36ab3bc09de6198d2d7c0914685c0f7127ea931acc32fd2ecdd82ea89', + }, + { + alg: 'SHA-512', + content: + '2a296246b0059ff5fe5c26e2ba3f48aa99e38d7658d613fbd02f32c6d4262f93a67525e6cc4d767fa5c2ab0e39e70bb3c0d3966d38ea4f01608588c084af3162', + }, + { + alg: 'SHA-384', + content: + '3937cb646009763a94b199a0d6c0065441b9914e2b25e3d58db523874ea760276b445ff300015948d3a813217e0ee404', + }, + { + alg: 'SHA3-384', + content: + '16ea3301ca37fbede2927399209b403066621789c4f1bee531b5153f27b652458900697fb828170d541a5f3b82e77fb7', + }, + { + alg: 'SHA3-256', + content: + '0a3dfffc0f362b0a86ad0cd8b36da313c7500a8bdecb0ad7e628c2637d933548', + }, + { + alg: 'SHA3-512', + content: + '2e230994b8cb7442a2073d60f89c27703ffc78b613dec7891bbfa42e91c95ed684b387ed65df3ee48559ccc06e6877462748f7e2ef985082c8db0741feb576a8', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + url: 'https://www.apache.org/licenses/LICENSE-2.0', + }, + }, + ], + purl: 'pkg:maven/org.apache.logging.log4j/log4j-api@2.23.1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://logging.apache.org/log4j/2.x/log4j/log4j-api/', + }, + { + type: 'build-system', + url: 'https://github.com/apache/logging-log4j2/actions', + }, + { + type: 'distribution', + url: 'https://logging.apache.org/logging-parent/latest/#distribution', + }, + { + type: 'distribution-intake', + url: 'https://repository.apache.org/service/local/staging/deploy/maven2', + }, + { + type: 'issue-tracker', + url: 'https://github.com/apache/logging-log4j2/issues', + }, + { + type: 'mailing-list', + url: 'https://lists.apache.org/list.html?log4j-user@logging.apache.org', + }, + { + type: 'vcs', + url: 'https://github.com/apache/logging-log4j2', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.apache.logging.log4j/log4j-api@2.23.1?type=jar', + }, + { + publisher: 'QOS.ch', + group: 'org.slf4j', + name: 'jul-to-slf4j', + version: '2.0.13', + description: 'JUL to SLF4J bridge', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'd44cfe5a86dae2488e228cac617c6f0e', + }, + { + alg: 'SHA-1', + content: 'a3bcd9d9dd50c71ce69f06b1fd05e40fdeff6ba5', + }, + { + alg: 'SHA-256', + content: + 'fa5ed8f23df2158d0d4d5c82f85cae289d36cc3cd7b7497deff5a37b0b7d7878', + }, + { + alg: 'SHA-512', + content: + '0cdd6a11e82b740ac3b720e916f7abd9f081d2b0aec27962f3c2d0e7693640dc4be7cc055a4a0e64c34b5258db4483d79a7595411fe9c748fc914334e47a9b5c', + }, + { + alg: 'SHA-384', + content: + '4c425ac29e0f96343aa1e388cd96f2dec2ac5ea18979f5b8e744cc444ace195ce3cc43234810cfba535151255488d3e9', + }, + { + alg: 'SHA3-384', + content: + 'fba337469cb78c6764a598e6fed47dcdeeee1a04da2018c28b7108261c7331a3bd7285fafbf658823cec47377438fb24', + }, + { + alg: 'SHA3-256', + content: + '6e9d4f6c4b6c3e9ce8757b32f514759761732da3ebad187abbf5aef0b6c584cf', + }, + { + alg: 'SHA3-512', + content: + '566dff26f42114e7f145d8669b5afe92c8a93f027f8c1b02b5ac03716145e8638efc83a8f1d1739f25c024c365eab34183dda6c80a6f42d882db3c4b5c4e0220', + }, + ], + licenses: [ + { + license: { + id: 'MIT', + url: 'https://opensource.org/licenses/MIT', + }, + }, + ], + purl: 'pkg:maven/org.slf4j/jul-to-slf4j@2.0.13?type=jar', + externalReferences: [ + { + type: 'website', + url: 'http://www.slf4j.org', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/qos-ch/slf4j/slf4j-parent/jul-to-slf4j', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.slf4j/jul-to-slf4j@2.0.13?type=jar', + }, + { + publisher: 'Eclipse Foundation', + group: 'jakarta.annotation', + name: 'jakarta.annotation-api', + version: '2.1.1', + description: 'Jakarta Annotations API', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '5dac2f68e8288d0add4dc92cb161711d', + }, + { + alg: 'SHA-1', + content: '48b9bda22b091b1f48b13af03fe36db3be6e1ae3', + }, + { + alg: 'SHA-256', + content: + '5f65fdaf424eee2b55e1d882ba9bb376be93fb09b37b808be6e22e8851c909fe', + }, + { + alg: 'SHA-512', + content: + 'eabe8b855b735663684052ec4cc357cc737936fa57cebf144eb09f70b3b6c600db7fa6f1c93a4f36c5994b1b37dad2dfcec87a41448872e69552accfd7f52af6', + }, + { + alg: 'SHA-384', + content: + '798597a6b80b423844d70609c54b00d725a357031888da7e5c3efd3914d1770be69aa7135de13ddb89a4420a5550e35b', + }, + { + alg: 'SHA3-384', + content: + '9629b8ca82f61674f5573723bbb3c137060e1442062eb52fa9c90fc8f57ea7d836eb2fb765d160ec8bf300bcb6b820be', + }, + { + alg: 'SHA3-256', + content: + 'f71ffc2a2c2bd1a00dfc00c4be67dbe5f374078bd50d5b24c0b29fbcc6634ecb', + }, + { + alg: 'SHA3-512', + content: + 'aa4e29025a55878db6edb0d984bd3a0633f3af03fa69e1d26c97c87c6d29339714003c96e29ff0a977132ce9c2729d0e27e36e9e245a7488266138239bdba15e', + }, + ], + licenses: [ + { + license: { + id: 'EPL-2.0', + }, + }, + { + license: { + id: 'GPL-2.0-with-classpath-exception', + }, + }, + ], + purl: 'pkg:maven/jakarta.annotation/jakarta.annotation-api@2.1.1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://projects.eclipse.org/projects/ee4j.ca', + }, + { + type: 'distribution-intake', + url: 'https://jakarta.oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/eclipse-ee4j/common-annotations-api/issues', + }, + { + type: 'mailing-list', + url: 'https://dev.eclipse.org/mhonarc/lists/ca-dev', + }, + { + type: 'vcs', + url: 'https://github.com/eclipse-ee4j/common-annotations-api', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/jakarta.annotation/jakarta.annotation-api@2.1.1?type=jar', + }, + { + group: 'org.yaml', + name: 'snakeyaml', + version: '2.2', + description: 'YAML 1.1 parser and emitter for Java', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'd78aacf5f2de5b52f1a327470efd1ad7', + }, + { + alg: 'SHA-1', + content: '3af797a25458550a16bf89acc8e4ab2b7f2bfce0', + }, + { + alg: 'SHA-256', + content: + '1467931448a0817696ae2805b7b8b20bfb082652bf9c4efaed528930dc49389b', + }, + { + alg: 'SHA-512', + content: + '11547e75cc80bee26f532e2598bc6e4ffa802941496dc0d8ce017f1b15e01ebbb80e91ed17d1047916e32bf2fc58da532bc71a1dfe93afccc277a296d86634ba', + }, + { + alg: 'SHA-384', + content: + 'dae0cb1a7ab9ccc75413f46f18ae160e12e91dfef0c17a07ea547a365e9fb422c071aa01579f2a320f15ce6ee4c29038', + }, + { + alg: 'SHA3-384', + content: + '654b418f330fa02f1111a20c27395ec5c7f463907ae44f60057c94da04f81e815cf1c3959f005026381ef79030049694', + }, + { + alg: 'SHA3-256', + content: + '2c4deb8d79876b80b210ef72dc5de2b19607e50fbe3abf09a4324576ca0881fc', + }, + { + alg: 'SHA3-512', + content: + '0d9be5610b2bcb6bb7562ee8bcc0d68f81d3771958ce9299c5e57e8ec952c96906d711587b7f72936328c72fb41687b4f908c4de3070b78cc1f3e257cf4b715e', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.yaml/snakeyaml@2.2?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://bitbucket.org/snakeyaml/snakeyaml', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://bitbucket.org/snakeyaml/snakeyaml/issues', + }, + { + type: 'vcs', + url: 'https://bitbucket.org/snakeyaml/snakeyaml/src', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.yaml/snakeyaml@2.2?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-aop', + version: '6.1.6', + description: 'Spring AOP', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '7dd149c85f55789d005cf7ee5e1bc666', + }, + { + alg: 'SHA-1', + content: '4958f52cb9fcb3adf7e836304550de5431a9347e', + }, + { + alg: 'SHA-256', + content: + '32ec3db2653d84e5adbb4aa932c8f825d684d6f588b90a4b8674df419e2375c2', + }, + { + alg: 'SHA-512', + content: + '957dfd69a39d60ca283c2a1f6a08b5ca24d2ad8fb5ef2173b07fbdc6c3b8ee0679aea8f6780e1d426d1d97555f4de27b4c7118183fea0d38b4515207885b0770', + }, + { + alg: 'SHA-384', + content: + 'e9863cbc573cc4a4f990fe6d7b8d288ac358acda6ff4b33d88e15ec50e7910b64a1a1f7297665666ff2858edef852916', + }, + { + alg: 'SHA3-384', + content: + 'f55459c986cf14feead7c0fa71b78893e9eb810875069d5b60623f3c63f761e344e7068a4b805b52422d8a31e72e73d1', + }, + { + alg: 'SHA3-256', + content: + '922bece712b5b0617966424355a53da7fe1fff5ebd21a512e0b814e210328fd8', + }, + { + alg: 'SHA3-512', + content: + 'c626119f8af6b2cd5c914629d1d29d6d4bb5f14731e2ccb54114a92486ac41d52d8469bb17e457deedebc8ab3928765e10b69e67c42ec2d74b2e5bc4028dc355', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-aop@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.springframework/spring-aop@6.1.6?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-beans', + version: '6.1.6', + description: 'Spring Beans', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '70aeef1e6e39b2a0b6c9afa1bf81d4e8', + }, + { + alg: 'SHA-1', + content: '332d80ff134420db4ebf7614758e6a02a9bd3c41', + }, + { + alg: 'SHA-256', + content: + 'c3040d1418ef964eb78a39204e04b6685bc840bd010818200f286159be983f30', + }, + { + alg: 'SHA-512', + content: + 'c1e905c6e5bc9fa0925b14c81dd1c0c8c987b50ab4aa74de392c5fbba8cacb25f8ead28e4c01715c6719c4483f819e9338411173a11f7cad008219c9fa626f94', + }, + { + alg: 'SHA-384', + content: + 'a6a0a95420b5e3068ad656c6aa14b565b0305244af4f21029590bd6187b68c2962eb33bacbc53358f1bb4df0adee54d0', + }, + { + alg: 'SHA3-384', + content: + 'c85604e1ff89af420e618f8e4710465e82a3604d0fc930a3ce14171ab997f84bd5be4353b96fc4e14d0fb6764325a010', + }, + { + alg: 'SHA3-256', + content: + '0b8c554ab50fa0204f3d7a7b23f717b8384aafa8dfe0a421e95fd1de0080e3a4', + }, + { + alg: 'SHA3-512', + content: + '35648bafc0695efcc0c36ac7189f8b3f907a48fd7a683c9f6f77f6679b083a4531cb8dee501e468841a3cda232e68f0976e2ae9cb65f198ccde5c2028d0e56b8', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.security', + name: 'spring-security-config', + version: '6.3.0-RC1', + description: 'Spring Security', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '6ba304080954b3d8111e68de29ac5051', + }, + { + alg: 'SHA-1', + content: 'b57a66e8644efa48846b0777038ff5f4b3e311f3', + }, + { + alg: 'SHA-256', + content: + '1f345acb23cac48452b0803183026581f83828b477600d4f91c7e9422eafef23', + }, + { + alg: 'SHA-512', + content: + '17d18e20affc4e785fd4a0d126ba331142f68de719fb6290345efe1212e147ccab9ac4e64a0ebf5f3f5c2da128a633a7d5935c70915db5e8d8a1eec74692afb4', + }, + { + alg: 'SHA-384', + content: + '72f0a72e7a399bd62508ba2ee588028e8c5f2df40294d64f351dcecfc8e2450818b47eeef83b22c5dba64f20b0d0fb32', + }, + { + alg: 'SHA3-384', + content: + '3689d2ecc77e0fa6a4a5d7206fda00b56718db7d78a2f7300845390a3728b887a53eafcb7a10213e1aeec3aa150e3323', + }, + { + alg: 'SHA3-256', + content: + '0c53615a418816c5c44ec36588773ebc302aee9e3fc4ffe909cc654775ea82e7', + }, + { + alg: 'SHA3-512', + content: + '1a9002e646d8e9a0860b1da43eee6fd6f0bc34fa7adc475869009cd22d363e4e29cb215e22d9d7b3da8e611d0ef01ca264f577dbf5dd44df6712b9851c92806c', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.security/spring-security-config@6.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-security', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-security/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-security', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.security/spring-security-config@6.3.0-RC1?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.security', + name: 'spring-security-core', + version: '6.3.0-RC1', + description: 'Spring Security', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'a21081caf802eff1ae6f7df885d2c746', + }, + { + alg: 'SHA-1', + content: 'a24da460c3ad36fa03c380ba4f5a79e379c4fc88', + }, + { + alg: 'SHA-256', + content: + '7e9bd0fc450dd1e6f1b02fb7b5cff14204d3171dc86f41301b2a80208c5ac95a', + }, + { + alg: 'SHA-512', + content: + '71c8cded26e3408fb9e2552c96d9b3ac018169db3fde4d8a65132a36d7e711704cb476e32e70def34f2bd54dbc7d6cff52fb987c37a6e84d6409f512c5763cc5', + }, + { + alg: 'SHA-384', + content: + '33aab0fd0914443b9fbbcb4ac066007c1f1a6cf2cd0dbb53fc1484c76130d3b014a92726320c7c48149a12481210bcdb', + }, + { + alg: 'SHA3-384', + content: + '3265d45b944a80891195c96c07770b9fa99a4f8dbaab3ab0c39a0f1faff2bd33b2555ecf40283dbf33949e4397c89736', + }, + { + alg: 'SHA3-256', + content: + 'a836031ffb32131bb88b6abc05281525c4a8797b330abb266ed0e2587d713f2b', + }, + { + alg: 'SHA3-512', + content: + 'd05e3fe14397303c85362b16840a0973e9ae91d27fde9ecd0e042eafac104fa4784d3d71c71e403a04f19e98dce4db0d99d950c28ff1330a3a59c6eb76f5cfde', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.security/spring-security-core@6.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-security', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-security/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-security', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.security/spring-security-core@6.3.0-RC1?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.security', + name: 'spring-security-web', + version: '6.3.0-RC1', + description: 'Spring Security', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'e6bafd90bc08d472ccccc904f91f336f', + }, + { + alg: 'SHA-1', + content: '7ab833ae6faad0a6ae971c8e919ed80a8fb8bf9c', + }, + { + alg: 'SHA-256', + content: + '0d71b6a6c2fbdfcdab3b1e8d0b7e67d2313bbe807012ba6f88f8f4245d7c2e53', + }, + { + alg: 'SHA-512', + content: + '65534406625518c123fd61e4e6543aa732010ea552879a6fa39997941a2913cc58a81b5fa6bc0d2eb825198719d890960639c9079586f11e7febaa775a98efcd', + }, + { + alg: 'SHA-384', + content: + '31dd5f20a0225419cd0378d7e3a0823bdeb6ebe801a186eeb7bea82eb3f0eeb34252ac3b48ba9dafb498499d80b52762', + }, + { + alg: 'SHA3-384', + content: + '6d4398f5cea31a754bf916082df2d946d4b3db1495acbfc64c9f5a53a8653dba8d28bcdc88dbf896bf4efc4b47f3ec02', + }, + { + alg: 'SHA3-256', + content: + '09082e1b2b1238f8a8f4e6a2ce343c1fd5aaeeba3acbb97fcefb3aeb64a0e75f', + }, + { + alg: 'SHA3-512', + content: + '391534ae0377951c76099f264667655748480a9b1afcf5febbea98f786b6dffe4a88753b697bf08d4db4e49b7416278dd4e469313202985e4cf59305bc55f6c8', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.security/spring-security-web@6.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-security', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-security/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-security', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.security/spring-security-web@6.3.0-RC1?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-expression', + version: '6.1.6', + description: 'Spring Expression Language (SpEL)', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '80acfe831814a3712ae046de5baa2fe9', + }, + { + alg: 'SHA-1', + content: '9c3d7f0e17a919a4ea9f087e4e2140ad39776bc8', + }, + { + alg: 'SHA-256', + content: + '6e53929ab7abda1a43b7d81cefcc441d187eb41aab493d2f61cc6161512c2d97', + }, + { + alg: 'SHA-512', + content: + '96c4712e5673fb30c55aea7cc7a5d29027780f71b7c0db8d539d95ff7a371cbe16013f59dda4163f5ceda2d09897b5486871cdb3bb22d11fa4858aad0c5aa8b2', + }, + { + alg: 'SHA-384', + content: + 'da97153d3e4d5665240206d2d93ac2b2edef8be11fe1da0504a41345d58fe3072779922b283c28f62865453269a0b488', + }, + { + alg: 'SHA3-384', + content: + 'ea503cc1a439b0eef0dbf2e131eb3a29ce2f8414afe515211ad08fb233089c051e2a2dd1fd0dfa8ff5d6d5210ee27673', + }, + { + alg: 'SHA3-256', + content: + 'e28bb3971e4e14716bac8c0ff013d2ac3aa66feb357569e0b746d4752d82d175', + }, + { + alg: 'SHA3-512', + content: + '3de81987e28908779b9d7d5714b2c98b905bd045724452c8b84c1814d2d3f0d0ba086cca6564476db41f200182e26332e45a4b278a78fd1b545d1a02a235ca93', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-expression@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework/spring-expression@6.1.6?type=jar', + }, + { + publisher: 'VMware, Inc.', + group: 'org.springframework.boot', + name: 'spring-boot-starter-web', + version: '3.3.0-RC1', + description: + 'Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '45bcad7dddc72b1cb3f89ec71022ed39', + }, + { + alg: 'SHA-1', + content: '8be23edf4e71e1d631d8c406e08d06ad9744e7fe', + }, + { + alg: 'SHA-256', + content: + 'e589ae916b15a648f3ad157d669b8d509ad4c128832adf71c31760b46235c3aa', + }, + { + alg: 'SHA-512', + content: + '846d72082be7e8fd2062769604cae15f92b94a274b9056bd74e6303c20d5531c427148954a68bc0479e4b126e970eb03545c5acbf229bce90fda99a7cfdb9414', + }, + { + alg: 'SHA-384', + content: + 'd3ade9fdbeb94be500f41ba447f5d5854af1bd0135297fca735b8f085ae2513668da1a366e5c9e1d236bf9b0328e73fe', + }, + { + alg: 'SHA3-384', + content: + '5a03502b89c530e1399618afc2f0b6d619c7cf1a2a59d55d1148bdec518ebb3e85bb92f8bc4552a7db991083be8ac8df', + }, + { + alg: 'SHA3-256', + content: + '20570b3c35f0f5a7126d21fa4a8ddb0ec42f94834f6866ce94925d43931ee85b', + }, + { + alg: 'SHA3-512', + content: + '74ba8db1c56f0f36314ccfb5399395988450151f6b9cb4131506bcbb0038aa05445db441a96afe5c1e1131fde5e1c299d09ca55758f805bc0fa39f438d33713b', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.boot/spring-boot-starter-web@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-boot', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-boot/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-boot', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.boot/spring-boot-starter-web@3.3.0-RC1?type=jar', + }, + { + publisher: 'VMware, Inc.', + group: 'org.springframework.boot', + name: 'spring-boot-starter-json', + version: '3.3.0-RC1', + description: 'Starter for reading and writing json', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '1eda6c496208f03d0cf14805de435376', + }, + { + alg: 'SHA-1', + content: 'c063d6d99f359b1e16596dee791800d51298b27f', + }, + { + alg: 'SHA-256', + content: + '1065123cf78e26eb8c94e1cb145f045b9fc35bfd97fc2dac947fb62aecbf15e8', + }, + { + alg: 'SHA-512', + content: + 'e1019534961d270d89217180e761c86330c3f85412168ae084cdd1ae25139e6a558be89002ffd263a99ffb5ddb3074efd921f1f5755f35d6cb47cdd1ccdfebe9', + }, + { + alg: 'SHA-384', + content: + '74ceda16372f1eb59c16e3a26d0887d2493f148f0ac9601f6636354fb62def879461a72f17d5af62cc365a7d64201446', + }, + { + alg: 'SHA3-384', + content: + 'e7e34d626727b3d4cef1599d49f71e3930dfba60abb9b8b33caabc38c962f4f9f3694b759e0854769a624ce5c4654db8', + }, + { + alg: 'SHA3-256', + content: + 'ac8220d453e7752437d04bffb7b0750567e99860f1d93f2fbe8a3c50798df24e', + }, + { + alg: 'SHA3-512', + content: + 'dfecf210a3b18c555b3e6e8b2287a91c6c0c7771a430a31a72c798f8a867c5601e0eeeb8d2bec17f71ee59711c5534b41d7c6b03eda280ae311294636da8e26a', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.boot/spring-boot-starter-json@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-boot', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-boot/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-boot', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.boot/spring-boot-starter-json@3.3.0-RC1?type=jar', + }, + { + publisher: 'FasterXML', + group: 'com.fasterxml.jackson.datatype', + name: 'jackson-datatype-jdk8', + version: '2.17.0', + description: + 'Add-on module for Jackson (https://github.com/FasterXML/jackson) to support JDK 8 data types.', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '65e3b1936136e16cefbe9059c01c4505', + }, + { + alg: 'SHA-1', + content: '95519a116d909faec29da76cf6b944b4a84c2c26', + }, + { + alg: 'SHA-256', + content: + 'b090239968a0ae5a172472f4014dbd97133af9426d91bf4805a6ba5fd90d80f1', + }, + { + alg: 'SHA-512', + content: + '6d7ee0d139fd9f7c24f14cb4bf231c1d9070c785d607b9a7be2f46297985ee8a7f184f9bf0b3a150d6b4a168175352cf8479c0e411342393af6bb259fdf0ec42', + }, + { + alg: 'SHA-384', + content: + 'd734ba8f8892dd41f63a2faec072cd3b57abf6a8e461c3e04880c285fc13103b50adbade060b387659a49f8d380f4b9c', + }, + { + alg: 'SHA3-384', + content: + 'bb64b906356ef4839cd988be6de66eb7fe1f89e6e6fb1cee3f11097eab26532dbdd791cf99ebf4f9ebc6a3ff975183d7', + }, + { + alg: 'SHA3-256', + content: + '4ae3e4ad6652e7c2c363ca3d9e6c41871d31531aac7f2a4f50b8d62bff4b8b94', + }, + { + alg: 'SHA3-512', + content: + 'b368861aa6108fc6cc6138863d901d9aca49b16baebeb20db8df7e4451f971f1debae8751c4df27c83565d8e6e7dea21a9209b1c9c07a535b888bb965492ac56', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jdk8@2.17.0?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/FasterXML/jackson-modules-java8/issues', + }, + { + type: 'vcs', + url: 'http://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jdk8', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jdk8@2.17.0?type=jar', + }, + { + publisher: 'FasterXML', + group: 'com.fasterxml.jackson.datatype', + name: 'jackson-datatype-jsr310', + version: '2.17.0', + description: + 'Add-on module to support JSR-310 (Java 8 Date & Time API) data types.', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'b60f65312afa00f61e0950c3b5fbff88', + }, + { + alg: 'SHA-1', + content: '3fab507bba9d477e52ed2302dc3ddbd23cbae339', + }, + { + alg: 'SHA-256', + content: + '94ea2f224e36632c02db1e668127c3018cacb859afc15ddf6f4c585917a93396', + }, + { + alg: 'SHA-512', + content: + 'bda1467594001aa22d7d622a5dcbb27a8aea54427d6e77dd7c03fb34ec8f4051b976f92c425d047045a0a1f48e23853b81d01a6a25ab0bf9fd479c05e91b5594', + }, + { + alg: 'SHA-384', + content: + 'a94642eed5de82b126672562f03c00e8e1668b8a0df388b8f52e19cfa79e5d2665f2160737026acd1c5d1d7fb7bf2423', + }, + { + alg: 'SHA3-384', + content: + 'f6ca2b5923378c65b91e9f6b5a7c8268f1c19413cb3803355272dc63a7092ae5c453a84b7041d83423dae4fec96f11da', + }, + { + alg: 'SHA3-256', + content: + '8703a4132f8ae6f48e37eb55da1bacff6c7e098d5e75c93cf19d72080b5afad7', + }, + { + alg: 'SHA3-512', + content: + '69cc3cfccc7f130cdb67a14e2448c288cf8917e599c046fe9427176135f8e337706032dc313c06ab3ae8548f6a83ab60f6a79d9ec1bc753dc9606302f76e0aef', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jsr310@2.17.0?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/FasterXML/jackson-modules-java8/issues', + }, + { + type: 'vcs', + url: 'http://github.com/FasterXML/jackson-modules-java8/jackson-datatype-jsr310', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jsr310@2.17.0?type=jar', + }, + { + publisher: 'FasterXML', + group: 'com.fasterxml.jackson.module', + name: 'jackson-module-parameter-names', + version: '2.17.0', + description: + 'Add-on module for Jackson (https://github.com/FasterXML/jackson) to support introspection of method/constructor parameter names, without having to add explicit property name annotation.', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '9f22e80510b61baa23689159ec2293cd', + }, + { + alg: 'SHA-1', + content: '59340d6d12c15bcc465a91a4b9a2a93a920c4212', + }, + { + alg: 'SHA-256', + content: + '1fd79421bb95c74cc4c44c1ae4910e9253f255f248d34c3f9e5b2abeb2145b6a', + }, + { + alg: 'SHA-512', + content: + 'c6d6efabc8e7212ecfe5c3c77b1dd72b8bdae0aa62f08b2a6179aec1bfb56e910240933db0a2bbf62fdc5bfb54ea52b709327e1e1b472c34a1615cdf0c2a350a', + }, + { + alg: 'SHA-384', + content: + 'bb1466be83197443274697476b338f2878325651e8a6799cfd0f491ca3764713dec2b321a22f61346d256d859498792a', + }, + { + alg: 'SHA3-384', + content: + 'c39bfb70ed88a7a3f45697491fb7e4b3da7bd906008ea00f80b113bc6ebb667fc0982388c6964512bfbf85591354d207', + }, + { + alg: 'SHA3-256', + content: + 'cb3a1f00581b629b760e5af30bb0343c09c80d8eb98e409eaa31555a50782af1', + }, + { + alg: 'SHA3-512', + content: + 'd93aea5c736b4f2062e1175c203aa641443824f77923a8a8a4f65a47cb47cb1aab079c06c2f460ad85d908a51e008d1db45d3947866d401e4f20ef63a4aa1882', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/com.fasterxml.jackson.module/jackson-module-parameter-names@2.17.0?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/FasterXML/jackson-modules-java8/issues', + }, + { + type: 'vcs', + url: 'http://github.com/FasterXML/jackson-modules-java8/jackson-module-parameter-names', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/com.fasterxml.jackson.module/jackson-module-parameter-names@2.17.0?type=jar', + }, + { + publisher: 'VMware, Inc.', + group: 'org.springframework.boot', + name: 'spring-boot-starter-tomcat', + version: '3.3.0-RC1', + description: + 'Starter for using Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'aa98610a3e8b6a74c67467bbbef82875', + }, + { + alg: 'SHA-1', + content: 'cda596da92cdf96bbb042f6c7c93a6d803c3a6d9', + }, + { + alg: 'SHA-256', + content: + '7a08fb133c7ce64d845fbe3c602757fcb482bc71f90198990af7ed5f452c9a10', + }, + { + alg: 'SHA-512', + content: + '37c5ecbb41156a72db314065f3473fbc2c72a87b1d5afe114bfba446c66d64c9b9f9e8013bdc141cb1c0f1bcc5a56908620566cbed6c3650f4c18b775e8f2e5c', + }, + { + alg: 'SHA-384', + content: + '848b8eed45c458edc89dee5faa8219ecedbe5abf78be3094a0955caa013db5409c33ff14960e044c8fe2bd4d57cf2323', + }, + { + alg: 'SHA3-384', + content: + '2d05d05a755042668cff311be9391c53333695936094cb958cc01be39e767383e7f2402b12a9bc5540b49119e496ab0f', + }, + { + alg: 'SHA3-256', + content: + '2453b3c286f8e1e7a9e72c596fa80884bc5047b0a7a869ed31dab3583da54593', + }, + { + alg: 'SHA3-512', + content: + 'd746199f73100208ebfafb6094ab7a2548d5554f89cd16747b69ec200cfca9582eebfc7d93f74c1582fb8b8cd35c0aa13e2f3cc67da79c79c6e78614eae43939', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.boot/spring-boot-starter-tomcat@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-boot', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-boot/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-boot', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.boot/spring-boot-starter-tomcat@3.3.0-RC1?type=jar', + }, + { + group: 'org.apache.tomcat.embed', + name: 'tomcat-embed-core', + version: '10.1.20', + description: 'Core Tomcat implementation', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '27154be1577cf6e837e8537d359d5da1', + }, + { + alg: 'SHA-1', + content: 'ba0dc784e12086f83d8e1d5a10443b166abf5780', + }, + { + alg: 'SHA-256', + content: + 'd4b04888ede3a3232dc1798f3ae2ed7265f9b0dcf631b4bf16f50b7ed90ba361', + }, + { + alg: 'SHA-512', + content: + '2b0cf032cbe0195e7621b4e0e97766382cefb5b4185eb89ec1818823c9ced75e94a321e9451f929784734d32b2ddc93b75a9ba635d88d3d3a26a349b2921f098', + }, + { + alg: 'SHA-384', + content: + 'f64c3a561b496481ba1c26307f4b44f5f0742f954fbda9528bcd0fcb9385b86c6fb0107fceb319218a2cd842e492ffb0', + }, + { + alg: 'SHA3-384', + content: + 'ce4860079353fcbe5ba07028179ee84272118233d94a91f78a8bb5b85bf277788221d52bff0206ba778b60dd7146250e', + }, + { + alg: 'SHA3-256', + content: + '265a4f17f7c3854f907d81905780a5a3e704a96b05e7fec5b9ee4c0a2ccd2f39', + }, + { + alg: 'SHA3-512', + content: + '60e4b7f62dcc53d7fce264e2f56eae21eeb1442076b20da6a2617e84657726625e12f10223c20127509cc8a7ecd95da338989e530cb09e315c8cd7846006a23d', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-core@10.1.20?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://tomcat.apache.org/', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-core@10.1.20?type=jar', + }, + { + group: 'org.apache.tomcat.embed', + name: 'tomcat-embed-el', + version: '10.1.20', + description: 'Core Tomcat implementation', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '818fdd8c396fedf7117842cd10169d23', + }, + { + alg: 'SHA-1', + content: 'cc1a42b8228699e92c8eba0187eccf54bf892802', + }, + { + alg: 'SHA-256', + content: + 'cac3dd6fa016dd85f5751438274c2f35955ce3024fec59d6d2fb0fe7c847c2d2', + }, + { + alg: 'SHA-512', + content: + 'd17c25d7884a9286843eb809dbff11212dea47946f57d41eae48af2c89f20c21426680b1ba962e2260a0e5fbd5dc6543ff4d90df574a1be12789f5a42eb2ac96', + }, + { + alg: 'SHA-384', + content: + '20f108b7e2fa1d03df021578cbaefb7f41dadd91cbc2a4c8c0f9ab149fa89e040bc7242c46bf6528d9fe119bce979273', + }, + { + alg: 'SHA3-384', + content: + '8824efde0b5c6f5c619f2e96f1c4b2e37975d05f77bbc9ea51389f5be31869257251d098b60c26ddf5099e5c02762a6a', + }, + { + alg: 'SHA3-256', + content: + '8b9caed961e5b913bad0bb6b73c98bd8b24670eaa1fa9915eb79c5b57686f8a2', + }, + { + alg: 'SHA3-512', + content: + 'e444662720754ad71ac02b03a6e943985fa6ee671c2e9bb5042e465fd03f479860a791994af3d195838f66db9859fae1319910a3e8969d59b862bcd94567bb12', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-el@10.1.20?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://tomcat.apache.org/', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-el@10.1.20?type=jar', + }, + { + group: 'org.apache.tomcat.embed', + name: 'tomcat-embed-websocket', + version: '10.1.20', + description: 'Core Tomcat implementation', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'fca3c1e1675701e2dfb01f4e3b8bd2c3', + }, + { + alg: 'SHA-1', + content: '21502adffaf9e6e4bc2b63a557e348d7f6c0faf7', + }, + { + alg: 'SHA-256', + content: + 'e2ec1b5f17c8ae01dcf9b487221f50217c9a03293c0fa98eecdcecd702b4617a', + }, + { + alg: 'SHA-512', + content: + 'a9bd9b831058a46faa808e6aa5625a4b3a43c287de5d7be96b831f57f2cfa08dbca357b1a3edf54f94555e2d9e526ae69dcb172c1cb5fd713c67f50230ee5f03', + }, + { + alg: 'SHA-384', + content: + '7eb531e48659fe2c79a27087fb62636946c1b06f2996f146791c2d7160e94735da031112c6b76e536ecf4e47c06a74a2', + }, + { + alg: 'SHA3-384', + content: + '9b62ab366557ac14e52d31dcb81d242ec7c577c9db3ca5203718784d11cea74604be66b8ae88e69ff4927d3504695d82', + }, + { + alg: 'SHA3-256', + content: + '186766a966f4f58833760027095108ba435094664417d3ea93e77e11bbfa753a', + }, + { + alg: 'SHA3-512', + content: + '0cc6608af58570bbbe8f86b9a24a5a2c1eb1f7953a8e96ed0389f24b4c81327e5e3973c39d95032d3b36fc8b10ea9ac032117b7a5a1fabd97dcc9c4a7ab9e784', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-websocket@10.1.20?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://tomcat.apache.org/', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-websocket@10.1.20?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-web', + version: '6.1.6', + description: 'Spring Web', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'bea30302bcb6ef493a8123e4a40ae6a2', + }, + { + alg: 'SHA-1', + content: '49a32e3497fe39550da3b280bda5d9933ae2d51d', + }, + { + alg: 'SHA-256', + content: + '0f33f5530ef848063958b4b437e3df3119c04a92aea58f9e37fc46948cbbde8e', + }, + { + alg: 'SHA-512', + content: + '7dcd359d76d3d924305130f9cb9f0758f9a7b5574fa737cccd44629bb6bb946bebec3a9323d6a84b4ca4bb5083ce1f99bd7ba78682f8751ad4185d32cda604c2', + }, + { + alg: 'SHA-384', + content: + '549fef67d6afd82c177548429390d959986064c051103edc063d691e10ff663d5743fab4fd1cfdeaf203cb925acf2c3a', + }, + { + alg: 'SHA3-384', + content: + 'aaf3913b5df31048b841c305b29ec6be978c615846f36eaa4f5e8e278c4af6db96c7e441c7eeb9828c3728b40e5fe5e7', + }, + { + alg: 'SHA3-256', + content: + '387f0d730eff538a56c7e0da1c75e512e888f73a1373c91e24ab5019ee969902', + }, + { + alg: 'SHA3-512', + content: + '01856c9595cdc7aa2501f82f7482a710aad3050098114e185c2a05a7fcdc2a06a6ca932540ae0a4ff84c084a621b913b50dd29eb894376707554134be9cacdff', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-web@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.springframework/spring-web@6.1.6?type=jar', + }, + { + group: 'io.micrometer', + name: 'micrometer-observation', + version: '1.13.0-RC1', + description: 'Module containing Observation related code', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '465af4c7b39389b4b64ee821c58391c4', + }, + { + alg: 'SHA-1', + content: 'a9977cbdfad0d4271377c197e4273260e7d05200', + }, + { + alg: 'SHA-256', + content: + '30cf97a63e36e1016e6e482ecf7569abf0711f34991e30c8a6180b7c27961890', + }, + { + alg: 'SHA-512', + content: + 'ebbca3cfe52d16124a079d95db429e3a82fe5ae7d0b09380db1d47fdec2207848ac4192afb06852e13d08cf042b10e2ab2da179eb0f3b0e382e32db3b5487bbc', + }, + { + alg: 'SHA-384', + content: + '1c06ea65a6e4e7fa4226db67817769aa347be244d268941351b1972dd7e92efa3b9d78f357a06e8a7f940fb59cbab34c', + }, + { + alg: 'SHA3-384', + content: + '7aad6d20027ff90e9d02e1840387a72716e7ee1264a08a0cfe95bd6ea4da038d49577821b1823cd2e26145330a37c2df', + }, + { + alg: 'SHA3-256', + content: + 'db7a863b261f3b4eed015bcde2989acd4ea71de29e0ace7049e1de43a0c9ffad', + }, + { + alg: 'SHA3-512', + content: + '49aeec650a29421aeffb7233f1da579b9cb35d362130a52f19366cbdbb790ba8edf9309b4bf508bd96d69caa9ae094a7eb9c5a934607b437b73c7635188b6d81', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/io.micrometer/micrometer-observation@1.13.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/micrometer-metrics/micrometer', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/io.micrometer/micrometer-observation@1.13.0-RC1?type=jar', + }, + { + group: 'io.micrometer', + name: 'micrometer-commons', + version: '1.13.0-RC1', + description: 'Module containing common code', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'e4d7efe7ad5ffd085e174a976307c86f', + }, + { + alg: 'SHA-1', + content: '63f08fc273b44773c417014a8f1897502137bcbe', + }, + { + alg: 'SHA-256', + content: + '3cfe50d4f7cb3d223def27f83397d879ed66214a40fadb3d1da1970faf083e16', + }, + { + alg: 'SHA-512', + content: + 'b011d2ed89193195554bf08199c5f06cb74207c1be3916cc2783050ef259710049fc571720f113439fd26f00a648ebf3ce70114c21e6a97422daef0e33981777', + }, + { + alg: 'SHA-384', + content: + '7987407064defaf0218c13217fd2d4573161e25fc5b2dee1f1d020dd15c34c82eddebb533ca45a91c53cb3fa0c39d9e2', + }, + { + alg: 'SHA3-384', + content: + 'b66eda2bcf16c13c3d7a54975e0dccbb9c27bf891b170db953e1229db145753fc9a63222fce7abdfab3540b684c56198', + }, + { + alg: 'SHA3-256', + content: + 'e5fe43477ea8e5b35feca18e3c52337f6bba9439af00bc055fe75201c4491275', + }, + { + alg: 'SHA3-512', + content: + '881fc90acd90b72db2d8cd6fe13ac0d8018e8450d739178a58c56c923fc74430ff7baad68e3dcea2b72563e00d0f350315f3e52202b876fc9438b3c8b20f648e', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/io.micrometer/micrometer-commons@1.13.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/micrometer-metrics/micrometer', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/io.micrometer/micrometer-commons@1.13.0-RC1?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-webmvc', + version: '6.1.6', + description: 'Spring Web MVC', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '9a174b724dac50617689536e658be1e4', + }, + { + alg: 'SHA-1', + content: 'ef1f76db6d94bac428839cb91fa59235c8356e56', + }, + { + alg: 'SHA-256', + content: + '22f21b895c1d85d54d2357498b7aa2ea4e0e05646a360b98a1b67515f17666a9', + }, + { + alg: 'SHA-512', + content: + 'f5dad19b989c885241365657a20ab68c1ccef9a827d28f0594dc0e7502cb1a8f52673d68c85e9e241ca5d349ca853606033fc6ae68a37a848d53be154c20960f', + }, + { + alg: 'SHA-384', + content: + '7ab7a42380d3635158a20bea9702f4f6c32259a95611627956638fd220a163cbc8234dd1e7d2a9c6c61cd9897594cd0f', + }, + { + alg: 'SHA3-384', + content: + 'f924555166988fb9c980bfffea0b7b3c1fc55b309aa2de8492302eae281632de76c616e35e5cd6e3b7d029220aa1b896', + }, + { + alg: 'SHA3-256', + content: + '5fd7c65d3a4a7476af53d09e8948d9ffbd64bdc4684ced7b1aba62031caa1a46', + }, + { + alg: 'SHA3-512', + content: + 'dd705a6dfa4ad993fa4734da16522c9e5eb590ec210cdb14df179026193e631afd38ced4b122803441e5bb483fcb238dd316f45d4ac81f20b042ab700003c7da', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-webmvc@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.springframework/spring-webmvc@6.1.6?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.cloud', + name: 'spring-cloud-starter', + version: '4.1.2', + description: 'Spring Cloud Starter', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '61f6ed7c42e186cd32941cb34e886eac', + }, + { + alg: 'SHA-1', + content: '757a6f0ecdb191fb04c0aed2055e91f50f89231d', + }, + { + alg: 'SHA-256', + content: + '4d154b87d2601eceefd7eddfce08092c3e6c7cdf8ecef49809d56f14aaae7686', + }, + { + alg: 'SHA-512', + content: + '0f618660887c0da46552ff99ff48a80609d6ec2df03c9a9db3c28a85c65eabe020bc810f6753e3f0c036a13975746905e4684250b48dddaa08e3ea039e219e56', + }, + { + alg: 'SHA-384', + content: + 'a17cb39994d1bee8f0e58feb3f451c71640991f8946decb018b22dd0ba9371e82d4828fc1a0fcd85fc96e6f60b86bf6e', + }, + { + alg: 'SHA3-384', + content: + '6ff22a32d93e94f994f7da8aaa6db6eb06bc5f468ce6b1b8f8783435e34b86d6960e06ea69fb774f9057cf98544be0a1', + }, + { + alg: 'SHA3-256', + content: + '5b01491c4ce024e79378fe7c6f7be0dbb81128a2d2e2083bfedd330a8fab9e6f', + }, + { + alg: 'SHA3-512', + content: + '7e71ec57c00b33e0934c4f40c23434a5a3b0ac4571c796cb441aa04b51c6267cb8a4096d8932466e7b6556c359dd4a5cca3abdaaffe4bbfd7424dd9b2bcc2557', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.cloud/spring-cloud-starter@4.1.2?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://projects.spring.io/spring-cloud', + }, + { + type: 'distribution', + url: 'https://github.com/spring-cloud', + }, + { + type: 'distribution-intake', + url: 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/spring-cloud/spring-cloud-commons/spring-cloud-starter', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.cloud/spring-cloud-starter@4.1.2?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.cloud', + name: 'spring-cloud-context', + version: '4.1.2', + description: 'Spring Cloud Context', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '791fc874f57106f112882318c640db8c', + }, + { + alg: 'SHA-1', + content: '069d9edfe8c4b4037653d28b29f3184afc573603', + }, + { + alg: 'SHA-256', + content: + 'c8594e855931216df95433735750b7a229bc1d52f60299041b38f9998f57b06c', + }, + { + alg: 'SHA-512', + content: + '5f234a5a762287e64c951269a37aca9c1cb5dea90c5d0cd84b0e49beb5d8ad87fd83480f854371ab136195354f953dc4eb6646da4186f17e54ceec58fbb1e07a', + }, + { + alg: 'SHA-384', + content: + 'd4b15bf701af1a7614c433aa792f9945541eb6089fef2933b23271867bbaca479396e1643a08ea4b37c332dda98f9354', + }, + { + alg: 'SHA3-384', + content: + '6bcda9d7275df6d7fdbf7c2aada404b13696bfa3430d98e9dc61ae2700691cd89f727a48d5a121fc607819425df86d9b', + }, + { + alg: 'SHA3-256', + content: + '00fcba56a744c1ded7a5e67caae7d8ef02af961fb4da0b8ca1b2f6e91af7a169', + }, + { + alg: 'SHA3-512', + content: + '32fb2b12b806c016e2a52b04ea207fe6310f54be28cfd9e0b1f608cccf78ae0bea2baf1995b7632d322c8e89aa134d9b2d9f99a7729f68c8a755e09f16d3b8a2', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.cloud/spring-cloud-context@4.1.2?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://projects.spring.io/spring-cloud/spring-cloud-context/', + }, + { + type: 'distribution', + url: 'https://github.com/spring-cloud', + }, + { + type: 'distribution-intake', + url: 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/spring-cloud/spring-cloud-commons/spring-cloud-context', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.cloud/spring-cloud-context@4.1.2?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.security', + name: 'spring-security-crypto', + version: '6.3.0-RC1', + description: 'Spring Security', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '313c83d23c769416f746767f03484b3e', + }, + { + alg: 'SHA-1', + content: '13b842fc45bf78c54f42151774789f63a4c7395f', + }, + { + alg: 'SHA-256', + content: + '4961c7f1da2c362444a9a047bd4d26513f5b9d90b623cc9e6d9c5a95052e6ded', + }, + { + alg: 'SHA-512', + content: + 'ed03b0027d869f4aa0381f01c5826a9385500ee081b91a844b7b72e80e83bf5a4106327a348f6809c005bec578c7dbe1ba22e29c6320dc0896d08547b9c42b3b', + }, + { + alg: 'SHA-384', + content: + '6008c6d0a0bb6ac403484d01ea7b99c88d437c8f3033d7caedfe9e63eca8ffc204ca0813c9e03e7fa5c1317bc4fed979', + }, + { + alg: 'SHA3-384', + content: + 'c8d8dc5a5097bc9d9a301eeabdbf54c73640e7e4d2c390257c1eeb0aace8793f71ef4c6cc715590f55dc745f322af61d', + }, + { + alg: 'SHA3-256', + content: + '1ba8a3ca028e574f4ae1455c05c5b12401ae129dcce8d2770736c9f0091d08d3', + }, + { + alg: 'SHA3-512', + content: + '019d9a59c2e0bd995367417662210e061c6f5540859ae32fdcd5602ff334b446afb7b71d537302577500182a912130c600657c3bebf1c313ad8b795ef05b3f98', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.security/spring-security-crypto@6.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-security', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-security/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-security', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.security/spring-security-crypto@6.3.0-RC1?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.cloud', + name: 'spring-cloud-commons', + version: '4.1.2', + description: 'Spring Cloud Commons', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'e8b1acf9de6507b9f6900dfe6ee6a137', + }, + { + alg: 'SHA-1', + content: '84377482af72a3ef008b6c981e77897a04ae20aa', + }, + { + alg: 'SHA-256', + content: + 'e4e1e4d511422b9d79cb26cb7597fbee0a2d25e28a34527fc7a24f5e7900f084', + }, + { + alg: 'SHA-512', + content: + 'edf6ee48a22e532ceeff37e9e7536dca0f0fd30dd136c844fa39308929c9cb87a66259c5fe86d89c5e91bbdbcd5c7d7b8d23e0dae12510fa040363d3e1f97810', + }, + { + alg: 'SHA-384', + content: + '8674cd5c6931066ec77972f0176fb1b16be8a3607092286fd0f1183ea11abdead5d80ef31666a07679e042d2fdf1ba15', + }, + { + alg: 'SHA3-384', + content: + 'f60ce002a0d45e08b87854c95ccd67b1c4e6d7297da5f7f28072b903f73038bb24c0a06c6012002e4a8fc5b81ce54a51', + }, + { + alg: 'SHA3-256', + content: + 'ef84cc527220b23fea91cce6b1c6619a0d8d1d89a65bf5f6fd453cb408e64e39', + }, + { + alg: 'SHA3-512', + content: + 'd1fe7229c4a75eccc49ea12ee61e7f5105949f26aa8604ddfda8549b2ca2f4b0ec034f54fc7051ff705c15f324ca7f10016d4514fd0fac32067f334be472efa7', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.cloud/spring-cloud-commons@4.1.2?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://projects.spring.io/spring-cloud/spring-cloud-commons/', + }, + { + type: 'distribution', + url: 'https://github.com/spring-cloud', + }, + { + type: 'distribution-intake', + url: 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/spring-cloud/spring-cloud-commons/spring-cloud-commons', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.cloud/spring-cloud-commons@4.1.2?type=jar', + }, + { + publisher: 'SpringSource', + group: 'org.springframework.security', + name: 'spring-security-rsa', + version: '1.1.2', + description: + 'Spring Security RSA is a small utility library for RSA ciphers. It belongs to the family of Spring Security crypto libraries that handle encoding and decoding text as a general, useful thing to be able to do.', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '44755711c5e1d2bd12ea7bd669aff3a5', + }, + { + alg: 'SHA-1', + content: 'ca388d615a60199186ec248ac2a9806a76db4014', + }, + { + alg: 'SHA-256', + content: + '6483d1ece7049e58c85b2904c1030d653840516e7b80bb4d4c00dbbb95a2c564', + }, + { + alg: 'SHA-512', + content: + 'b204ac9aac553d1243889305d600a6ee79737e482e7c8b51833183a555a03c37c1631635a39b4ab442a74097881b9d7f1618517dce1d9a99318b2699cf16047b', + }, + { + alg: 'SHA-384', + content: + 'f7be923a5b035df4f15caa1e8a9fa7dee58bbb14a9c93f348349b0c798ea9c0f907bde5654a9de5b84ff6afa9c355d0f', + }, + { + alg: 'SHA3-384', + content: + 'cd9271f4c75cb2c9da22cf4322205fab4dba6f17e114dba7f2b4d7cb53545b5e8ca2f38db8a378d4b0107fc573ebd1d2', + }, + { + alg: 'SHA3-256', + content: + '830f5c790d73c1390b1ab2f64a453e44a5ad20217aae0ed3b2f9c23cc8209463', + }, + { + alg: 'SHA3-512', + content: + '2d1c4292f43052e08a0783dc1f9b723cfbc56662f67da5fba38f9b579aab60ba6ce7a871e19c3aa732cd28135e22be20c90c251aedb2b1cbaca3be2ec47ed684', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.security/spring-security-rsa@1.1.2?type=jar', + externalReferences: [ + { + type: 'website', + url: 'http://github.com/spring-projects/spring-security-oauth', + }, + { + type: 'distribution-intake', + url: 'https://repo.spring.io/libs-release-local', + }, + { + type: 'vcs', + url: 'http://github.com/spring-projects/spring-security-rsa', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.security/spring-security-rsa@1.1.2?type=jar', + }, + { + group: 'org.bouncycastle', + name: 'bcprov-jdk18on', + version: '1.77', + description: + 'The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms. This jar contains JCE provider and lightweight API for the Bouncy Castle Cryptography APIs for JDK 1.8 and up.', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'ca01387064e08db12e1345b474521ff1', + }, + { + alg: 'SHA-1', + content: '2cc971b6c20949c1ff98d1a4bc741ee848a09523', + }, + { + alg: 'SHA-256', + content: + 'dabb98c24d72c9b9f585633d1df9c5cd58d9ad373d0cd681367e6a603a495d58', + }, + { + alg: 'SHA-512', + content: + '56c359f1370131f91eaeae3ec1d44884358f4296defd8d7516c7b81b9b66158454a667eb1c859d8ad919faee074ae3ecb4ceba2a39a3dd799bef9ada2d8c3da3', + }, + { + alg: 'SHA-384', + content: + '2951d9bb941e960287cc4a8947a0239ccfb9bd5058002bd5b9fe045b0bb22e4b23f31357f65211c191384cedf3ef3555', + }, + { + alg: 'SHA3-384', + content: + 'b02af7de4704cf8f93fcd876055595bd9d117afd5eecf0fa883c43e30a285cbbd71473dd9197d6bb41f2b7702bc2620f', + }, + { + alg: 'SHA3-256', + content: + '6e69119cc95e642da12dcb0043589137bc7b36ba11ff3299598aaa510b8f0c03', + }, + { + alg: 'SHA3-512', + content: + 'da87498233675c659ed554261a641aeb2eecc83df76864f199fee9d5c63564c2fe9465baf86d9ac9e409bba74a4de1e7197eda8736852f4f4a729301ea8c9233', + }, + ], + licenses: [ + { + license: { + name: 'Bouncy Castle Licence', + url: 'https://www.bouncycastle.org/licence.html', + }, + }, + ], + purl: 'pkg:maven/org.bouncycastle/bcprov-jdk18on@1.77?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://www.bouncycastle.org/java.html', + }, + { + type: 'issue-tracker', + url: 'https://github.com/bcgit/bc-java/issues', + }, + { + type: 'vcs', + url: 'https://github.com/bcgit/bc-java', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.bouncycastle/bcprov-jdk18on@1.77?type=jar', + }, + { + publisher: 'VMware, Inc.', + group: 'org.springframework.boot', + name: 'spring-boot-starter-mail', + version: '3.3.0-RC1', + description: + "Starter for using Java Mail and Spring Framework's email sending support", + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '408a1076991aedc862f183cf7cd072ec', + }, + { + alg: 'SHA-1', + content: 'b93d26b0a94995568fdf7a81616d8cf6238f7a76', + }, + { + alg: 'SHA-256', + content: + '77698db1dafe474e9fc430f6f8532bf80ae7d74f6b8d3d26a28f112875f3dd88', + }, + { + alg: 'SHA-512', + content: + '521352975f69713d274e94d8adf7e327a48c48047243839e31b5a5767f9a67cb7f725e00dc4b390732bcf82f8f0470a0051e431563046cc9f861e8ffc94e6808', + }, + { + alg: 'SHA-384', + content: + '511c84f78c10532dfe1ed1fbfc2ec7fd4e263fcd349e6d4c37d67b16cf811ca25192b30c4cef2bad5f4935cc0f0bff3e', + }, + { + alg: 'SHA3-384', + content: + 'c5e2c1b5a331d1a1032b6674fd76d86e7de43e2611c40ba1bb7c1cf668439725216b553d51d7467c8ac6899bf44af875', + }, + { + alg: 'SHA3-256', + content: + '7ceb912921ce9f446be9eb0ac542a253690570dbce25fecc8ad85afb445faf96', + }, + { + alg: 'SHA3-512', + content: + '8fc7aa1eddeacbc592018db332c3be52ecfc13bb793f930903e009197082ce4dd4ae2546ad9a3597d50552d28aa23b766aa837f684afe9b02208908967ce5f8f', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.boot/spring-boot-starter-mail@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-boot', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-boot/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-boot', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.boot/spring-boot-starter-mail@3.3.0-RC1?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-context-support', + version: '6.1.6', + description: 'Spring Context Support', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '8d5862cfaec6d2d9b6292992317859cb', + }, + { + alg: 'SHA-1', + content: '7cc404d7f0c6e1b1ecfa30080fe194b52867d6b2', + }, + { + alg: 'SHA-256', + content: + '0f62f0fef682b9ca10e83a292d01e934f0cb38207b07521bcb57e71050523fef', + }, + { + alg: 'SHA-512', + content: + '82f8fe4eb3bd776c0ea866eb5b11a3b5a1fbbc83348abe6d7c22fb5767fcac1ef4955969378d7a63059df4445fac059724e6f175099932cae95c381fa28bc3b0', + }, + { + alg: 'SHA-384', + content: + '0b7e95883e480c6bac9358517568c0bfc1f1fd1abf329f4b6c870ab0c7a24810d3f6c2beda6a19e8830393cc6dc8ec58', + }, + { + alg: 'SHA3-384', + content: + '79310e3758ea66e467fbb1908c8018bdb4eeec3ec52b3274965808fd252803b466214199e9aa357048aec0b958276853', + }, + { + alg: 'SHA3-256', + content: + '450c4fb5ae0ac74f111274395746f8eaf7ee68a7bdcc6c58582ead738653bda9', + }, + { + alg: 'SHA3-512', + content: + '14ff0935a90a396cf9f8597a7fb60a51441ae8773fc23acff541cf8cd758e1d364880b0cf1b543ce8f67d9c8b309f991484a7fa8c581eb69784ac137e0c1a71e', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-context-support@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework/spring-context-support@6.1.6?type=jar', + }, + { + publisher: 'Eclipse Foundation', + group: 'org.eclipse.angus', + name: 'jakarta.mail', + version: '2.0.3', + description: 'Angus Mail default provider', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '33043478b24ab3845a3bf702c18f9226', + }, + { + alg: 'SHA-1', + content: '3dea6aeee9603f573687b0d4da5dc1316d921bb7', + }, + { + alg: 'SHA-256', + content: + 'efb946424933806bc6f8136752d22fdb3ba887ea0527ff849c474e51f7b3715e', + }, + { + alg: 'SHA-512', + content: + '6e4abfa2efb985e2bb77e248c8788ea8dfd1fa2a3f88337399a0e4d0c748777100fb6b17c4d1f1e25ce2595fbbec78625f527b21a4986d4d16ea2132847fea51', + }, + { + alg: 'SHA-384', + content: + '9ab6e99b3d90c3ce031923dbed8ba018c6ae951d2b82d83b9918bc97da06b2096a74a47ae72f4be65bc60471745566b6', + }, + { + alg: 'SHA3-384', + content: + 'c408a694e3c7db7e500f361ce0f999c905d27ba98d1fc4a1597904af2e5ae83689d5792b1a21369c440ef81f262a3c63', + }, + { + alg: 'SHA3-256', + content: + '8106e97a462f4fd311b9d5a1a3dbd1fa0e6df2ae3d1944240d8015bec1264c9a', + }, + { + alg: 'SHA3-512', + content: + '03a3e514d879d6533181f6e99cb234bc4c39cc67e19053ad33fd92547c3e41b8a744293b4bd90d6e89aa129c410b5fe819e6c852b360cb8d9f2a1bbe92126916', + }, + ], + licenses: [ + { + license: { + id: 'EPL-2.0', + }, + }, + { + license: { + id: 'GPL-2.0-with-classpath-exception', + }, + }, + { + license: { + id: 'BSD-3-Clause', + }, + }, + ], + purl: 'pkg:maven/org.eclipse.angus/jakarta.mail@2.0.3?type=jar', + externalReferences: [ + { + type: 'website', + url: 'http://eclipse-ee4j.github.io/angus-mail/jakarta.mail', + }, + { + type: 'distribution-intake', + url: 'https://jakarta.oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/eclipse-ee4j/angus-mail/issues', + }, + { + type: 'mailing-list', + url: 'https://dev.eclipse.org/mhonarc/lists/jakarta.ee-community/', + }, + { + type: 'vcs', + url: 'https://github.com/eclipse-ee4j/angus-mail/jakarta.mail', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.eclipse.angus/jakarta.mail@2.0.3?type=jar', + }, + { + publisher: 'Eclipse Foundation', + group: 'jakarta.activation', + name: 'jakarta.activation-api', + version: '2.1.3', + description: 'Jakarta Activation API 2.1 Specification', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '76e7b680375ea9f40f3ddbd702efcd25', + }, + { + alg: 'SHA-1', + content: 'fa165bd70cda600368eee31555222776a46b881f', + }, + { + alg: 'SHA-256', + content: + '01b176d718a169263e78290691fc479977186bcc6b333487325084d6586f4627', + }, + { + alg: 'SHA-512', + content: + 'aaabd4d6085a07035eaaae7b5a81aef429fea76e7fe1c8d29971e6595f0adad6bcf1088cff8a1c8936d739b0e3fce4b845323032f046b7edab2eaebd0e10a2ad', + }, + { + alg: 'SHA-384', + content: + '4c4e73f59bf09342ca7691fd4855b41d3466da80618a5b7df059a2d89cf6d9779a4af751a6c4a9c48e5025c3ff75f42e', + }, + { + alg: 'SHA3-384', + content: + '20be816700c87778e9453d41b6d8cb9dc992a092a308a9b7f2dfbf72e2393940a7d666c46625f130a2b57bc414df85ca', + }, + { + alg: 'SHA3-256', + content: + '8a574b0a249842ea1b397d4cdef9b6d00b34ce8a849ea34184cdf45ac5aafe67', + }, + { + alg: 'SHA3-512', + content: + '69cfb7dddda70ac1fca272ace0a3d5551b85dd60a6dbaf987ee777fbf573b420d13f06b8990ae70e8fe063f92b78c8a447cf9309ba516a5e993ba2d49cca8d23', + }, + ], + licenses: [ + { + license: { + id: 'BSD-3-Clause', + }, + }, + ], + purl: 'pkg:maven/jakarta.activation/jakarta.activation-api@2.1.3?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/jakartaee/jaf-api', + }, + { + type: 'distribution-intake', + url: 'https://jakarta.oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/jakartaee/jaf-api/issues/', + }, + { + type: 'mailing-list', + url: 'https://dev.eclipse.org/mhonarc/lists/jakarta.ee-community/', + }, + { + type: 'vcs', + url: 'https://github.com/jakartaee/jaf-api', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/jakarta.activation/jakarta.activation-api@2.1.3?type=jar', + }, + { + publisher: 'Eclipse Foundation', + group: 'org.eclipse.angus', + name: 'angus-activation', + version: '2.0.2', + description: 'Angus Activation Registries Implementation', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '42bba74155dc773eca277ee7a16f74be', + }, + { + alg: 'SHA-1', + content: '41f1e0ddd157c856926ed149ab837d110955a9fc', + }, + { + alg: 'SHA-256', + content: + '6dd3bcffc22bce83b07376a0e2e094e4964a3195d4118fb43e380ef35436cc1e', + }, + { + alg: 'SHA-512', + content: + '1482c759843c23e0343ca554194862d53ac18a04ab4691b3bf05145abb77283617022a895c5ba2e33f62b77c2cfb906b90d0cb690623621b11f35194b54b1180', + }, + { + alg: 'SHA-384', + content: + '0263b0f42e56f9cbf4a2446c26a29d6397477561c2149f7b7d0e62fb28ab4315d50faf4e96aff088d3ac204b16f90892', + }, + { + alg: 'SHA3-384', + content: + 'e77e5bf8be9f98ed06a652e2317253bb29e8f79b26910075332823987b2e1bd3dfbb2d7aeb5a57a454c8632241abcc0a', + }, + { + alg: 'SHA3-256', + content: + '41d7d300d1399e4706a0ead464e13702d85023598a0a81899e40ee8eed847826', + }, + { + alg: 'SHA3-512', + content: + 'dbdcb824069f0dcf9f9d362b8db7c2efa77f28d77e07c204a28e56b79ebfc478d9c5f9e5f01c7269d3afc0db0e6126d74237cc5a51b5e9ec6b6664580a06de8c', + }, + ], + licenses: [ + { + license: { + id: 'BSD-3-Clause', + }, + }, + ], + purl: 'pkg:maven/org.eclipse.angus/angus-activation@2.0.2?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/eclipse-ee4j/angus-activation/angus-activation', + }, + { + type: 'distribution-intake', + url: 'https://jakarta.oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/eclipse-ee4j/angus-activation/issues/', + }, + { + type: 'mailing-list', + url: 'https://dev.eclipse.org/mhonarc/lists/jakarta.ee-community/', + }, + { + type: 'vcs', + url: 'https://github.com/eclipse-ee4j/angus-activation/angus-activation', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.eclipse.angus/angus-activation@2.0.2?type=jar', + }, + { + group: 'de.codecentric', + name: 'spring-boot-admin-starter-client', + version: '3.2.4-SNAPSHOT', + scope: 'required', + purl: 'pkg:maven/de.codecentric/spring-boot-admin-starter-client@3.2.4-SNAPSHOT?type=jar', + type: 'library', + 'bom-ref': + 'pkg:maven/de.codecentric/spring-boot-admin-starter-client@3.2.4-SNAPSHOT?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.session', + name: 'spring-session-core', + version: '3.3.0-RC1', + description: 'Spring Session', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'ccb0d954843dc820edeeeaf5152bbd2a', + }, + { + alg: 'SHA-1', + content: '7a795db51bf3380c327f945a5addaf949e5edfa8', + }, + { + alg: 'SHA-256', + content: + '4a63d762c211e49ae21a13cc56acd1c25ac10882f481a261323c9f0b7397fc0a', + }, + { + alg: 'SHA-512', + content: + '809bc5e693b3bf2db798ec040dd0cc5b9c5d33ae43cf536333c2efadd33a4559b7d01aec8d2b939113ce4e18f7e4c548e0ee346236a1999fdcac5d2ae448ca2b', + }, + { + alg: 'SHA-384', + content: + 'f5ba3c2d09289e1a6dd773eea4aa75ba2cf60209db4304eb3f05508b596e6ca5e18fcab02dbd5621a272fd1781d30f11', + }, + { + alg: 'SHA3-384', + content: + 'a827feca6a8b8bc82f9bed8485c9cf3a1130e3d404bd4ba9798ad6a6ab15409f495b4bdf8cab95274151a6e9d8092f92', + }, + { + alg: 'SHA3-256', + content: + '903ab26a5e3269afbf5a94456db29bc01afda1273b29abcafd8b88f9bff6e17d', + }, + { + alg: 'SHA3-512', + content: + '63efe99ccbb959d5a66a177108949e4c07b329af11fdcfe270f01fe42ef221b33e8d44af12e88c606616bfe7c46d67b04c137a6bcda8ae00c497200d777abe3e', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.session/spring-session-core@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-session', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-session/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-session', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.session/spring-session-core@3.3.0-RC1?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-jcl', + version: '6.1.6', + description: 'Spring Commons Logging Bridge', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'acf8ba19c939bace96969efc2c5a6c2b', + }, + { + alg: 'SHA-1', + content: '84cb19b30b22feca73c2ac005ca849c5890935a3', + }, + { + alg: 'SHA-256', + content: + 'bfbd972fbd94dfb40cc2b19de21b769e8157497cf55555523a0e01b468b8e9b8', + }, + { + alg: 'SHA-512', + content: + 'ae26ff2bdbb1928eb4349a3b0375376c64ba1e528006f826cf37b92af1552532cf5efaa49a115665dd2e426ea3cb2ee12e7120615766c41c2c7aab9f510240dc', + }, + { + alg: 'SHA-384', + content: + 'db3928758d60ffd564c54a9ca173405910166e30e1dd799499019b85fac437aae515b50da9cd8f6c17eea94078c88c18', + }, + { + alg: 'SHA3-384', + content: + '9423a4259723be7647a237a150d22521dc412b3519f5d607e2a83dfbda4c26ff98e34b386ddbfcdc15aa5dd31375da4d', + }, + { + alg: 'SHA3-256', + content: + '9921f099221d6690b3bab7582b53d254c17560922c591f70e608d144fce564fb', + }, + { + alg: 'SHA3-512', + content: + '8aff52cc2ced97617ae8df8597045eee432a92a07cf34ccf03c7d3b8ecba455c86b16752a38a841a3cdaf050b19c0eebba447bc854caa92824564f67a304397f', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-jcl@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.springframework/spring-jcl@6.1.6?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.session', + name: 'spring-session-jdbc', + version: '3.3.0-RC1', + description: 'Spring Session and Spring JDBC integration', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'd950e3c7212c0994d66c4f6dabe6df06', + }, + { + alg: 'SHA-1', + content: '1f633f053c2005b540513a1295ea4d38a57fb1cb', + }, + { + alg: 'SHA-256', + content: + 'd2f3a9caa0f5812d412d20423852d50208292a0fe7e56777f8332f1b8b989201', + }, + { + alg: 'SHA-512', + content: + '4593eb3c20d6fe41b3c5566bfbb989c0c563dd81b0a796428c7e598da972d7a15aa9e55dd774c5b6e74e004e4c4bac9df03e9306be3dc20894df2eccbf09b600', + }, + { + alg: 'SHA-384', + content: + '708c0bdc7f191aaa9f005d29dfcbc53635666b7ac670082a270b77bff878ea2c90f874c02af8b0e2f86638df1febf579', + }, + { + alg: 'SHA3-384', + content: + '3e563a19f6bde339bff361595b2d3ac6ed6e627a384068ad5cf3636f2b1b77b8cc8d00453e980f5afc3da31977ad373c', + }, + { + alg: 'SHA3-256', + content: + '1de39e1781ec3f371b49acdee594256ec48e2a05d8fa5d71642a74427a5d23fe', + }, + { + alg: 'SHA3-512', + content: + '74699f35b8d1275420b989b1fa0b191e4013247d6a2e4309e6f1051692ea335643648142f63e390265c6d3807aef0ae0bdccaba97d50d56819423e31b9a6d910', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.session/spring-session-jdbc@3.3.0-RC1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io/projects/spring-session', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-session/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-session', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.session/spring-session-jdbc@3.3.0-RC1?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-context', + version: '6.1.6', + description: 'Spring Context', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'bff5b9db23e0dfe995e1f4a4a160c5d0', + }, + { + alg: 'SHA-1', + content: '2be30298638975efaf7fff22f1570d79b2679814', + }, + { + alg: 'SHA-256', + content: + '452f82d693ada09ebd54666de9c1ad561cb77a1e9574e2076637c08d0b1393ce', + }, + { + alg: 'SHA-512', + content: + '70edce09aad5fe76ce0d98a6562a14d77d12c7f7fdedcdf3ca1f6fdc356f05de87bc3310268caca1ff7afef8b759a9a40c1ef78e88aa699b9f1eb76acbc968f5', + }, + { + alg: 'SHA-384', + content: + 'f4072a357ee4e1c403cb0f6d4638f93ba85b611a0d27eafb481dc21933060116a20723dd9cc584559782c5ac0fc9ff37', + }, + { + alg: 'SHA3-384', + content: + '41424e53a13405ec20d5e21e32c078960bf456030bf268d8484c4a5390784b083b93b4524b86fe497e6af3c9c598d260', + }, + { + alg: 'SHA3-256', + content: + 'b2fcf0269d3a9309ed817775b81ad748338dd071a1b51e77fe095f41806a0aa7', + }, + { + alg: 'SHA3-512', + content: + '563b6d0faff0662d57c1619e83135facc819abfb97d91f2cda542a1b034e6d521950fc09457b3b897ea8b20f96cc83379e0479837553a8434a9d7a3c01ed03ba', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-jdbc', + version: '6.1.6', + description: 'Spring JDBC', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'c8c19b4161ee251c20a0b6eba94ed825', + }, + { + alg: 'SHA-1', + content: '3f8a440a49c15264ff438598b715bd00c5a88109', + }, + { + alg: 'SHA-256', + content: + '4f575ff3515214853590f07ccbdac48947a4bd1246596017fb048ab77d0290ae', + }, + { + alg: 'SHA-512', + content: + '3c513ec606ab67e69c1bb4b49b07a31c41cda60a064b0b83e30f0b2cb40ee10ade84f8e18f2c37d8c10d45a5fa4c0054d827219ad3aa0efb2f158d32928c3d4b', + }, + { + alg: 'SHA-384', + content: + 'f414896caf82ba89de3dff44b78c9e43b9de9e625c75e4d696c20a8ddf35941d0bb52dbd268ba0896ca87f8b7007e032', + }, + { + alg: 'SHA3-384', + content: + '13a4c9fc471326b80243ce2d737f9cee633b3798e29888ba24447734f4b5ecbd4a8725e4198956aa7aeae052477ec5ac', + }, + { + alg: 'SHA3-256', + content: + 'fe64c52eed719a2be7a11b7f35c115f68ee6e3d653212c909e1d417fcea16f46', + }, + { + alg: 'SHA3-512', + content: + 'fab938f5c5734258958c30f9a4876d84dc94b1771b5d9ba63c8911176eca110a4b1ffc86ed73f1e5c98671f4fce14798adf387e330b01d3fd8e0c8c8430ad22d', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-jdbc@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.springframework/spring-jdbc@6.1.6?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-tx', + version: '6.1.6', + description: 'Spring Transaction', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '290de6a7f55216181b65e1f682fd9bc4', + }, + { + alg: 'SHA-1', + content: '4e18554fb6669f266108cc838a4619bbc8f7db8d', + }, + { + alg: 'SHA-256', + content: + 'dc76ab1629b986555fc83a0f83803aa591b91af46e9d187ac9eb999a99898b8f', + }, + { + alg: 'SHA-512', + content: + '5456bf6a0bada70a25bb477534749f39a27e607d7b55144908c076882da9dc9a8a05e95051675ef635b6a285a91e51860a14d3dba94db110ac3309a040fe5f85', + }, + { + alg: 'SHA-384', + content: + '72cdfa7450e9706dcfccb735c8dbc7af2588cc566d88e3deb65f3f1c9db889e5d8520cd49a21daee503da3193f058435', + }, + { + alg: 'SHA3-384', + content: + 'cd7807ba85d96ecfb8f019372dd658fc777990578b3e088e059bf37a5518ed126808009ac73d1e41d4030fc3b9524041', + }, + { + alg: 'SHA3-256', + content: + 'd920b7548652e6a43344eb289e5f47b701ce1746f426c09d08d1960b3d6e831c', + }, + { + alg: 'SHA3-512', + content: + '5099e4245f5172cad173f62506596f09b5096f7777715527b07d4e88005ce4f48d16be35c4ebb4f3629f3a3ec3ff406d2a36e39ec9464e7364751b56ebb3b5fe', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-tx@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.springframework/spring-tx@6.1.6?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.cloud', + name: 'spring-cloud-starter-config', + version: '4.1.1', + description: 'Spring Cloud Starter', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'f1e90f5c16f40b9c6aa52273d42a36a5', + }, + { + alg: 'SHA-1', + content: 'c90d7c91c5b422fc416f20a994b303074aa37388', + }, + { + alg: 'SHA-256', + content: + 'b9b6d56cac78c59467001cd0fa904bc9e6dcc3e26e02872e0ac3d29b2c8031c2', + }, + { + alg: 'SHA-512', + content: + '5ce61142994ba355a8ee8cfe37e0b07a0b2b4be5ff3c39ab430d253a10f5f37cc910eb0eb4bc7f982e64f379012fa7d339d400a3c96e969b03ebc65cee2c0279', + }, + { + alg: 'SHA-384', + content: + 'c3159a313b718fbb558d393768d7aecfd3bd73b89ec246435c6de75b152a27889cd946ef58632155a964732b733f07c4', + }, + { + alg: 'SHA3-384', + content: + '747a95ac4d7a2f237861a2cdb068fc42092e3a2aecd660e33cf075392360b1043c4919de8fb57cee82634178ede0d0c3', + }, + { + alg: 'SHA3-256', + content: + '72bab7c132b389f0ec733a0e29a4a0532b8cbddd49e8a923cf02f762fb6fed24', + }, + { + alg: 'SHA3-512', + content: + 'c177c7c5073b1621b93220e790d1402d44ba9339c7468f9515930e96be26672c3e02703de1a61c636b9edee6207466b5c37250a73890290099126a237345decd', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.cloud/spring-cloud-starter-config@4.1.1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://projects.spring.io/spring-cloud', + }, + { + type: 'distribution', + url: 'https://github.com/spring-cloud', + }, + { + type: 'distribution-intake', + url: 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/spring-cloud/spring-cloud-config/spring-cloud-starter-config', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.cloud/spring-cloud-starter-config@4.1.1?type=jar', + }, + { + publisher: 'Pivotal Software, Inc.', + group: 'org.springframework.cloud', + name: 'spring-cloud-config-client', + version: '4.1.1', + description: 'This project is a Spring configuration client.', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '02567f0e59035f8b9cf4916468533939', + }, + { + alg: 'SHA-1', + content: 'eb8e3991ab2a7c944a22544dc2b87763554b8409', + }, + { + alg: 'SHA-256', + content: + '556349cf937fbaf14428f4ee69976cf13c70af7701abb97489395572e5221031', + }, + { + alg: 'SHA-512', + content: + 'f0e9ae214fca3739ec110ad32878de64acf9e45069b58f66a7c31694b932607f5b973f6332e4560a84de5ad8b0d6e1d537662b990aa967ed365f72dab38fb12d', + }, + { + alg: 'SHA-384', + content: + 'cdbf51bcbdc08d8a9fcca1bdcab3c201be85053613fb12b2a866aefea6cf479d8c16aa7ae1b384c15f70f06ab7ad606b', + }, + { + alg: 'SHA3-384', + content: + '5fd2d1526a1e487bfbaa51143043bfd864854d8317f9d51d861047305c2d4ea9e143cc0d24fad9369ea89a4c2170cade', + }, + { + alg: 'SHA3-256', + content: + 'db1ddb5759a6889da3fc99405529daf4556795b7ea6deac63fca9633f9fe69fc', + }, + { + alg: 'SHA3-512', + content: + '529441dfcf47e687640b432ad2dff0b365b3bfdfcf2090a8e64d650bca9b618b4b7c97c8f45b04087d711bb09d5477141ca4c53803ebb35ab2bb9ac2d6ac82ca', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework.cloud/spring-cloud-config-client@4.1.1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://spring.io', + }, + { + type: 'distribution', + url: 'https://github.com/spring-cloud', + }, + { + type: 'distribution-intake', + url: 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/spring-cloud/spring-cloud-config/spring-cloud-config-client', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.springframework.cloud/spring-cloud-config-client@4.1.1?type=jar', + }, + { + publisher: 'FasterXML', + group: 'com.fasterxml.jackson.core', + name: 'jackson-annotations', + version: '2.17.0', + description: + 'Core annotations used for value types, used by Jackson data binding package.', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '7529e022796db72bc17288e950c24b3f', + }, + { + alg: 'SHA-1', + content: '880a742337010da4c851f843d8cac150e22dff9f', + }, + { + alg: 'SHA-256', + content: + '8562569a001d46e84ea23802257e33c8f68b24eb47c1e0efd133a0372c512959', + }, + { + alg: 'SHA-512', + content: + '20104840da168653b27ffcbef6600d29d04b7f315934531f6521b30cfc0438893ac5e3b2476ba03a6a47f3aed8882cc7d5a57b66163ad19aac217a258826e51b', + }, + { + alg: 'SHA-384', + content: + 'c597370368f411e8f63500537a94f503f44f3bbd653c77d39871eb65745ee2a3d8d83bb8c303790c1e26f30e76219000', + }, + { + alg: 'SHA3-384', + content: + '6c446264fac7209fc435be283dbb6d578ed7328e84756d7e987a0871a9119bf9bffbfe40827e84324ea7924f83aad770', + }, + { + alg: 'SHA3-256', + content: + '437fa185a964c155377819fed79558491f31a7ee20a60c4624d252f6c6bf75bc', + }, + { + alg: 'SHA3-512', + content: + 'ad18bc120cfafe0ee6c961c5422242361de7b3154d3252a2ffaecf5d981865c141a25fa8706709eabc351d42f3593dd2832219657671f21d9672c2488e5d1bf4', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.17.0?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/FasterXML/jackson', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/FasterXML/jackson-annotations/issues', + }, + { + type: 'vcs', + url: 'https://github.com/FasterXML/jackson-annotations', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.17.0?type=jar', + }, + { + publisher: 'The Apache Software Foundation', + group: 'org.apache.httpcomponents.client5', + name: 'httpclient5', + version: '5.3.1', + description: 'Apache HttpComponents Client', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'de1810a606b27192cbf5bbad9c25a648', + }, + { + alg: 'SHA-1', + content: '56b53c8f4bcdaada801d311cf2ff8a24d6d96883', + }, + { + alg: 'SHA-256', + content: + '08346a757c617f6ecc66af9f099260adde1f3a1351fa81cb22fc17482b31f823', + }, + { + alg: 'SHA-512', + content: + '4c2d75106af8470789f0e08305e64ad86528f2f737da230e561892d33dbca0b6e2dbced2a075f0744cee7801c06ef174481540661b3c9a1bec6d6f93938b05bc', + }, + { + alg: 'SHA-384', + content: + '27470f74660b89f8a0af562a4edbd244afff4947b0fa7364c61e53ca49713efbca49e661214590f532c4acf9cfd66eac', + }, + { + alg: 'SHA3-384', + content: + 'd25be0f1c5e0c02de0adf7113e591f10bd7fab20c168a20b7d15c859b252a6dc3ae3a24098e838d95c179ab3107f07b6', + }, + { + alg: 'SHA3-256', + content: + '9e22ce6935e71d12d1be70ef0b7cea9a87191c767de2904cb82fcb6e58d0e9b2', + }, + { + alg: 'SHA3-512', + content: + '9d36e201e469dd357ef715bba7beba62dbea98daefcea3b793fd285c2ffade97d72b35a07f05015fbc2d5b4fa5db58ff5ecf40e1269582a6c3e53ed62cbf97f4', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.apache.httpcomponents.client5/httpclient5@5.3.1?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://hc.apache.org/httpcomponents-client-5.0.x/5.3.1/httpclient5/', + }, + { + type: 'distribution-intake', + url: 'https://repository.apache.org/service/local/staging/deploy/maven2', + }, + { + type: 'issue-tracker', + url: 'https://issues.apache.org/jira/browse/HTTPCLIENT', + }, + { + type: 'mailing-list', + url: 'https://lists.apache.org/list.html?httpclient-users@hc.apache.org', + }, + { + type: 'vcs', + url: 'https://github.com/apache/httpcomponents-client/tree/5.3.1/httpclient5', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.apache.httpcomponents.client5/httpclient5@5.3.1?type=jar', + }, + { + publisher: 'The Apache Software Foundation', + group: 'org.apache.httpcomponents.core5', + name: 'httpcore5', + version: '5.2.4', + description: 'Apache HttpComponents HTTP/1.1 core components', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '5a3d417ea4e65e0f74194263dc5c6c43', + }, + { + alg: 'SHA-1', + content: '34d8332b975f9e9a8298efe4c883ec43d45b7059', + }, + { + alg: 'SHA-256', + content: + 'a7f62496113f66f9e27c26b84c44f5ce4555c6270083cdf2d45f255336cd52af', + }, + { + alg: 'SHA-512', + content: + '9fb4134d85e665e15410af005b21cd2f9b5e60d75112945d37b879f96f769a70be034557526ea7d05f8b83dda91c56d00f946763c44a183d7aea2857549b4481', + }, + { + alg: 'SHA-384', + content: + '8ec2da2fd22a23e9f740589947398a907795ab310d4ed166ecc1448ceea7035a50090cf645dad28f3c84c08599f1e57e', + }, + { + alg: 'SHA3-384', + content: + 'e52f4f1c073ec9d893cffa353a27939054a0b537fe49e4aacfdd6c265dfba037309913a001c025d85ccbb06a1e9e72b0', + }, + { + alg: 'SHA3-256', + content: + '23fb185f22dac603ba579c4f707671f43b3b08ab049ae519fb492ea0232c5ba9', + }, + { + alg: 'SHA3-512', + content: + '8371cd7e6f94ccb1590bd90d5868a90a3344123b0e6a4f7113d76b816c16d58efc6f2cab124a45ffd93739990fed05201f294f890aa989345f52e736383b4261', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.apache.httpcomponents.core5/httpcore5@5.2.4?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://hc.apache.org/httpcomponents-core-5.2.x/5.2.4/httpcore5/', + }, + { + type: 'distribution-intake', + url: 'https://repository.apache.org/service/local/staging/deploy/maven2', + }, + { + type: 'issue-tracker', + url: 'https://issues.apache.org/jira/browse/HTTPCORE', + }, + { + type: 'mailing-list', + url: 'https://lists.apache.org/list.html?httpclient-users@hc.apache.org', + }, + { + type: 'vcs', + url: 'https://github.com/apache/httpcomponents-core/tree/5.2.4/httpcore5', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.apache.httpcomponents.core5/httpcore5@5.2.4?type=jar', + }, + { + publisher: 'The Apache Software Foundation', + group: 'org.apache.httpcomponents.core5', + name: 'httpcore5-h2', + version: '5.2.4', + description: 'Apache HttpComponents HTTP/2 Core Components', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'd407b8144029db656ac5ba3d54ef801f', + }, + { + alg: 'SHA-1', + content: '2872764df7b4857549e2880dd32a6f9009166289', + }, + { + alg: 'SHA-256', + content: + 'dc1a95e73eb04db93451533d390ce02c53b301a10dc343d08c862f2934b3d30e', + }, + { + alg: 'SHA-512', + content: + '72fbee55f173c43d9ffc0cc5a83d59e60be1002c06ab81de39ba700cc30b04e84fdfed73d3a8985d561a1aa8ac3ca905f9259d01b431e1ff14da6fae622f787d', + }, + { + alg: 'SHA-384', + content: + '2f96537af2866fa96aae46138febe3009dca97cc9b4284cf18510c12d159ad3f5d34c3c9bafc8026215da81520331660', + }, + { + alg: 'SHA3-384', + content: + '9900a3aeaf434d7f32a7500e29e16d354857ef34e6af3fb7de9e1ab7683b6a1c4bfa9b9f70bb779a8ec8d8be82b6bca4', + }, + { + alg: 'SHA3-256', + content: + 'da34ed59342e368229b74245d2268a457588adea9e276a1ac2fb57419c605f31', + }, + { + alg: 'SHA3-512', + content: + 'ca5b03cf34c7e344fd0b809c582e60f0eaea796372cf68e2e95087ac5943154e51472595f6554b810a5ac4789ba6f7c06cae46437badecbf31c57907123a49fc', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.apache.httpcomponents.core5/httpcore5-h2@5.2.4?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://hc.apache.org/httpcomponents-core-5.2.x/5.2.4/httpcore5-h2/', + }, + { + type: 'distribution-intake', + url: 'https://repository.apache.org/service/local/staging/deploy/maven2', + }, + { + type: 'issue-tracker', + url: 'https://issues.apache.org/jira/browse/HTTPCORE', + }, + { + type: 'mailing-list', + url: 'https://lists.apache.org/list.html?httpclient-users@hc.apache.org', + }, + { + type: 'vcs', + url: 'https://github.com/apache/httpcomponents-core/tree/5.2.4/httpcore5-h2', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/org.apache.httpcomponents.core5/httpcore5-h2@5.2.4?type=jar', + }, + { + publisher: 'FasterXML', + group: 'com.fasterxml.jackson.core', + name: 'jackson-databind', + version: '2.17.0', + description: + 'General data-binding functionality for Jackson: works on core streaming API', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '09dd83868b44c6a3dc48911f4b3bbbc1', + }, + { + alg: 'SHA-1', + content: '7173e9e1d4bc6d7ca03bc4eeedcd548b8b580b34', + }, + { + alg: 'SHA-256', + content: + 'd0ed5b54cb1b0bbb0828e24ce752a43a006dc188b34e3a4ae3238acc7b637418', + }, + { + alg: 'SHA-512', + content: + 'c6b06d4b20941d9e32b462552031e6c98378e5edce57693e55adcc73cf7d5088af5b3a666a59e94a7f0b57066ac694863919f398f28ee0d7ceb362c8c05f7491', + }, + { + alg: 'SHA-384', + content: + '02875865ef42573114755ab7147d64f8e5a791f2a2b8debe51dda22886370ef34af8c159d8efa8b90735f33f90089187', + }, + { + alg: 'SHA3-384', + content: + 'ee93411dc73337c11d48609fbf79ae606ccd0ab712e3d2c12c91103964182910a810b9fa062a0afc47d19c720c97c5e7', + }, + { + alg: 'SHA3-256', + content: + 'eb5b5dfb8afb2538a2c31caab47d909970bb647763a0eccabaae8e6f0a9ad988', + }, + { + alg: 'SHA3-512', + content: + '09ce7a8d928d42b221e0f6151653248f78eb68b6228cfc36fabd48ae48a3890f235fb33b82cc2faa24069efdf5a14d7433014e3bfb0d5173047d1911e5a55fe4', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.17.0?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/FasterXML/jackson', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/FasterXML/jackson-databind/issues', + }, + { + type: 'vcs', + url: 'https://github.com/FasterXML/jackson-databind', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.17.0?type=jar', + }, + { + publisher: 'FasterXML', + group: 'com.fasterxml.jackson.core', + name: 'jackson-core', + version: '2.17.0', + description: + 'Core Jackson processing abstractions (aka Streaming API), implementation for JSON', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '3e4b82b6e29693927dd289a344c35e46', + }, + { + alg: 'SHA-1', + content: 'a6e5058ef9720623c517252d17162f845306ff3a', + }, + { + alg: 'SHA-256', + content: + '55be130f6a68038088a261856c4e383ce79957a0fc1a29ecb213a9efd6ef4389', + }, + { + alg: 'SHA-512', + content: + '85611fb7687450eb6078855c46d94dabf1cebcf179e23455cd1069aaded3b169112ec5d3d8d8510a7076166dc146e2f684f8527c5ef5b9ed99a7ec91f0825523', + }, + { + alg: 'SHA-384', + content: + '12bbfe5721ecd374a77ede24cca8a39f1415fd50dd95938c5e3365c703a02b5f6c0e7b10c7b44b7c9c5a874dd0b971c7', + }, + { + alg: 'SHA3-384', + content: + 'd1b1f9c3e53603ccc690d76ac1a90dd1ddf07723f4eb53f58acfa266f17a675b311b0f29b94d9f1bb0ab32ad1a8aea4a', + }, + { + alg: 'SHA3-256', + content: + '62a76265cdc48c8a7f80c9d5566a179bd796c646b25c5cb937fd0a10cfffff1f', + }, + { + alg: 'SHA3-512', + content: + '87c42bea365905e9d877bda162c9d79d962a969a53a46861c350b9a9a87d09f4986c6ff67c4f00eba6df8c86f0621cfb52359a91321ace7eec3bb5d7c82feeb9', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/com.fasterxml.jackson.core/jackson-core@2.17.0?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/FasterXML/jackson-core', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'issue-tracker', + url: 'https://github.com/FasterXML/jackson-core/issues', + }, + { + type: 'vcs', + url: 'https://github.com/FasterXML/jackson-core', + }, + ], + type: 'library', + 'bom-ref': + 'pkg:maven/com.fasterxml.jackson.core/jackson-core@2.17.0?type=jar', + }, + { + group: 'net.bytebuddy', + name: 'byte-buddy', + version: '1.14.13', + description: + 'Byte Buddy is a Java library for creating Java classes at run time. This artifact is a build of Byte Buddy with all ASM dependencies repackaged into its own name space.', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '7f4df0c9277f4c1c418a742cc3178ac9', + }, + { + alg: 'SHA-1', + content: '45cf516d9a23485200950549ff72b204c307fc9d', + }, + { + alg: 'SHA-256', + content: + 'ba8254ff6d612af49acee4cac1108453ce3a417efa548b24f2f4f268cd2b441a', + }, + { + alg: 'SHA-512', + content: + 'c7f76ce1bf108c98af398c3b2df01d8bd0a81a8eb6efe669fb23ef3cfb33419fe7f975c2523579f4d48567da7786751a31ef79f41babc391be250da485c93b0e', + }, + { + alg: 'SHA-384', + content: + '31ea6c6cc36495936761edee2ce2a3ba61edf66e5e2de78d7ae243db03e84cf57081e8434b5c4cafbf042a5ab15799ec', + }, + { + alg: 'SHA3-384', + content: + '0528e8facb1eb96e7c2f825bbda814432ca7b269de046c9d49eac047762fc5dc0c3d6b91cca08a9853d8744497e28e62', + }, + { + alg: 'SHA3-256', + content: + 'a1da765e093a8b14bb5c2e3eb7012ced676840f8201a3ffaf47c3da4784018fd', + }, + { + alg: 'SHA3-512', + content: + '05581ee76ccce6fb141e55863db63e03a9885381a185a3413046bf5f40302d8314141ff093f396ef99a3b0948fc58346b0b5c7c139ccae2294cd3040bd0493cd', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/net.bytebuddy/byte-buddy@1.14.13?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://bytebuddy.net/byte-buddy', + }, + { + type: 'distribution-intake', + url: 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2', + }, + { + type: 'issue-tracker', + url: 'https://github.com/raphw/byte-buddy/issues', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/net.bytebuddy/byte-buddy@1.14.13?type=jar', + }, + { + publisher: 'The HSQL Development Group', + group: 'org.hsqldb', + name: 'hsqldb', + version: '2.7.2', + description: 'HSQLDB - Lightweight 100% Java SQL Database Engine', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: 'dab42304e10a7983af59ce89a8ccee12', + }, + { + alg: 'SHA-1', + content: 'd92d4d2aa515714da2165c9d640d584c2896c9df', + }, + { + alg: 'SHA-256', + content: + 'aa455133e664f6a7e6f30cd0cd4f8ad83dfbd94eb717c438548e446784614a92', + }, + { + alg: 'SHA-512', + content: + '0b997354bae288f84925cfb0aca0525257225a150a84ecbc687b3c7e6ef38cddbcdf2cf24404ac2bf4990a5d8baad2394c38bb5b299a7cfcbd2982741cd35b20', + }, + { + alg: 'SHA-384', + content: + 'f2d2e3fa488ffc041cef71acb951a9475177974c98a9f6b9f711d0ea67bd6c344dd0601856423fd96e63b080d9a41dfc', + }, + { + alg: 'SHA3-384', + content: + '84b769ff1bb3ace9e00b9e499405b445304bc55892d093e8306a9f94e100c2fb3aefa569290e74f42b207c980f0baaef', + }, + { + alg: 'SHA3-256', + content: + 'b981fa576356765be24044e6bcc3d273891a8e53a2caa5a4541a6039cfc4ae67', + }, + { + alg: 'SHA3-512', + content: + '042bfe7d7d30f16c23bb2305e37c526999553c2ba1df39ab7d1108943a4699b84fc9515e5ab272733e39882aac22d59fb1691c95e0d1d99f8bb012ce8caf8aa3', + }, + ], + licenses: [ + { + license: { + name: 'HSQLDB License, a BSD open source license', + url: 'http://hsqldb.org/web/hsqlLicense.html', + }, + }, + ], + purl: 'pkg:maven/org.hsqldb/hsqldb@2.7.2?type=jar', + externalReferences: [ + { + type: 'website', + url: 'http://hsqldb.org', + }, + { + type: 'vcs', + url: 'http://sourceforge.net/p/hsqldb/svn/HEAD/tree/base/tags/2.7.2', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.hsqldb/hsqldb@2.7.2?type=jar', + }, + { + publisher: 'QOS.ch', + group: 'org.slf4j', + name: 'slf4j-api', + version: '2.0.13', + description: 'The slf4j API', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '7f4028aa04f75427327f3f30cd62ba4e', + }, + { + alg: 'SHA-1', + content: '80229737f704b121a318bba5d5deacbcf395bc77', + }, + { + alg: 'SHA-256', + content: + 'e7c2a48e8515ba1f49fa637d57b4e2f590b3f5bd97407ac699c3aa5efb1204a9', + }, + { + alg: 'SHA-512', + content: + 'b4eeb5757118e264ec7f107d879270784357380d6f53471b7874dd7e0166fdf5686a95eb66bab867abbe9536da032ab052e207165211391c293cbf6178431fb6', + }, + { + alg: 'SHA-384', + content: + 'b67cbb4ef32141423000dd4e067bf32e0c1dd2c4689c611522b9fedfc1744513175a22f4b1276f2cec4721c9467cf882', + }, + { + alg: 'SHA3-384', + content: + '817fc9641f4fc52bfd76006886c6eba975f6f09b2a7cc59334729a8cc033807c8e89be9ec4309acfc16ed65ff6eee018', + }, + { + alg: 'SHA3-256', + content: + 'f26080cceb5a2e605f3844d6dc8dd3f14c543cb14510765d841d71a64fa454dc', + }, + { + alg: 'SHA3-512', + content: + '00646c78d65ec854e157638f40735f1888aa585ede59915d58386c599c2fe54ec8c1da73284aeff00ce3142165e33c4c995ad39d08843c31e9e4d7e32c746836', + }, + ], + licenses: [ + { + license: { + id: 'MIT', + url: 'https://opensource.org/licenses/MIT', + }, + }, + ], + purl: 'pkg:maven/org.slf4j/slf4j-api@2.0.13?type=jar', + externalReferences: [ + { + type: 'website', + url: 'http://www.slf4j.org', + }, + { + type: 'distribution-intake', + url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2/', + }, + { + type: 'vcs', + url: 'https://github.com/qos-ch/slf4j/slf4j-parent/slf4j-api', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.slf4j/slf4j-api@2.0.13?type=jar', + }, + { + publisher: 'Spring IO', + group: 'org.springframework', + name: 'spring-core', + version: '6.1.6', + description: 'Spring Core', + scope: 'required', + hashes: [ + { + alg: 'MD5', + content: '852be6055a31d2ce17b5d231b17f732e', + }, + { + alg: 'SHA-1', + content: 'dea4b8e110b7b54a02a4907e32dbb0adee8a7168', + }, + { + alg: 'SHA-256', + content: + 'caf51f3d51c5d95e931f411027688f1dde3986d5f2aad67ff1096ddddac36ac5', + }, + { + alg: 'SHA-512', + content: + '893d9c5956c3005717dc7f09b31908dfed3588f9c81fb6180781ca687f305157cf3481f246d1a493fa348991d41a660b54e5db7ff5a4e4676570062b8c22b38b', + }, + { + alg: 'SHA-384', + content: + '984ff65f605a97d0ecea2a30986fb6c443deb83c7f58450bc661d9060563e1f199f9d472794520106ccbd23b29de0531', + }, + { + alg: 'SHA3-384', + content: + 'edf8fafbef9d85a15d226dcc85d4fd71c6eaca2cd885867b8a81c37424c9ce024dc16a8f8169a2b2d1214b8b6532d278', + }, + { + alg: 'SHA3-256', + content: + '71f60a76d6b31290bb2024f17e82e5f920d2dc576a2649c054767ea574baf685', + }, + { + alg: 'SHA3-512', + content: + 'cf4ab0e13b212c22f9cbea6afdf4aac815c62bd904d2f0d91198e29098988495b4038b6b3c56b6cb48d5b26efc39dec92283e067a969be1d75db817949d73cc4', + }, + ], + licenses: [ + { + license: { + id: 'Apache-2.0', + }, + }, + ], + purl: 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + externalReferences: [ + { + type: 'website', + url: 'https://github.com/spring-projects/spring-framework', + }, + { + type: 'issue-tracker', + url: 'https://github.com/spring-projects/spring-framework/issues', + }, + { + type: 'vcs', + url: 'https://github.com/spring-projects/spring-framework', + }, + ], + type: 'library', + 'bom-ref': 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + }, + ], + dependencies: [ + { + ref: 'pkg:maven/de.codecentric/spring-boot-admin-sample-servlet@3.2.4-SNAPSHOT?type=jar', + dependsOn: [ + 'pkg:maven/de.codecentric/spring-boot-admin-sample-custom-ui@3.2.4-SNAPSHOT?type=jar', + 'pkg:maven/de.codecentric/spring-boot-admin-starter-server@3.2.4-SNAPSHOT?type=jar', + 'pkg:maven/org.springframework.boot/spring-boot-starter-security@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.boot/spring-boot-starter-web@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.cloud/spring-cloud-starter@4.1.2?type=jar', + 'pkg:maven/org.springframework.boot/spring-boot-starter-mail@3.3.0-RC1?type=jar', + 'pkg:maven/de.codecentric/spring-boot-admin-starter-client@3.2.4-SNAPSHOT?type=jar', + 'pkg:maven/org.springframework.session/spring-session-core@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.session/spring-session-jdbc@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.cloud/spring-cloud-starter-config@4.1.1?type=jar', + 'pkg:maven/org.hsqldb/hsqldb@2.7.2?type=jar', + ], + }, + { + ref: 'pkg:maven/de.codecentric/spring-boot-admin-sample-custom-ui@3.2.4-SNAPSHOT?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/de.codecentric/spring-boot-admin-starter-server@3.2.4-SNAPSHOT?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.springframework.boot/spring-boot-starter-security@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.boot/spring-boot-starter@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework/spring-aop@6.1.6?type=jar', + 'pkg:maven/org.springframework.security/spring-security-config@6.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.security/spring-security-web@6.3.0-RC1?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.boot/spring-boot-starter@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.boot/spring-boot@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.boot/spring-boot-autoconfigure@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.boot/spring-boot-starter-logging@3.3.0-RC1?type=jar', + 'pkg:maven/jakarta.annotation/jakarta.annotation-api@2.1.1?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + 'pkg:maven/org.yaml/snakeyaml@2.2?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.boot/spring-boot@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + dependsOn: ['pkg:maven/org.springframework/spring-jcl@6.1.6?type=jar'], + }, + { + ref: 'pkg:maven/org.springframework/spring-jcl@6.1.6?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework/spring-aop@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-expression@6.1.6?type=jar', + 'pkg:maven/io.micrometer/micrometer-observation@1.13.0-RC1?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework/spring-aop@6.1.6?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + dependsOn: ['pkg:maven/org.springframework/spring-core@6.1.6?type=jar'], + }, + { + ref: 'pkg:maven/org.springframework/spring-expression@6.1.6?type=jar', + dependsOn: ['pkg:maven/org.springframework/spring-core@6.1.6?type=jar'], + }, + { + ref: 'pkg:maven/io.micrometer/micrometer-observation@1.13.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/io.micrometer/micrometer-commons@1.13.0-RC1?type=jar', + ], + }, + { + ref: 'pkg:maven/io.micrometer/micrometer-commons@1.13.0-RC1?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.springframework.boot/spring-boot-autoconfigure@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.boot/spring-boot@3.3.0-RC1?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.boot/spring-boot-starter-logging@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/ch.qos.logback/logback-classic@1.5.6?type=jar', + 'pkg:maven/org.apache.logging.log4j/log4j-to-slf4j@2.23.1?type=jar', + 'pkg:maven/org.slf4j/jul-to-slf4j@2.0.13?type=jar', + ], + }, + { + ref: 'pkg:maven/ch.qos.logback/logback-classic@1.5.6?type=jar', + dependsOn: [ + 'pkg:maven/ch.qos.logback/logback-core@1.5.6?type=jar', + 'pkg:maven/org.slf4j/slf4j-api@2.0.13?type=jar', + ], + }, + { + ref: 'pkg:maven/ch.qos.logback/logback-core@1.5.6?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.slf4j/slf4j-api@2.0.13?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.apache.logging.log4j/log4j-to-slf4j@2.23.1?type=jar', + dependsOn: [ + 'pkg:maven/org.apache.logging.log4j/log4j-api@2.23.1?type=jar', + 'pkg:maven/org.slf4j/slf4j-api@2.0.13?type=jar', + ], + }, + { + ref: 'pkg:maven/org.apache.logging.log4j/log4j-api@2.23.1?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.slf4j/jul-to-slf4j@2.0.13?type=jar', + dependsOn: ['pkg:maven/org.slf4j/slf4j-api@2.0.13?type=jar'], + }, + { + ref: 'pkg:maven/jakarta.annotation/jakarta.annotation-api@2.1.1?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.yaml/snakeyaml@2.2?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.springframework.security/spring-security-config@6.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.security/spring-security-core@6.3.0-RC1?type=jar', + 'pkg:maven/org.springframework/spring-aop@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.security/spring-security-core@6.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.security/spring-security-crypto@6.3.0-RC1?type=jar', + 'pkg:maven/org.springframework/spring-aop@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-expression@6.1.6?type=jar', + 'pkg:maven/io.micrometer/micrometer-observation@1.13.0-RC1?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.security/spring-security-crypto@6.3.0-RC1?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.springframework.security/spring-security-web@6.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.security/spring-security-core@6.3.0-RC1?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-aop@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-expression@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-web@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework/spring-web@6.1.6?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + 'pkg:maven/io.micrometer/micrometer-observation@1.13.0-RC1?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.boot/spring-boot-starter-web@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.boot/spring-boot-starter@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.boot/spring-boot-starter-json@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.boot/spring-boot-starter-tomcat@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework/spring-web@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-webmvc@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.boot/spring-boot-starter-json@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.boot/spring-boot-starter@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework/spring-web@6.1.6?type=jar', + 'pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.17.0?type=jar', + 'pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jdk8@2.17.0?type=jar', + 'pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jsr310@2.17.0?type=jar', + 'pkg:maven/com.fasterxml.jackson.module/jackson-module-parameter-names@2.17.0?type=jar', + ], + }, + { + ref: 'pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.17.0?type=jar', + dependsOn: [ + 'pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.17.0?type=jar', + 'pkg:maven/com.fasterxml.jackson.core/jackson-core@2.17.0?type=jar', + 'pkg:maven/net.bytebuddy/byte-buddy@1.14.13?type=jar', + ], + }, + { + ref: 'pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.17.0?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/com.fasterxml.jackson.core/jackson-core@2.17.0?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/net.bytebuddy/byte-buddy@1.14.13?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jdk8@2.17.0?type=jar', + dependsOn: [ + 'pkg:maven/com.fasterxml.jackson.core/jackson-core@2.17.0?type=jar', + 'pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.17.0?type=jar', + ], + }, + { + ref: 'pkg:maven/com.fasterxml.jackson.datatype/jackson-datatype-jsr310@2.17.0?type=jar', + dependsOn: [ + 'pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.17.0?type=jar', + 'pkg:maven/com.fasterxml.jackson.core/jackson-core@2.17.0?type=jar', + 'pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.17.0?type=jar', + ], + }, + { + ref: 'pkg:maven/com.fasterxml.jackson.module/jackson-module-parameter-names@2.17.0?type=jar', + dependsOn: [ + 'pkg:maven/com.fasterxml.jackson.core/jackson-core@2.17.0?type=jar', + 'pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.17.0?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.boot/spring-boot-starter-tomcat@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/jakarta.annotation/jakarta.annotation-api@2.1.1?type=jar', + 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-core@10.1.20?type=jar', + 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-el@10.1.20?type=jar', + 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-websocket@10.1.20?type=jar', + ], + }, + { + ref: 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-core@10.1.20?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-el@10.1.20?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-websocket@10.1.20?type=jar', + dependsOn: [ + 'pkg:maven/org.apache.tomcat.embed/tomcat-embed-core@10.1.20?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework/spring-webmvc@6.1.6?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework/spring-aop@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-expression@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-web@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.cloud/spring-cloud-starter@4.1.2?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.boot/spring-boot-starter@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.cloud/spring-cloud-context@4.1.2?type=jar', + 'pkg:maven/org.springframework.cloud/spring-cloud-commons@4.1.2?type=jar', + 'pkg:maven/org.springframework.security/spring-security-rsa@1.1.2?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.cloud/spring-cloud-context@4.1.2?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.security/spring-security-crypto@6.3.0-RC1?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.cloud/spring-cloud-commons@4.1.2?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.security/spring-security-crypto@6.3.0-RC1?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.security/spring-security-rsa@1.1.2?type=jar', + dependsOn: ['pkg:maven/org.bouncycastle/bcprov-jdk18on@1.77?type=jar'], + }, + { + ref: 'pkg:maven/org.bouncycastle/bcprov-jdk18on@1.77?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.springframework.boot/spring-boot-starter-mail@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.boot/spring-boot-starter@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework/spring-context-support@6.1.6?type=jar', + 'pkg:maven/org.eclipse.angus/jakarta.mail@2.0.3?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework/spring-context-support@6.1.6?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.eclipse.angus/jakarta.mail@2.0.3?type=jar', + dependsOn: [ + 'pkg:maven/jakarta.activation/jakarta.activation-api@2.1.3?type=jar', + 'pkg:maven/org.eclipse.angus/angus-activation@2.0.2?type=jar', + ], + }, + { + ref: 'pkg:maven/jakarta.activation/jakarta.activation-api@2.1.3?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.eclipse.angus/angus-activation@2.0.2?type=jar', + dependsOn: [ + 'pkg:maven/jakarta.activation/jakarta.activation-api@2.1.3?type=jar', + ], + }, + { + ref: 'pkg:maven/de.codecentric/spring-boot-admin-starter-client@3.2.4-SNAPSHOT?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.springframework.session/spring-session-core@3.3.0-RC1?type=jar', + dependsOn: ['pkg:maven/org.springframework/spring-jcl@6.1.6?type=jar'], + }, + { + ref: 'pkg:maven/org.springframework.session/spring-session-jdbc@3.3.0-RC1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.session/spring-session-core@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework/spring-context@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-jdbc@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework/spring-jdbc@6.1.6?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-tx@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework/spring-tx@6.1.6?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework/spring-beans@6.1.6?type=jar', + 'pkg:maven/org.springframework/spring-core@6.1.6?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.cloud/spring-cloud-starter-config@4.1.1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.cloud/spring-cloud-starter@4.1.2?type=jar', + 'pkg:maven/org.springframework.cloud/spring-cloud-config-client@4.1.1?type=jar', + 'pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.17.0?type=jar', + ], + }, + { + ref: 'pkg:maven/org.springframework.cloud/spring-cloud-config-client@4.1.1?type=jar', + dependsOn: [ + 'pkg:maven/org.springframework.boot/spring-boot-autoconfigure@3.3.0-RC1?type=jar', + 'pkg:maven/org.springframework.cloud/spring-cloud-commons@4.1.2?type=jar', + 'pkg:maven/org.springframework.cloud/spring-cloud-context@4.1.2?type=jar', + 'pkg:maven/org.springframework/spring-web@6.1.6?type=jar', + 'pkg:maven/com.fasterxml.jackson.core/jackson-annotations@2.17.0?type=jar', + 'pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.17.0?type=jar', + 'pkg:maven/org.apache.httpcomponents.client5/httpclient5@5.3.1?type=jar', + ], + }, + { + ref: 'pkg:maven/org.apache.httpcomponents.client5/httpclient5@5.3.1?type=jar', + dependsOn: [ + 'pkg:maven/org.apache.httpcomponents.core5/httpcore5@5.2.4?type=jar', + 'pkg:maven/org.apache.httpcomponents.core5/httpcore5-h2@5.2.4?type=jar', + 'pkg:maven/org.slf4j/slf4j-api@2.0.13?type=jar', + ], + }, + { + ref: 'pkg:maven/org.apache.httpcomponents.core5/httpcore5@5.2.4?type=jar', + dependsOn: [], + }, + { + ref: 'pkg:maven/org.apache.httpcomponents.core5/httpcore5-h2@5.2.4?type=jar', + dependsOn: [ + 'pkg:maven/org.apache.httpcomponents.core5/httpcore5@5.2.4?type=jar', + ], + }, + { + ref: 'pkg:maven/org.hsqldb/hsqldb@2.7.2?type=jar', + dependsOn: [], + }, + ], +}; + +export const systemSbomResponse = applicationSbomResponse; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/dependencies/index.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/dependencies/index.ts new file mode 100644 index 00000000000..6a1f719c31a --- /dev/null +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/dependencies/index.ts @@ -0,0 +1,21 @@ +import { HttpResponse, http } from 'msw'; + +import { + applicationSbomResponse, + sbomsResponse, + systemSbomResponse, +} from '@/mocks/instance/dependencies/data'; + +const dependenciesEndpoints = [ + http.get('/instances/:instanceId/actuator/sbom', () => { + return HttpResponse.json(sbomsResponse); + }), + http.get('/instances/:instanceId/actuator/sbom/application', () => { + return HttpResponse.json(applicationSbomResponse); + }), + http.get('/instances/:instanceId/actuator/sbom/system', () => { + return HttpResponse.json(systemSbomResponse); + }), +]; + +export default dependenciesEndpoints; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/flyway/index.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/flyway/index.ts index 13639d54cfd..45908610f7a 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/flyway/index.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/flyway/index.ts @@ -1,10 +1,10 @@ -import { rest } from 'msw'; +import { HttpResponse, http } from 'msw'; import { flyway } from './data.js'; const flywayEndpoints = [ - rest.get('/instances/:instanceId/actuator/flyway', (req, res, ctx) => { - return res(ctx.status(200), ctx.json(flyway)); + http.get('/instances/:instanceId/actuator/flyway', () => { + return HttpResponse.json(flyway); }), ]; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/health/index.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/health/index.ts index 5f257bcc131..a7d99703c0a 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/health/index.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/health/index.ts @@ -1,57 +1,54 @@ -import { rest } from 'msw'; +import { HttpResponse, http } from 'msw'; const healthEndpoint = [ - rest.get('/instances/:instanceId/actuator/health', (req, res, ctx) => { - return res( - ctx.status(200), - ctx.json({ - status: 'UP', - details: { - clientConfigServer: { - status: 'UNKNOWN', - details: { error: 'no property sources located' }, - }, - db: { - status: 'UP', - details: { - database: 'HSQL Database Engine', - validationQuery: 'isValid()', - }, + http.get('/instances/:instanceId/actuator/health', () => { + return HttpResponse.json({ + status: 'UP', + details: { + clientConfigServer: { + status: 'UNKNOWN', + details: { error: 'no property sources located' }, + }, + db: { + status: 'UP', + details: { + database: 'HSQL Database Engine', + validationQuery: 'isValid()', }, - discoveryComposite: { - description: 'Discovery Client not initialized', - status: 'UNKNOWN', - details: { - discoveryClient: { - description: 'Discovery Client not initialized', - status: 'UNKNOWN', - }, + }, + discoveryComposite: { + description: 'Discovery Client not initialized', + status: 'UNKNOWN', + details: { + discoveryClient: { + description: 'Discovery Client not initialized', + status: 'UNKNOWN', }, }, - diskSpace: { - status: 'UP', - details: { - total: 994662584320, - free: 300063879168, - threshold: 10485760, - exists: true, - }, + }, + diskSpace: { + status: 'UP', + details: { + total: 994662584320, + free: 300063879168, + threshold: 10485760, + exists: true, }, - ping: { status: 'UP' }, - reactiveDiscoveryClients: { - description: 'Discovery Client not initialized', - status: 'UNKNOWN', - details: { - 'Simple Reactive Discovery Client': { - description: 'Discovery Client not initialized', - status: 'UNKNOWN', - }, + }, + ping: { status: 'UP' }, + reactiveDiscoveryClients: { + description: 'Discovery Client not initialized', + status: 'UNKNOWN', + details: { + 'Simple Reactive Discovery Client': { + description: 'Discovery Client not initialized', + status: 'UNKNOWN', }, }, - refreshScope: { status: 'UP' }, }, - }) - ); + refreshScope: { status: 'UP' }, + }, + }); }), ]; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/info/index.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/info/index.ts index e68c6ac15eb..6bf2cea6681 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/info/index.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/info/index.ts @@ -1,8 +1,8 @@ -import { rest } from 'msw'; +import { HttpResponse, http } from 'msw'; const infoEndpoint = [ - rest.get('/instances/:instanceId/actuator/info', (req, res, ctx) => { - return res(ctx.status(200), ctx.json({})); + http.get('/instances/:instanceId/actuator/info', () => { + return HttpResponse.json({}); }), ]; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/jolokia/index.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/jolokia/index.ts index 0b11f9028fd..c7209a5d574 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/jolokia/index.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/jolokia/index.ts @@ -1,26 +1,23 @@ -import { rest } from 'msw'; +import { HttpResponse, http } from 'msw'; import { jolokiaList } from './data'; import { jolokiaRead } from '@/mocks/instance/jolokia/data.read'; const jolokiaEndpoint = [ - rest.get('/instances/:instanceId/actuator/jolokia/list', (req, res, ctx) => { - return res(ctx.status(200), ctx.json(jolokiaList)); + http.get('/instances/:instanceId/actuator/jolokia/list', () => { + return HttpResponse.json(jolokiaList); }), - rest.post( - '/instances/:instanceId/actuator/jolokia', - async (req, res, ctx) => { - try { - const body = await req.json(); - if (body.type === 'read') { - return res(ctx.status(200), ctx.json(jolokiaRead)); - } - } catch (e) { - console.error(e); + http.post('/instances/:instanceId/actuator/jolokia', async () => { + try { + const body = { type: 'read' }; + if (body.type === 'read') { + return HttpResponse.json(jolokiaRead); } + } catch (e) { + console.error(e); } - ), + }), ]; export default jolokiaEndpoint; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/liquibase/index.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/liquibase/index.ts index d1407eca098..661bb2f3a6f 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/liquibase/index.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/liquibase/index.ts @@ -1,10 +1,10 @@ -import { rest } from 'msw'; +import { HttpResponse, http } from 'msw'; import { liquibase } from './data.js'; const liquibaseEndpoints = [ - rest.get('/instances/:instanceId/actuator/liquibase', (req, res, ctx) => { - return res(ctx.status(200), ctx.json(liquibase)); + http.get('/instances/:instanceId/actuator/liquibase', () => { + return HttpResponse.json(liquibase); }), ]; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/mappings/index.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/mappings/index.ts index 5b8c5636f45..86b4aed4195 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/mappings/index.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/mappings/index.ts @@ -1,10 +1,10 @@ -import { rest } from 'msw'; +import { HttpResponse, http } from 'msw'; import { mappings } from './data'; const mappingsEndpoint = [ - rest.get('/instances/:instanceId/actuator/mappings', (req, res, ctx) => { - return res(ctx.status(200), ctx.json(mappings)); + http.get('/instances/:instanceId/actuator/mappings', () => { + return HttpResponse.json(mappings); }), ]; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/metrics/data.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/metrics/data.ts new file mode 100644 index 00000000000..5d3e71bb540 --- /dev/null +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/metrics/data.ts @@ -0,0 +1,55 @@ +export const memoryMaxResponse = { + name: 'jvm.memory.max', + description: + 'The maximum amount of memory in bytes that can be used for memory management', + baseUnit: 'bytes', + measurements: [ + { + statistic: 'VALUE', + value: 8589934590, + }, + ], + availableTags: [ + { + tag: 'id', + values: ['G1 Old Gen', 'G1 Survivor Space', 'G1 Eden Space'], + }, + ], +}; + +export const memoryUsedResponse = { + name: 'jvm.memory.used', + description: 'The amount of used memory', + baseUnit: 'bytes', + measurements: [ + { + statistic: 'VALUE', + value: 115390832, + }, + ], + availableTags: [ + { + tag: 'id', + values: ['G1 Survivor Space', 'G1 Old Gen', 'G1 Eden Space', 'Metaspace'], + }, + ], +}; + +export const memoryCommittedResponse = { + name: 'jvm.memory.committed', + description: + 'The amount of memory in bytes that is committed for the Java virtual machine to use', + baseUnit: 'bytes', + measurements: [ + { + statistic: 'VALUE', + value: 197132288, + }, + ], + availableTags: [ + { + tag: 'id', + values: ['G1 Survivor Space', 'G1 Old Gen', 'G1 Eden Space'], + }, + ], +}; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/metrics/index.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/metrics/index.ts new file mode 100644 index 00000000000..cc71e27ae5f --- /dev/null +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/instance/metrics/index.ts @@ -0,0 +1,24 @@ +import { HttpResponse, http } from 'msw'; + +import { + memoryCommittedResponse, + memoryMaxResponse, + memoryUsedResponse, +} from '@/mocks/instance/metrics/data'; + +const metricsEntpoints = [ + http.get('/instances/:instanceId/actuator/metrics/jvm.memory.max', () => { + return HttpResponse.json(memoryMaxResponse); + }), + http.get('/instances/:instanceId/actuator/metrics/jvm.memory.used', () => { + return HttpResponse.json(memoryUsedResponse); + }), + http.get( + '/instances/:instanceId/actuator/metrics/jvm.memory.committed', + () => { + return HttpResponse.json(memoryCommittedResponse); + }, + ), +]; + +export default metricsEntpoints; diff --git a/spring-boot-admin-server-ui/src/main/frontend/mocks/server.ts b/spring-boot-admin-server-ui/src/main/frontend/mocks/server.ts index ea7422f99c1..01145deca9a 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/mocks/server.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/mocks/server.ts @@ -1,21 +1,25 @@ import { setupServer } from 'msw/node'; import auditEventsEndpoint from '@/mocks/instance/auditevents'; +import dependenciesEndpoints from '@/mocks/instance/dependencies'; import flywayEndpoints from '@/mocks/instance/flyway'; import healthEndpoint from '@/mocks/instance/health'; import infoEndpoint from '@/mocks/instance/info'; import jolokiaEndpoint from '@/mocks/instance/jolokia'; import liquibaseEndpoints from '@/mocks/instance/liquibase'; import mappingsEndpoint from '@/mocks/instance/mappings'; +import metricsEntpoints from '@/mocks/instance/metrics'; const handler = [ ...infoEndpoint, ...healthEndpoint, ...mappingsEndpoint, + ...metricsEntpoints, ...liquibaseEndpoints, ...flywayEndpoints, ...auditEventsEndpoint, ...jolokiaEndpoint, + ...dependenciesEndpoints, ]; export const server = setupServer(...handler); diff --git a/spring-boot-admin-server-ui/src/main/frontend/notificationcenter.d.ts b/spring-boot-admin-server-ui/src/main/frontend/notificationcenter.d.ts new file mode 100644 index 00000000000..9e72e6c5cfe --- /dev/null +++ b/spring-boot-admin-server-ui/src/main/frontend/notificationcenter.d.ts @@ -0,0 +1 @@ +declare module '@stekoe/vue-toast-notificationcenter'; diff --git a/spring-boot-admin-server-ui/src/main/frontend/notifications.ts b/spring-boot-admin-server-ui/src/main/frontend/notifications.ts index dbaf29d03cc..3706211c645 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/notifications.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/notifications.ts @@ -45,7 +45,7 @@ const notifyForSingleChange = (application, oldApplication) => { : sbaConfig.uiSettings.faviconDanger, renotify: true, timeout: 5000, - } + }, ); }; @@ -85,14 +85,14 @@ export default { queue .pipe( bufferTime(1000), - filter((n) => n.length > 0) + filter((n) => n.length > 0), ) .subscribe({ next: (events) => { const groupedByChange = groupBy( events, (event) => - `${event.oldApplication.status}-${event.application.status}` + `${event.oldApplication.status}-${event.application.status}`, ); for (const eventsPerChange of values(groupedByChange)) { if (eventsPerChange.length <= 5) { @@ -116,7 +116,7 @@ export default { if (application.status !== oldApplication.status) { queue.next({ application, oldApplication }); } - } + }, ); }, }; diff --git a/spring-boot-admin-server-ui/src/main/frontend/plugins/modal/api.ts b/spring-boot-admin-server-ui/src/main/frontend/plugins/modal/api.ts index 5a72c49b4cd..8145a4a22ec 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/plugins/modal/api.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/plugins/modal/api.ts @@ -32,7 +32,7 @@ export const useModal = (globalProps = {}) => { { innerHTML: body, }, - [] + [], ); // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -45,7 +45,7 @@ export const useModal = (globalProps = {}) => { labelCancel: t('term.cancel'), }), body: bodyFn, - } + }, ); return new Promise((resolve) => { diff --git a/spring-boot-admin-server-ui/src/main/frontend/public/mockServiceWorker.js b/spring-boot-admin-server-ui/src/main/frontend/public/mockServiceWorker.js index 70f0a2b9941..15751fa1994 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/public/mockServiceWorker.js +++ b/spring-boot-admin-server-ui/src/main/frontend/public/mockServiceWorker.js @@ -2,13 +2,15 @@ /* tslint:disable */ /** - * Mock Service Worker (0.49.2). + * Mock Service Worker. * @see https://github.com/mswjs/msw * - Please do NOT modify this file. * - Please do NOT serve this file on production. */ -const INTEGRITY_CHECKSUM = '3d6b9f06410d179a7f7404d4bf4c3c70' +const PACKAGE_VERSION = '2.3.5' +const INTEGRITY_CHECKSUM = '26357c79639bfa20d64c0efca2a87423' +const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') const activeClientIds = new Set() self.addEventListener('install', function () { @@ -47,7 +49,10 @@ self.addEventListener('message', async function (event) { case 'INTEGRITY_CHECK_REQUEST': { sendToClient(client, { type: 'INTEGRITY_CHECK_RESPONSE', - payload: INTEGRITY_CHECKSUM, + payload: { + packageVersion: PACKAGE_VERSION, + checksum: INTEGRITY_CHECKSUM, + }, }) break } @@ -86,12 +91,6 @@ self.addEventListener('message', async function (event) { self.addEventListener('fetch', function (event) { const { request } = event - const accept = request.headers.get('accept') || '' - - // Bypass server-sent events. - if (accept.includes('text/event-stream')) { - return - } // Bypass navigation requests. if (request.mode === 'navigate') { @@ -112,29 +111,8 @@ self.addEventListener('fetch', function (event) { } // Generate unique request ID. - const requestId = Math.random().toString(16).slice(2) - - event.respondWith( - handleRequest(event, requestId).catch((error) => { - if (error.name === 'NetworkError') { - console.warn( - '[MSW] Successfully emulated a network error for the "%s %s" request.', - request.method, - request.url, - ) - return - } - - // At this point, any exception indicates an issue with the original request/response. - console.error( - `\ -[MSW] Caught an exception from the "%s %s" request (%s). This is probably not a problem with Mock Service Worker. There is likely an additional logging output above.`, - request.method, - request.url, - `${error.name}: ${error.message}`, - ) - }), - ) + const requestId = crypto.randomUUID() + event.respondWith(handleRequest(event, requestId)) }) async function handleRequest(event, requestId) { @@ -146,21 +124,24 @@ async function handleRequest(event, requestId) { // this message will pend indefinitely. if (client && activeClientIds.has(client.id)) { ;(async function () { - const clonedResponse = response.clone() - sendToClient(client, { - type: 'RESPONSE', - payload: { - requestId, - type: clonedResponse.type, - ok: clonedResponse.ok, - status: clonedResponse.status, - statusText: clonedResponse.statusText, - body: - clonedResponse.body === null ? null : await clonedResponse.text(), - headers: Object.fromEntries(clonedResponse.headers.entries()), - redirected: clonedResponse.redirected, + const responseClone = response.clone() + + sendToClient( + client, + { + type: 'RESPONSE', + payload: { + requestId, + isMockedResponse: IS_MOCKED_RESPONSE in response, + type: responseClone.type, + status: responseClone.status, + statusText: responseClone.statusText, + body: responseClone.body, + headers: Object.fromEntries(responseClone.headers.entries()), + }, }, - }) + [responseClone.body], + ) })() } @@ -196,20 +177,20 @@ async function resolveMainClient(event) { async function getResponse(event, client, requestId) { const { request } = event - const clonedRequest = request.clone() + + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const requestClone = request.clone() function passthrough() { - // Clone the request because it might've been already used - // (i.e. its body has been read and sent to the client). - const headers = Object.fromEntries(clonedRequest.headers.entries()) + const headers = Object.fromEntries(requestClone.headers.entries()) - // Remove MSW-specific request headers so the bypassed requests - // comply with the server's CORS preflight check. - // Operate with the headers as an object because request "Headers" - // are immutable. - delete headers['x-msw-bypass'] + // Remove internal MSW request header so the passthrough request + // complies with any potential CORS preflight checks on the server. + // Some servers forbid unknown request headers. + delete headers['x-msw-intention'] - return fetch(clonedRequest, { headers }) + return fetch(requestClone, { headers }) } // Bypass mocking when the client is not active. @@ -225,57 +206,46 @@ async function getResponse(event, client, requestId) { return passthrough() } - // Bypass requests with the explicit bypass header. - // Such requests can be issued by "ctx.fetch()". - if (request.headers.get('x-msw-bypass') === 'true') { - return passthrough() - } - // Notify the client that a request has been intercepted. - const clientMessage = await sendToClient(client, { - type: 'REQUEST', - payload: { - id: requestId, - url: request.url, - method: request.method, - headers: Object.fromEntries(request.headers.entries()), - cache: request.cache, - mode: request.mode, - credentials: request.credentials, - destination: request.destination, - integrity: request.integrity, - redirect: request.redirect, - referrer: request.referrer, - referrerPolicy: request.referrerPolicy, - body: await request.text(), - bodyUsed: request.bodyUsed, - keepalive: request.keepalive, + const requestBuffer = await request.arrayBuffer() + const clientMessage = await sendToClient( + client, + { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + mode: request.mode, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: requestBuffer, + keepalive: request.keepalive, + }, }, - }) + [requestBuffer], + ) switch (clientMessage.type) { case 'MOCK_RESPONSE': { return respondWithMock(clientMessage.data) } - case 'MOCK_NOT_FOUND': { + case 'PASSTHROUGH': { return passthrough() } - - case 'NETWORK_ERROR': { - const { name, message } = clientMessage.data - const networkError = new Error(message) - networkError.name = name - - // Rejecting a "respondWith" promise emulates a network error. - throw networkError - } } return passthrough() } -function sendToClient(client, message) { +function sendToClient(client, message, transferrables = []) { return new Promise((resolve, reject) => { const channel = new MessageChannel() @@ -287,17 +257,28 @@ function sendToClient(client, message) { resolve(event.data) } - client.postMessage(message, [channel.port2]) + client.postMessage( + message, + [channel.port2].concat(transferrables.filter(Boolean)), + ) }) } -function sleep(timeMs) { - return new Promise((resolve) => { - setTimeout(resolve, timeMs) +async function respondWithMock(response) { + // Setting response status code to 0 is a no-op. + // However, when responding with a "Response.error()", the produced Response + // instance will have status code set to 0. Since it's not possible to create + // a Response instance with status code 0, handle that use-case separately. + if (response.status === 0) { + return Response.error() + } + + const mockedResponse = new Response(response.body, response) + + Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, { + value: true, + enumerable: true, }) -} -async function respondWithMock(response) { - await sleep(response.delay) - return new Response(response.body, response) + return mockedResponse } diff --git a/spring-boot-admin-server-ui/src/main/frontend/sba-config.ts b/spring-boot-admin-server-ui/src/main/frontend/sba-config.ts index 2fdf11db61a..0fe5717c31d 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/sba-config.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/sba-config.ts @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/spring-boot-admin-server-ui/src/main/frontend/services/application.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/services/application.spec.ts index ebe132f0809..b5d320dd202 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/services/application.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/services/application.spec.ts @@ -54,13 +54,15 @@ describe('convertBody', () => { it('should not convert non-json body', () => { expect( - convertBody([{ body: 'foobar', contentType: 'text/plain' }]) + convertBody([{ body: 'foobar', contentType: 'text/plain' }]), ).toEqual([{ body: 'foobar', contentType: 'text/plain' }]); }); it('should convert json body', () => { expect( - convertBody([{ body: '{"foo": "bar"}', contentType: 'application/json' }]) + convertBody([ + { body: '{"foo": "bar"}', contentType: 'application/json' }, + ]), ).toEqual([{ body: { foo: 'bar' }, contentType: 'application/json' }]); }); }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/services/application.ts b/spring-boot-admin-server-ui/src/main/frontend/services/application.ts index 4271e439ddd..96103f91861 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/services/application.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/services/application.ts @@ -20,7 +20,7 @@ import { Observable, concat, from, ignoreElements } from 'rxjs'; import axios, { redirectOn401 } from '../utils/axios'; import waitForPolyfill from '../utils/eventsource-polyfill'; import uri from '../utils/uri'; -import Instance from './instance'; +import Instance, { DOWN_STATES, UNKNOWN_STATES, UP_STATES } from './instance'; const actuatorMimeTypes = [ 'application/vnd.spring-boot.actuator.v2+json', @@ -46,10 +46,40 @@ export const convertBody = (responses) => return res; }); +export const getStatusInfo = (applications: Application[]) => { + const instances = applications.flatMap( + (application) => application.instances, + ); + + const upCount = instances.filter((instance) => + UP_STATES.includes(instance.statusInfo.status), + ).length; + + const downCount = instances.filter((instance) => + DOWN_STATES.includes(instance.statusInfo.status), + ).length; + + const unknownCount = instances.filter((instance) => + UNKNOWN_STATES.includes(instance.statusInfo.status), + ).length; + + return { + upCount, + downCount, + unknownCount, + allUp: upCount === instances.length, + allDown: downCount === instances.length, + allUnknown: unknownCount === instances.length, + someUnknown: unknownCount > 0 && unknownCount < instances.length, + someDown: downCount > 0 && downCount < instances.length, + }; +}; + class Application { public readonly name: string; + public readonly group: string; public readonly instances: Instance[]; - public readonly buildVersion? = {} as {value: string}; + public readonly buildVersion? = {} as { value: string }; public readonly status: string; public readonly statusTimestamp: string; @@ -66,13 +96,13 @@ class Application { }); this.axios.interceptors.response.use( (response) => response, - redirectOn401() + redirectOn401(), ); this.instances = sortBy( instances.map( (i) => new Instance(i), - [(instance) => instance.registration.healthUrl] - ) + [(instance) => instance.registration.healthUrl], + ), ); } @@ -108,7 +138,7 @@ class Application { eventSource.onerror = (err) => observer.error(err); return () => eventSource.close(); - }) + }), ); } @@ -151,7 +181,7 @@ class Application { await this.axios.get(uri`actuator/loggers`, { headers: { Accept: actuatorMimeTypes.join(',') }, }) - ).data + ).data, ); return { responses }; } @@ -161,7 +191,7 @@ class Application { await this.axios.post( uri`actuator/loggers/${name}`, level === null ? {} : { configuredLevel: level }, - { headers: { 'Content-Type': 'application/json' } } + { headers: { 'Content-Type': 'application/json' } }, ) ).data; return { responses }; @@ -173,7 +203,7 @@ class Application { { name, value }, { headers: { 'Content-Type': 'application/json' }, - } + }, ); } @@ -189,6 +219,12 @@ class Application { return this.axios.delete(uri`actuator/caches`); } + async clearCache(name, cacheManager) { + return this.axios.delete(uri`actuator/caches/${name}`, { + params: { cacheManager: cacheManager }, + }); + } + shutdown() { return this.axios.post(uri`actuator/shutdown`); } diff --git a/spring-boot-admin-server-ui/src/main/frontend/services/instance.ts b/spring-boot-admin-server-ui/src/main/frontend/services/instance.ts index 434ffe03bd6..9f537913791 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/services/instance.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/services/instance.ts @@ -13,426 +13,458 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import {AxiosInstance} from 'axios'; +import { AxiosInstance } from 'axios'; import saveAs from 'file-saver'; -import {concat, from, ignoreElements, Observable} from 'rxjs'; +import { Observable, concat, from, ignoreElements } from 'rxjs'; -import axios, {redirectOn401, registerErrorToastInterceptor,} from '../utils/axios.js'; +import axios, { + redirectOn401, + registerErrorToastInterceptor, +} from '../utils/axios.js'; import waitForPolyfill from '../utils/eventsource-polyfill'; import logtail from '../utils/logtail'; import uri from '../utils/uri'; const actuatorMimeTypes = [ - 'application/vnd.spring-boot.actuator.v2+json', - 'application/vnd.spring-boot.actuator.v1+json', - 'application/json', + 'application/vnd.spring-boot.actuator.v2+json', + 'application/vnd.spring-boot.actuator.v1+json', + 'application/json', ].join(','); const isInstanceActuatorRequest = (url: string) => - url.match(/^instances[/][^/]+[/]actuator([/].*)?$/); + url.match(/^instances[/][^/]+[/]actuator([/].*)?$/); class Instance { - public readonly id: string; - public registration: Registration; - public endpoints: any[]; - public tags: { [key: string]: string }[]; - public statusTimestamp: string; - public buildVersion: string; - public statusInfo: StatusInfo; - private readonly axios: AxiosInstance; - - constructor({id, ...instance}) { - Object.assign(this, instance); - this.id = id; - this.axios = axios.create({ - withCredentials: true, - baseURL: uri`instances/${this.id}`, - headers: {Accept: actuatorMimeTypes}, - }); - this.axios.interceptors.response.use( - (response) => response, - redirectOn401( - (error) => - !isInstanceActuatorRequest(error.config.baseURL + error.config.url) - ) - ); - registerErrorToastInterceptor(this.axios); - } - - get isUnregisterable() { - return this.registration.source === 'http-api'; - } - - static async fetchEvents() { - return axios.get(uri`instances/events`, { - headers: {Accept: 'application/json'}, - }); - } - - static getEventStream() { - return concat( - from(waitForPolyfill()).pipe(ignoreElements()), - Observable.create((observer) => { - const eventSource = new EventSource('instances/events'); - eventSource.onmessage = (message) => - observer.next({ - ...message, - data: JSON.parse(message.data), - }); - eventSource.onerror = (err) => observer.error(err); - return () => { - eventSource.close(); - }; - }) - ); - } - - static async get(id) { - return axios.get(uri`instances/${id}`, { - headers: {Accept: 'application/json'}, - transformResponse(data) { - if (!data) { - return data; - } - const instance = JSON.parse(data); - return new Instance(instance); - }, - }); - } - - static _toMBeans(data) { + public readonly id: string; + public registration: Registration; + public endpoints: any[] = []; + public tags: { [key: string]: string }[]; + public statusTimestamp: string; + public buildVersion: string; + public statusInfo: StatusInfo; + private readonly axios: AxiosInstance; + + constructor({ id, ...instance }) { + Object.assign(this, instance); + this.id = id; + this.axios = axios.create({ + withCredentials: true, + baseURL: uri`instances/${this.id}`, + headers: { Accept: actuatorMimeTypes }, + }); + this.axios.interceptors.response.use( + (response) => response, + redirectOn401( + (error) => + !isInstanceActuatorRequest(error.config.baseURL + error.config.url), + ), + ); + registerErrorToastInterceptor(this.axios); + } + + get isUnregisterable() { + return this.registration.source === 'http-api'; + } + + static async fetchEvents() { + return axios.get(uri`instances/events`, { + headers: { Accept: 'application/json' }, + }); + } + + static getEventStream() { + return concat( + from(waitForPolyfill()).pipe(ignoreElements()), + Observable.create((observer) => { + const eventSource = new EventSource('instances/events'); + eventSource.onmessage = (message) => + observer.next({ + ...message, + data: JSON.parse(message.data), + }); + eventSource.onerror = (err) => observer.error(err); + return () => { + eventSource.close(); + }; + }), + ); + } + + static async get(id) { + return axios.get(uri`instances/${id}`, { + headers: { Accept: 'application/json' }, + transformResponse(data) { if (!data) { - return data; - } - const raw = JSON.parse(data); - return Object.entries(raw.value).map(([domain, mBeans]) => ({ - domain, - mBeans: Object.entries(mBeans).map(([descriptor, mBean]) => ({ - descriptor: descriptor, - ...mBean, - })), - })); - } - - getId() { - return this.id; - } - - hasEndpoint(endpointId) { - return this.endpoints.some((endpoint) => endpoint.id === endpointId); - } - - async unregister() { - return this.axios.delete('', { - headers: {Accept: 'application/json'}, - }); - } - - async fetchInfo() { - return this.axios.get(uri`actuator/info`); - } - - async fetchMetrics() { - return this.axios.get(uri`actuator/metrics`); - } - - async fetchMetric(metric, tags) { - const params = new URLSearchParams(); - if (tags) { - let firstElementDuplicated = false; - Object.entries(tags) - .filter(([, value]) => typeof value !== 'undefined' && value !== null) - .forEach(([name, value]) => { - params.append('tag', `${name}:${value}`); - - if (!firstElementDuplicated) { - // workaround for tags that contains comma - // take a look at https://github.com/spring-projects/spring-framework/issues/23820#issuecomment-543087878 - // If there is single tag specified and name or value contains comma then it will be incorrectly split into several parts - // To bypass it we duplicate first tag. - params.append('tag', `${name}:${value}`); - firstElementDuplicated = true; - } - }); - } - return this.axios.get(uri`actuator/metrics/${metric}`, { - params, - }); - } - - async fetchHealth() { - return await this.axios.get(uri`actuator/health`, {validateStatus: null}); - } - - async fetchHealthGroup(groupName: string) { - return await this.axios.get(uri`actuator/health/${groupName}`, {validateStatus: null}); - } - - async fetchEnv(name) { - return this.axios.get(uri`actuator/env/${name || ''}`); - } - - async fetchConfigprops() { - return this.axios.get(uri`actuator/configprops`); - } - - async hasEnvManagerSupport() { - const response = await this.axios.options(uri`actuator/env`); - return ( - response.headers['allow'] && response.headers['allow'].includes('POST') - ); - } - - async resetEnv() { - return this.axios.delete(uri`actuator/env`); - } - - async setEnv(name, value) { - return this.axios.post( - uri`actuator/env`, - {name, value}, - { - headers: {'Content-Type': 'application/json'}, - } - ); - } - - async refreshContext() { - return this.axios.post(uri`actuator/refresh`); - } - - async fetchLiquibase() { - return this.axios.get(uri`actuator/liquibase`); - } - - async fetchScheduledTasks() { - return this.axios.get(uri`actuator/scheduledtasks`); - } - - async fetchGatewayGlobalFilters() { - return this.axios.get(uri`actuator/gateway/globalfilters`); - } - - async addGatewayRoute(route) { - return this.axios.post(uri`actuator/gateway/routes/${route.id}`, route, { - headers: {'Content-Type': 'application/json'}, - }); - } - - async fetchGatewayRoutes() { - return this.axios.get(uri`actuator/gateway/routes`); - } - - async deleteGatewayRoute(routeId) { - return this.axios.delete(uri`actuator/gateway/routes/${routeId}`); - } - - async refreshGatewayRoutesCache() { - return this.axios.post(uri`actuator/gateway/refresh`); - } - - async fetchCaches() { - return this.axios.get(uri`actuator/caches`); - } - - async clearCaches() { - return this.axios.delete(uri`actuator/caches`); - } - - async clearCache(name, cacheManager) { - return this.axios.delete(uri`actuator/caches/${name}`, { - params: {cacheManager: cacheManager}, - }); - } - - async fetchFlyway() { - return this.axios.get(uri`actuator/flyway`); - } - - async fetchLoggers() { - return this.axios.get(uri`actuator/loggers`); - } - - async configureLogger(name, level) { - await this.axios.post( - uri`actuator/loggers/${name}`, - level === null ? {} : {configuredLevel: level}, - { - headers: {'Content-Type': 'application/json'}, - } - ); - } - - async fetchHttptrace() { - return this.axios.get(uri`actuator/httptrace`); - } - - async fetchHttpExchanges() { - return this.axios.get(uri`actuator/httpexchanges`); - } - - async fetchBeans() { - return this.axios.get(uri`actuator/beans`); - } - - async fetchThreaddump() { - return this.axios.get(uri`actuator/threaddump`); - } - - async downloadThreaddump() { - const res = await this.axios.get(uri`actuator/threaddump`, { - headers: {Accept: 'text/plain'}, - }); - const blob = new Blob([res.data], {type: 'text/plain;charset=utf-8'}); - saveAs(blob, this.registration.name + '-threaddump.txt'); - } - - async fetchAuditevents({after, type, principal}) { - return this.axios.get(uri`actuator/auditevents`, { - params: { - after: after.toISOString(), - type: type || undefined, - principal: principal || undefined, - }, - }); - } - - async fetchSessionsByUsername(username) { - return this.axios.get(uri`actuator/sessions`, { - params: { - username: username || undefined, - }, - }); - } - - async fetchSession(sessionId) { - return this.axios.get(uri`actuator/sessions/${sessionId}`); - } - - async deleteSession(sessionId) { - return this.axios.delete(uri`actuator/sessions/${sessionId}`); - } - - async fetchStartup() { - const optionsResponse = await this.axios.options(uri`actuator/startup`); - if ( - optionsResponse.headers.allow && - optionsResponse.headers.allow.includes('GET') - ) { - return this.axios.get(uri`actuator/startup`); + return data; } - - return this.axios.post(uri`actuator/startup`); - } - - streamLogfile(interval) { - return logtail( - (opt) => this.axios.get(uri`actuator/logfile`, opt), - interval - ); - } - - async listMBeans() { - return this.axios.get(uri`actuator/jolokia/list`, { - headers: {Accept: 'application/json'}, - params: {canonicalNaming: false}, - transformResponse: Instance._toMBeans, - }); - } - - async readMBeanAttributes(domain, mBean) { - const body = { - type: 'read', - mbean: `${domain}:${mBean}`, - config: {ignoreErrors: true}, - }; - return this.axios.post(uri`actuator/jolokia`, body, { - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, - }); - } - - async writeMBeanAttribute(domain, mBean, attribute, value) { - const body = { - type: 'write', - mbean: `${domain}:${mBean}`, - attribute, - value, - }; - return this.axios.post(uri`actuator/jolokia`, body, { - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, + const instance = JSON.parse(data); + return new Instance(instance); + }, + }); + } + + static _toMBeans(data) { + if (!data) { + return data; + } + const raw = JSON.parse(data); + return Object.entries(raw.value).map(([domain, mBeans]) => ({ + domain, + mBeans: Object.entries(mBeans).map(([descriptor, mBean]) => ({ + descriptor: descriptor, + ...mBean, + })), + })); + } + + getId() { + return this.id; + } + + hasEndpoint(endpointId) { + return this.endpoints.some((endpoint) => endpoint.id === endpointId); + } + + async unregister() { + return this.axios.delete('', { + headers: { Accept: 'application/json' }, + }); + } + + async fetchInfo() { + return this.axios.get(uri`actuator/info`); + } + + async fetchMetrics() { + return this.axios.get(uri`actuator/metrics`); + } + + async fetchMetric(metric, tags) { + const params = new URLSearchParams(); + if (tags) { + let firstElementDuplicated = false; + Object.entries(tags) + .filter(([, value]) => typeof value !== 'undefined' && value !== null) + .forEach(([name, value]) => { + params.append('tag', `${name}:${value}`); + + if (!firstElementDuplicated) { + // workaround for tags that contains comma + // take a look at https://github.com/spring-projects/spring-framework/issues/23820#issuecomment-543087878 + // If there is single tag specified and name or value contains comma then it will be incorrectly split into several parts + // To bypass it we duplicate first tag. + params.append('tag', `${name}:${value}`); + firstElementDuplicated = true; + } }); } - - async invokeMBeanOperation(domain, mBean, operation, args) { - const body = { - type: 'exec', - mbean: `${domain}:${mBean}`, - operation, - arguments: args, - }; - return this.axios.post(uri`actuator/jolokia`, body, { - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, - }); - } - - async fetchMappings() { - return this.axios.get(uri`actuator/mappings`); - } - - async fetchQuartzJobs() { - return this.axios.get(uri`actuator/quartz/jobs`, { - headers: {Accept: 'application/json'}, - }); - } - - async fetchQuartzJob(group, name) { - return this.axios.get(uri`actuator/quartz/jobs/${group}/${name}`, { - headers: {Accept: 'application/json'}, - }); - } - - async fetchQuartzTriggers() { - return this.axios.get(uri`actuator/quartz/triggers`, { - headers: {Accept: 'application/json'}, - }); - } - - async fetchQuartzTrigger(group, name) { - return this.axios.get(uri`actuator/quartz/triggers/${group}/${name}`, { - headers: {Accept: 'application/json'}, - }); - } - - shutdown() { - return this.axios.post(uri`actuator/shutdown`); - } - - restart() { - return this.axios.post(uri`actuator/restart`); - } + return this.axios.get(uri`actuator/metrics/${metric}`, { + params, + }); + } + + async fetchHealth() { + return await this.axios.get(uri`actuator/health`, { validateStatus: null }); + } + + async fetchHealthGroup(groupName: string) { + return await this.axios.get(uri`actuator/health/${groupName}`, { + validateStatus: null, + }); + } + + async fetchEnv(name) { + return this.axios.get(uri`actuator/env/${name || ''}`); + } + + async fetchConfigprops() { + return this.axios.get(uri`actuator/configprops`); + } + + async hasEnvManagerSupport() { + const response = await this.axios.options(uri`actuator/env`); + return ( + response.headers['allow'] && response.headers['allow'].includes('POST') + ); + } + + async resetEnv() { + return this.axios.delete(uri`actuator/env`); + } + + async setEnv(name, value) { + return this.axios.post( + uri`actuator/env`, + { name, value }, + { + headers: { 'Content-Type': 'application/json' }, + }, + ); + } + + async refreshContext() { + return this.axios.post(uri`actuator/refresh`); + } + + async fetchLiquibase() { + return this.axios.get(uri`actuator/liquibase`); + } + + async fetchScheduledTasks() { + return this.axios.get(uri`actuator/scheduledtasks`); + } + + async fetchGatewayGlobalFilters() { + return this.axios.get(uri`actuator/gateway/globalfilters`); + } + + async addGatewayRoute(route) { + return this.axios.post(uri`actuator/gateway/routes/${route.id}`, route, { + headers: { 'Content-Type': 'application/json' }, + }); + } + + async fetchGatewayRoutes() { + return this.axios.get(uri`actuator/gateway/routes`); + } + + async deleteGatewayRoute(routeId) { + return this.axios.delete(uri`actuator/gateway/routes/${routeId}`); + } + + async refreshGatewayRoutesCache() { + return this.axios.post(uri`actuator/gateway/refresh`); + } + + async fetchCaches() { + return this.axios.get(uri`actuator/caches`); + } + + async clearCaches() { + return this.axios.delete(uri`actuator/caches`); + } + + async clearCache(name, cacheManager) { + return this.axios.delete(uri`actuator/caches/${name}`, { + params: { cacheManager: cacheManager }, + }); + } + + async fetchFlyway() { + return this.axios.get(uri`actuator/flyway`); + } + + async fetchLoggers() { + return this.axios.get(uri`actuator/loggers`); + } + + async configureLogger(name, level) { + await this.axios.post( + uri`actuator/loggers/${name}`, + level === null ? {} : { configuredLevel: level }, + { + headers: { 'Content-Type': 'application/json' }, + }, + ); + } + + async fetchHttptrace() { + return this.axios.get(uri`actuator/httptrace`); + } + + async fetchHttpExchanges() { + return this.axios.get(uri`actuator/httpexchanges`); + } + + async fetchBeans() { + return this.axios.get(uri`actuator/beans`); + } + + async fetchConditions() { + return this.axios.get(uri`actuator/conditions`); + } + + async fetchThreaddump() { + return this.axios.get(uri`actuator/threaddump`); + } + + async downloadThreaddump() { + const res = await this.axios.get(uri`actuator/threaddump`, { + headers: { Accept: 'text/plain' }, + }); + const blob = new Blob([res.data], { type: 'text/plain;charset=utf-8' }); + saveAs(blob, this.registration.name + '-threaddump.txt'); + } + + async fetchAuditevents({ after, type, principal }) { + return this.axios.get(uri`actuator/auditevents`, { + params: { + after: after.toISOString(), + type: type || undefined, + principal: principal || undefined, + }, + }); + } + + async fetchSessionsByUsername(username) { + return this.axios.get(uri`actuator/sessions`, { + params: { + username: username || undefined, + }, + }); + } + + async fetchSession(sessionId) { + return this.axios.get(uri`actuator/sessions/${sessionId}`); + } + + async deleteSession(sessionId) { + return this.axios.delete(uri`actuator/sessions/${sessionId}`); + } + + async fetchStartup() { + const optionsResponse = await this.axios.options(uri`actuator/startup`); + if ( + optionsResponse.headers.allow && + optionsResponse.headers.allow.includes('GET') + ) { + return this.axios.get(uri`actuator/startup`); + } + + return this.axios.post(uri`actuator/startup`); + } + + streamLogfile(interval) { + return logtail( + (opt) => this.axios.get(uri`actuator/logfile`, opt), + interval, + ); + } + + async listMBeans() { + return this.axios.get(uri`actuator/jolokia/list`, { + headers: { Accept: 'application/json' }, + params: { canonicalNaming: false }, + transformResponse: Instance._toMBeans, + }); + } + + async readMBeanAttributes(domain, mBean) { + const body = { + type: 'read', + mbean: `${domain}:${mBean}`, + config: { ignoreErrors: true }, + }; + return this.axios.post(uri`actuator/jolokia`, body, { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }); + } + + async writeMBeanAttribute(domain, mBean, attribute, value) { + const body = { + type: 'write', + mbean: `${domain}:${mBean}`, + attribute, + value, + }; + return this.axios.post(uri`actuator/jolokia`, body, { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }); + } + + async invokeMBeanOperation(domain, mBean, operation, args) { + const body = { + type: 'exec', + mbean: `${domain}:${mBean}`, + operation, + arguments: args, + }; + return this.axios.post(uri`actuator/jolokia`, body, { + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json', + }, + }); + } + + async fetchMappings() { + return this.axios.get(uri`actuator/mappings`); + } + + async fetchQuartzJobs() { + return this.axios.get(uri`actuator/quartz/jobs`, { + headers: { Accept: 'application/json' }, + }); + } + + async fetchQuartzJob(group, name) { + return this.axios.get(uri`actuator/quartz/jobs/${group}/${name}`, { + headers: { Accept: 'application/json' }, + }); + } + + async fetchQuartzTriggers() { + return this.axios.get(uri`actuator/quartz/triggers`, { + headers: { Accept: 'application/json' }, + }); + } + + async fetchQuartzTrigger(group, name) { + return this.axios.get(uri`actuator/quartz/triggers/${group}/${name}`, { + headers: { Accept: 'application/json' }, + }); + } + + async fetchSbomIds() { + return this.axios.get(uri`actuator/sbom`, { + headers: { Accept: 'application/json' }, + }); + } + + async fetchSbom(id) { + return this.axios.get(uri`actuator/sbom/${id}`, { + headers: { Accept: '*/*' }, + }); + } + + shutdown() { + return this.axios.post(uri`actuator/shutdown`); + } + + restart() { + return this.axios.post(uri`actuator/restart`); + } } export default Instance; -type Registration = { - name: string - managementUrl?: string - healthUrl: string - serviceUrl?: string - source: string - metadata?: { [key: string]: string } [] -} +export type Registration = { + name: string; + managementUrl?: string; + healthUrl: string; + serviceUrl?: string; + source: string; + metadata?: { [key: string]: string }[]; +}; type StatusInfo = { - status: string - details: { [key: string]: string } -} + status: + | 'UNKNOWN' + | 'OUT_OF_SERVICE' + | 'UP' + | 'DOWN' + | 'OFFLINE' + | 'RESTRICTED' + | string; + details: { [key: string]: string }; +}; + +export const DOWN_STATES = ['OUT_OF_SERVICE', 'DOWN', 'OFFLINE', 'RESTRICTED']; +export const UP_STATES = ['UP']; +export const UNKNOWN_STATES = ['UNKNOWN']; diff --git a/spring-boot-admin-server-ui/src/main/frontend/services/instanceGroupService.ts b/spring-boot-admin-server-ui/src/main/frontend/services/instanceGroupService.ts deleted file mode 100644 index 37bcab2ebeb..00000000000 --- a/spring-boot-admin-server-ui/src/main/frontend/services/instanceGroupService.ts +++ /dev/null @@ -1,44 +0,0 @@ -import Instance from "@/services/instance"; -import {groupBy, sortBy, transform} from "lodash-es"; -import Application from "@/services/application"; - -const groupingFunctions = { - 'application': (instance: Instance) => instance.registration.name, - 'group': (instance: Instance) => instance.registration.metadata?.['group'] ?? "term.no_group", -} - -export type GroupingType = keyof typeof groupingFunctions; - -export type InstancesListType = { - name?: string; - statusKey?: string; - status?: string; - instances?: Instance[]; - applications?: Application[]; -} - -export const groupApplicationsBy = (applications: Application[], groupingFunction: GroupingType) => { - const instances = applications.flatMap(application => application.instances); - return groupInstancesBy(instances, groupingFunction); -} - -export const groupInstancesBy = (instances: Instance[], groupingFunction: GroupingType) => { - const grouped = groupBy( - instances, - groupingFunctions[groupingFunction] - ); - - const list = transform( - grouped, - (result, instances, name) => { - result.push({ - name, - instances: sortBy(instances, [ - (instance) => instance.registration.name, - ]), - }); - }, []); - - return sortBy(list, [(item) => item.status]); -} - diff --git a/spring-boot-admin-server-ui/src/main/frontend/services/notification-filter.ts b/spring-boot-admin-server-ui/src/main/frontend/services/notification-filter.ts index ec41e590c7d..16d4fe8f5fb 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/services/notification-filter.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/services/notification-filter.ts @@ -13,85 +13,90 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +import moment from 'moment'; + import sbaConfig from '@/sba-config'; import axios from '@/utils/axios'; import uri from '@/utils/uri'; -import Application from "@/services/application"; -import Instance from "@/services/instance"; - -export type NotificationFilterProps = { - id: string, - applicationName: string, - instanceId: string, - expiry: string, - expired: boolean -} class NotificationFilter { - public readonly expired: boolean; - private readonly id: string; - private readonly applicationName: string; - private readonly instanceId: string; - - constructor({id, applicationName, instanceId, expiry, expired, ...filter}: NotificationFilterProps) { - Object.assign(this, filter); - this.id = id; - this.applicationName = applicationName; - this.instanceId = instanceId; - this.expired = expired; - } + private id: string; + private applicationName: string; + private instanceId: string; + private expiry: moment.Moment | null; - static isSupported() { - return Boolean(sbaConfig.uiSettings.notificationFilterEnabled); - } + constructor({ expiry, ...filter }) { + Object.assign(this, filter); + this.expiry = expiry ? moment(expiry) : null; + } - static async getFilters() { - return axios.get('notifications/filters', { - transformResponse: NotificationFilter._transformResponse, - }); + affects(obj) { + if (!obj) { + return false; } - static async addFilter(object: Instance | Application, ttl: number) { - const params = {ttl} as { ttl: number, applicationName?: string; instanceId?: string }; - if (object instanceof Application) { - params.applicationName = object.name; - } else if ('id' in object) { - params.instanceId = object.id; - } - return axios.post('notifications/filters', null, { - params, - transformResponse: NotificationFilter._transformResponse, - }); + if (this.isApplicationFilter) { + return this.applicationName === obj.name; } - static _transformResponse(data: any) { - if (!data) { - return data; - } - const json = JSON.parse(data); - if (json instanceof Array) { - return json - .map((notificationFilter) => new NotificationFilter(notificationFilter)) - .filter((f) => !f.expired); - } - return new NotificationFilter(json); + if (this.isInstanceFilter) { + return this.instanceId === obj.id; } - affects(obj: Instance | Application) { - if (!obj) { - return false; - } + return false; + } + + get isApplicationFilter() { + return this.applicationName != null; + } - if (obj instanceof Application) { - return this.applicationName === obj.name; - } + get isInstanceFilter() { + return this.instanceId != null; + } - return this.instanceId === obj.id; + async delete() { + return axios.delete(uri`notifications/filters/${this.id}`); + } + + static isSupported() { + return Boolean(sbaConfig.uiSettings.notificationFilterEnabled); + } + + static async getFilters() { + return axios.get('notifications/filters', { + transformResponse: NotificationFilter._transformResponse, + }); + } + + static async addFilter(object, ttl) { + const params = { ttl }; + if ('name' in object) { + params.applicationName = object.name; + } else if ('id' in object) { + params.instanceId = object.id; } + return axios.post('notifications/filters', null, { + params, + transformResponse: NotificationFilter._transformResponse, + }); + } - async delete() { - return axios.delete(uri`notifications/filters/${this.id}`); + static _transformResponse(data) { + if (!data) { + return data; } + const json = JSON.parse(data); + if (json instanceof Array) { + return json + .map(NotificationFilter._toNotificationFilters) + .filter((f) => !f.expired); + } + return NotificationFilter._toNotificationFilters(json); + } + + static _toNotificationFilters(notificationFilter) { + return new NotificationFilter(notificationFilter); + } } export default NotificationFilter; diff --git a/spring-boot-admin-server-ui/src/main/frontend/services/startup-activator-tree.ts b/spring-boot-admin-server-ui/src/main/frontend/services/startup-activator-tree.ts index 3e4b4230a27..db1b722749a 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/services/startup-activator-tree.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/services/startup-activator-tree.ts @@ -29,7 +29,7 @@ export class StartupActuatorEventTree { getByDepth(depth) { return this.getEvents().filter( - (event) => event.startupStep.depth === depth + (event) => event.startupStep.depth === depth, ); } @@ -39,7 +39,7 @@ export class StartupActuatorEventTree { getByParentId(parentId) { return this.getEvents().filter( - (event) => event.startupStep.parentId === parentId + (event) => event.startupStep.parentId === parentId, ); } diff --git a/spring-boot-admin-server-ui/src/main/frontend/services/startup-actuator.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/services/startup-actuator.spec.ts index dca00791a70..5732c481ec7 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/services/startup-actuator.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/services/startup-actuator.spec.ts @@ -17,14 +17,15 @@ import { cloneDeep } from 'lodash-es'; import { beforeEach, describe, expect, it } from 'vitest'; import { StartupActuatorService } from './startup-actuator'; +import fixture from './startup-actuator.fixture.spec.json'; describe('StartupActuatorService', () => { - let data = {}; - let events = {}; + let data: any = {}; + let events: any = {}; beforeEach(() => { // eslint-disable-next-line @typescript-eslint/no-var-requires - data = cloneDeep(require('./startup-actuator.fixture.spec.json')); + data = cloneDeep(fixture); events = data.timeline.events; }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/services/startup-actuator.ts b/spring-boot-admin-server-ui/src/main/frontend/services/startup-actuator.ts index f91ff20cdd7..57c9f34108c 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/services/startup-actuator.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/services/startup-actuator.ts @@ -36,11 +36,11 @@ export const StartupActuatorService = { .map((event) => { event.startupStep.parent = this.getById( events, - event.startupStep.parentId + event.startupStep.parentId, ); event.startupStep.children = this.getByParentId( events, - event.startupStep.id + event.startupStep.id, ); event.startupStep.tags = event.startupStep.tags.map(this.parseTag); diff --git a/spring-boot-admin-server-ui/src/main/frontend/shell/navbar.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/shell/navbar.spec.ts index 4b08e28e6c9..3f4c27d5867 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/shell/navbar.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/shell/navbar.spec.ts @@ -7,9 +7,8 @@ import Navbar from '@/shell/navbar.vue'; import { render } from '@/test-utils'; vi.mock('@/sba-config', async () => { - const sbaConfig = await vi.importActual( - '@/sba-config' - ); + const sbaConfig = + await vi.importActual('@/sba-config'); return { ...sbaConfig, diff --git a/spring-boot-admin-server-ui/src/main/frontend/shell/sba-dropdown-logout-item.vue b/spring-boot-admin-server-ui/src/main/frontend/shell/sba-dropdown-logout-item.vue index 012f97a1045..30c90d0733b 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/shell/sba-dropdown-logout-item.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/shell/sba-dropdown-logout-item.vue @@ -21,7 +21,7 @@ import sbaConfig from '@/sba-config'; const readCookie = (name) => { const match = document.cookie.match( - new RegExp('(^|;\\s*)(' + name + ')=([^;]*)') + new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'), ); return match ? decodeURIComponent(match[3]) : null; }; diff --git a/spring-boot-admin-server-ui/src/main/frontend/shell/sba-nav-language-selector.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/shell/sba-nav-language-selector.spec.ts index 7af359c9f23..5451f7f5002 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/shell/sba-nav-language-selector.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/shell/sba-nav-language-selector.spec.ts @@ -77,6 +77,6 @@ describe('NavbarItemLanguageSelector', () => { }); await userEvent.click(await screen.findByText(expected)); - } + }, ); }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/shell/sba-nav-language-selector.vue b/spring-boot-admin-server-ui/src/main/frontend/shell/sba-nav-language-selector.vue index 56a51716e05..374349032c3 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/shell/sba-nav-language-selector.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/shell/sba-nav-language-selector.vue @@ -86,7 +86,7 @@ const mapLocale = (locale) => { locale, label, }; - } catch (e) { + } catch { return { locale, label: locale, diff --git a/spring-boot-admin-server-ui/src/main/frontend/store.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/store.spec.ts index 1250d40019f..3f4fb64ca8a 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/store.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/store.spec.ts @@ -1,5 +1,5 @@ import { waitFor } from '@testing-library/vue'; -import { rest } from 'msw'; +import { HttpResponse, http } from 'msw'; import { ReplaySubject } from 'rxjs'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; @@ -22,9 +22,9 @@ describe('store.js', () => { beforeEach(() => { server.use( - rest.get('/applications', (req, res, ctx) => { - return res(ctx.status(200), ctx.json([])); - }) + http.get('/applications', () => { + return HttpResponse.json([]); + }), ); changedListener = vi.fn(); diff --git a/spring-boot-admin-server-ui/src/main/frontend/store.ts b/spring-boot-admin-server-ui/src/main/frontend/store.ts index 6d0df303cd4..b1b3f09b86c 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/store.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/store.ts @@ -30,7 +30,7 @@ import Application from './services/application.js'; export const findInstance = ( applications: Application[], - instanceId: string + instanceId: string, ) => { for (const application of applications) { const instance = application.findInstance(instanceId); @@ -43,10 +43,10 @@ export const findInstance = ( export const findApplicationForInstance = ( applications: Application[], - instanceId: string + instanceId: string, ) => { return applications.find((application) => - Boolean(application.findInstance(instanceId)) + Boolean(application.findInstance(instanceId)), ); }; @@ -93,7 +93,7 @@ export default class ApplicationStore { } const list = defer(() => Application.list()).pipe( tap(() => this._dispatchEvent('connected')), - concatMap((message) => message.data) + concatMap((message) => message.data), ); const stream = Application.getStream().pipe(map((message) => message.data)); @@ -103,11 +103,11 @@ export default class ApplicationStore { retryWhen((errors) => errors.pipe( tap((error) => this._dispatchEvent('error', error)), - delay(5000) - ) + delay(5000), + ), ), bufferTime(250), - filter((a) => a.length > 0) + filter((a) => a.length > 0), ) .subscribe({ next: (applications) => this.updateApplications(applications), @@ -135,9 +135,9 @@ export default class ApplicationStore { } stop() { - if (this.subscription) { + if (this.subscription && !this.subscription.closed) { try { - !this.subscription.closed && this.subscription.unsubscribe(); + this.subscription.unsubscribe(); } finally { this.subscription = null; } diff --git a/spring-boot-admin-server-ui/src/main/frontend/test-utils.ts b/spring-boot-admin-server-ui/src/main/frontend/test-utils.ts index 4ce1be88efc..887ec96577b 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/test-utils.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/test-utils.ts @@ -1,5 +1,5 @@ import NotificationcenterPlugin from '@stekoe/vue-toast-notificationcenter'; -import { render as tlRender } from '@testing-library/vue'; +import { RenderResult, render as tlRender } from '@testing-library/vue'; import { RouterLinkStub } from '@vue/test-utils'; import { merge } from 'lodash-es'; import { createI18n } from 'vue-i18n'; @@ -21,7 +21,7 @@ for (const modulesKey in modules) { export let router; createViewRegistry(); -export const render = (testComponent, options?) => { +export const render = (testComponent, options?): RenderResult => { const routes = [{ path: '/', component: testComponent }]; if (testComponent.install) { const viewRegistry = new ViewRegistry(); @@ -60,8 +60,7 @@ export const render = (testComponent, options?) => { stubs: { RouterLink: RouterLinkStub }, }, }, - options + options, ); - const utils = tlRender(testComponent, renderOptions); - return { ...utils }; + return tlRender(testComponent, renderOptions); }; diff --git a/spring-boot-admin-server-ui/src/main/frontend/tests/setup.ts b/spring-boot-admin-server-ui/src/main/frontend/tests/setup.ts index 80fc782290c..6801789c0c0 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/tests/setup.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/tests/setup.ts @@ -1,6 +1,6 @@ import '@testing-library/jest-dom/vitest'; import { cleanup } from '@testing-library/vue'; -import { afterAll, afterEach, beforeAll, expect, vi } from 'vitest'; +import { afterAll, afterEach, beforeAll, vi } from 'vitest'; import { server } from '@/mocks/server'; diff --git a/spring-boot-admin-server-ui/src/main/frontend/toast-theme.css b/spring-boot-admin-server-ui/src/main/frontend/toast-theme.css index 3cb411d7ebb..8eefabc25e2 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/toast-theme.css +++ b/spring-boot-admin-server-ui/src/main/frontend/toast-theme.css @@ -1,6 +1,6 @@ @import '@stekoe/vue-toast-notificationcenter/dist/style.css'; .v-toast-container { - z-index: 100; - padding: 4em 1em; + z-index: 100; + padding: 4em 1em; } diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/autolink.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/autolink.spec.ts index c15086edc04..f01d50950e6 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/utils/autolink.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/autolink.spec.ts @@ -26,7 +26,7 @@ describe('autolink should', () => { it('return string with anchor tag for the hyperlink', () => { const str = 'Please visit http://example.com.'; expect(autolink(str)).toBe( - 'Please visit http://example.com.' + 'Please visit http://example.com.', ); }); @@ -41,7 +41,7 @@ describe('autolink should', () => { }, }); expect(customAutolink(str)).toBe( - 'Please visit extraordinary.com/very…rlink.' + 'Please visit extraordinary.com/very…rlink.', ); }); @@ -49,7 +49,7 @@ describe('autolink should', () => { const str = '{"name":"John Smith","links":[{"rel":"random-link1","href":"https://localhost:8000/api/123/query?action=do_something&age=21","hreflang":null,"media":null,"title":null,"type":null,"deprecation":null}]}'; expect(autolink(str)).toBe( - '{"name":"John Smith","links":[{"rel":"random-link1","href":"https://localhost:8000/api/123/query?action=do_something&age=21","hreflang":null,"media":null,"title":null,"type":null,"deprecation":null}]}' + '{"name":"John Smith","links":[{"rel":"random-link1","href":"https://localhost:8000/api/123/query?action=do_something&age=21","hreflang":null,"media":null,"title":null,"type":null,"deprecation":null}]}', ); }); }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/axios.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/axios.spec.ts index 7bb8123d2eb..a69386c4de2 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/utils/axios.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/axios.spec.ts @@ -58,7 +58,7 @@ describe('redirectOn401', () => { } expect(window.location.assign).toBeCalledWith( - 'login?redirectTo=http%3A%2F%2Fexample.com%2F&error=401' + 'login?redirectTo=http%3A%2F%2Fexample.com%2F&error=401', ); }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/axios.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/axios.ts index a71eaf6cb90..e78809aae09 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/utils/axios.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/axios.ts @@ -28,7 +28,9 @@ export const redirectOn401 = (error) => { if (error.response && error.response.status === 401 && predicate(error)) { window.location.assign( - `login?redirectTo=${encodeURIComponent(window.location.href)}&error=401` + `login?redirectTo=${encodeURIComponent( + window.location.href, + )}&error=401`, ); } return Promise.reject(error); @@ -55,7 +57,7 @@ export const registerErrorToastInterceptor = (axios) => { title: `Error ${data.status}`, duration: 10000, }); - } + }, ); } }; diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/collections.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/collections.spec.ts index 907069e70e0..2596efb18d3 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/utils/collections.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/collections.spec.ts @@ -69,7 +69,7 @@ describe('anyValueMatches', () => { const predicate = vi.fn(); anyValueMatches( ['test', 1, true, { value: 'nested-obj' }, ['nested-array'], [], {}], - predicate + predicate, ); expect(predicate).toHaveBeenNthCalledWith(1, 'test'); expect(predicate).toHaveBeenNthCalledWith(2, 1); diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/iso8601-duration.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/iso8601-duration.spec.ts index 9b26e0e64fb..e607f6cc6b8 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/utils/iso8601-duration.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/iso8601-duration.spec.ts @@ -37,6 +37,6 @@ describe('iso8601-duration', () => { const milliseconds = toMilliseconds(duration); expect(milliseconds).toBeCloseTo(expected); - } + }, ); }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/logtail.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/logtail.ts index 65675f5613c..02e93977405 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/utils/logtail.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/logtail.ts @@ -29,7 +29,7 @@ export default (getFn, interval, initialSize = 300 * 1024) => { }) .catch((error) => observer.error(error)); }).pipe( - catchError((error) => of({ data: '', status: error.response.status })) + catchError((error) => of({ data: '', status: error.response.status })), ); }), concatMap((response) => { @@ -76,6 +76,6 @@ export default (getFn, interval, initialSize = 300 * 1024) => { addendum, }) : EMPTY; - }) + }), ); }; diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/rxjs.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/rxjs.ts index 15c55c855ad..a3b5ad9c564 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/utils/rxjs.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/rxjs.ts @@ -53,18 +53,18 @@ export const listen = let handle = null; return source.pipe( doOnSubscribe( - () => (handle = setTimeout(() => cb('executing'), execDelay)) + () => (handle = setTimeout(() => cb('executing'), execDelay)), ), tap({ complete: () => { - handle && clearTimeout(handle); + clearTimeout(handle); cb('completed'); }, error: (error) => { console.warn('Operation failed:', error); - handle && clearTimeout(handle); + clearTimeout(handle); cb('failed'); }, - }) + }), ); }; diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/shortenClassname.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/shortenClassname.spec.ts index 7a564c911ce..cdc0c4d5c91 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/utils/shortenClassname.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/shortenClassname.spec.ts @@ -22,8 +22,8 @@ describe('shortenClassname', () => { expect( shortenClassname( 'de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration', - 40 - ) + 40, + ), ).toBe('d.c.b.a.s.config.AdminServerAutoConfiguration'); }); @@ -31,16 +31,16 @@ describe('shortenClassname', () => { expect( shortenClassname( 'de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration', - 300 - ) + 300, + ), ).toBe( - 'de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration' + 'de.codecentric.boot.admin.server.config.AdminServerAutoConfiguration', ); }); it('should not shorten when no package is present', () => { expect(shortenClassname('AdminServerAutoConfiguration', 1)).toBe( - 'AdminServerAutoConfiguration' + 'AdminServerAutoConfiguration', ); }); }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/uri.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/uri.spec.ts index d5bfc24d13a..60512ffcbc5 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/utils/uri.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/uri.spec.ts @@ -20,7 +20,7 @@ import uri from './uri'; describe('uri', () => { it('should escape uris properly', () => { expect(uri`http://app/${'foo/bar'}?q=${'???'}`).toBe( - 'http://app/foo%2Fbar?q=%3F%3F%3F' + 'http://app/foo%2Fbar?q=%3F%3F%3F', ); expect(uri`http://app/${'foo/bar'}?q=1`).toBe('http://app/foo%2Fbar?q=1'); expect(uri`http://app/${'foo/bar'}`).toBe('http://app/foo%2Fbar'); diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/useRouterState.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/useRouterState.spec.ts new file mode 100644 index 00000000000..408acaf757f --- /dev/null +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/useRouterState.spec.ts @@ -0,0 +1,106 @@ +import { waitFor } from '@testing-library/vue'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { reactive } from 'vue'; + +import { useRouterState } from '@/utils/useRouterState'; + +const routerReplace = vi.fn(); +const mockedQuery = vi.fn().mockReturnValue({}); + +vi.mock('vue-router', () => { + return { + useRouter: () => ({ + replace: routerReplace, + }), + useRoute: () => + reactive({ + get query() { + return mockedQuery(); + }, + }), + }; +}); + +describe('useRouterState', () => { + beforeEach(() => { + vi.resetAllMocks(); + }); + + it('should initialize routerState with the initial query parameters', async () => { + mockedQuery.mockReturnValue({ + string: 'foo', + boolean: 'true', + number: '0', + float: '0.123', + }); + + const routerState = useRouterState(); + + await waitFor(() => { + expect(routerState).toEqual({ + string: 'foo', + boolean: true, + number: 0, + float: 0.123, + }); + }); + }); + + it('should call router with initial state', () => { + useRouterState({ + foo: 'bar', + }); + + waitFor(() => { + expect(routerReplace).toHaveBeenCalledWith({ + query: { + foo: 'bar', + }, + }); + }); + }); + + it('should extend existing query params', () => { + mockedQuery.mockReturnValue({ + foo: 'bar', + }); + + const routerState = useRouterState({ + bar: 'baz', + }); + + waitFor(() => { + expect(routerReplace).toHaveBeenCalledWith({ + query: { + foo: 'bar', + bar: 'baz', + }, + }); + expect(routerState).toEqual({ + foo: 'bar', + bar: 'baz', + }); + }); + }); + + it('should override existing query params', () => { + mockedQuery.mockReturnValue({ + foo: 'bar', + }); + + const routerState = useRouterState({ + foo: 'baz', + }); + + waitFor(() => { + expect(routerReplace).toHaveBeenCalledWith({ + query: { + foo: 'baz', + }, + }); + expect(routerState).toEqual({ + foo: 'baz', + }); + }); + }); +}); diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/useRouterState.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/useRouterState.ts new file mode 100644 index 00000000000..91901cf9681 --- /dev/null +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/useRouterState.ts @@ -0,0 +1,80 @@ +import _ from 'lodash'; +import qs from 'qs'; +import { UnwrapNestedRefs, reactive, watch } from 'vue'; +import { LocationQuery, useRoute, useRouter } from 'vue-router'; + +/** + * Hook to synchronize the query parameters of the current route with a reactive object. + * + * @param initialState The initial state of the reactive object. + * @returns The reactive object. + */ +export function useRouterState( + initialState: T = {} as T, +): UnwrapNestedRefs { + const route = useRoute(); + const router = useRouter(); + + let routerState = reactive({ + ...initialState, + ...correctTypesInRouterQuery(route.query), + }); + + watch(route, (_route) => { + const queryParams = JSON.stringify(_route.query); + routerState = parseQueryParams(queryParams); + }); + + watch(routerState, (newValue: any) => { + const to = { + name: route.name, + query: { + ...route.query, + ...newValue, + }, + }; + const routerQueryKeys = Object.keys(route.query); + const newRouterQueryKeys = Object.keys({ ...route.query, ...newValue }); + if (_.isEqual(routerQueryKeys, newRouterQueryKeys)) { + router.replace(to); + } else { + router.push(to); + } + }); + + return routerState; +} + +function parseQueryParams(queryParams: string) { + return qs.parse(queryParams, { + decoder: (str, defaultDecoder, charset, type) => { + const bools = { + true: true, + false: false, + }; + if (type === 'value' && typeof bools[str] === 'boolean') { + return bools[str]; + } else { + return defaultDecoder(str); + } + }, + }); +} + +function correctTypesInRouterQuery(query: LocationQuery) { + return ( + query !== undefined && + JSON.parse(JSON.stringify(query), (_, value) => { + if (value === 'false') return false; + if (value === 'true') return true; + + const float = Number.parseFloat(value); + if (!isNaN(float)) return float; + + const number = Number.parseInt(value); + if (!isNaN(number)) return number; + + return value; + }) + ); +} diff --git a/spring-boot-admin-server-ui/src/main/frontend/utils/useSubscription.ts b/spring-boot-admin-server-ui/src/main/frontend/utils/useSubscription.ts new file mode 100644 index 00000000000..5fde8663d32 --- /dev/null +++ b/spring-boot-admin-server-ui/src/main/frontend/utils/useSubscription.ts @@ -0,0 +1,34 @@ +/* + * Copyright 2014-2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import { Subscription } from 'rxjs'; +import { onBeforeUnmount } from 'vue'; + +/** + * When a subscription is passed, it will be unsubscribed on unmount. + * + * @param subscription Subscription + */ +export const useSubscription = (subscription: Subscription) => { + onBeforeUnmount(() => { + if (subscription && !subscription.closed) { + try { + subscription.unsubscribe(); + } finally { + subscription = null; + } + } + }); +}; diff --git a/spring-boot-admin-server-ui/src/main/frontend/viewRegistry.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/viewRegistry.spec.ts index 3e68a2b87ab..d57c884f5ff 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/viewRegistry.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/viewRegistry.spec.ts @@ -28,7 +28,7 @@ describe('viewRegistry', () => { { name: 'view', group: 'group', path: '' }, { name: 'duplicateView', group: 'group' }, { name: 'duplicateView', group: 'group' }, - ] + ], ); expect(viewRegistry.views).toHaveLength(2); @@ -44,13 +44,13 @@ describe('viewRegistry', () => { expect.objectContaining({ path: '/', redirect: { name: 'asString' }, - }) + }), ); expect(viewRegistry.routes).toContainEqual( expect.objectContaining({ path: '/', redirect: { name: 'asObject' }, - }) + }), ); }); @@ -66,7 +66,7 @@ describe('viewRegistry', () => { { name: 'disabledView', group: 'group' }, { name: 'explicitlyEnabledView', group: 'group' }, { name: 'implicitlyEnabledView', group: 'group' }, - ] + ], ); const disabledView = viewRegistry.getViewByName('disabledView'); @@ -74,13 +74,13 @@ describe('viewRegistry', () => { expect(disabledView.isEnabled()).toBeFalsy(); const implicitlyEnabledView = viewRegistry.getViewByName( - 'implicitlyEnabledView' + 'implicitlyEnabledView', ); expect(implicitlyEnabledView).toBeDefined(); expect(implicitlyEnabledView.isEnabled()).toBeTruthy(); const explicitlyEnabledView = viewRegistry.getViewByName( - 'explicitlyEnabledView' + 'explicitlyEnabledView', ); expect(explicitlyEnabledView).toBeDefined(); expect(explicitlyEnabledView.isEnabled()).toBeTruthy(); @@ -96,14 +96,14 @@ describe('viewRegistry', () => { it('derives name from parent and path', () => { const viewRegistry = new ViewRegistry(); viewRegistry.addView( - ...[{ path: 'parent' }, { parent: 'parent', path: 'path' }] + ...[{ path: 'parent' }, { parent: 'parent', path: 'path' }], ); expect(viewRegistry.views).toContainEqual( - expect.objectContaining({ name: 'parent' }) + expect.objectContaining({ name: 'parent' }), ); expect(viewRegistry.views).toContainEqual( - expect.objectContaining({ name: 'parent/path' }) + expect.objectContaining({ name: 'parent/path' }), ); }); @@ -113,18 +113,18 @@ describe('viewRegistry', () => { ...[ { path: 'parent', component: {} }, { parent: 'parent', path: 'path', component: {} }, - ] + ], ); expect(viewRegistry.routes).toContainEqual( expect.objectContaining({ name: 'parent', - }) + }), ); expect(viewRegistry.routes[0].children).toContainEqual( expect.objectContaining({ name: 'parent/path', - }) + }), ); }); }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/viewRegistry.ts b/spring-boot-admin-server-ui/src/main/frontend/viewRegistry.ts index d0b1269b7eb..17a4d7e434f 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/viewRegistry.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/viewRegistry.ts @@ -60,17 +60,17 @@ export default class ViewRegistry { createRouter() { const routesKnownToBackend = sbaConfig.uiSettings.routes.map( - (r) => new RegExp(`^${r.replace('/**', '(/.*)?')}$`) + (r) => new RegExp(`^${r.replace('/**', '(/.*)?')}$`), ); const unknownRoutes = this.routes.filter( (vr) => - vr.path !== '/' && !routesKnownToBackend.some((br) => br.test(vr.path)) + vr.path !== '/' && !routesKnownToBackend.some((br) => br.test(vr.path)), ); if (unknownRoutes.length > 0) { console.warn( `The routes ${JSON.stringify( - unknownRoutes.map((r) => r.path) - )} aren't known to the backend and may be not properly routed!` + unknownRoutes.map((r) => r.path), + )} aren't known to the backend and may be not properly routed!`, ); } @@ -126,7 +126,7 @@ export default class ViewRegistry { if (!viewConfig.isEnabled) { view.isEnabled = () => { const viewSettings = sbaConfig.uiSettings.viewSettings.find( - (vs) => vs.name === viewConfig.name + (vs) => vs.name === viewConfig.name, ); return !viewSettings || viewSettings.enabled === true; }; @@ -149,7 +149,7 @@ export default class ViewRegistry { _toRoutes(filter: ViewFilterFunction) { return this._views.filter(filter).map((view) => { const children = this._toRoutes( - (childView) => childView.parent === view.name + (childView) => childView.parent === view.name, ); return { diff --git a/spring-boot-admin-server-ui/src/main/frontend/views/ViewGroup.ts b/spring-boot-admin-server-ui/src/main/frontend/views/ViewGroup.ts index 004007d5a0d..75f40cf0ff3 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/views/ViewGroup.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/views/ViewGroup.ts @@ -6,6 +6,7 @@ export const VIEW_GROUP = { LOGGING: 'logging', NONE: 'none', SECURITY: 'security', + DEPENDENCIES: 'dependencies', }; export const VIEW_GROUP_ICON = { @@ -19,6 +20,10 @@ export const VIEW_GROUP_ICON = { '', [VIEW_GROUP.LOGGING]: '', + [VIEW_GROUP.DEPENDENCIES]: + '' + + ' ' + + '', [VIEW_GROUP.NONE]: '
 
', [VIEW_GROUP.SECURITY]: '', diff --git a/spring-boot-admin-server-ui/src/main/frontend/views/about/index.vue b/spring-boot-admin-server-ui/src/main/frontend/views/about/index.vue index 392381433a2..80088ffa5c9 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/views/about/index.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/views/about/index.vue @@ -77,7 +77,7 @@ diff --git a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ActionHandler.ts b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ActionHandler.ts index d9e868e6a64..c0f280d6827 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ActionHandler.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ActionHandler.ts @@ -1,164 +1,172 @@ -import Application from "@/services/application"; -import Instance from "@/services/instance"; +import Application from '@/services/application'; +import Instance from '@/services/instance'; export interface ActionHandler { - restart(item: any): Promise + restart(item: any): Promise; - unregister(item: any): Promise + unregister(item: any): Promise; - shutdown(item: any): Promise + shutdown(item: any): Promise; } export class InstanceActionHandler implements ActionHandler { - constructor(private $sbaModal: any, private t: any, private notificationCenter: any) { + constructor( + private $sbaModal: any, + private t: any, + private notificationCenter: any, + ) {} + + async unregister(item: Instance) { + const isConfirmed = await this.$sbaModal.confirm( + this.t('applications.actions.unregister'), + this.t('instances.unregister', { name: item.id }), + ); + if (!isConfirmed) { + return; } - async unregister(item: Instance) { - const isConfirmed = await this.$sbaModal.confirm( - this.t('applications.actions.unregister'), - this.t('instances.unregister', {name: item.id}) - ); - if (!isConfirmed) { - return; - } - - try { - await item.unregister(); - this.notificationCenter.success( - this.t('instances.unregister_successful', {name: item.id}) - ); - } catch (error) { - this.notificationCenter.error( - this.t('instances.unregister_failed', { - name: item.id || item.name, - error: error.response.status, - }) - ); - } + try { + await item.unregister(); + this.notificationCenter.success( + this.t('instances.unregister_successful', { name: item.id }), + ); + } catch (error) { + this.notificationCenter.error( + this.t('instances.unregister_failed', { + name: item.id || item.name, + error: error.response.status, + }), + ); + } + } + + async shutdown(item: Instance) { + const isConfirmed = await this.$sbaModal.confirm( + this.t('applications.actions.shutdown'), + this.t('instances.shutdown', { name: item.id }), + ); + if (!isConfirmed) { + return; } - async shutdown(item: Instance) { - const isConfirmed = await this.$sbaModal.confirm( - this.t('applications.actions.shutdown'), - this.t('instances.shutdown', {name: item.id}) - ); - if(!isConfirmed) { - return; - } - - try { - await item.shutdown(); - this.notificationCenter.success( - this.t('instances.shutdown_successful', {name: item.id}) - ); - } catch (error) { - this.notificationCenter.error( - this.t('instances.shutdown_failed', { - name: item.id || item.name, - error: error.response.status, - }) - ); - } + try { + await item.shutdown(); + this.notificationCenter.success( + this.t('instances.shutdown_successful', { name: item.id }), + ); + } catch (error) { + this.notificationCenter.error( + this.t('instances.shutdown_failed', { + name: item.id || item.name, + error: error.response.status, + }), + ); + } + } + + async restart(item: Instance) { + const isConfirmed = await this.$sbaModal.confirm( + this.t('applications.actions.restart'), + this.t('instances.restart', { name: item.id }), + ); + if (!isConfirmed) { + return; } - async restart(item: Instance) { - const isConfirmed = await this.$sbaModal.confirm( - this.t('applications.actions.restart'), - this.t('instances.restart', {name: item.id}) - ); - if (!isConfirmed) { - return; - } - - try { - await item.restart(); - this.notificationCenter.success( - this.t('instances.restarted', {name: item.id}) - ); - } catch (error) { - this.notificationCenter.error( - this.t('instances.restart_failed', { - name: item.id || item.name, - error: error.response.status, - }) - ); - } + try { + await item.restart(); + this.notificationCenter.success( + this.t('instances.restarted', { name: item.id }), + ); + } catch (error) { + this.notificationCenter.error( + this.t('instances.restart_failed', { + name: item.id || item.name, + error: error.response.status, + }), + ); } + } } export class ApplicationActionHandler implements ActionHandler { - constructor(private $sbaModal: any, private t: any, private notificationCenter: any) { + constructor( + private $sbaModal: any, + private t: any, + private notificationCenter: any, + ) {} + + async restart(application: Application) { + const isConfirmed = await this.$sbaModal.confirm( + this.t('applications.actions.restart'), + this.t('applications.restart', { name: application.name }), + ); + if (!isConfirmed) { + return; } - async restart(application: Application) { - const isConfirmed = await this.$sbaModal.confirm( - this.t('applications.actions.restart'), - this.t('applications.restart', {name: application.name}) - ); - if (!isConfirmed) { - return; - } - - try { - await application.restart(); - this.notificationCenter.success( - this.t('applications.restarted', {name: application.name}) - ); - } catch (error) { - this.notificationCenter.error( - this.t('applications.restart_failed', { - name: application.name, - error: error.response.status, - }) - ); - } + try { + await application.restart(); + this.notificationCenter.success( + this.t('applications.restarted', { name: application.name }), + ); + } catch (error) { + this.notificationCenter.error( + this.t('applications.restart_failed', { + name: application.name, + error: error.response.status, + }), + ); + } + } + + async shutdown(application: Application) { + const isConfirmed = await this.$sbaModal.confirm( + this.t('applications.actions.shutdown'), + this.t('applications.shutdown', { name: application.name }), + ); + if (!isConfirmed) { + return; } - async shutdown(application: Application) { - const isConfirmed = await this.$sbaModal.confirm( - this.t('applications.actions.shutdown'), - this.t('applications.shutdown', {name: application.name}) - ); - if (!isConfirmed) { - return; - } - - try { - await application.shutdown(); - this.notificationCenter.success( - this.t('applications.shutdown_successful', {name: application.name}) - ); - } catch (error) { - this.notificationCenter.error( - this.t('applications.shutdown_failed', { - name: application.name, - error: error.response.status, - }) - ); - } + try { + await application.shutdown(); + this.notificationCenter.success( + this.t('applications.shutdown_successful', { name: application.name }), + ); + } catch (error) { + this.notificationCenter.error( + this.t('applications.shutdown_failed', { + name: application.name, + error: error.response.status, + }), + ); + } + } + + async unregister(application: Application) { + const isConfirmed = await this.$sbaModal.confirm( + this.t('applications.actions.unregister'), + this.t('applications.unregister', { name: application.name }), + ); + if (!isConfirmed) { + return; } - async unregister(application: Application) { - const isConfirmed = await this.$sbaModal.confirm( - this.t('applications.actions.unregister'), - this.t('applications.unregister', {name: application.name}) - ); - if (!isConfirmed) { - return; - } - - try { - await application.unregister(); - this.notificationCenter.success( - this.t('applications.unregister_successful', {name: application.name}) - ); - } catch (error) { - this.notificationCenter.error( - this.t('applications.unregister_failed', { - name: application.name, - error: error.response.status, - }) - ); - } + try { + await application.unregister(); + this.notificationCenter.success( + this.t('applications.unregister_successful', { + name: application.name, + }), + ); + } catch (error) { + this.notificationCenter.error( + this.t('applications.unregister_failed', { + name: application.name, + error: error.response.status, + }), + ); } + } } diff --git a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationListItemAction.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationListItemAction.spec.ts index f530871ca16..865b64a866c 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationListItemAction.spec.ts +++ b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationListItemAction.spec.ts @@ -14,140 +14,140 @@ * limitations under the License. */ import userEvent from '@testing-library/user-event'; -import {screen, waitFor} from '@testing-library/vue'; -import {cloneDeep} from 'lodash-es'; -import {beforeAll, beforeEach, describe, expect, it, vi} from 'vitest'; +import { screen, waitFor } from '@testing-library/vue'; +import { cloneDeep } from 'lodash-es'; +import { HttpResponse, http } from 'msw'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import Application from '../../services/application'; -import {applications} from '@/mocks/applications/data'; -import {render} from '@/test-utils'; +import { applications } from '@/mocks/applications/data'; +import { server } from '@/mocks/server'; +import Instance from '@/services/instance'; +import { render } from '@/test-utils'; import ApplicationsListItem from '@/views/applications/ApplicationListItemAction'; -import {server} from "@/mocks/server"; -import {rest} from "msw"; -import Instance from "@/services/instance"; async function clickConfirmModal() { - await waitFor(() => { - expect(screen.getByRole('dialog')).toBeInTheDocument(); - }); + await waitFor(() => { + expect(screen.getByRole('dialog')).toBeInTheDocument(); + }); - const buttonOK = screen.queryByRole('button', {name: 'term.ok'}); - await userEvent.click(buttonOK); + const buttonOK = screen.queryByRole('button', { name: 'term.ok' }); + await userEvent.click(buttonOK); } describe('ApplicationListItemAction', () => { - let application: Application; - let instance: Instance; - - beforeAll(() => { - server.use( - // Instances - rest.delete('/instances/:instanceId', (req, res, ctx) => { - return res(ctx.status(200), ctx.json({})); - }), - rest.post('/instances/:instanceId/actuator/restart', (req, res, ctx) => { - return res(ctx.status(200), ctx.json({})); - }), - rest.post('/instances/:instanceId/actuator/shutdown', (req, res, ctx) => { - return res(ctx.status(200), ctx.json({})); - }), - // Applications - rest.delete('/applications/:name', (req, res, ctx) => { - return res(ctx.status(200), ctx.json({})); - }), - rest.post('/applications/:name/actuator/restart', (req, res, ctx) => { - return res(ctx.status(200), ctx.json({})); - }), - rest.post('/applications/:name/actuator/shutdown', (req, res, ctx) => { - return res(ctx.status(200), ctx.json({})); - }), - ) - }) - - beforeEach(() => { - application = new Application(cloneDeep(applications[0])); - instance = application.instances[0]; - }) - - describe('unregister', () => { - it('on instance', async () => { - const spy = vi.spyOn(instance, 'unregister'); - - render(ApplicationsListItem, { - props: {item: instance}, - }); - - await userEvent.click(screen.getByTitle('Unregister')); - await clickConfirmModal(); - - expect(spy).toHaveBeenCalledOnce(); - }); - - it('on application', async () => { - const spy = vi.spyOn(application, 'unregister'); - - render(ApplicationsListItem, { - props: {item: application}, - }); - - await userEvent.click(screen.getByTitle('Unregister')); - await clickConfirmModal(); - - expect(spy).toHaveBeenCalledOnce(); - }); + let application: Application; + let instance: Instance; + + beforeEach(() => { + server.use( + // Instances + http.delete('/instances/:instanceId', () => { + return HttpResponse.json({}); + }), + http.post('/instances/:instanceId/actuator/restart', () => { + return HttpResponse.json({}); + }), + http.post('/instances/:instanceId/actuator/shutdown', () => { + return HttpResponse.json({}); + }), + // Applications + http.delete('/applications/:name', () => { + return HttpResponse.json({}); + }), + http.post('/applications/:name/actuator/restart', () => { + return HttpResponse.json({}); + }), + http.post('/applications/:name/actuator/shutdown', () => { + return HttpResponse.json({}); + }), + ); + }); + + beforeEach(() => { + application = new Application(cloneDeep(applications[0])); + instance = application.instances[0]; + }); + + describe('unregister', () => { + it('on instance', async () => { + const spy = vi.spyOn(instance, 'unregister'); + + render(ApplicationsListItem, { + props: { item: instance }, + }); + + await userEvent.click(screen.getByTitle('Unregister')); + await clickConfirmModal(); + + expect(spy).toHaveBeenCalledOnce(); + }); + + it('on application', async () => { + const spy = vi.spyOn(application, 'unregister'); + + render(ApplicationsListItem, { + props: { item: application }, + }); + + await userEvent.click(screen.getByTitle('Unregister')); + await clickConfirmModal(); + + expect(spy).toHaveBeenCalledOnce(); }); + }); - describe('restart', () => { - it('on instance', async () => { - const spy = vi.spyOn(instance, 'restart'); + describe('restart', () => { + it('on instance', async () => { + const spy = vi.spyOn(instance, 'restart'); - render(ApplicationsListItem, { - props: {item: instance}, - }); + render(ApplicationsListItem, { + props: { item: instance }, + }); - await userEvent.click(screen.getByTitle('Restart')); - await clickConfirmModal(); + await userEvent.click(screen.getByTitle('Restart')); + await clickConfirmModal(); - expect(spy).toHaveBeenCalledOnce(); - }); + expect(spy).toHaveBeenCalledOnce(); + }); - it('on application', async () => { - const spy = vi.spyOn(application, 'restart'); - render(ApplicationsListItem, { - props: {item: application}, - }); + it('on application', async () => { + const spy = vi.spyOn(application, 'restart'); + render(ApplicationsListItem, { + props: { item: application }, + }); - await userEvent.click(screen.getByTitle('Restart')); - await clickConfirmModal(); + await userEvent.click(screen.getByTitle('Restart')); + await clickConfirmModal(); - expect(spy).toHaveBeenCalledOnce(); - }); + expect(spy).toHaveBeenCalledOnce(); }); + }); - describe('shutdown', () => { - it('on application', async () => { - const spy = vi.spyOn(application, 'shutdown'); - render(ApplicationsListItem, { - props: {item: application}, - }); + describe('shutdown', () => { + it('on application', async () => { + const spy = vi.spyOn(application, 'shutdown'); + render(ApplicationsListItem, { + props: { item: application }, + }); - await userEvent.click(screen.getByTitle('Shutdown')); - await clickConfirmModal(); + await userEvent.click(screen.getByTitle('Shutdown')); + await clickConfirmModal(); - expect(spy).toHaveBeenCalledOnce(); - }); + expect(spy).toHaveBeenCalledOnce(); + }); - it('on instance', async () => { - const spy = vi.spyOn(instance, 'shutdown'); - render(ApplicationsListItem, { - props: {item: instance}, - }); + it('on instance', async () => { + const spy = vi.spyOn(instance, 'shutdown'); + render(ApplicationsListItem, { + props: { item: instance }, + }); - await userEvent.click(await screen.getByTitle('Shutdown')); - await clickConfirmModal(); + await userEvent.click(await screen.getByTitle('Shutdown')); + await clickConfirmModal(); - expect(spy).toHaveBeenCalledOnce(); - }); + expect(spy).toHaveBeenCalledOnce(); }); + }); }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationListItemAction.vue b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationListItemAction.vue index 2049ddf34e0..2f67ac4b832 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationListItemAction.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationListItemAction.vue @@ -2,59 +2,64 @@ - + - + - + - + diff --git a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationNotificationCenter.vue b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationNotificationCenter.vue index 3d1486e601d..85bdc6f0695 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationNotificationCenter.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationNotificationCenter.vue @@ -97,7 +97,7 @@ watch( () => props.notificationFilters, (notificationFilters) => { notificationFiltersLength.value = notificationFilters.length; - } + }, ); const removeFilter = async (filter, closePopover) => { diff --git a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStats.vue b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStats.vue index 8ccacc8f435..0f8b9201dd3 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStats.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStats.vue @@ -40,7 +40,7 @@ const instancesCount = computed({ get() { return applications.value.reduce( (current, next) => current + next.instances.length, - 0 + 0, ); }, }); diff --git a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStatusHero.spec.ts b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStatusHero.spec.ts new file mode 100644 index 00000000000..63c22cc39a3 --- /dev/null +++ b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStatusHero.spec.ts @@ -0,0 +1,66 @@ +import { screen } from '@testing-library/vue'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; +import { Ref, ref } from 'vue'; + +import { useApplicationStore } from '@/composables/useApplicationStore'; +import Application from '@/services/application'; +import Instance from '@/services/instance'; +import { render } from '@/test-utils'; +import ApplicationStatusHero from '@/views/applications/ApplicationStatusHero.vue'; + +vi.mock('@/composables/useApplicationStore', () => ({ + useApplicationStore: vi.fn(), +})); + +describe('ApplicationStatusHero', () => { + let applications: Ref; + + beforeEach(async () => { + applications = ref([]); + + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + useApplicationStore.mockReturnValue({ + applicationsInitialized: ref(true), + applications, + error: ref(null), + }); + }); + + it.each` + instance1Status | instance2Status | expectedMessage + ${'UP'} | ${'UP'} | ${'all up'} + ${'OFFLINE'} | ${'OFFLINE'} | ${'all down'} + ${'UNKNOWN'} | ${'UNKNOWN'} | ${'all in unknown state'} + ${'UP'} | ${'UNKNOWN'} | ${'some instances are in unknown state'} + ${'UP'} | ${'DOWN'} | ${'some instances are down'} + ${'UP'} | ${'OFFLINE'} | ${'some instances are down'} + ${'DOWN'} | ${'UNKNOWN'} | ${'some instances are down'} + ${'DOWN'} | ${'OFFLINE'} | ${'all down'} + ${'OFFLINE'} | ${'UP'} | ${'some instances are down'} + `( + '`$expectedMessage` is shown when `$instance1Status` and `$instance2Status`', + ({ instance1Status, instance2Status, expectedMessage }) => { + applications.value = [ + new Application({ + name: 'Test Application', + statusTimestamp: Date.now(), + instances: [ + new Instance({ + id: '4711', + statusInfo: { status: instance1Status }, + }), + new Instance({ + id: '4712', + statusInfo: { status: instance2Status }, + }), + ], + }), + ]; + + render(ApplicationStatusHero); + + expect(screen.getByText(expectedMessage)).toBeVisible(); + }, + ); +}); diff --git a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStatusHero.vue b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStatusHero.vue index 94610254266..8c8c05ccd51 100644 --- a/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStatusHero.vue +++ b/spring-boot-admin-server-ui/src/main/frontend/views/applications/ApplicationStatusHero.vue @@ -2,19 +2,56 @@