From 6fd525537fcd9aca1b62e6a08e89d3a6fe6b08fd Mon Sep 17 00:00:00 2001 From: wakonig_k Date: Mon, 20 Jan 2025 20:36:15 +0100 Subject: [PATCH] feat: towards a first version --- .../bec_atlas/datasources/mongodb/mongodb.py | 99 +- .../bec_atlas/datasources/redis_datasource.py | 30 +- backend/bec_atlas/ingestor/data_ingestor.py | 4 +- backend/bec_atlas/main.py | 32 + backend/bec_atlas/model/model.py | 50 +- backend/bec_atlas/router/bec_access_router.py | 51 + .../router/deployment_access_router.py | 227 + .../router/deployment_credentials.py | 85 + .../bec_atlas/router/deployments_router.py | 9 +- backend/bec_atlas/router/realm_router.py | 2 +- backend/bec_atlas/router/redis_router.py | 15 +- backend/bec_atlas/router/scan_router.py | 4 +- backend/bec_atlas/router/user_router.py | 7 +- .../bec_atlas/utils/demo_database_setup.py | 25 +- frontend/bec_atlas/angular.json | 11 +- frontend/bec_atlas/package-lock.json | 5109 ++++++++++++----- frontend/bec_atlas/package.json | 4 +- .../src/app/app-config.service.spec.ts | 16 + .../bec_atlas/src/app/app-config.service.ts | 27 + frontend/bec_atlas/src/app/app.component.html | 4 +- frontend/bec_atlas/src/app/app.component.ts | 2 - frontend/bec_atlas/src/app/app.config.ts | 23 +- frontend/bec_atlas/src/app/app.routes.ts | 9 +- .../src/app/core/auth.service.spec.ts | 16 + .../bec_atlas/src/app/core/auth.service.ts | 39 + frontend/bec_atlas/src/app/core/model/auth.ts | 3 + .../src/app/core/redis-connector.service.ts | 10 +- .../bec_atlas/src/app/core/redis_endpoints.ts | 12 + .../src/app/core/remote-data.service.spec.ts | 16 + .../src/app/core/remote-data.service.ts | 75 + .../app/dashboard/dashboard.component.html | 46 +- .../app/dashboard/dashboard.component.scss | 82 +- .../src/app/dashboard/dashboard.component.ts | 156 +- .../src/app/login/login.component.html | 63 + .../src/app/login/login.component.scss | 36 + .../src/app/login/login.component.spec.ts | 23 + .../src/app/login/login.component.ts | 87 + .../queue-table/queue-table.component.html | 25 +- .../app/queue-table/queue-table.component.ts | 3 +- .../src/app/server-settings.service.spec.ts | 16 + .../src/app/server-settings.service.ts | 23 + .../bec_atlas/src/assets/psi_background.jpg | Bin 0 -> 781314 bytes 42 files changed, 4752 insertions(+), 1824 deletions(-) create mode 100644 backend/bec_atlas/router/bec_access_router.py create mode 100644 backend/bec_atlas/router/deployment_access_router.py create mode 100644 backend/bec_atlas/router/deployment_credentials.py create mode 100644 frontend/bec_atlas/src/app/app-config.service.spec.ts create mode 100644 frontend/bec_atlas/src/app/app-config.service.ts create mode 100644 frontend/bec_atlas/src/app/core/auth.service.spec.ts create mode 100644 frontend/bec_atlas/src/app/core/auth.service.ts create mode 100644 frontend/bec_atlas/src/app/core/model/auth.ts create mode 100644 frontend/bec_atlas/src/app/core/remote-data.service.spec.ts create mode 100644 frontend/bec_atlas/src/app/core/remote-data.service.ts create mode 100644 frontend/bec_atlas/src/app/login/login.component.html create mode 100644 frontend/bec_atlas/src/app/login/login.component.scss create mode 100644 frontend/bec_atlas/src/app/login/login.component.spec.ts create mode 100644 frontend/bec_atlas/src/app/login/login.component.ts create mode 100644 frontend/bec_atlas/src/app/server-settings.service.spec.ts create mode 100644 frontend/bec_atlas/src/app/server-settings.service.ts create mode 100644 frontend/bec_atlas/src/assets/psi_background.jpg diff --git a/backend/bec_atlas/datasources/mongodb/mongodb.py b/backend/bec_atlas/datasources/mongodb/mongodb.py index 97eb60a..445f69d 100644 --- a/backend/bec_atlas/datasources/mongodb/mongodb.py +++ b/backend/bec_atlas/datasources/mongodb/mongodb.py @@ -1,6 +1,8 @@ +from __future__ import annotations + import json import os -from typing import Literal +from typing import TYPE_CHECKING, Literal, Type, TypeVar import pymongo from bec_lib.logger import bec_logger @@ -11,6 +13,11 @@ from bec_atlas.model.model import User, UserCredentials logger = bec_logger.logger +if TYPE_CHECKING: + from bson import ObjectId + +T = TypeVar("T", bound=BaseModel) + class MongoDBDatasource: def __init__(self, config: dict) -> None: @@ -107,19 +114,19 @@ class MongoDBDatasource: return UserCredentials(**out) def find_one( - self, collection: str, query_filter: dict, dtype: BaseModel, user: User | None = None - ) -> BaseModel | None: + self, collection: str, query_filter: dict, dtype: Type[T], user: User | None = None + ) -> T | None: """ Find one document in the collection. Args: collection (str): The collection name query_filter (dict): The filter to apply - dtype (BaseModel): The data type to return + dtype (Type[T]): The data type to return user (User): The user making the request Returns: - BaseModel: The data type with the document data + T: The data type with the document data """ if user is not None: query_filter = self.add_user_filter(user, query_filter) @@ -129,15 +136,15 @@ class MongoDBDatasource: return dtype(**out) def find( - self, collection: str, query_filter: dict, dtype: BaseModel, user: User | None = None - ) -> list[BaseModel]: + self, collection: str, query_filter: dict, dtype: Type[T], user: User | None = None + ) -> list[T]: """ Find all documents in the collection. Args: collection (str): The collection name query_filter (dict): The filter to apply - dtype (BaseModel): The data type to return + dtype (Type[T]): The data type to return user (User): The user making the request Returns: @@ -148,20 +155,88 @@ class MongoDBDatasource: out = self.db[collection].find(query_filter) return [dtype(**x) for x in out] + def post(self, collection: str, data: dict, dtype: Type[T], user: User | None = None) -> T: + """ + Post a single document to the collection. + + Args: + collection (str): The collection name + data (dict): The data to insert + dtype (Type[T]): The data type to return + user (User): The user making the request + + Returns: + T: The data type with the document data + """ + if user is not None: + data = self.add_user_filter(user, data, operation="w") + out = self.db[collection].insert_one(data) + return dtype(**data) + + def patch( + self, + collection: str, + id: ObjectId, + update: dict, + dtype: Type[T], + user: User | None = None, + return_document: bool = True, + ) -> T | None: + """ + Patch a single document in the collection. + + Args: + collection (str): The collection name + id (ObjectId): The document id + update (dict): The update to apply + dtype (Type[T]): The data type to return + user (User): The user making the request + return_document (bool): When True, return the updated document, otherwise return the original document + + Returns: + Type[T]: The data type with the document data + """ + search_filter = {"_id": id} + if user is not None: + search_filter = self.add_user_filter(user, search_filter, operation="w") + out = self.db[collection].find_one_and_update( + filter=search_filter, update={"$set": update}, return_document=return_document + ) + if out is None: + return None + return dtype(**out) + + def delete_one(self, collection: str, filter: dict, user: User | None = None) -> bool: + """ + Delete a single document in the collection. + + Args: + collection (str): The collection name + filter (dict): The filter to apply + user (User): The user making the request + + Returns: + bool: True if the document was deleted, otherwise False + """ + if user is not None: + filter = self.add_user_filter(user, filter, operation="w") + out = self.db[collection].delete_one(filter) + return out.deleted_count > 0 + def aggregate( - self, collection: str, pipeline: list[dict], dtype: BaseModel, user: User | None = None - ) -> list[BaseModel]: + self, collection: str, pipeline: list[dict], dtype: Type[T], user: User | None = None + ) -> list[T]: """ Aggregate documents in the collection. Args: collection (str): The collection name pipeline (list[dict]): The aggregation pipeline - dtype (BaseModel): The data type to return + dtype (Type[T]): The data type to return user (User): The user making the request Returns: - list[BaseModel]: The data type with the document data + list[T]: The data type with the document data """ if user is not None: # Add the user filter to the lookup pipeline diff --git a/backend/bec_atlas/datasources/redis_datasource.py b/backend/bec_atlas/datasources/redis_datasource.py index 80811dc..5988348 100644 --- a/backend/bec_atlas/datasources/redis_datasource.py +++ b/backend/bec_atlas/datasources/redis_datasource.py @@ -7,7 +7,7 @@ from redis.asyncio import Redis as AsyncRedis from redis.exceptions import AuthenticationError if TYPE_CHECKING: - from bec_atlas.model.model import Deployments + from bec_atlas.model.model import DeploymentCredential class RedisDatasource: @@ -63,31 +63,35 @@ class RedisDatasource: "default", enabled=True, categories=["-@all"], commands=["+auth", "+acl|whoami"] ) - def add_deployment_acl(self, deployment: Deployments): + def add_deployment_acl(self, deployment_credential: DeploymentCredential): """ Add ACLs for the deployment. Args: deployment (Deployments): The deployment object """ - print(f"Adding ACLs for deployment <{deployment.name}>({deployment.id})") + print(f"Adding ACLs for deployment {deployment_credential.id}") + dep_id = deployment_credential.id + dep_key = deployment_credential.credential self.connector._redis_conn.acl_setuser( - f"ingestor_{deployment.id}", + f"ingestor_{dep_id}", enabled=True, - passwords=f"+{deployment.deployment_key}", + passwords=f"+{dep_key}", categories=["+@all", "-@dangerous"], keys=[ - f"internal/deployment/{deployment.id}/*", - f"internal/deployment/{deployment.id}/*/state", - f"internal/deployment/{deployment.id}/*/data/*", + f"internal/deployment/{dep_id}/*", + f"internal/deployment/{dep_id}/*/state", + f"internal/deployment/{dep_id}/*/data/*", + f"internal/deployment/{dep_id}/bec_access", ], channels=[ - f"internal/deployment/{deployment.id}/*/state", - f"internal/deployment/{deployment.id}/*", - f"internal/deployment/{deployment.id}/request", - f"internal/deployment/{deployment.id}/request_response/*", + f"internal/deployment/{dep_id}/*/state", + f"internal/deployment/{dep_id}/*", + f"internal/deployment/{dep_id}/request", + f"internal/deployment/{dep_id}/request_response/*", + f"internal/deployment/{dep_id}/bec_access", ], - commands=[f"+keys|internal/deployment/{deployment.id}/*/state"], + commands=[f"+keys|internal/deployment/{dep_id}/*/state"], reset_channels=True, reset_keys=True, ) diff --git a/backend/bec_atlas/ingestor/data_ingestor.py b/backend/bec_atlas/ingestor/data_ingestor.py index 2e1f183..1817c5d 100644 --- a/backend/bec_atlas/ingestor/data_ingestor.py +++ b/backend/bec_atlas/ingestor/data_ingestor.py @@ -163,7 +163,7 @@ class DataIngestor: self.handle_message(out, deployment_id) self.redis._redis_conn.xack(stream, "ingestor", message[0]) - def handle_message(self, msg_dict: dict, deploymend_id: str): + def handle_message(self, msg_dict: dict, deployment_id: str): """ Handle a message from the Redis queue. @@ -177,7 +177,7 @@ class DataIngestor: return if isinstance(data, messages.ScanStatusMessage): - self.update_scan_status(data, deploymend_id) + self.update_scan_status(data, deployment_id) @lru_cache() def get_default_session_id(self, deployment_id: str): diff --git a/backend/bec_atlas/main.py b/backend/bec_atlas/main.py index 2f73bd0..f32b8a2 100644 --- a/backend/bec_atlas/main.py +++ b/backend/bec_atlas/main.py @@ -1,7 +1,11 @@ import uvicorn from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware from bec_atlas.datasources.datasource_manager import DatasourceManager +from bec_atlas.router.bec_access_router import BECAccessRouter +from bec_atlas.router.deployment_access_router import DeploymentAccessRouter +from bec_atlas.router.deployment_credentials import DeploymentCredentialsRouter from bec_atlas.router.deployments_router import DeploymentsRouter from bec_atlas.router.realm_router import RealmRouter from bec_atlas.router.redis_router import RedisRouter, RedisWebsocket @@ -13,6 +17,8 @@ CONFIG = { "mongodb": {"host": "localhost", "port": 27017}, } +origins = ["http://localhost:4200", "http://localhost"] + class AtlasApp: API_VERSION = "v1" @@ -20,6 +26,13 @@ class AtlasApp: def __init__(self, config=None): self.config = config or CONFIG self.app = FastAPI() + self.app.add_middleware( + CORSMiddleware, + allow_origins=origins, + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], + ) self.server = None self.prefix = f"/api/{self.API_VERSION}" self.datasources = DatasourceManager(config=self.config) @@ -43,12 +56,31 @@ class AtlasApp: raise ValueError("Datasources not loaded") self.scan_router = ScanRouter(prefix=self.prefix, datasources=self.datasources) self.app.include_router(self.scan_router.router, tags=["Scan"]) + self.user_router = UserRouter(prefix=self.prefix, datasources=self.datasources) self.app.include_router(self.user_router.router, tags=["User"]) + self.deployment_router = DeploymentsRouter(prefix=self.prefix, datasources=self.datasources) self.app.include_router(self.deployment_router.router, tags=["Deployment"]) + + self.deployment_credentials_router = DeploymentCredentialsRouter( + prefix=self.prefix, datasources=self.datasources + ) + self.app.include_router( + self.deployment_credentials_router.router, tags=["Deployment Credentials"] + ) + + self.deployment_access_router = DeploymentAccessRouter( + prefix=self.prefix, datasources=self.datasources + ) + self.app.include_router(self.deployment_access_router.router, tags=["Deployment Access"]) + + self.bec_access_router = BECAccessRouter(prefix=self.prefix, datasources=self.datasources) + self.app.include_router(self.bec_access_router.router, tags=["BEC Access"]) + self.realm_router = RealmRouter(prefix=self.prefix, datasources=self.datasources) self.app.include_router(self.realm_router.router, tags=["Realm"]) + self.redis_router = RedisRouter(prefix=self.prefix, datasources=self.datasources) self.app.include_router(self.redis_router.router, tags=["Redis"]) diff --git a/backend/bec_atlas/model/model.py b/backend/bec_atlas/model/model.py index b7d296b..5e539c6 100644 --- a/backend/bec_atlas/model/model.py +++ b/backend/bec_atlas/model/model.py @@ -1,6 +1,5 @@ from __future__ import annotations -import uuid from typing import Any, Literal from bec_lib import messages @@ -53,7 +52,6 @@ class UserInfo(BaseModel): class Deployments(MongoBaseModel, AccessProfile): realm_id: str | ObjectId name: str - deployment_key: str = Field(default_factory=lambda: str(uuid.uuid4())) active_session_id: str | ObjectId | None = None config_templates: list[str | ObjectId] = [] @@ -61,11 +59,57 @@ class Deployments(MongoBaseModel, AccessProfile): class DeploymentsPartial(MongoBaseModel, AccessProfilePartial): realm_id: str | ObjectId | None = None name: str | None = None - deployment_key: str | None = None active_session_id: str | ObjectId | None = None config_templates: list[str | ObjectId] | None = None +class DeploymentCredential(MongoBaseModel): + credential: str + + +class DeploymentAccess(MongoBaseModel, AccessProfile): + """ + The DeploymentAccess model is used to store the access control + lists for the deployment. The access control lists are used to + control access to the BEC deployment and contain either user + or group names. + Once the access control lists are updated, the corresponding + BECAccessProfiles for this deployment are updated to reflect + the changes. + + Owner: beamline staff + """ + + user_read_access: list[str] = [] + user_write_access: list[str] = [] + su_read_access: list[str] = [] + su_write_access: list[str] = [] + remote_access: list[str] = [] + + +class BECAccessProfile(MongoBaseModel, AccessProfile): + """ + The BECAccessProfile model is used to store the Redis ACL config + for BEC of a user. The username can be either a user or a group. + The config fields (categories, keys, channels, commands) are determined + based on the access level given through the corresponding DeploymentAccess + document. + + Owner: admin + Access: user or group matching the username + + """ + + deployment_id: str | ObjectId + username: str + passwords: dict[str, str] = {} + categories: list[str] = [] + keys: list[str] = [] + channels: list[str] = [] + commands: list[str] = [] + profile: str = "" + + class Realm(MongoBaseModel, AccessProfile): realm_id: str deployments: list[Deployments | DeploymentsPartial] = [] diff --git a/backend/bec_atlas/router/bec_access_router.py b/backend/bec_atlas/router/bec_access_router.py new file mode 100644 index 0000000..ca10d06 --- /dev/null +++ b/backend/bec_atlas/router/bec_access_router.py @@ -0,0 +1,51 @@ +from bson import ObjectId +from fastapi import APIRouter, Depends, HTTPException, Query + +from bec_atlas.authentication import get_current_user +from bec_atlas.datasources.mongodb.mongodb import MongoDBDatasource +from bec_atlas.model.model import BECAccessProfile, UserInfo +from bec_atlas.router.base_router import BaseRouter + + +class BECAccessRouter(BaseRouter): + def __init__(self, prefix="/api/v1", datasources=None): + super().__init__(prefix, datasources) + self.db: MongoDBDatasource = self.datasources.datasources.get("mongodb") + self.router = APIRouter(prefix=prefix) + self.router.add_api_route( + "/bec_access", + self.get_bec_access, + methods=["GET"], + description="Retrieve the access key for a specific deployment and user.", + ) + + async def get_bec_access( + self, + deployment_id: str, + user: str = Query(None), + current_user: UserInfo = Depends(get_current_user), + ) -> dict: + """ + Retrieve the access key for a specific deployment and user. + + Args: + deployment_id (str): The deployment id + user (str): The user name to retrieve the access key for. If not provided, + the access key for the current user will be retrieved. + current_user (UserInfo): The current user + """ + if not user: + user = current_user.email + out = self.db.find_one( + "bec_access_profiles", + {"deployment_id": ObjectId(deployment_id), "username": user}, + BECAccessProfile, + user=current_user, + ) + + if not out: + raise HTTPException(status_code=404, detail="Access key not found.") + + # Return the newest access key + timestamps = sorted(out.passwords.keys()) + return {"token": out.passwords[timestamps[-1]]} diff --git a/backend/bec_atlas/router/deployment_access_router.py b/backend/bec_atlas/router/deployment_access_router.py new file mode 100644 index 0000000..0ad53c4 --- /dev/null +++ b/backend/bec_atlas/router/deployment_access_router.py @@ -0,0 +1,227 @@ +import secrets +import time +from typing import TYPE_CHECKING, Any + +from bec_lib.endpoints import EndpointInfo, MessageOp +from bec_lib.serialization import MsgpackSerialization +from bson import ObjectId +from fastapi import APIRouter, Depends + +from bec_atlas.authentication import get_current_user +from bec_atlas.datasources.mongodb.mongodb import MongoDBDatasource +from bec_atlas.model.model import BECAccessProfile, DeploymentAccess, UserInfo +from bec_atlas.router.base_router import BaseRouter +from bec_atlas.router.redis_router import RedisAtlasEndpoints + +if TYPE_CHECKING: + from bec_atlas.datasources.redis_datasource import RedisDatasource + + +class DeploymentAccessRouter(BaseRouter): + def __init__(self, prefix="/api/v1", datasources=None): + super().__init__(prefix, datasources) + self.db: MongoDBDatasource = self.datasources.datasources.get("mongodb") + self.router = APIRouter(prefix=prefix) + self.router.add_api_route( + "/deployment_access", + self.get_deployment_access, + methods=["GET"], + description="Get the access lists for a specific deployment.", + response_model=DeploymentAccess, + ) + self.router.add_api_route( + "/deployment_access", + self.patch_deployment_access, + methods=["PATCH"], + description="Update the access lists for a specific deployment.", + response_model=DeploymentAccess, + ) + + async def get_deployment_access( + self, deployment_id: str, current_user: UserInfo = Depends(get_current_user) + ) -> DeploymentAccess: + """ + Get the access lists for a specific deployment. + + Args: + deployment_id (str): The deployment id + current_user (UserInfo): The current user + + Returns: + DeploymentAccess: The access lists for the deployment + """ + return self.db.find_one( + "deployments", {"_id": ObjectId(deployment_id)}, DeploymentAccess, user=current_user + ) + + async def patch_deployment_access( + self, + deployment_id: str, + deployment_access: dict, + current_user: UserInfo = Depends(get_current_user), + ) -> DeploymentAccess: + """ + Update the access lists for a specific deployment. + + Args: + deployment_id (str): The deployment id + deployment_access (DeploymentAccess): The deployment access object + current_user (UserInfo): The current user + + Returns: + DeploymentAccess: The updated access lists for the deployment + """ + deployment_access.pop("_id", None) + deployment_access.pop("id", None) + deployment_access.pop("owner_groups", None) + deployment_access.pop("access_groups", None) + original = self.db.find_one( + "deployment_access", + {"_id": ObjectId(deployment_id)}, + DeploymentAccess, + user=current_user, + ) + out = self.db.patch( + collection="deployment_access", + id=ObjectId(deployment_id), + update=deployment_access, + dtype=DeploymentAccess, + user=current_user, + ) + self._update_bec_access_profiles(original=original, updated=out) + self._refresh_redis_bec_access(deployment_id) + return out + + def _update_bec_access_profiles(self, original: DeploymentAccess, updated: DeploymentAccess): + """ + Update the BEC access profiles in the database. This will not update the redis access. + Call _refresh_redis_bec_access to update the redis access. + + Args: + deployment_access (DeploymentAccess): The deployment access object + """ + db: MongoDBDatasource = self.datasources.datasources.get("mongodb") + + new_profiles = set( + updated.user_read_access + + updated.user_write_access + + updated.su_read_access + + updated.su_write_access + ) + old_profiles = set( + original.user_read_access + + original.user_write_access + + original.su_read_access + + original.su_write_access + ) + removed_profiles = old_profiles - new_profiles + for profile in removed_profiles: + db.delete_one("bec_access_profiles", {"username": profile, "deployment_id": updated.id}) + for profile in new_profiles: + if profile in updated.su_write_access: + access = self._get_redis_access_profile("su_write", profile, updated.id) + elif profile in updated.su_read_access: + access = self._get_redis_access_profile("su_read", profile, updated.id) + elif profile in updated.user_write_access: + access = self._get_redis_access_profile("user_write", profile, updated.id) + else: + access = self._get_redis_access_profile("user_read", profile, updated.id) + + existing_profile = db.find_one( + "bec_access_profiles", + {"username": profile, "deployment_id": updated.id}, + BECAccessProfile, + ) + if existing_profile: + # access.passwords = existing_profile.passwords + db.patch( + "bec_access_profiles", + existing_profile.id, + access.model_dump(exclude_none=True, exclude_defaults=True), + BECAccessProfile, + ) + else: + access.passwords = {str(time.time()): secrets.token_urlsafe(32)} + db.post( + "bec_access_profiles", access.model_dump(exclude_none=True), BECAccessProfile + ) + + def _refresh_redis_bec_access(self, deployment_id: str): + """ + Refresh the redis BEC access. + """ + redis: RedisDatasource = self.datasources.datasources.get("redis") + db: MongoDBDatasource = self.datasources.datasources.get("mongodb") + profiles = db.find( + "bec_access_profiles", {"deployment_id": ObjectId(deployment_id)}, BECAccessProfile + ) + profiles = [profile.model_dump(exclude_none=True) for profile in profiles] + for profile in profiles: + profile.pop("owner_groups", None) + profile.pop("access_groups", None) + profile.pop("deployment_id", None) + profile.pop("_id", None) + + endpoint_info = EndpointInfo( + RedisAtlasEndpoints.redis_bec_acl_user(deployment_id), Any, MessageOp.SET_PUBLISH + ) + + redis.connector.set_and_publish(endpoint_info, MsgpackSerialization.dumps(profiles)) + + def _get_redis_access_profile(self, access_profile: str, username: str, deployment_id: str): + """ + Get the redis access profile. + + Args: + access_profile (str): The access profile + username (str): The username + deployment_id (str): The deployment id + + """ + if access_profile == "su_write": + return BECAccessProfile( + owner_groups=["admin"], + access_groups=[username], + deployment_id=deployment_id, + username=username, + categories=["+@all"], + keys=["*"], + channels=["*"], + commands=["+all"], + profile="su_write", + ) + if access_profile == "su_read": + return BECAccessProfile( + owner_groups=["admin"], + access_groups=[username], + deployment_id=deployment_id, + username=username, + categories=["+@all", "-@dangerous"], + keys=["*"], + channels=["*"], + commands=["+read"], + profile="su_read", + ) + if access_profile == "user_write": + return BECAccessProfile( + owner_groups=["admin"], + access_groups=[username], + deployment_id=deployment_id, + username=username, + categories=["+@all", "-@dangerous"], + keys=["*"], + channels=["*"], + commands=["+write"], + profile="user_write", + ) + return BECAccessProfile( + owner_groups=["admin"], + access_groups=[username], + deployment_id=deployment_id, + username=username, + categories=["+@all", "-@dangerous"], + keys=["*"], + channels=["*"], + commands=["+read"], + profile="user_read", + ) diff --git a/backend/bec_atlas/router/deployment_credentials.py b/backend/bec_atlas/router/deployment_credentials.py new file mode 100644 index 0000000..16d370b --- /dev/null +++ b/backend/bec_atlas/router/deployment_credentials.py @@ -0,0 +1,85 @@ +import secrets +from typing import TYPE_CHECKING + +from bson import ObjectId +from fastapi import APIRouter, Depends, HTTPException + +from bec_atlas.authentication import get_current_user +from bec_atlas.datasources.mongodb.mongodb import MongoDBDatasource +from bec_atlas.model.model import DeploymentCredential, UserInfo +from bec_atlas.router.base_router import BaseRouter + +if TYPE_CHECKING: + from bec_atlas.datasources.redis_datasource import RedisDatasource + + +class DeploymentCredentialsRouter(BaseRouter): + def __init__(self, prefix="/api/v1", datasources=None): + super().__init__(prefix, datasources) + self.db: MongoDBDatasource = self.datasources.datasources.get("mongodb") + self.router = APIRouter(prefix=prefix) + self.router.add_api_route( + "/deploymentCredentials", + self.deployment_credential, + methods=["GET"], + description="Retrieve the deployment key for a specific deployment.", + response_model=DeploymentCredential, + ) + self.router.add_api_route( + "/deploymentCredentials/refresh", + self.refresh_deployment_credentials, + methods=["POST"], + description="Refresh the deployment key for a specific deployment.", + response_model=DeploymentCredential, + ) + + async def deployment_credential( + self, deployment_id: str, current_user: UserInfo = Depends(get_current_user) + ) -> DeploymentCredential: + """ + Get the credentials for a deployment. + + Args: + deployment_id (str): The deployment id + """ + if set(current_user.groups) & set(["admin", "bec_group"]): + out = self.db.find( + "deployment_credentials", {"_id": ObjectId(deployment_id)}, DeploymentCredential + ) + if len(out) > 0: + return out[0] + return None + + raise HTTPException( + status_code=403, detail="User does not have permission to access this resource." + ) + + async def refresh_deployment_credentials( + self, deployment_id: str, current_user: UserInfo = Depends(get_current_user) + ): + """ + Refresh the deployment credentials. + + Args: + deployment_id (str): The deployment id + + """ + if set(current_user.groups) & set(["admin", "bec_group"]): + token = secrets.token_urlsafe(32) + out = self.db.patch( + "deployment_credentials", + id=ObjectId(deployment_id), + update={"credential": token}, + dtype=DeploymentCredential, + ) + if out is None: + raise HTTPException(status_code=404, detail="Deployment not found") + + # update the redis deployment key + redis: RedisDatasource = self.datasources.datasources.get("redis") + redis.add_deployment_acl(out) + + return out + raise HTTPException( + status_code=403, detail="User does not have permission to access this resource." + ) diff --git a/backend/bec_atlas/router/deployments_router.py b/backend/bec_atlas/router/deployments_router.py index db338e5..bb107e1 100644 --- a/backend/bec_atlas/router/deployments_router.py +++ b/backend/bec_atlas/router/deployments_router.py @@ -5,7 +5,7 @@ from fastapi import APIRouter, Depends from bec_atlas.authentication import get_current_user from bec_atlas.datasources.mongodb.mongodb import MongoDBDatasource -from bec_atlas.model.model import Deployments, UserInfo +from bec_atlas.model.model import DeploymentCredential, Deployments, UserInfo from bec_atlas.router.base_router import BaseRouter if TYPE_CHECKING: @@ -18,14 +18,14 @@ class DeploymentsRouter(BaseRouter): self.db: MongoDBDatasource = self.datasources.datasources.get("mongodb") self.router = APIRouter(prefix=prefix) self.router.add_api_route( - "/deployments/realm/{realm}", + "/deployments/realm", self.deployments, methods=["GET"], description="Get all deployments for the realm", response_model=list[Deployments], ) self.router.add_api_route( - "/deployments/id/{deployment_id}", + "/deployments/id", self.deployment_with_id, methods=["GET"], description="Get a single deployment by id for a realm", @@ -65,10 +65,11 @@ class DeploymentsRouter(BaseRouter): Update the available deployments. """ self.available_deployments = self.db.find("deployments", {}, Deployments) + credentials = self.db.find("deployment_credentials", {}, DeploymentCredential) redis: RedisDatasource = self.datasources.datasources.get("redis") msg = json.dumps([msg.model_dump() for msg in self.available_deployments]) redis.connector.set_and_publish("deployments", msg) if redis.reconfigured_acls: - for deployment in self.available_deployments: + for deployment in credentials: redis.add_deployment_acl(deployment) diff --git a/backend/bec_atlas/router/realm_router.py b/backend/bec_atlas/router/realm_router.py index 92e8294..b988943 100644 --- a/backend/bec_atlas/router/realm_router.py +++ b/backend/bec_atlas/router/realm_router.py @@ -20,7 +20,7 @@ class RealmRouter(BaseRouter): response_model_exclude_none=True, ) self.router.add_api_route( - "/realms/{realm_id}", + "/realms/id", self.realm_with_id, methods=["GET"], description="Get a single realm by id", diff --git a/backend/bec_atlas/router/redis_router.py b/backend/bec_atlas/router/redis_router.py index 231e668..4f5a8ab 100644 --- a/backend/bec_atlas/router/redis_router.py +++ b/backend/bec_atlas/router/redis_router.py @@ -95,6 +95,19 @@ class RedisAtlasEndpoints: """ return f"internal/deployment/{deployment}/request_response/{request_id}" + @staticmethod + def redis_bec_acl_user(deployment_id: str): + """ + Endpoint for the redis BEC ACL user for a deployment. + + Args: + deployment_id (str): The deployment id + + Returns: + str: The endpoint for the redis BEC ACL user + """ + return f"internal/deployment/{deployment_id}/bec_access" + class MsgResponse(Response): media_type = "application/json" @@ -115,7 +128,7 @@ class RedisRouter(BaseRouter): self.router = APIRouter(prefix=prefix) self.router.add_api_route( - "/redis/{deployment}", self.redis_get, methods=["GET"], response_class=MsgResponse + "/redis", self.redis_get, methods=["GET"], response_class=MsgResponse ) self.router.add_api_route("/redis", self.redis_post, methods=["POST"]) self.router.add_api_route("/redis", self.redis_delete, methods=["DELETE"]) diff --git a/backend/bec_atlas/router/scan_router.py b/backend/bec_atlas/router/scan_router.py index 5da1eee..96e940f 100644 --- a/backend/bec_atlas/router/scan_router.py +++ b/backend/bec_atlas/router/scan_router.py @@ -12,14 +12,14 @@ class ScanRouter(BaseRouter): self.db: MongoDBDatasource = self.datasources.datasources.get("mongodb") self.router = APIRouter(prefix=prefix) self.router.add_api_route( - "/scans/session/{session_id}", + "/scans/session", self.scans, methods=["GET"], description="Get all scans for a session", response_model=list[ScanStatus], ) self.router.add_api_route( - "/scans/id/{scan_id}", + "/scans/id", self.scans_with_id, methods=["GET"], description="Get a single scan by id for a session", diff --git a/backend/bec_atlas/router/user_router.py b/backend/bec_atlas/router/user_router.py index 60b7fac..f6867ce 100644 --- a/backend/bec_atlas/router/user_router.py +++ b/backend/bec_atlas/router/user_router.py @@ -39,13 +39,14 @@ class UserRouter(BaseRouter): return {"access_token": out, "token_type": "bearer"} async def user_login(self, user_login: UserLoginRequest): + exc = HTTPException(status_code=401, detail="User not found or password is incorrect") user = self.db.get_user_by_email(user_login.username) if user is None: - raise HTTPException(status_code=404, detail="User not found") + raise exc credentials = self.db.get_user_credentials(user.id) if credentials is None: - raise HTTPException(status_code=404, detail="User not found") + raise exc if not verify_password(user_login.password, credentials.password): - raise HTTPException(status_code=401, detail="Invalid password") + raise exc return create_access_token(data={"groups": list(user.groups), "email": user.email}) diff --git a/backend/bec_atlas/utils/demo_database_setup.py b/backend/bec_atlas/utils/demo_database_setup.py index 80380cf..1065dee 100644 --- a/backend/bec_atlas/utils/demo_database_setup.py +++ b/backend/bec_atlas/utils/demo_database_setup.py @@ -1,3 +1,5 @@ +import secrets + import pymongo from bec_atlas.model import Deployments, Realm, Session @@ -43,8 +45,29 @@ class DemoSetupLoader: owner_groups=["admin", "demo"], access_groups=["demo"], ) - if self.db["deployments"].find_one({"name": deployment.name}) is None: + existing_deployment = self.db["deployments"].find_one({"name": deployment.name}) + if existing_deployment is None: self.db["deployments"].insert_one(deployment.__dict__) + existing_deployment = self.db["deployments"].find_one({"name": deployment.name}) + deployment = existing_deployment + + if self.db["deployment_credentials"].find_one({"_id": deployment["_id"]}) is None: + deployment_credential = { + "_id": deployment["_id"], + "credential": secrets.token_urlsafe(32), + } + self.db["deployment_credentials"].insert_one(deployment_credential) + deployment_access = { + "_id": deployment["_id"], + "owner_groups": ["admin", "demo"], + "access_groups": [], + "user_read_access": [], + "user_write_access": [], + "su_read_access": [], + "su_write_access": [], + "remote_access": [], + } + self.db["deployment_access"].insert_one(deployment_access) if self.db["sessions"].find_one({"name": "_default_"}) is None: deployment = self.db["deployments"].find_one({"name": deployment.name}) diff --git a/frontend/bec_atlas/angular.json b/frontend/bec_atlas/angular.json index 4babc8c..eaad75b 100644 --- a/frontend/bec_atlas/angular.json +++ b/frontend/bec_atlas/angular.json @@ -20,9 +20,7 @@ "outputPath": "dist/bec_atlas", "index": "src/index.html", "browser": "src/main.ts", - "polyfills": [ - "zone.js" - ], + "polyfills": ["zone.js"], "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", "assets": [ @@ -35,7 +33,7 @@ "@angular/material/prebuilt-themes/cyan-orange.css", "src/styles.scss" ], - "scripts": [] + "scripts": ["./node_modules/plotly.js/dist/plotly.min.js"] }, "configurations": { "production": { @@ -79,10 +77,7 @@ "test": { "builder": "@angular-devkit/build-angular:karma", "options": { - "polyfills": [ - "zone.js", - "zone.js/testing" - ], + "polyfills": ["zone.js", "zone.js/testing"], "tsConfig": "tsconfig.spec.json", "inlineStyleLanguage": "scss", "assets": [ diff --git a/frontend/bec_atlas/package-lock.json b/frontend/bec_atlas/package-lock.json index 6cd84be..acd71da 100644 --- a/frontend/bec_atlas/package-lock.json +++ b/frontend/bec_atlas/package-lock.json @@ -21,6 +21,7 @@ "angular-gridster2": "^19.0.0", "gridstack": "^11.1.2", "gridstack-angular": "^0.6.0-dev", + "plotly.js": "^2.35.3", "rxjs": "~7.8.0", "socket.io-client": "^4.8.1", "tslib": "^2.3.0", @@ -31,6 +32,7 @@ "@angular/cli": "^19.0.5", "@angular/compiler-cli": "^19.0.0", "@types/jasmine": "~5.1.0", + "@types/plotly.js": "^2.35.2", "jasmine-core": "~5.4.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -55,13 +57,13 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1900.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1900.5.tgz", - "integrity": "sha512-JxgoIxwGw3QNj6e70d04g5yJ8ZK0g/my22UK0TlRJRbYcfFQr8pL7u3wq77iNlgeHMDwBskZEf4TEZOVSbm7mw==", + "version": "0.1901.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1901.2.tgz", + "integrity": "sha512-Hy+3Q0OH/6zlQ75fFzWDT8VtemgzldyLIRQAHmQ17wNq+iWYr/XmBPw/rXMVFVKmVwzSdYZgdjjb3dl/ezh4UQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.5", + "@angular-devkit/core": "19.1.2", "rxjs": "7.8.1" }, "engines": { @@ -71,19 +73,19 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.0.5.tgz", - "integrity": "sha512-Z8GcTBsDGKPIKWtLoRVuss/oGytRaVXZSsXzfCapWjggwuN0B2b26Ms0kfU0kIWRfEzz38wKwug/1l86Q9HqNA==", + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-19.1.2.tgz", + "integrity": "sha512-84BxhGCE5FNlUXAMpnCgRrRBl8H0zCHYLF8RAKwQy3EAV86kdJmlBzuT8NKtYRBRsdqynYnckWLxPhh8RloVew==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1900.5", - "@angular-devkit/build-webpack": "0.1900.5", - "@angular-devkit/core": "19.0.5", - "@angular/build": "19.0.5", + "@angular-devkit/architect": "0.1901.2", + "@angular-devkit/build-webpack": "0.1901.2", + "@angular-devkit/core": "19.1.2", + "@angular/build": "19.1.2", "@babel/core": "7.26.0", - "@babel/generator": "7.26.2", + "@babel/generator": "7.26.3", "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", "@babel/plugin-transform-async-generator-functions": "7.25.9", @@ -92,21 +94,21 @@ "@babel/preset-env": "7.26.0", "@babel/runtime": "7.26.0", "@discoveryjs/json-ext": "0.6.3", - "@ngtools/webpack": "19.0.5", - "@vitejs/plugin-basic-ssl": "1.1.0", + "@ngtools/webpack": "19.1.2", + "@vitejs/plugin-basic-ssl": "1.2.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.20", "babel-loader": "9.2.1", "browserslist": "^4.21.5", "copy-webpack-plugin": "12.0.2", "css-loader": "7.1.2", - "esbuild-wasm": "0.24.0", - "fast-glob": "3.3.2", + "esbuild-wasm": "0.24.2", + "fast-glob": "3.3.3", "http-proxy-middleware": "3.0.3", "istanbul-lib-instrument": "6.0.3", "jsonc-parser": "3.3.1", "karma-source-map-support": "1.4.0", - "less": "4.2.0", + "less": "4.2.1", "less-loader": "12.2.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.3.1", @@ -114,22 +116,22 @@ "open": "10.1.0", "ora": "5.4.1", "picomatch": "4.0.2", - "piscina": "4.7.0", + "piscina": "4.8.0", "postcss": "8.4.49", "postcss-loader": "8.1.1", "resolve-url-loader": "5.0.0", "rxjs": "7.8.1", - "sass": "1.80.7", - "sass-loader": "16.0.3", + "sass": "1.83.1", + "sass-loader": "16.0.4", "semver": "7.6.3", "source-map-loader": "5.0.0", "source-map-support": "0.5.21", - "terser": "5.36.0", + "terser": "5.37.0", "tree-kill": "1.2.2", "tslib": "2.8.1", - "webpack": "5.96.1", + "webpack": "5.97.1", "webpack-dev-middleware": "7.4.2", - "webpack-dev-server": "5.1.0", + "webpack-dev-server": "5.2.0", "webpack-merge": "6.0.1", "webpack-subresource-integrity": "5.1.0" }, @@ -139,14 +141,14 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.24.0" + "esbuild": "0.24.2" }, "peerDependencies": { "@angular/compiler-cli": "^19.0.0", "@angular/localize": "^19.0.0", "@angular/platform-server": "^19.0.0", "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.0.5", + "@angular/ssr": "^19.1.2", "@web/test-runner": "^0.19.0", "browser-sync": "^3.0.2", "jest": "^29.5.0", @@ -155,7 +157,7 @@ "ng-packagr": "^19.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.5 <5.7" + "typescript": ">=5.5 <5.8" }, "peerDependenciesMeta": { "@angular/localize": { @@ -197,13 +199,13 @@ } }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1900.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1900.5.tgz", - "integrity": "sha512-SWrXxVS0u9RXq3bz1+rKfH79nYiqPL9qdJt4lAhTo5O+Uc+qEHLctLvkOYCJHqezLblJG2nGBhHTB0EBmi8pLg==", + "version": "0.1901.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1901.2.tgz", + "integrity": "sha512-bIKADsYsvWinTPpScABfdHGdHGH+I1qhmBvhD1P57CuRzlExX/EOVss7eXPYki5wKSgGHSrZ/oGdGmIa1v7zgQ==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1900.5", + "@angular-devkit/architect": "0.1901.2", "rxjs": "7.8.1" }, "engines": { @@ -217,9 +219,9 @@ } }, "node_modules/@angular-devkit/core": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.0.5.tgz", - "integrity": "sha512-njBblpYHmlDI+Jtbub9NEm9RH+SBIFmmsgL9uJB8GxQVSo2qo4+f69nTkijRNN8WNKsSkYoRR9+JSl9QXWbyEA==", + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-19.1.2.tgz", + "integrity": "sha512-sCYu96C7ToeLGi+ggs2+TxOt1/5eC6WZe/SR7cLpf9rv+gi3ijbH2w+JP6aR4Ne12EL6WGkes42rfT5fL+Z4Gg==", "dev": true, "license": "MIT", "dependencies": { @@ -245,15 +247,15 @@ } }, "node_modules/@angular-devkit/schematics": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.0.5.tgz", - "integrity": "sha512-dhLVBVb0ECfcIP59azoD/5lJMSMU//bo1LEbuE0VrFA9orVxQhgilNuZeVXBr5sOll1PFjxs/fqyX8sAH9xQYw==", + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-19.1.2.tgz", + "integrity": "sha512-+eeDvbTj37Yczs3S1Hy42Nr1OG5BHORDPdY+bLIP383aTFjfTtlMIya46iNvMCYjinvnQkC4GcKdsa4ews3c9A==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.5", + "@angular-devkit/core": "19.1.2", "jsonc-parser": "3.3.1", - "magic-string": "0.30.12", + "magic-string": "0.30.17", "ora": "5.4.1", "rxjs": "7.8.1" }, @@ -264,9 +266,9 @@ } }, "node_modules/@angular/animations": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.0.4.tgz", - "integrity": "sha512-iGuOMlVhLBmGCSJ5azqwLdsBIFlWXtB+CffeoJjKXGjR2YRxP1aylNccB5UqE7G/XjNNLjJfLkm+nQUAWGLMNg==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-19.1.1.tgz", + "integrity": "sha512-MWZKQSFBr7iEfLH4tSpsjjC/Afq8Udp4v6kv4YGRcXuJKn8cL6KZ+8nPFkZACYPNrB/5jrWN27HGjWWlO2Z2Hg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -275,40 +277,40 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.4" + "@angular/core": "19.1.1" } }, "node_modules/@angular/build": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.0.5.tgz", - "integrity": "sha512-/4msIXebFfDWcsyYGDzcxrhn1G1bWVTVbLYqkDXDVYFTqWRpBA8UtQ6eLM8FrJqrHw9e/1cxkqBNsR0tkDJ9FQ==", + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-19.1.2.tgz", + "integrity": "sha512-iSTgtAv47sLmI9VR5FZM5DZhsT8pG51t9pkg/36gjRdKDEPS7k3h+9+PrD25oaYoUFq7ufVr9OOAFkFvt7gFng==", "dev": true, "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1900.5", + "@angular-devkit/architect": "0.1901.2", "@babel/core": "7.26.0", "@babel/helper-annotate-as-pure": "7.25.9", "@babel/helper-split-export-declaration": "7.24.7", "@babel/plugin-syntax-import-attributes": "7.26.0", - "@inquirer/confirm": "5.0.2", - "@vitejs/plugin-basic-ssl": "1.1.0", - "beasties": "0.1.0", + "@inquirer/confirm": "5.1.1", + "@vitejs/plugin-basic-ssl": "1.2.0", + "beasties": "0.2.0", "browserslist": "^4.23.0", - "esbuild": "0.24.0", - "fast-glob": "3.3.2", - "https-proxy-agent": "7.0.5", + "esbuild": "0.24.2", + "fast-glob": "3.3.3", + "https-proxy-agent": "7.0.6", "istanbul-lib-instrument": "6.0.3", "listr2": "8.2.5", - "magic-string": "0.30.12", + "magic-string": "0.30.17", "mrmime": "2.0.0", "parse5-html-rewriting-stream": "7.0.0", "picomatch": "4.0.2", - "piscina": "4.7.0", - "rollup": "4.26.0", - "sass": "1.80.7", + "piscina": "4.8.0", + "rollup": "4.30.1", + "sass": "1.83.1", "semver": "7.6.3", - "vite": "5.4.11", + "vite": "6.0.7", "watchpack": "2.4.2" }, "engines": { @@ -317,7 +319,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "lmdb": "3.1.5" + "lmdb": "3.2.2" }, "peerDependencies": { "@angular/compiler": "^19.0.0", @@ -325,11 +327,12 @@ "@angular/localize": "^19.0.0", "@angular/platform-server": "^19.0.0", "@angular/service-worker": "^19.0.0", - "@angular/ssr": "^19.0.5", + "@angular/ssr": "^19.1.2", "less": "^4.2.0", + "ng-packagr": "^19.0.0", "postcss": "^8.4.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": ">=5.5 <5.7" + "typescript": ">=5.5 <5.8" }, "peerDependenciesMeta": { "@angular/localize": { @@ -347,6 +350,9 @@ "less": { "optional": true }, + "ng-packagr": { + "optional": true + }, "postcss": { "optional": true }, @@ -356,9 +362,9 @@ } }, "node_modules/@angular/cdk": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.0.4.tgz", - "integrity": "sha512-P8V1n6AFFjBUJG3YRgw8DiiNDWPZVrwQ42wbwgZxd4s2TQAuNFg3YY8h/DSMVxt2sXpavrshZsoLtP9yLKZjHA==", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-19.1.0.tgz", + "integrity": "sha512-h7VSaMA/vFHb7u1bwoHKl3L3mZLIcXNZw6v7Nei9ITfEo1PfSKbrYhleeqpNikzE+LxNDKJrbZtpAckSYHblmA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -373,26 +379,26 @@ } }, "node_modules/@angular/cli": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.0.5.tgz", - "integrity": "sha512-AalLr1EbgJqBbzk+5ZtXwg6wCwLlRLd+CRrZZcC6QSee69mfsU9jEP2KFlMAecajOCqAGK3H4ZRiTZNeQ3y5AA==", + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-19.1.2.tgz", + "integrity": "sha512-LaxGw4xBY4eIpdNWDE4ASqvuQ6oe8R/uxsHS9LXGq8Q3QsSOE1oZWNvMB29gXT0lHKnUigP7OhjdHc2cuLMcpA==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1900.5", - "@angular-devkit/core": "19.0.5", - "@angular-devkit/schematics": "19.0.5", - "@inquirer/prompts": "7.1.0", + "@angular-devkit/architect": "0.1901.2", + "@angular-devkit/core": "19.1.2", + "@angular-devkit/schematics": "19.1.2", + "@inquirer/prompts": "7.2.1", "@listr2/prompt-adapter-inquirer": "2.0.18", - "@schematics/angular": "19.0.5", + "@schematics/angular": "19.1.2", "@yarnpkg/lockfile": "1.1.0", "ini": "5.0.0", "jsonc-parser": "3.3.1", "listr2": "8.2.5", - "npm-package-arg": "12.0.0", + "npm-package-arg": "12.0.1", "npm-pick-manifest": "10.0.0", "pacote": "20.0.0", - "resolve": "1.22.8", + "resolve": "1.22.10", "semver": "7.6.3", "symbol-observable": "4.0.0", "yargs": "17.7.2" @@ -407,9 +413,9 @@ } }, "node_modules/@angular/common": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.0.4.tgz", - "integrity": "sha512-SBWraO5NVZa/QJPrVbk3IsUmZQDriYBvqYuZFJaI/UTbhcAedNRsLDbKHtOYrHHx6K1saPXSQCufWgFo30lEqw==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-19.1.1.tgz", + "integrity": "sha512-2ZbnV8lM81ekLjRMRufRho7N8adz+Yjwj+3y5RB7+GW8fX5f9mm740ifyieBCXPLtiWb8ZK1i9gime6y64BEBQ==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -418,14 +424,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.4", + "@angular/core": "19.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.0.4.tgz", - "integrity": "sha512-DWeP7lnR8L8W/jtmO9oWEGC9JcFE+GCLrsHm8cJN1a4jf9JA1OB8UsPdqxS/JHJJ8GWk5U1ivpTzxKBpXx6ShA==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-19.1.1.tgz", + "integrity": "sha512-bXPiJKQYjH6kSBnlVHx8aLzYY7YhWw1cidthWwqNaXyZ4YYILom1lN3C7nJYOVDX8W64QCMimHqf8iD4guByxA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -434,7 +440,7 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/core": "19.0.4" + "@angular/core": "19.1.1" }, "peerDependenciesMeta": { "@angular/core": { @@ -443,9 +449,9 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.0.4.tgz", - "integrity": "sha512-D26HwIYNuvo39Jnimv3VguBpMZkpGf1zAS3ZE9atfk1AQOew7KSFnqbSm1IRHiTj99cqnBE068q1zZnXg+3mEA==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-19.1.1.tgz", + "integrity": "sha512-mk+CIV98WtZPfk4R0cdo7Jx8bZZewCO5K0dcG7/AMck+e2dDl2pjtXz1wYJi8NpUUAtcrr9HWlvxQ2L8IJMIag==", "dev": true, "license": "MIT", "dependencies": { @@ -467,14 +473,14 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/compiler": "19.0.4", - "typescript": ">=5.5 <5.7" + "@angular/compiler": "19.1.1", + "typescript": ">=5.5 <5.8" } }, "node_modules/@angular/core": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.0.4.tgz", - "integrity": "sha512-eoLixL8+03HpMIrmbL9lX+PAEw/fJSGshUH99IN9ZgCDEWeAlORg3U5RQEEh59ovelGfTn/sNaYhWsLVoBUIYQ==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-19.1.1.tgz", + "integrity": "sha512-uEDnomaIh7yUPx6hHWMFcWrUMOwishkkPToSFMltVLfRrfmAQL+WMpOGtR6qiFG6PIppsADIxXPRWVzfnYOYZg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -488,9 +494,9 @@ } }, "node_modules/@angular/forms": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.0.4.tgz", - "integrity": "sha512-smBCOjqCOMjHxRwwmImo58esSatGRsIxEaPytMezWWXqcD9pCZFzHskXA7218cJBRO8T9wuAf5AJFSqD4Yg72A==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-19.1.1.tgz", + "integrity": "sha512-MtvoAeOXa2v+24U+5BMwmJpbQs/SQ296u+mJiZ/hIuuB/XBZdlPMzGg0U9ENDg6kwwoZIypcgiQ0/+gIwxlCSw==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -499,23 +505,23 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.4", - "@angular/core": "19.0.4", - "@angular/platform-browser": "19.0.4", + "@angular/common": "19.1.1", + "@angular/core": "19.1.1", + "@angular/platform-browser": "19.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.0.4.tgz", - "integrity": "sha512-8WRMbN1+oRXx1ZFLni+BRz60F4FWzJPFORsQ8qAvY3sHWzyjunsYZkpbze3uiZO6bu3hiyQCU6g+k/58Qc6kkw==", + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-19.1.0.tgz", + "integrity": "sha512-LTQBWtuRGjNpA7ceQu9PyiUUq0KLfBP8LvL04hLFbEsZ0fIPQ/OO/Otn67/7TMtnHRFnPeezYPHcAHBhiNlR4A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/animations": "^19.0.0 || ^20.0.0", - "@angular/cdk": "19.0.4", + "@angular/cdk": "19.1.0", "@angular/common": "^19.0.0 || ^20.0.0", "@angular/core": "^19.0.0 || ^20.0.0", "@angular/forms": "^19.0.0 || ^20.0.0", @@ -524,9 +530,9 @@ } }, "node_modules/@angular/platform-browser": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.0.4.tgz", - "integrity": "sha512-/PRr7kLVVqNFqAkw+SK8RwqE479qCcUyuw6GOHtGabt3ZfQKSbx+pTioVrZFEy5pTBMslCPV5q3I+wGRG7/nyg==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-19.1.1.tgz", + "integrity": "sha512-L33rk7j3FepDqHo29iqp7ucL1tBjGQed+e22ei9bCsj7CG0GNi5w8id3nyNImhwN26wtg++4cu4la+XxKWIkXg==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -535,9 +541,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/animations": "19.0.4", - "@angular/common": "19.0.4", - "@angular/core": "19.0.4" + "@angular/animations": "19.1.1", + "@angular/common": "19.1.1", + "@angular/core": "19.1.1" }, "peerDependenciesMeta": { "@angular/animations": { @@ -546,9 +552,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.0.4.tgz", - "integrity": "sha512-tO1WeGN7nORU/377t0VClyPin7JtURqld6+zuYlDWjr/wKHDS1OM7rwbOYFMxHmutWGjANwG6BP8gWXgGsHJeg==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-19.1.1.tgz", + "integrity": "sha512-iEVOFKpBEFXKDqQb42xhEXpseQc2vpl16kuT9gbjuvBC8KJLsTdvE34HIoZN1Igm22wZzp+PBzSWYa8WiQK83A==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -557,16 +563,16 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.4", - "@angular/compiler": "19.0.4", - "@angular/core": "19.0.4", - "@angular/platform-browser": "19.0.4" + "@angular/common": "19.1.1", + "@angular/compiler": "19.1.1", + "@angular/core": "19.1.1", + "@angular/platform-browser": "19.1.1" } }, "node_modules/@angular/router": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.0.4.tgz", - "integrity": "sha512-GYab1nDwlSLGKr5kAOButbL2/ht7gsTmMKKZsiQTuPgi6YX6N/t5wLP5H0TbHm+hxV/NVRXcoMQUa8TjpeKN2A==", + "version": "19.1.1", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-19.1.1.tgz", + "integrity": "sha512-DbgluW4P0AfZ01kaoSJK+4eKrYnBvP5yGVSx+rhZhXOPpoVx76IOn691cdwC9CQuDIG9RqQWZL5TLfS959K0cA==", "license": "MIT", "dependencies": { "tslib": "^2.3.0" @@ -575,9 +581,9 @@ "node": "^18.19.1 || ^20.11.1 || >=22.0.0" }, "peerDependencies": { - "@angular/common": "19.0.4", - "@angular/core": "19.0.4", - "@angular/platform-browser": "19.0.4", + "@angular/common": "19.1.1", + "@angular/core": "19.1.1", + "@angular/platform-browser": "19.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -597,9 +603,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", - "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", "dev": true, "license": "MIT", "engines": { @@ -655,14 +661,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -685,13 +691,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.9", + "@babel/compat-data": "^7.26.5", "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -848,9 +854,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", "dev": true, "license": "MIT", "engines": { @@ -876,15 +882,15 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", + "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", "dev": true, "license": "MIT", "dependencies": { "@babel/helper-member-expression-to-functions": "^7.25.9", "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/traverse": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -980,13 +986,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", - "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz", + "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.26.3" + "@babel/types": "^7.26.5" }, "bin": { "parser": "bin/babel-parser.js" @@ -1194,13 +1200,13 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", + "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -1614,13 +1620,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", + "version": "7.26.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", + "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.26.5" }, "engines": { "node": ">=6.9.0" @@ -2147,17 +2153,17 @@ } }, "node_modules/@babel/traverse": { - "version": "7.26.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", - "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz", + "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.3", - "@babel/parser": "^7.26.3", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.5", "@babel/template": "^7.25.9", - "@babel/types": "^7.26.3", + "@babel/types": "^7.26.5", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2166,14 +2172,14 @@ } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", - "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.26.3", - "@babel/types": "^7.26.3", + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -2183,9 +2189,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", - "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz", + "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==", "dev": true, "license": "MIT", "dependencies": { @@ -2196,6 +2202,24 @@ "node": ">=6.9.0" } }, + "node_modules/@choojs/findup": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@choojs/findup/-/findup-0.2.1.tgz", + "integrity": "sha512-YstAqNb0MCN8PjdLCDfRsBcGVRN41f3vgLvaI0IrIcBp4AqILRSS0DeWNGkicC+f/zRIPJLc+9RURVSepwvfBw==", + "license": "MIT", + "dependencies": { + "commander": "^2.15.1" + }, + "bin": { + "findup": "bin/findup.js" + } + }, + "node_modules/@choojs/findup/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -2217,9 +2241,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz", - "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", "cpu": [ "ppc64" ], @@ -2234,9 +2258,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz", - "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", "cpu": [ "arm" ], @@ -2251,9 +2275,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz", - "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", "cpu": [ "arm64" ], @@ -2268,9 +2292,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz", - "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", "cpu": [ "x64" ], @@ -2285,9 +2309,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", - "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", "cpu": [ "arm64" ], @@ -2302,9 +2326,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz", - "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", "cpu": [ "x64" ], @@ -2319,9 +2343,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz", - "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", "cpu": [ "arm64" ], @@ -2336,9 +2360,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz", - "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", "cpu": [ "x64" ], @@ -2353,9 +2377,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz", - "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", "cpu": [ "arm" ], @@ -2370,9 +2394,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz", - "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", "cpu": [ "arm64" ], @@ -2387,9 +2411,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz", - "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", "cpu": [ "ia32" ], @@ -2404,9 +2428,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz", - "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", "cpu": [ "loong64" ], @@ -2421,9 +2445,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz", - "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", "cpu": [ "mips64el" ], @@ -2438,9 +2462,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz", - "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", "cpu": [ "ppc64" ], @@ -2455,9 +2479,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz", - "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", "cpu": [ "riscv64" ], @@ -2472,9 +2496,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz", - "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", "cpu": [ "s390x" ], @@ -2489,9 +2513,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz", - "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", "cpu": [ "x64" ], @@ -2505,10 +2529,27 @@ "node": ">=18" } }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz", - "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", "cpu": [ "x64" ], @@ -2523,9 +2564,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz", - "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", "cpu": [ "arm64" ], @@ -2540,9 +2581,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz", - "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", "cpu": [ "x64" ], @@ -2557,9 +2598,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz", - "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", "cpu": [ "x64" ], @@ -2574,9 +2615,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz", - "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", "cpu": [ "arm64" ], @@ -2591,9 +2632,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz", - "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", "cpu": [ "ia32" ], @@ -2608,9 +2649,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz", - "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", "cpu": [ "x64" ], @@ -2625,15 +2666,15 @@ } }, "node_modules/@inquirer/checkbox": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.3.tgz", - "integrity": "sha512-CEt9B4e8zFOGtc/LYeQx5m8nfqQeG/4oNNv0PUvXGG0mys+wR/WbJ3B4KfSQ4Fcr3AQfpiuFOi3fVvmPfvNbxw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.0.6.tgz", + "integrity": "sha512-PgP35JfmGjHU0LSXOyRew0zHuA9N6OJwOlos1fZ20b7j8ISeAdib3L+n0jIxBtX958UeEpte6xhG/gxJ5iUqMw==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.1", - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", + "@inquirer/core": "^10.1.4", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -2645,14 +2686,14 @@ } }, "node_modules/@inquirer/confirm": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.0.2.tgz", - "integrity": "sha512-KJLUHOaKnNCYzwVbryj3TNBxyZIrr56fR5N45v6K9IPrbT6B7DcudBMfylkV1A8PUdJE15mybkEQyp2/ZUpxUA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.1.tgz", + "integrity": "sha512-vVLSbGci+IKQvDOtzpPTCOiEJCNidHcAq9JYVoWTW0svb5FiwSLotkM+JXNXejfjnzVYV9n0DTBythl9+XgTxg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.0", - "@inquirer/type": "^3.0.1" + "@inquirer/core": "^10.1.2", + "@inquirer/type": "^3.0.2" }, "engines": { "node": ">=18" @@ -2662,14 +2703,14 @@ } }, "node_modules/@inquirer/core": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.1.tgz", - "integrity": "sha512-rmZVXy9iZvO3ZStEe/ayuuwIJ23LSF13aPMlLMTQARX6lGUBDHGV8UB5i9MRrfy0+mZwt5/9bdy8llszSD3NQA==", + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.4.tgz", + "integrity": "sha512-5y4/PUJVnRb4bwWY67KLdebWOhOc7xj5IP2J80oWXa64mVag24rwQ1VAdnj7/eDY/odhguW0zQ1Mp1pj6fO/2w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", @@ -2683,14 +2724,14 @@ } }, "node_modules/@inquirer/editor": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.0.tgz", - "integrity": "sha512-Z3LeGsD3WlItDqLxTPciZDbGtm0wrz7iJGS/uUxSiQxef33ZrBq7LhsXg30P7xrWz1kZX4iGzxxj5SKZmJ8W+w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.3.tgz", + "integrity": "sha512-S9KnIOJuTZpb9upeRSBBhoDZv7aSV3pG9TECrBj0f+ZsFwccz886hzKBrChGrXMJwd4NKY+pOA9Vy72uqnd6Eg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.1", - "@inquirer/type": "^3.0.1", + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2", "external-editor": "^3.1.0" }, "engines": { @@ -2701,14 +2742,14 @@ } }, "node_modules/@inquirer/expand": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.3.tgz", - "integrity": "sha512-MDszqW4HYBpVMmAoy/FA9laLrgo899UAga0itEjsYrBthKieDZNc0e16gdn7N3cQ0DSf/6zsTBZMuDYDQU4ktg==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.6.tgz", + "integrity": "sha512-TRTfi1mv1GeIZGyi9PQmvAaH65ZlG4/FACq6wSzs7Vvf1z5dnNWsAAXBjWMHt76l+1hUY8teIqJFrWBk5N6gsg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.1", - "@inquirer/type": "^3.0.1", + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -2719,9 +2760,9 @@ } }, "node_modules/@inquirer/figures": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.8.tgz", - "integrity": "sha512-tKd+jsmhq21AP1LhexC0pPwsCxEhGgAkg28byjJAd+xhmIs8LUX8JbUc3vBf3PhLxWiB5EvyBE5X7JSPAqMAqg==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.9.tgz", + "integrity": "sha512-BXvGj0ehzrngHTPTDqUoDT3NXL8U0RxUk2zJm2A66RhCEIWdtU1v6GuUqNAgArW4PQ9CinqIWyHdQgdwOj06zQ==", "dev": true, "license": "MIT", "engines": { @@ -2729,14 +2770,14 @@ } }, "node_modules/@inquirer/input": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.0.tgz", - "integrity": "sha512-16B8A9hY741yGXzd8UJ9R8su/fuuyO2e+idd7oVLYjP23wKJ6ILRIIHcnXe8/6AoYgwRS2zp4PNsW/u/iZ24yg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.3.tgz", + "integrity": "sha512-zeo++6f7hxaEe7OjtMzdGZPHiawsfmCZxWB9X1NpmYgbeoyerIbWemvlBxxl+sQIlHC0WuSAG19ibMq3gbhaqQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.1", - "@inquirer/type": "^3.0.1" + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2" }, "engines": { "node": ">=18" @@ -2746,14 +2787,14 @@ } }, "node_modules/@inquirer/number": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.3.tgz", - "integrity": "sha512-HA/W4YV+5deKCehIutfGBzNxWH1nhvUC67O4fC9ufSijn72yrYnRmzvC61dwFvlXIG1fQaYWi+cqNE9PaB9n6Q==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.6.tgz", + "integrity": "sha512-xO07lftUHk1rs1gR0KbqB+LJPhkUNkyzV/KhH+937hdkMazmAYHLm1OIrNKpPelppeV1FgWrgFDjdUD8mM+XUg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.1", - "@inquirer/type": "^3.0.1" + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2" }, "engines": { "node": ">=18" @@ -2763,14 +2804,14 @@ } }, "node_modules/@inquirer/password": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.3.tgz", - "integrity": "sha512-3qWjk6hS0iabG9xx0U1plwQLDBc/HA/hWzLFFatADpR6XfE62LqPr9GpFXBkLU0KQUaIXZ996bNG+2yUvocH8w==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.6.tgz", + "integrity": "sha512-QLF0HmMpHZPPMp10WGXh6F+ZPvzWE7LX6rNoccdktv/Rov0B+0f+eyXkAcgqy5cH9V+WSpbLxu2lo3ysEVK91w==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.1", - "@inquirer/type": "^3.0.1", + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2" }, "engines": { @@ -2781,22 +2822,22 @@ } }, "node_modules/@inquirer/prompts": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.1.0.tgz", - "integrity": "sha512-5U/XiVRH2pp1X6gpNAjWOglMf38/Ys522ncEHIKT1voRUvSj/DQnR22OVxHnwu5S+rCFaUiPQ57JOtMFQayqYA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.2.1.tgz", + "integrity": "sha512-v2JSGri6/HXSfoGIwuKEn8sNCQK6nsB2BNpy2lSX6QH9bsECrMv93QHnj5+f+1ZWpF/VNioIV2B/PDox8EvGuQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^4.0.2", - "@inquirer/confirm": "^5.0.2", - "@inquirer/editor": "^4.1.0", - "@inquirer/expand": "^4.0.2", - "@inquirer/input": "^4.0.2", - "@inquirer/number": "^3.0.2", - "@inquirer/password": "^4.0.2", - "@inquirer/rawlist": "^4.0.2", - "@inquirer/search": "^3.0.2", - "@inquirer/select": "^4.0.2" + "@inquirer/checkbox": "^4.0.4", + "@inquirer/confirm": "^5.1.1", + "@inquirer/editor": "^4.2.1", + "@inquirer/expand": "^4.0.4", + "@inquirer/input": "^4.1.1", + "@inquirer/number": "^3.0.4", + "@inquirer/password": "^4.0.4", + "@inquirer/rawlist": "^4.0.4", + "@inquirer/search": "^3.0.4", + "@inquirer/select": "^4.0.4" }, "engines": { "node": ">=18" @@ -2806,14 +2847,14 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.3.tgz", - "integrity": "sha512-5MhinSzfmOiZlRoPezfbJdfVCZikZs38ja3IOoWe7H1dxL0l3Z2jAUgbBldeyhhOkELdGvPlBfQaNbeLslib1w==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.6.tgz", + "integrity": "sha512-QoE4s1SsIPx27FO4L1b1mUjVcoHm1pWE/oCmm4z/Hl+V1Aw5IXl8FYYzGmfXaBT0l/sWr49XmNSiq7kg3Kd/Lg==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.1", - "@inquirer/type": "^3.0.1", + "@inquirer/core": "^10.1.4", + "@inquirer/type": "^3.0.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -2824,15 +2865,15 @@ } }, "node_modules/@inquirer/search": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.3.tgz", - "integrity": "sha512-mQTCbdNolTGvGGVCJSI6afDwiSGTV+fMLPEIMDJgIV6L/s3+RYRpxt6t0DYnqMQmemnZ/Zq0vTIRwoHT1RgcTg==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.6.tgz", + "integrity": "sha512-eFZ2hiAq0bZcFPuFFBmZEtXU1EarHLigE+ENCtpO+37NHCl4+Yokq1P/d09kUblObaikwfo97w+0FtG/EXl5Ng==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.1", - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", + "@inquirer/core": "^10.1.4", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "yoctocolors-cjs": "^2.1.2" }, "engines": { @@ -2843,15 +2884,15 @@ } }, "node_modules/@inquirer/select": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.3.tgz", - "integrity": "sha512-OZfKDtDE8+J54JYAFTUGZwvKNfC7W/gFCjDkcsO7HnTH/wljsZo9y/FJquOxMy++DY0+9l9o/MOZ8s5s1j5wmw==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.0.6.tgz", + "integrity": "sha512-yANzIiNZ8fhMm4NORm+a74+KFYHmf7BZphSOBovIzYPVLquseTGEkU5l2UTnBOf5k0VLmTgPighNDLE9QtbViQ==", "dev": true, "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.1", - "@inquirer/figures": "^1.0.8", - "@inquirer/type": "^3.0.1", + "@inquirer/core": "^10.1.4", + "@inquirer/figures": "^1.0.9", + "@inquirer/type": "^3.0.2", "ansi-escapes": "^4.3.2", "yoctocolors-cjs": "^2.1.2" }, @@ -2863,9 +2904,9 @@ } }, "node_modules/@inquirer/type": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.1.tgz", - "integrity": "sha512-+ksJMIy92sOAiAccGpcKZUc3bYO07cADnscIxHBknEm3uNts3movSmBofc1908BNy5edKscxYeAdaX1NXkHS6A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.2.tgz", + "integrity": "sha512-ZhQ4TvhwHZF+lGhQ2O/rsjo80XoZR5/5qhOY3t6FJuX5XBg5Be8YzYTvaUGJnc12AUGI2nr4QSUE4PhKSigx7g==", "dev": true, "license": "MIT", "engines": { @@ -3005,7 +3046,6 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -3020,7 +3060,6 @@ "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, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -3030,7 +3069,6 @@ "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, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -3040,7 +3078,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -3051,14 +3088,12 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", - "dev": true, "license": "MIT" }, "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, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -3169,9 +3204,9 @@ } }, "node_modules/@lmdb/lmdb-darwin-arm64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.1.5.tgz", - "integrity": "sha512-ue5PSOzHMCIYrfvPP/MRS6hsKKLzqqhcdAvJCO8uFlDdj598EhgnacuOTuqA6uBK5rgiZXfDWyb7DVZSiBKxBA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.2.2.tgz", + "integrity": "sha512-WBSJT9Z7DTol5viq+DZD2TapeWOw7mlwXxiSBHgAzqVwsaVb0h/ekMD9iu/jDD8MUA20tO9N0WEdnT06fsUp+g==", "cpu": [ "arm64" ], @@ -3183,9 +3218,9 @@ ] }, "node_modules/@lmdb/lmdb-darwin-x64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.1.5.tgz", - "integrity": "sha512-CGhsb0R5vE6mMNCoSfxHFD8QTvBHM51gs4DBeigTYHWnYv2V5YpJkC4rMo5qAAFifuUcc0+a8a3SIU0c9NrfNw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.2.2.tgz", + "integrity": "sha512-4S13kUtR7c/j/MzkTIBJCXv52hQ41LG2ukeaqw4Eng9K0pNKLFjo1sDSz96/yKhwykxrWDb13ddJ/ZqD3rAhUA==", "cpu": [ "x64" ], @@ -3197,9 +3232,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.1.5.tgz", - "integrity": "sha512-3WeW328DN+xB5PZdhSWmqE+t3+44xWXEbqQ+caWJEZfOFdLp9yklBZEbVqVdqzznkoaXJYxTCp996KD6HmANeg==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.2.2.tgz", + "integrity": "sha512-uW31JmfuPAaLUYW7NsEU8gzwgDAzpGPwjvkxnKlcWd8iDutoPKDJi8Wk9lFmPEZRxVSB0j1/wDQ7N2qliR9UFA==", "cpu": [ "arm" ], @@ -3211,9 +3246,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-arm64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.1.5.tgz", - "integrity": "sha512-LAjaoOcBHGj6fiYB8ureiqPoph4eygbXu4vcOF+hsxiY74n8ilA7rJMmGUT0K0JOB5lmRQHSmor3mytRjS4qeQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.2.2.tgz", + "integrity": "sha512-4hdgZtWI1idQlWRp+eleWXD9KLvObgboRaVoBj2POdPEYvsKANllvMW0El8tEQwtw74yB9NT6P8ENBB5UJf5+g==", "cpu": [ "arm64" ], @@ -3225,9 +3260,9 @@ ] }, "node_modules/@lmdb/lmdb-linux-x64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.1.5.tgz", - "integrity": "sha512-k/IklElP70qdCXOQixclSl2GPLFiopynGoKX1FqDd1/H0E3Fo1oPwjY2rEVu+0nS3AOw1sryStdXk8CW3cVIsw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.2.2.tgz", + "integrity": "sha512-A0zjf4a2vM4B4GAx78ncuOTZ8Ka1DbTaG1Axf1e00Sa7f5coqlWiLg1PX7Gxvyibc2YqtqB+8tg1KKrE8guZVw==", "cpu": [ "x64" ], @@ -3239,9 +3274,9 @@ ] }, "node_modules/@lmdb/lmdb-win32-x64": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.1.5.tgz", - "integrity": "sha512-KYar6W8nraZfSJspcK7Kp7hdj238X/FNauYbZyrqPBrtsXI1hvI4/KcRcRGP50aQoV7fkKDyJERlrQGMGTZUsA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.2.2.tgz", + "integrity": "sha512-Y0qoSCAja+xZE7QQ0LCHoYAuyI1n9ZqukQJa8lv9X3yCvWahFF7OYHAgVH1ejp43XWstj3U89/PAAzcowgF/uQ==", "cpu": [ "x64" ], @@ -3252,6 +3287,110 @@ "win32" ] }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "license": "ISC", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/geojson-types": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", + "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==", + "license": "ISC" + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/mapbox-gl-supported": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@mapbox/mapbox-gl-supported/-/mapbox-gl-supported-1.5.0.tgz", + "integrity": "sha512-/PT1P6DNf7vjEEiPkVIRJkvibbqWtqnyGaBz3nfRdcxclNSnSdaLU5tfAgcD7I8Yt5i+L19s406YLl1koLnLbg==", + "license": "BSD-3-Clause", + "peerDependencies": { + "mapbox-gl": ">=0.32.1 <2.0.0" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==", + "license": "ISC" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-1.2.5.tgz", + "integrity": "sha512-cD8A/zJlm6fdJOk6DqPUV8mcpyJkRz2x2R+/fYcWDYG3oWbG7/L7Yl/WqQ1VZCjnL9OTIMAn6c+BC5Eru4sQEw==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", + "integrity": "sha512-HPnRdYO0WjFjRTSwO3frz1wKaU649OBFPX3Zo/2WZvuRi6zMiRGui8SnPQiQABgqCf8YikDe5t3HViTVw1WUzA==", + "license": "BSD-2-Clause" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "license": "ISC", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "20.4.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.4.0.tgz", + "integrity": "sha512-AzBy3095fTFPjDjmWpR2w6HVRAZJ6hQZUCwk5Plz6EyfnfuQW1odeW5i2Ai47Y6TBA2hQnC+azscjBSALpaWgw==", + "license": "ISC", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "tinyqueue": "^3.0.0" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/@maplibre/maplibre-gl-style-spec/node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", @@ -3642,9 +3781,9 @@ } }, "node_modules/@ngtools/webpack": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.0.5.tgz", - "integrity": "sha512-T8BJQHbGySRkR4JYLcH3YIscbRJI/GNWidNHL5GzRG+3i8Z6XmR0KLTIEoZGaCLpTGR8hcCG5Lfj/uF5pa4Yww==", + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-19.1.2.tgz", + "integrity": "sha512-9VhWN4aMf/H724d9m++qxcYmtJvJgqRNuLCXtgqCXvlwXpaBi6jyKli132kKz0M5WPEna07UVyrwnBIxIy/nZg==", "dev": true, "license": "MIT", "engines": { @@ -3654,7 +3793,7 @@ }, "peerDependencies": { "@angular/compiler-cli": "^19.0.0", - "typescript": ">=5.5 <5.7", + "typescript": ">=5.5 <5.8", "webpack": "^5.54.0" } }, @@ -4316,10 +4455,90 @@ "node": ">=14" } }, + "node_modules/@plotly/d3": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/@plotly/d3/-/d3-3.8.2.tgz", + "integrity": "sha512-wvsNmh1GYjyJfyEBPKJLTMzgf2c2bEbSIL50lmqVUi+o1NHaLPi1Lb4v7VxXXJn043BhNyrxUrWI85Q+zmjOVA==", + "license": "BSD-3-Clause" + }, + "node_modules/@plotly/d3-sankey": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@plotly/d3-sankey/-/d3-sankey-0.7.2.tgz", + "integrity": "sha512-2jdVos1N3mMp3QW0k2q1ph7Gd6j5PY1YihBrwpkFnKqO+cqtZq3AdEYUeSGXMeLsBDQYiqTVcihYfk8vr5tqhw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "1", + "d3-collection": "1", + "d3-shape": "^1.2.0" + } + }, + "node_modules/@plotly/d3-sankey-circular": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@plotly/d3-sankey-circular/-/d3-sankey-circular-0.33.1.tgz", + "integrity": "sha512-FgBV1HEvCr3DV7RHhDsPXyryknucxtfnLwPtCKKxdolKyTFYoLX/ibEfX39iFYIL7DYbVeRtP43dbFcrHNE+KQ==", + "license": "MIT", + "dependencies": { + "d3-array": "^1.2.1", + "d3-collection": "^1.0.4", + "d3-shape": "^1.2.0", + "elementary-circuits-directed-graph": "^1.0.4" + } + }, + "node_modules/@plotly/mapbox-gl": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/@plotly/mapbox-gl/-/mapbox-gl-1.13.4.tgz", + "integrity": "sha512-sR3/Pe5LqT/fhYgp4rT4aSFf1rTsxMbGiH6Hojc7PH36ny5Bn17iVFUjpzycafETURuFbLZUfjODO8LvSI+5zQ==", + "license": "SEE LICENSE IN LICENSE.txt", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/geojson-types": "^1.0.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^1.5.0", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^1.1.1", + "@mapbox/unitbezier": "^0.0.0", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.2", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.2.1", + "grid-index": "^1.1.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.1", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "supercluster": "^7.1.0", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.1" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/@plotly/point-cluster": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@plotly/point-cluster/-/point-cluster-3.1.9.tgz", + "integrity": "sha512-MwaI6g9scKf68Orpr1pHZ597pYx9uP8UEFXLPbsCmuw3a84obwz6pnMXGc90VhgDNeNiLEdlmuK7CPo+5PIxXw==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.1", + "binary-search-bounds": "^2.0.4", + "clamp": "^1.0.1", + "defined": "^1.0.0", + "dtype": "^2.0.0", + "flatten-vertex-data": "^1.0.2", + "is-obj": "^1.0.1", + "math-log2": "^1.0.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0" + } + }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.26.0.tgz", - "integrity": "sha512-gJNwtPDGEaOEgejbaseY6xMFu+CPltsc8/T+diUTTbOQLqD+bnrJq9ulH6WD69TqwqWmrfRAtUv30cCFZlbGTQ==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.30.1.tgz", + "integrity": "sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==", "cpu": [ "arm" ], @@ -4331,9 +4550,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.26.0.tgz", - "integrity": "sha512-YJa5Gy8mEZgz5JquFruhJODMq3lTHWLm1fOy+HIANquLzfIOzE9RA5ie3JjCdVb9r46qfAQY/l947V0zfGJ0OQ==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.30.1.tgz", + "integrity": "sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==", "cpu": [ "arm64" ], @@ -4345,9 +4564,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.26.0.tgz", - "integrity": "sha512-ErTASs8YKbqTBoPLp/kA1B1Um5YSom8QAc4rKhg7b9tyyVqDBlQxy7Bf2wW7yIlPGPg2UODDQcbkTlruPzDosw==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.30.1.tgz", + "integrity": "sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==", "cpu": [ "arm64" ], @@ -4359,9 +4578,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.26.0.tgz", - "integrity": "sha512-wbgkYDHcdWW+NqP2mnf2NOuEbOLzDblalrOWcPyY6+BRbVhliavon15UploG7PpBRQ2bZJnbmh8o3yLoBvDIHA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.30.1.tgz", + "integrity": "sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==", "cpu": [ "x64" ], @@ -4373,9 +4592,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.26.0.tgz", - "integrity": "sha512-Y9vpjfp9CDkAG4q/uwuhZk96LP11fBz/bYdyg9oaHYhtGZp7NrbkQrj/66DYMMP2Yo/QPAsVHkV891KyO52fhg==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.30.1.tgz", + "integrity": "sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==", "cpu": [ "arm64" ], @@ -4387,9 +4606,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.26.0.tgz", - "integrity": "sha512-A/jvfCZ55EYPsqeaAt/yDAG4q5tt1ZboWMHEvKAH9Zl92DWvMIbnZe/f/eOXze65aJaaKbL+YeM0Hz4kLQvdwg==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.30.1.tgz", + "integrity": "sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==", "cpu": [ "x64" ], @@ -4401,9 +4620,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.26.0.tgz", - "integrity": "sha512-paHF1bMXKDuizaMODm2bBTjRiHxESWiIyIdMugKeLnjuS1TCS54MF5+Y5Dx8Ui/1RBPVRE09i5OUlaLnv8OGnA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.30.1.tgz", + "integrity": "sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==", "cpu": [ "arm" ], @@ -4415,9 +4634,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.26.0.tgz", - "integrity": "sha512-cwxiHZU1GAs+TMxvgPfUDtVZjdBdTsQwVnNlzRXC5QzIJ6nhfB4I1ahKoe9yPmoaA/Vhf7m9dB1chGPpDRdGXg==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.30.1.tgz", + "integrity": "sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==", "cpu": [ "arm" ], @@ -4429,9 +4648,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.26.0.tgz", - "integrity": "sha512-4daeEUQutGRCW/9zEo8JtdAgtJ1q2g5oHaoQaZbMSKaIWKDQwQ3Yx0/3jJNmpzrsScIPtx/V+1AfibLisb3AMQ==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.30.1.tgz", + "integrity": "sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==", "cpu": [ "arm64" ], @@ -4443,9 +4662,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.26.0.tgz", - "integrity": "sha512-eGkX7zzkNxvvS05ROzJ/cO/AKqNvR/7t1jA3VZDi2vRniLKwAWxUr85fH3NsvtxU5vnUUKFHKh8flIBdlo2b3Q==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.30.1.tgz", + "integrity": "sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==", "cpu": [ "arm64" ], @@ -4456,10 +4675,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.30.1.tgz", + "integrity": "sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.26.0.tgz", - "integrity": "sha512-Odp/lgHbW/mAqw/pU21goo5ruWsytP7/HCC/liOt0zcGG0llYWKrd10k9Fj0pdj3prQ63N5yQLCLiE7HTX+MYw==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.30.1.tgz", + "integrity": "sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==", "cpu": [ "ppc64" ], @@ -4471,9 +4704,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.26.0.tgz", - "integrity": "sha512-MBR2ZhCTzUgVD0OJdTzNeF4+zsVogIR1U/FsyuFerwcqjZGvg2nYe24SAHp8O5sN8ZkRVbHwlYeHqcSQ8tcYew==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.30.1.tgz", + "integrity": "sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==", "cpu": [ "riscv64" ], @@ -4485,9 +4718,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.26.0.tgz", - "integrity": "sha512-YYcg8MkbN17fMbRMZuxwmxWqsmQufh3ZJFxFGoHjrE7bv0X+T6l3glcdzd7IKLiwhT+PZOJCblpnNlz1/C3kGQ==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.30.1.tgz", + "integrity": "sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==", "cpu": [ "s390x" ], @@ -4499,9 +4732,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.26.0.tgz", - "integrity": "sha512-ZuwpfjCwjPkAOxpjAEjabg6LRSfL7cAJb6gSQGZYjGhadlzKKywDkCUnJ+KEfrNY1jH5EEoSIKLCb572jSiglA==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.30.1.tgz", + "integrity": "sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==", "cpu": [ "x64" ], @@ -4513,9 +4746,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.26.0.tgz", - "integrity": "sha512-+HJD2lFS86qkeF8kNu0kALtifMpPCZU80HvwztIKnYwym3KnA1os6nsX4BGSTLtS2QVAGG1P3guRgsYyMA0Yhg==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.30.1.tgz", + "integrity": "sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==", "cpu": [ "x64" ], @@ -4527,9 +4760,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.26.0.tgz", - "integrity": "sha512-WUQzVFWPSw2uJzX4j6YEbMAiLbs0BUysgysh8s817doAYhR5ybqTI1wtKARQKo6cGop3pHnrUJPFCsXdoFaimQ==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.30.1.tgz", + "integrity": "sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==", "cpu": [ "arm64" ], @@ -4541,9 +4774,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.26.0.tgz", - "integrity": "sha512-D4CxkazFKBfN1akAIY6ieyOqzoOoBV1OICxgUblWxff/pSjCA2khXlASUx7mK6W1oP4McqhgcCsu6QaLj3WMWg==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.30.1.tgz", + "integrity": "sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==", "cpu": [ "ia32" ], @@ -4555,9 +4788,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.26.0.tgz", - "integrity": "sha512-2x8MO1rm4PGEP0xWbubJW5RtbNLk3puzAMaLQd3B3JHVw4KcHlmXcO+Wewx9zCoo7EUFiMlu/aZbCJ7VjMzAag==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.30.1.tgz", + "integrity": "sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==", "cpu": [ "x64" ], @@ -4569,14 +4802,14 @@ ] }, "node_modules/@schematics/angular": { - "version": "19.0.5", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.0.5.tgz", - "integrity": "sha512-4nBJZF8HvSdj/RoyIixAfOuKEQaEBsEBtohIow8iHX1wcLax558d70O/ZM6EOh2FQxmEaxUe1x4KwBQIha8RxA==", + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-19.1.2.tgz", + "integrity": "sha512-p+FG5EjpBFko8G1F/fBShlWnW0VvNz7APWTAUnwOreCnvKQltF4XFYbnLWrFh9twpvdUzEQH3BYz5VvK7aIx0Q==", "dev": true, "license": "MIT", "dependencies": { - "@angular-devkit/core": "19.0.5", - "@angular-devkit/schematics": "19.0.5", + "@angular-devkit/core": "19.1.2", + "@angular-devkit/schematics": "19.1.2", "jsonc-parser": "3.3.1" }, "engines": { @@ -4609,13 +4842,13 @@ } }, "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", - "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.3.tgz", + "integrity": "sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==", "dev": true, "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/@sigstore/sign": { @@ -4734,6 +4967,77 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@turf/area": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/area/-/area-7.2.0.tgz", + "integrity": "sha512-zuTTdQ4eoTI9nSSjerIy4QwgvxqwJVciQJ8tOPuMHbXJ9N/dNjI7bU8tasjhxas/Cx3NE9NxVHtNpYHL0FSzoA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/bbox": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.2.0.tgz", + "integrity": "sha512-wzHEjCXlYZiDludDbXkpBSmv8Zu6tPGLmJ1sXQ6qDwpLE1Ew3mcWqt8AaxfTP5QwDNQa3sf2vvgTEzNbPQkCiA==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/centroid": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/centroid/-/centroid-7.2.0.tgz", + "integrity": "sha512-yJqDSw25T7P48au5KjvYqbDVZ7qVnipziVfZ9aSo7P2/jTE7d4BP21w0/XLi3T/9bry/t9PR1GDDDQljN4KfDw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/helpers": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.2.0.tgz", + "integrity": "sha512-cXo7bKNZoa7aC7ydLmUR02oB3IgDe7MxiPuRz3cCtYQHn+BJ6h1tihmamYDWWUlPHgSNF0i3ATc4WmDECZafKw==", + "license": "MIT", + "dependencies": { + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/meta": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.2.0.tgz", + "integrity": "sha512-igzTdHsQc8TV1RhPuOLVo74Px/hyPrVgVOTgjWQZzt3J9BVseCdpfY/0cJBdlSRI4S/yTmmHl7gAqjhpYH5Yaw==", + "license": "MIT", + "dependencies": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", @@ -4797,7 +5101,6 @@ "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "*", @@ -4808,7 +5111,6 @@ "version": "3.7.7", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, "license": "MIT", "dependencies": { "@types/eslint": "*", @@ -4819,7 +5121,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, "license": "MIT" }, "node_modules/@types/express": { @@ -4836,9 +5137,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz", - "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.5.tgz", + "integrity": "sha512-GLZPrd9ckqEBFMcVM/qRFAP0Hg3qiVEojgEFsx/N/zKXsBzbGF6z5FBDpZ0+Xhp1xr+qRZYjfGr1cWHB9oFHSA==", "dev": true, "license": "MIT", "dependencies": { @@ -4861,6 +5162,21 @@ "@types/send": "*" } }, + "node_modules/@types/geojson": { + "version": "7946.0.15", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz", + "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==", + "license": "MIT" + }, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", @@ -4889,9 +5205,25 @@ "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, "license": "MIT" }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", + "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==", + "license": "MIT" + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", + "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", @@ -4900,10 +5232,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", - "dev": true, + "version": "22.10.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.7.tgz", + "integrity": "sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==", "license": "MIT", "dependencies": { "undici-types": "~6.20.0" @@ -4919,10 +5250,23 @@ "@types/node": "*" } }, + "node_modules/@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==", + "license": "MIT" + }, + "node_modules/@types/plotly.js": { + "version": "2.35.2", + "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-2.35.2.tgz", + "integrity": "sha512-tn0Kp7F6VWiu96jknCvR/PcdIGIATeIK+Z5WXH3bEvG6CRwUNfhy34yBhfPYmTea7mMQxXvTZKGMm6/Y4wxESg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/qs": { - "version": "6.9.17", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz", - "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==", + "version": "6.9.18", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", + "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", "dev": true, "license": "MIT" }, @@ -4983,6 +5327,15 @@ "@types/node": "*" } }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "license": "MIT", + "dependencies": { + "@types/geojson": "*" + } + }, "node_modules/@types/ws": { "version": "8.5.13", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz", @@ -4994,23 +5347,22 @@ } }, "node_modules/@vitejs/plugin-basic-ssl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", - "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz", + "integrity": "sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=14.6.0" + "node": ">=14.21.3" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", @@ -5021,28 +5373,24 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", @@ -5054,14 +5402,12 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -5074,7 +5420,6 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" @@ -5084,7 +5429,6 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" @@ -5094,14 +5438,12 @@ "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", - "dev": true, "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -5118,7 +5460,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -5132,7 +5473,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -5145,7 +5485,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -5160,7 +5499,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", - "dev": true, "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", @@ -5171,14 +5509,12 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true, "license": "Apache-2.0" }, "node_modules/@yarnpkg/lockfile": { @@ -5198,6 +5534,12 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/abs-svg-path": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/abs-svg-path/-/abs-svg-path-0.1.1.tgz", + "integrity": "sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==", + "license": "MIT" + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -5226,7 +5568,6 @@ "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", - "dev": true, "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -5278,7 +5619,6 @@ "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, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -5313,7 +5653,6 @@ "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, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" @@ -5322,6 +5661,12 @@ "ajv": "^8.8.2" } }, + "node_modules/almost-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/almost-equal/-/almost-equal-1.1.0.tgz", + "integrity": "sha512-0V/PkoculFl5+0Lp47JoxUcO0xSxhIBvm+BxHdD/OgXNmdRpRHCFnKVuUoWyS9EzQP+otSGv0m9Lb4yVkQBn2A==", + "license": "MIT" + }, "node_modules/angular-gridster2": { "version": "19.0.0", "resolved": "https://registry.npmjs.org/angular-gridster2/-/angular-gridster2-19.0.0.tgz", @@ -5400,29 +5745,21 @@ } }, "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, + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "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, + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=0.10.0" } }, "node_modules/ansi-wrap": { @@ -5462,11 +5799,13 @@ } }, "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, - "license": "Python-2.0" + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } }, "node_modules/arr-diff": { "version": "1.1.0", @@ -5499,14 +5838,20 @@ "node": ">=0.10.0" } }, - "node_modules/array-buffer-byte-length": { + "node_modules/array-bounds": { "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==", + "resolved": "https://registry.npmjs.org/array-bounds/-/array-bounds-1.0.1.tgz", + "integrity": "sha512-8wdW3ZGk6UjMPJx/glyEt0sLzzwAE1bhToPsO1W2pbpR2gULyxe3BjSiuJFheP50T/GgODVPz2fuMUmIywt8cQ==", + "license": "MIT" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -5515,6 +5860,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -5522,6 +5876,27 @@ "dev": true, "license": "MIT" }, + "node_modules/array-normalize": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array-normalize/-/array-normalize-1.1.4.tgz", + "integrity": "sha512-fCp0wKFLjvSPmCn4F5Tiw4M3lpMZoHlCjfcs7nNzuj3vqQQ1/a8cgB9DXcpDSn18c+coLnaW7rqfcYCvKbyJXg==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.0" + } + }, + "node_modules/array-range": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-range/-/array-range-1.0.1.tgz", + "integrity": "sha512-shdaI1zT3CVNL2hnx9c0JMc0ZogGaxDs5e85akgHWKYa0yVbIyp06Ind3dVkTj/uuFrzaHBOyqFzo+VV6aXgtA==", + "license": "MIT" + }, + "node_modules/array-rearrange": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/array-rearrange/-/array-rearrange-2.2.2.tgz", + "integrity": "sha512-UfobP5N12Qm4Qu4fwLDIi2v6+wZsSf6snYSxAMeKhrh37YGnNWZPRmVEKc/2wfms53TLQnzfpG8wCx2Y/6NG1w==", + "license": "MIT" + }, "node_modules/array-slice": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", @@ -5690,6 +6065,15 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/base64-arraybuffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", + "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -5729,9 +6113,9 @@ "license": "MIT" }, "node_modules/beasties": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.1.0.tgz", - "integrity": "sha512-+Ssscd2gVG24qRNC+E2g88D+xsQW4xwakWtKAiGEQ3Pw54/FGdyo9RrfxhGhEv6ilFVbB7r3Lgx+QnAxnSpECw==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/beasties/-/beasties-0.2.0.tgz", + "integrity": "sha512-Ljqskqx/tbZagIglYoJIMzH5zgssyp+in9+9sAyh15N22AornBeIDnb8EZ6Rk+6ShfMxd92uO3gfpT0NtZbpow==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5739,10 +6123,13 @@ "css-what": "^6.1.0", "dom-serializer": "^2.0.0", "domhandler": "^5.0.3", - "htmlparser2": "^9.0.0", + "htmlparser2": "^9.1.0", "picocolors": "^1.1.1", - "postcss": "^8.4.47", + "postcss": "^8.4.49", "postcss-media-query-parser": "^0.2.3" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/big.js": { @@ -5768,6 +6155,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/binary-search-bounds": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz", + "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==", + "license": "MIT" + }, + "node_modules/bit-twiddle": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", + "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==", + "license": "MIT" + }, + "node_modules/bitmap-sdf": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bitmap-sdf/-/bitmap-sdf-1.0.4.tgz", + "integrity": "sha512-1G3U4n5JE6RAiALMxu0p1XmeZkTeCwGKykzsLTCqVzfSDaN6S7fKnkIkfejogz+iwqBWc0UYAIKnKHNN7pSfDg==", + "license": "MIT" + }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -5780,6 +6185,21 @@ "readable-stream": "^3.4.0" } }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/body-parser": { "version": "1.20.3", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", @@ -5864,10 +6284,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", - "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", - "dev": true, + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", "funding": [ { "type": "opencollective", @@ -5925,7 +6344,6 @@ "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, "license": "MIT" }, "node_modules/bundle-name": { @@ -6144,10 +6562,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001689", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz", - "integrity": "sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g==", - "dev": true, + "version": "1.0.30001692", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", + "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", "funding": [ { "type": "opencollective", @@ -6164,21 +6581,41 @@ ], "license": "CC-BY-4.0" }, - "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, + "node_modules/canvas-fit": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/canvas-fit/-/canvas-fit-1.5.0.tgz", + "integrity": "sha512-onIcjRpz69/Hx5bB5HGbYKUF2uC6QT6Gp+pfpGm3A7mPfcluSLV5v4Zu+oflDUwLdUw0rLIBhUbi0v8hM4FJQQ==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "element-size": "^1.1.1" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" + } + }, + "node_modules/chalk/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "engines": { + "node": ">=0.10.0" } }, "node_modules/chardet": { @@ -6189,9 +6626,9 @@ "license": "MIT" }, "node_modules/chokidar": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.2.tgz", - "integrity": "sha512-/b57FK+bblSU+dfewfFe0rT1YjVDfOmeLQwCAuC+vwvgLkXboATqqmy+Ipux6JrF6L5joe5CBnFOw+gLWH6yKg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, "license": "MIT", "dependencies": { @@ -6218,12 +6655,17 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.0" } }, + "node_modules/clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha512-kgMuFyE78OC6Dyu3Dy7vcx4uy97EIbVxJB/B0eJ3bUNAkwdNcxYzgKltnyADiYwsR7SEqkkUPsEUT//OVS6XMA==", + "license": "MIT" + }, "node_modules/cli-cursor": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", @@ -6306,6 +6748,22 @@ "node": ">=12" } }, + "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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -6394,6 +6852,34 @@ "node": ">=0.10.0" } }, + "node_modules/clone-deep/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-alpha": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/color-alpha/-/color-alpha-1.0.4.tgz", + "integrity": "sha512-lr8/t5NPozTSqli+duAN+x+no/2WaKTeWvxhHGN+aXT6AJ8vPlzLa7UriyjWak0pSC2jHol9JgjBYnnHsGha9A==", + "license": "MIT", + "dependencies": { + "color-parse": "^1.3.8" + } + }, + "node_modules/color-alpha/node_modules/color-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", + "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -6407,13 +6893,71 @@ "node": ">=7.0.0" } }, + "node_modules/color-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/color-id/-/color-id-1.1.0.tgz", + "integrity": "sha512-2iRtAn6dC/6/G7bBIo0uupVrIne1NsQJvJxZOBCzQOfk7jRq97feaDZ3RdzuHakRXXnHGNwglto3pqtRx1sX0g==", + "license": "MIT", + "dependencies": { + "clamp": "^1.0.1" + } + }, "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, "license": "MIT" }, + "node_modules/color-normalize": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/color-normalize/-/color-normalize-1.5.0.tgz", + "integrity": "sha512-rUT/HDXMr6RFffrR53oX3HGWkDOP9goSAQGBkUaAYKjOE2JxozccdGyufageWDlInRAjm/jYPrf/Y38oa+7obw==", + "license": "MIT", + "dependencies": { + "clamp": "^1.0.1", + "color-rgba": "^2.1.1", + "dtype": "^2.0.0" + } + }, + "node_modules/color-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-2.0.0.tgz", + "integrity": "sha512-g2Z+QnWsdHLppAbrpcFWo629kLOnOPtpxYV69GCqm92gqSgyXbzlfyN3MXs0412fPBkFmiuS+rXposgBgBa6Kg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/color-rgba": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/color-rgba/-/color-rgba-2.1.1.tgz", + "integrity": "sha512-VaX97wsqrMwLSOR6H7rU1Doa2zyVdmShabKrPEIFywLlHoibgD3QW9Dw6fSqM4+H/LfjprDNAUUW31qEQcGzNw==", + "license": "MIT", + "dependencies": { + "clamp": "^1.0.1", + "color-parse": "^1.3.8", + "color-space": "^1.14.6" + } + }, + "node_modules/color-rgba/node_modules/color-parse": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/color-parse/-/color-parse-1.4.3.tgz", + "integrity": "sha512-BADfVl/FHkQkyo8sRBwMYBqemqsgnu7JZAwUgvBvuwwuNUZAhSvLTbsEErS5bQXzOjDR0dWzJ4vXN2Q+QoPx0A==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/color-space": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/color-space/-/color-space-1.16.0.tgz", + "integrity": "sha512-A6WMiFzunQ8KEPFmj02OnnoUnqhmSaHaZ/0LVFcPTdlvm8+3aMJ5x1HRHy3bDHPkovkf4sS0f4wsVvwk71fKkg==", + "license": "MIT", + "dependencies": { + "hsluv": "^0.0.3", + "mumath": "^3.3.4" + } + }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -6431,11 +6975,16 @@ } }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "license": "MIT" + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", + "license": "MIT", + "dependencies": { + "graceful-readlink": ">= 1.0.0" + }, + "engines": { + "node": ">= 0.6.x" + } }, "node_modules/comment-parser": { "version": "0.3.2", @@ -6446,36 +6995,6 @@ "readable-stream": "^2.0.4" } }, - "node_modules/comment-parser/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "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/comment-parser/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/comment-parser/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/common-path-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", @@ -6542,12 +7061,48 @@ "node": ">= 0.6" } }, + "node_modules/compression/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" + } + ], + "license": "MIT" + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "license": "MIT" }, + "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==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", @@ -6604,6 +7159,27 @@ "node": ">= 0.6" } }, + "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==", + "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" + } + ], + "license": "MIT" + }, "node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", @@ -6685,13 +7261,13 @@ "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", + "version": "3.40.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", + "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.24.2" + "browserslist": "^4.24.3" }, "funding": { "type": "opencollective", @@ -6745,6 +7321,32 @@ } } }, + "node_modules/cosmiconfig/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, + "license": "Python-2.0" + }, + "node_modules/cosmiconfig/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/country-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/country-regex/-/country-regex-1.1.0.tgz", + "integrity": "sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==", + "license": "MIT" + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -6776,11 +7378,57 @@ "node": ">= 8" } }, + "node_modules/css-font": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-font/-/css-font-1.2.0.tgz", + "integrity": "sha512-V4U4Wps4dPDACJ4WpgofJ2RT5Yqwe1lEH6wlOOaIxMi0gTjdIijsc5FmxQlZ7ZZyKQkkutqqvULOp07l9c7ssA==", + "license": "MIT", + "dependencies": { + "css-font-size-keywords": "^1.0.0", + "css-font-stretch-keywords": "^1.0.1", + "css-font-style-keywords": "^1.0.1", + "css-font-weight-keywords": "^1.0.0", + "css-global-keywords": "^1.0.1", + "css-system-font-keywords": "^1.0.0", + "pick-by-alias": "^1.2.0", + "string-split-by": "^1.0.0", + "unquote": "^1.1.0" + } + }, + "node_modules/css-font-size-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-size-keywords/-/css-font-size-keywords-1.0.0.tgz", + "integrity": "sha512-Q+svMDbMlelgCfH/RVDKtTDaf5021O486ZThQPIpahnIjUkMUslC+WuOQSWTgGSrNCH08Y7tYNEmmy0hkfMI8Q==", + "license": "MIT" + }, + "node_modules/css-font-stretch-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-stretch-keywords/-/css-font-stretch-keywords-1.0.1.tgz", + "integrity": "sha512-KmugPO2BNqoyp9zmBIUGwt58UQSfyk1X5DbOlkb2pckDXFSAfjsD5wenb88fNrD6fvS+vu90a/tsPpb9vb0SLg==", + "license": "MIT" + }, + "node_modules/css-font-style-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-font-style-keywords/-/css-font-style-keywords-1.0.1.tgz", + "integrity": "sha512-0Fn0aTpcDktnR1RzaBYorIxQily85M2KXRpzmxQPgh8pxUN9Fcn00I8u9I3grNr1QXVgCl9T5Imx0ZwKU973Vg==", + "license": "MIT" + }, + "node_modules/css-font-weight-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz", + "integrity": "sha512-5So8/NH+oDD+EzsnF4iaG4ZFHQ3vaViePkL1ZbZ5iC/KrsCY+WHq/lvOgrtmuOQ9pBBZ1ADGpaf+A4lj1Z9eYA==", + "license": "MIT" + }, + "node_modules/css-global-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-global-keywords/-/css-global-keywords-1.0.1.tgz", + "integrity": "sha512-X1xgQhkZ9n94WDwntqst5D/FKkmiU0GlJSFZSV3kLvyJ1WC5VeyoXDOuleUD+SIuH9C7W05is++0Woh0CGfKjQ==", + "license": "MIT" + }, "node_modules/css-loader": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", - "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", @@ -6829,6 +7477,12 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/css-system-font-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz", + "integrity": "sha512-1umTtVd/fXS25ftfjB71eASCrYhilmEsvDEI6wG/QplnmlfmVM5HkZ/ZX46DT5K3eblFPgLUHt5BRCb0YXkSFA==", + "license": "MIT" + }, "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", @@ -6842,11 +7496,16 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/csscolorparser": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/csscolorparser/-/csscolorparser-1.0.3.tgz", + "integrity": "sha512-umPSgYwZkdFoUrH5hIq5kf0wPSXiro51nPw0j2K/c83KflkPSTBGMz6NJvMB+07VlL0y7VPo6QJcDjcgKTTm3w==", + "license": "MIT" + }, "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==", - "dev": true, "license": "MIT", "bin": { "cssesc": "bin/cssesc" @@ -6899,6 +7558,152 @@ "node": ">=0.4.0" } }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "node_modules/d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-array": "1" + } + }, + "node_modules/d3-geo-projection": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-2.9.0.tgz", + "integrity": "sha512-ZULvK/zBn87of5rWAfFMc9mJOipeSo57O+BBitsKIXmU4rTVAnX1kSsJkE0R+TxY8pGNoM1nbyRRE7GYHhdOEQ==", + "license": "BSD-3-Clause", + "dependencies": { + "commander": "2", + "d3-array": "1", + "d3-geo": "^1.12.0", + "resolve": "^1.1.10" + }, + "bin": { + "geo2svg": "bin/geo2svg", + "geograticule": "bin/geograticule", + "geoproject": "bin/geoproject", + "geoquantize": "bin/geoquantize", + "geostitch": "bin/geostitch" + } + }, + "node_modules/d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==", + "license": "BSD-3-Clause" + }, + "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==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-path": "1" + } + }, + "node_modules/d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==", + "license": "BSD-3-Clause" + }, + "node_modules/d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "license": "BSD-3-Clause", + "dependencies": { + "d3-time": "1" + } + }, + "node_modules/d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==", + "license": "BSD-3-Clause" + }, "node_modules/date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", @@ -7055,6 +7860,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -7076,6 +7890,12 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-kerning": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-kerning/-/detect-kerning-2.1.2.tgz", + "integrity": "sha512-I3JIbrnKPAntNLl1I6TpSQQdQ4AutYzv/sKMFKbepawV/hlH0GmYKhUoOEMd4xqaUHT+Bm0f4127lh5qs1m1tw==", + "license": "MIT" + }, "node_modules/detect-libc": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", @@ -7172,9 +7992,9 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7186,6 +8006,25 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/draw-svg-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/draw-svg-path/-/draw-svg-path-1.0.0.tgz", + "integrity": "sha512-P8j3IHxcgRMcY6sDzr0QvJDLzBnJJqpTG33UZ2Pvp8rw0apCHhJCWqYprqrXjrgHnJ6tuhP1iTJSAodPDHxwkg==", + "license": "MIT", + "dependencies": { + "abs-svg-path": "~0.1.1", + "normalize-svg-path": "~0.1.0" + } + }, + "node_modules/dtype": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dtype/-/dtype-2.0.0.tgz", + "integrity": "sha512-s2YVcLKdFGS0hpFqJaTwscsyt0E8nNFdmo73Ocd81xNPj4URI4rj6D60A+vFMIw7BXWlb4yRkEwfBqcZzPGiZg==", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -7200,6 +8039,30 @@ "node": ">= 0.4" } }, + "node_modules/dup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dup/-/dup-1.0.0.tgz", + "integrity": "sha512-Bz5jxMMC0wgp23Zm15ip1x8IhYRqJvF3nFC0UInJUDkN1z4uNPk9jTnfCUJXbOGiQ1JbXLQsiV41Fb+HXcj5BA==", + "license": "MIT" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==", + "license": "ISC" + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -7215,12 +8078,26 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.74", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.74.tgz", - "integrity": "sha512-ck3//9RC+6oss/1Bh9tiAVFy5vfSKbRHAFh7Z3/eTRkEqJeWgymloShB17Vg3Z4nmDNp35vAd1BZ6CMW4Wt6Iw==", - "dev": true, + "version": "1.5.83", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.83.tgz", + "integrity": "sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==", "license": "ISC" }, + "node_modules/element-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz", + "integrity": "sha512-eaN+GMOq/Q+BIWy0ybsgpcYImjGIdNLyjLFJU4XsLHXYQao5jCNb36GyN6C2qwmDDYSfIBmKpPpr4VnBdLCsPQ==", + "license": "MIT" + }, + "node_modules/elementary-circuits-directed-graph": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.3.1.tgz", + "integrity": "sha512-ZEiB5qkn2adYmpXGnJKkxT8uJHlW/mxmBpmeqawEHzPxh9HkLD4/1mFYX5l0On+f6rcPIt8/EWlRU2Vo3fX6dQ==", + "license": "MIT", + "dependencies": { + "strongly-connected-components": "^1.0.1" + } + }, "node_modules/emoji-regex": { "version": "10.4.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", @@ -7273,6 +8150,15 @@ "node": ">=0.10.0" } }, + "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==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/engine.io": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", @@ -7353,10 +8239,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", - "dev": true, + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -7494,16 +8379,15 @@ "license": "MIT" }, "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, + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", "license": "MIT" }, "node_modules/es-object-atoms": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0" @@ -7512,10 +8396,62 @@ "node": ">= 0.4" } }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "license": "ISC", + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "license": "ISC", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, "node_modules/esbuild": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", - "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -7526,36 +8462,37 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.0", - "@esbuild/android-arm": "0.24.0", - "@esbuild/android-arm64": "0.24.0", - "@esbuild/android-x64": "0.24.0", - "@esbuild/darwin-arm64": "0.24.0", - "@esbuild/darwin-x64": "0.24.0", - "@esbuild/freebsd-arm64": "0.24.0", - "@esbuild/freebsd-x64": "0.24.0", - "@esbuild/linux-arm": "0.24.0", - "@esbuild/linux-arm64": "0.24.0", - "@esbuild/linux-ia32": "0.24.0", - "@esbuild/linux-loong64": "0.24.0", - "@esbuild/linux-mips64el": "0.24.0", - "@esbuild/linux-ppc64": "0.24.0", - "@esbuild/linux-riscv64": "0.24.0", - "@esbuild/linux-s390x": "0.24.0", - "@esbuild/linux-x64": "0.24.0", - "@esbuild/netbsd-x64": "0.24.0", - "@esbuild/openbsd-arm64": "0.24.0", - "@esbuild/openbsd-x64": "0.24.0", - "@esbuild/sunos-x64": "0.24.0", - "@esbuild/win32-arm64": "0.24.0", - "@esbuild/win32-ia32": "0.24.0", - "@esbuild/win32-x64": "0.24.0" + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" } }, "node_modules/esbuild-wasm": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.0.tgz", - "integrity": "sha512-xhNn5tL1AhkPg4ft59yXT6FkwKXiPSYyz1IeinJHUJpjvOHOIPvdmFQc0pGdjxlKSbzZc2mNmtVOWAR1EF/JAg==", + "version": "0.24.2", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.24.2.tgz", + "integrity": "sha512-03/7Z1gD+ohDnScFztvI4XddTAbKVmMEzCvvkBpQdWKEXJ+73dTyeNrmdxP1Q0zpDMFjzUJwtK4rLjqwiHbzkw==", "dev": true, "license": "MIT", "bin": { @@ -7569,7 +8506,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -7591,11 +8527,63 @@ "node": ">=0.8.0" } }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/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==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/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==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, "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, "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", @@ -7605,6 +8593,21 @@ "node": ">=8.0.0" } }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/esprima": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", @@ -7622,7 +8625,6 @@ "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, "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" @@ -7635,7 +8637,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=4.0" @@ -7654,7 +8655,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" @@ -7670,6 +8670,16 @@ "node": ">= 0.6" } }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -7681,7 +8691,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.x" @@ -7805,6 +8814,27 @@ "dev": true, "license": "MIT" }, + "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" + } + ], + "license": "MIT" + }, "node_modules/express/node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -7815,6 +8845,15 @@ "node": ">= 0.8" } }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", + "dependencies": { + "type": "^2.7.2" + } + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -7834,15 +8873,6 @@ "node": ">=0.10.0" } }, - "node_modules/extend-shallow/node_modules/kind-of": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", - "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", @@ -7866,17 +8896,47 @@ "node": "> 0.1.90" } }, + "node_modules/falafel": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", + "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "isarray": "^2.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, "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, "license": "MIT" }, "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==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -7884,7 +8944,7 @@ "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -7903,24 +8963,41 @@ "node": ">= 6" } }, + "node_modules/fast-isnumeric": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-isnumeric/-/fast-isnumeric-1.1.4.tgz", + "integrity": "sha512-1mM8qOr2LYz8zGaUdmiqRDiuue00Dxjgcb1NQR7TnhLVh6sQyngP9xvLo7Sl7LZpP/sk5eb+bcyWXw530NTBZw==", + "license": "MIT", + "dependencies": { + "is-string-blank": "^1.0.1" + } + }, "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, "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", - "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", - "dev": true, + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz", + "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "dev": true, "license": "ISC", "dependencies": { @@ -8053,6 +9130,15 @@ "dev": true, "license": "ISC" }, + "node_modules/flatten-vertex-data": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten-vertex-data/-/flatten-vertex-data-1.0.2.tgz", + "integrity": "sha512-BvCBFK2NZqerFTdMDgqfHBwxYWnxeCkwONsw6PvBMcUXqo8U/KDWwmXhqx1x2kLIg7DqIsJfOaJFOmlua3Lxuw==", + "license": "MIT", + "dependencies": { + "dtype": "^2.0.0" + } + }, "node_modules/follow-redirects": { "version": "1.15.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", @@ -8074,6 +9160,24 @@ } } }, + "node_modules/font-atlas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/font-atlas/-/font-atlas-2.1.0.tgz", + "integrity": "sha512-kP3AmvX+HJpW4w3d+PiPR2X6E1yvsBXt2yhuCw+yReO9F1WYhvZwx3c95DGZGwg9xYzDGrgJYa885xmVA+28Cg==", + "license": "MIT", + "dependencies": { + "css-font": "^1.0.0" + } + }, + "node_modules/font-measure": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/font-measure/-/font-measure-1.2.2.tgz", + "integrity": "sha512-mRLEpdrWzKe9hbfaF3Qpr06TAjquuBVP5cHy4b3hyeNdjc9i0PO6HniGsX5vjL5OWv7+Bd++NiooNpT/s8BvIA==", + "license": "MIT", + "dependencies": { + "css-font": "^1.2.0" + } + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -8134,6 +9238,16 @@ "node": ">= 0.6" } }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -8211,6 +9325,12 @@ "node": ">=6.9.0" } }, + "node_modules/geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==", + "license": "ISC" + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -8221,6 +9341,12 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-canvas-context": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-canvas-context/-/get-canvas-context-1.0.2.tgz", + "integrity": "sha512-LnpfLf/TNzr9zVOGiIY6aKCz8EKuXmlYNV7CM2pUjBa/B+c2I15tS7KLySep75+FuerJdmArvJLcsAXWEy2H0A==", + "license": "MIT" + }, "node_modules/get-east-asian-width": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", @@ -8235,21 +9361,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", - "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", - "dunder-proto": "^1.0.0", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", + "get-proto": "^1.0.0", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "math-intrinsics": "^1.0.0" + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -8258,25 +9384,116 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gl-mat4": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gl-mat4/-/gl-mat4-1.2.0.tgz", + "integrity": "sha512-sT5C0pwB1/e9G9AvAoLsoaJtbMGjfd/jfxo8jMCKqYYEnjZuFvqV5rehqar0538EmssjdDeiEWnKyBSTw7quoA==", + "license": "Zlib" + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==", + "license": "MIT" + }, + "node_modules/gl-text": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gl-text/-/gl-text-1.4.0.tgz", + "integrity": "sha512-o47+XBqLCj1efmuNyCHt7/UEJmB9l66ql7pnobD6p+sgmBUdzfMZXIF0zD2+KRfpd99DJN+QXdvTFAGCKCVSmQ==", + "license": "MIT", + "dependencies": { + "bit-twiddle": "^1.0.2", + "color-normalize": "^1.5.0", + "css-font": "^1.2.0", + "detect-kerning": "^2.1.2", + "es6-weak-map": "^2.0.3", + "flatten-vertex-data": "^1.0.2", + "font-atlas": "^2.1.0", + "font-measure": "^1.2.2", + "gl-util": "^3.1.2", + "is-plain-obj": "^1.1.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "parse-unit": "^1.0.1", + "pick-by-alias": "^1.2.0", + "regl": "^2.0.0", + "to-px": "^1.0.1", + "typedarray-pool": "^1.1.0" + } + }, + "node_modules/gl-text/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gl-util": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/gl-util/-/gl-util-3.1.3.tgz", + "integrity": "sha512-dvRTggw5MSkJnCbh74jZzSoTOGnVYK+Bt+Ckqm39CVcl6+zSsxqWk4lr5NKhkqXHL6qvZAU9h17ZF8mIskY9mA==", + "license": "MIT", + "dependencies": { + "is-browser": "^2.0.1", + "is-firefox": "^1.0.3", + "is-plain-obj": "^1.1.0", + "number-is-integer": "^1.0.1", + "object-assign": "^4.1.0", + "pick-by-alias": "^1.2.0", + "weak-map": "^1.0.5" + } + }, + "node_modules/gl-util/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", "deprecated": "Glob versions prior to v9 are no longer supported", "license": "ISC", "dependencies": { - "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.1.1", + "minimatch": "2 || 3", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { @@ -8296,9 +9513,64 @@ "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, "license": "BSD-2-Clause" }, + "node_modules/global-prefix": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-4.0.0.tgz", + "integrity": "sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==", + "license": "MIT", + "dependencies": { + "ini": "^4.1.3", + "kind-of": "^6.0.3", + "which": "^4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/global-prefix/node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/global-prefix/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/global-prefix/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -8330,6 +9602,225 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/glsl-inject-defines": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/glsl-inject-defines/-/glsl-inject-defines-1.0.3.tgz", + "integrity": "sha512-W49jIhuDtF6w+7wCMcClk27a2hq8znvHtlGnrYkSWEr8tHe9eA2dcnohlcAmxLYBSpSSdzOkRdyPTrx9fw49+A==", + "license": "MIT", + "dependencies": { + "glsl-token-inject-block": "^1.0.0", + "glsl-token-string": "^1.0.1", + "glsl-tokenizer": "^2.0.2" + } + }, + "node_modules/glsl-resolve": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/glsl-resolve/-/glsl-resolve-0.0.1.tgz", + "integrity": "sha512-xxFNsfnhZTK9NBhzJjSBGX6IOqYpvBHxxmo+4vapiljyGNCY0Bekzn0firQkQrazK59c1hYxMDxYS8MDlhw4gA==", + "license": "MIT", + "dependencies": { + "resolve": "^0.6.1", + "xtend": "^2.1.2" + } + }, + "node_modules/glsl-resolve/node_modules/resolve": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-0.6.3.tgz", + "integrity": "sha512-UHBY3viPlJKf85YijDUcikKX6tmF4SokIDp518ZDVT92JNDcG5uKIthaT/owt3Sar0lwtOafsQuwrg22/v2Dwg==", + "license": "MIT" + }, + "node_modules/glsl-resolve/node_modules/xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/glsl-token-assignments": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-assignments/-/glsl-token-assignments-2.0.2.tgz", + "integrity": "sha512-OwXrxixCyHzzA0U2g4btSNAyB2Dx8XrztY5aVUCjRSh4/D0WoJn8Qdps7Xub3sz6zE73W3szLrmWtQ7QMpeHEQ==", + "license": "MIT" + }, + "node_modules/glsl-token-defines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-defines/-/glsl-token-defines-1.0.0.tgz", + "integrity": "sha512-Vb5QMVeLjmOwvvOJuPNg3vnRlffscq2/qvIuTpMzuO/7s5kT+63iL6Dfo2FYLWbzuiycWpbC0/KV0biqFwHxaQ==", + "license": "MIT", + "dependencies": { + "glsl-tokenizer": "^2.0.0" + } + }, + "node_modules/glsl-token-depth": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-depth/-/glsl-token-depth-1.1.2.tgz", + "integrity": "sha512-eQnIBLc7vFf8axF9aoi/xW37LSWd2hCQr/3sZui8aBJnksq9C7zMeUYHVJWMhFzXrBU7fgIqni4EhXVW4/krpg==", + "license": "MIT" + }, + "node_modules/glsl-token-descope": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glsl-token-descope/-/glsl-token-descope-1.0.2.tgz", + "integrity": "sha512-kS2PTWkvi/YOeicVjXGgX5j7+8N7e56srNDEHDTVZ1dcESmbmpmgrnpjPcjxJjMxh56mSXYoFdZqb90gXkGjQw==", + "license": "MIT", + "dependencies": { + "glsl-token-assignments": "^2.0.0", + "glsl-token-depth": "^1.1.0", + "glsl-token-properties": "^1.0.0", + "glsl-token-scope": "^1.1.0" + } + }, + "node_modules/glsl-token-inject-block": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/glsl-token-inject-block/-/glsl-token-inject-block-1.1.0.tgz", + "integrity": "sha512-q/m+ukdUBuHCOtLhSr0uFb/qYQr4/oKrPSdIK2C4TD+qLaJvqM9wfXIF/OOBjuSA3pUoYHurVRNao6LTVVUPWA==", + "license": "MIT" + }, + "node_modules/glsl-token-properties": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-properties/-/glsl-token-properties-1.0.1.tgz", + "integrity": "sha512-dSeW1cOIzbuUoYH0y+nxzwK9S9O3wsjttkq5ij9ZGw0OS41BirKJzzH48VLm8qLg+au6b0sINxGC0IrGwtQUcA==", + "license": "MIT" + }, + "node_modules/glsl-token-scope": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/glsl-token-scope/-/glsl-token-scope-1.1.2.tgz", + "integrity": "sha512-YKyOMk1B/tz9BwYUdfDoHvMIYTGtVv2vbDSLh94PT4+f87z21FVdou1KNKgF+nECBTo0fJ20dpm0B1vZB1Q03A==", + "license": "MIT" + }, + "node_modules/glsl-token-string": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/glsl-token-string/-/glsl-token-string-1.0.1.tgz", + "integrity": "sha512-1mtQ47Uxd47wrovl+T6RshKGkRRCYWhnELmkEcUAPALWGTFe2XZpH3r45XAwL2B6v+l0KNsCnoaZCSnhzKEksg==", + "license": "MIT" + }, + "node_modules/glsl-token-whitespace-trim": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/glsl-token-whitespace-trim/-/glsl-token-whitespace-trim-1.0.0.tgz", + "integrity": "sha512-ZJtsPut/aDaUdLUNtmBYhaCmhIjpKNg7IgZSfX5wFReMc2vnj8zok+gB/3Quqs0TsBSX/fGnqUUYZDqyuc2xLQ==", + "license": "MIT" + }, + "node_modules/glsl-tokenizer": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", + "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", + "license": "MIT", + "dependencies": { + "through2": "^0.6.3" + } + }, + "node_modules/glsl-tokenizer/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/glsl-tokenizer/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/glsl-tokenizer/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" + }, + "node_modules/glsl-tokenizer/node_modules/through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", + "license": "MIT", + "dependencies": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "node_modules/glslify": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glslify/-/glslify-7.1.1.tgz", + "integrity": "sha512-bud98CJ6kGZcP9Yxcsi7Iz647wuDz3oN+IZsjCRi5X1PI7t/xPKeL0mOwXJjo+CRZMqvq0CkSJiywCcY7kVYog==", + "license": "MIT", + "dependencies": { + "bl": "^2.2.1", + "concat-stream": "^1.5.2", + "duplexify": "^3.4.5", + "falafel": "^2.1.0", + "from2": "^2.3.0", + "glsl-resolve": "0.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glslify-bundle": "^5.0.0", + "glslify-deps": "^1.2.5", + "minimist": "^1.2.5", + "resolve": "^1.1.5", + "stack-trace": "0.0.9", + "static-eval": "^2.0.5", + "through2": "^2.0.1", + "xtend": "^4.0.0" + }, + "bin": { + "glslify": "bin.js" + } + }, + "node_modules/glslify-bundle": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glslify-bundle/-/glslify-bundle-5.1.1.tgz", + "integrity": "sha512-plaAOQPv62M1r3OsWf2UbjN0hUYAB7Aph5bfH58VxJZJhloRNbxOL9tl/7H71K7OLJoSJ2ZqWOKk3ttQ6wy24A==", + "license": "MIT", + "dependencies": { + "glsl-inject-defines": "^1.0.1", + "glsl-token-defines": "^1.0.0", + "glsl-token-depth": "^1.1.1", + "glsl-token-descope": "^1.0.2", + "glsl-token-scope": "^1.1.1", + "glsl-token-string": "^1.0.1", + "glsl-token-whitespace-trim": "^1.0.0", + "glsl-tokenizer": "^2.0.2", + "murmurhash-js": "^1.0.0", + "shallow-copy": "0.0.1" + } + }, + "node_modules/glslify-deps": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/glslify-deps/-/glslify-deps-1.3.2.tgz", + "integrity": "sha512-7S7IkHWygJRjcawveXQjRXLO2FTjijPDYC7QfZyAQanY+yGLCFHYnPtsGT9bdyHiwPTw/5a1m1M9hamT2aBpag==", + "license": "ISC", + "dependencies": { + "@choojs/findup": "^0.2.0", + "events": "^3.2.0", + "glsl-resolve": "0.0.1", + "glsl-tokenizer": "^2.0.0", + "graceful-fs": "^4.1.2", + "inherits": "^2.0.1", + "map-limit": "0.0.1", + "resolve": "^1.0.0" + } + }, + "node_modules/glslify/node_modules/bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/glslify/node_modules/stack-trace": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz", + "integrity": "sha512-vjUc6sfgtgY0dxCdnc40mK6Oftjo9+2K8H/NG81TMhgL392FtiPA9tn9RLyTxXmTLPJPjF3VyzFp6bsWFLisMQ==", + "engines": { + "node": "*" + } + }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -8346,7 +9837,6 @@ "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, "license": "ISC" }, "node_modules/graceful-readlink": { @@ -8355,10 +9845,16 @@ "integrity": "sha512-8tLu60LgxF6XpdbK8OW3FA+IfTNBn1ZHGHKF4KQbEeSkajYw5PlYJcKluntgegDPTg8UkHjpet1T82vk6TQ68w==", "license": "MIT" }, + "node_modules/grid-index": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", + "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==", + "license": "ISC" + }, "node_modules/gridstack": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/gridstack/-/gridstack-11.1.2.tgz", - "integrity": "sha512-6wJ5RffnFchF63/Yhs6tcZcWxRG1EgCnxgejbQsAjQ6Qj8QqKjew73jPq5c1yCAiyEAsXxI2tOJ8lZABOAZxoQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/gridstack/-/gridstack-11.3.0.tgz", + "integrity": "sha512-Z0eRovKcZTRTs3zetJwjO6CNwrgIy845WfOeZGk8ybpeMCE8fMA8tScyKU72Y2M6uGHkjgwnjflglvPiv+RcBQ==", "funding": [ { "type": "paypal", @@ -8415,20 +9911,14 @@ "node": ">=0.10.0" } }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "license": "MIT", "engines": { - "node": ">=0.10.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==", - "license": "MIT", + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8446,12 +9936,29 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/has-hover": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-hover/-/has-hover-1.0.1.tgz", + "integrity": "sha512-0G6w7LnlcpyDzpeGUTuT0CEw05+QlMuGVk1IHNAlHrGJITGodjZu3x8BNDUMfKJSZXNB2ZAclqc1bvrd+uUpfg==", + "license": "MIT", + "dependencies": { + "is-browser": "^2.0.1" + } + }, + "node_modules/has-passive-events": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-passive-events/-/has-passive-events-1.0.0.tgz", + "integrity": "sha512-2vSj6IeIsgvsRMyeQ0JaCX5Q3lX4zMn5HpoVc7MEhQ6pv8Iq9rsXjsp+E5ZwaT7T0xhMT0KmU8gtt1EFVdbJiw==", + "license": "MIT", + "dependencies": { + "is-browser": "^2.0.1" + } + }, "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", @@ -8536,54 +10043,10 @@ "wbuf": "^1.1.0" } }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "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/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/html-entities": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", - "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ], + "node_modules/hsluv": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/hsluv/-/hsluv-0.0.3.tgz", + "integrity": "sha512-08iL2VyCRbkQKBySkSh6m8zMUa3sADAxGVWs3Z1aPcUkTJeK0ETG4Fc27tEmQBGUAXZjIsXOZqBvacuVNSC/fQ==", "license": "MIT" }, "node_modules/html-escaper": { @@ -8655,9 +10118,9 @@ } }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz", + "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==", "dev": true, "license": "MIT" }, @@ -8709,13 +10172,13 @@ } }, "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==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -8744,7 +10207,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" @@ -8757,7 +10219,6 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" @@ -8770,7 +10231,6 @@ "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", @@ -8945,6 +10405,13 @@ "node": ">= 12" } }, + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/ipaddr.js": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", @@ -9039,6 +10506,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-browser/-/is-browser-2.1.0.tgz", + "integrity": "sha512-F5rTJxDQ2sW81fcfOR1GnCXT6sVJC104fCyfj+mjpwNEwaPYSn5fte5jiHmBg3DHsIoL/l8Kvw5VN5SsTRcRFQ==", + "license": "MIT" + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -9052,9 +10525,9 @@ } }, "node_modules/is-core-module": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.0.tgz", - "integrity": "sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -9108,6 +10581,27 @@ "node": ">=0.10.0" } }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-firefox": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-firefox/-/is-firefox-1.0.3.tgz", + "integrity": "sha512-6Q9ITjvWIm0Xdqv+5U12wgOKEM2KoBw4Y926m0OFkvlCxnbG94HKAsVz8w3fWcfAS5YA2fJORXX1dLrkprCCxA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-fullwidth-code-point": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", @@ -9134,6 +10628,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-iexplorer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-iexplorer/-/is-iexplorer-1.0.0.tgz", + "integrity": "sha512-YeLzceuwg3K6O0MLM3UyUUjKAlyULetwryFp1mHy1I5PfArK0AEqlfa+MR4gkJjcbuJXoDJCvXbyqZVf5CR2Sg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-inside-container": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", @@ -9175,6 +10678,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-mobile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-mobile/-/is-mobile-4.0.0.tgz", + "integrity": "sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==", + "license": "MIT" + }, "node_modules/is-network-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", @@ -9214,6 +10723,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -9268,12 +10786,12 @@ } }, "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==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -9298,6 +10816,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-string-blank": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", + "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==", + "license": "MIT" + }, + "node_modules/is-svg-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-svg-path/-/is-svg-path-1.0.2.tgz", + "integrity": "sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==", + "license": "MIT" + }, "node_modules/is-symbol": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", @@ -9469,6 +10999,19 @@ "node": ">=10" } }, + "node_modules/istanbul-lib-report/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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", @@ -9535,7 +11078,6 @@ "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", @@ -9550,7 +11092,6 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -9580,13 +11121,14 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz", + "integrity": "sha512-k9JCHDD9Hefc/S1BhsZTHO93mgZ6Z6VrGrZnGLf1pm1KAFhKjERum6v/4Exk8q9MkQyTRKIqlF+IM0BAPxLduw==", "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "argparse": "^1.0.2", + "esprima": "^2.6.0", + "inherit": "^2.2.2" }, "bin": { "js-yaml": "bin/js-yaml.js" @@ -9660,61 +11202,6 @@ "deprecated": "No longer maintained. We recomment migrating to ESLint with eslint-config-wikimedia.", "license": "MIT" }, - "node_modules/jscs/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jscs/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jscs/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/jscs/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jscs/node_modules/commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha512-bmkUukX8wAOjHdN26xj5c4ctEV22TQ7dQYhSmuckKhToXrkUn0iIaolHdIxYYqD55nhpSPA9zPQ1yP57GdXP2A==", - "license": "MIT", - "dependencies": { - "graceful-readlink": ">= 1.0.0" - }, - "engines": { - "node": ">= 0.6.x" - } - }, "node_modules/jscs/node_modules/dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -9775,23 +11262,6 @@ "integrity": "sha512-LbLqfXgJMmy81t+7c14mnulFHJ170cM6E+0vMXR9k/ZiZwgX8i5pNgjTCX3SO4VeUsFLV+8InixoretwU+MjBQ==", "license": "BSD-like" }, - "node_modules/jscs/node_modules/glob": { - "version": "5.0.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", - "integrity": "sha512-c9IPMazfRITpmAAKi22dK1VKxGDX9ehhqfABDriL/lzO92xcUKEJPQHrVA/2YHSNFB4iFlykVmWvwo48nr3OxA==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, "node_modules/jscs/node_modules/htmlparser2": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", @@ -9811,38 +11281,6 @@ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "license": "MIT" }, - "node_modules/jscs/node_modules/js-yaml": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.4.6.tgz", - "integrity": "sha512-k9JCHDD9Hefc/S1BhsZTHO93mgZ6Z6VrGrZnGLf1pm1KAFhKjERum6v/4Exk8q9MkQyTRKIqlF+IM0BAPxLduw==", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.2", - "esprima": "^2.6.0", - "inherit": "^2.2.2" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jscs/node_modules/lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==", - "license": "MIT" - }, - "node_modules/jscs/node_modules/minimatch": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", - "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/jscs/node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -9855,39 +11293,12 @@ "string_decoder": "~0.10.x" } }, - "node_modules/jscs/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "license": "BSD-3-Clause" - }, "node_modules/jscs/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "license": "MIT" }, - "node_modules/jscs/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jscs/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/jsdoctypeparser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-1.2.0.tgz", @@ -9897,12 +11308,6 @@ "lodash": "^3.7.0" } }, - "node_modules/jsdoctypeparser/node_modules/lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==", - "license": "MIT" - }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -9930,7 +11335,12 @@ "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, + "license": "MIT" + }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==", "license": "MIT" }, "node_modules/json5": { @@ -10135,6 +11545,22 @@ "source-map-support": "^0.5.5" } }, + "node_modules/karma/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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/karma/node_modules/chokidar": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", @@ -10179,6 +11605,28 @@ "dev": true, "license": "MIT" }, + "node_modules/karma/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, + "license": "ISC", + "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/karma/node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -10202,6 +11650,26 @@ "node": ">=8" } }, + "node_modules/karma/node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, + "node_modules/karma/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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/karma/node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -10310,11 +11778,16 @@ "node": ">=10" } }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==", + "license": "ISC" + }, "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "integrity": "sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -10332,9 +11805,9 @@ } }, "node_modules/less": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", - "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.1.tgz", + "integrity": "sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -10547,9 +12020,9 @@ } }, "node_modules/lmdb": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.1.5.tgz", - "integrity": "sha512-46Mch5Drq+A93Ss3gtbg+Xuvf5BOgIuvhKDWoGa3HcPHI6BL2NCOkRdSx1D4VfzwrxhnsjbyIVsLRlQHu6URvw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.2.2.tgz", + "integrity": "sha512-LriG93la4PbmPMwI7Hbv8W+0ncLK7549w4sbZSi4QGDjnnxnmNMgxUkaQTEMzH8TpwsfFvgEjpLX7V8B/I9e3g==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -10565,19 +12038,18 @@ "download-lmdb-prebuilds": "bin/download-prebuilds.js" }, "optionalDependencies": { - "@lmdb/lmdb-darwin-arm64": "3.1.5", - "@lmdb/lmdb-darwin-x64": "3.1.5", - "@lmdb/lmdb-linux-arm": "3.1.5", - "@lmdb/lmdb-linux-arm64": "3.1.5", - "@lmdb/lmdb-linux-x64": "3.1.5", - "@lmdb/lmdb-win32-x64": "3.1.5" + "@lmdb/lmdb-darwin-arm64": "3.2.2", + "@lmdb/lmdb-darwin-x64": "3.2.2", + "@lmdb/lmdb-linux-arm": "3.2.2", + "@lmdb/lmdb-linux-arm64": "3.2.2", + "@lmdb/lmdb-linux-x64": "3.2.2", + "@lmdb/lmdb-win32-x64": "3.2.2" } }, "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6.11.5" @@ -10610,10 +12082,9 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==", "license": "MIT" }, "node_modules/lodash.debounce": { @@ -10623,6 +12094,12 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -10640,6 +12117,52 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/log-symbols/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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/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, + "license": "MIT", + "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/log-symbols/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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/log-update": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", @@ -10797,9 +12320,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { @@ -10845,15 +12368,168 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "license": "MIT", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/map-limit/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/mapbox-gl": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-1.13.3.tgz", + "integrity": "sha512-p8lJFEiqmEQlyv+DQxFAOG/XPWN0Wp7j/Psq93Zywz7qt9CcUKFYDBOoOEKzqe6gudHVJY8/Bhqw6VDpX2lSBg==", + "license": "SEE LICENSE IN LICENSE.txt", + "peer": true, + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/geojson-types": "^1.0.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/mapbox-gl-supported": "^1.5.0", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^1.1.1", + "@mapbox/unitbezier": "^0.0.0", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "csscolorparser": "~1.0.3", + "earcut": "^2.2.2", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.2.1", + "grid-index": "^1.1.0", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^1.0.1", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "supercluster": "^7.1.0", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.1" + }, + "engines": { + "node": ">=6.4.0" + } + }, + "node_modules/maplibre-gl": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.7.1.tgz", + "integrity": "sha512-lgL7XpIwsgICiL82ITplfS7IGwrB1OJIw/pCvprDp2dhmSSEBgmPzYRvwYYYvJGJD7fxUv1Tvpih4nZ6VrLuaA==", + "license": "BSD-3-Clause", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^20.3.1", + "@types/geojson": "^7946.0.14", + "@types/geojson-vt": "3.2.5", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "earcut": "^3.0.0", + "geojson-vt": "^4.0.2", + "gl-matrix": "^3.4.3", + "global-prefix": "^4.0.0", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^3.3.0", + "potpack": "^2.0.0", + "quickselect": "^3.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^3.0.0", + "vt-pbf": "^3.1.3" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, + "node_modules/maplibre-gl/node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==", + "license": "BSD-2-Clause" + }, + "node_modules/maplibre-gl/node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==", + "license": "BSD-2-Clause" + }, + "node_modules/maplibre-gl/node_modules/earcut": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", + "integrity": "sha512-0l1/0gOjESMeQyYaK5IDiPNvFeu93Z/cO0TjZh9eZ1vyCtZnA7KMZ8rQggpsJHIbGSdrqYq9OhuveadOVHCshw==", + "license": "ISC" + }, + "node_modules/maplibre-gl/node_modules/geojson-vt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-4.0.2.tgz", + "integrity": "sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==", + "license": "ISC" + }, + "node_modules/maplibre-gl/node_modules/potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==", + "license": "ISC" + }, + "node_modules/maplibre-gl/node_modules/quickselect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-3.0.0.tgz", + "integrity": "sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==", + "license": "ISC" + }, + "node_modules/maplibre-gl/node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "license": "ISC", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "node_modules/maplibre-gl/node_modules/tinyqueue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-3.0.0.tgz", + "integrity": "sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==", + "license": "ISC" + }, "node_modules/math-intrinsics": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.0.0.tgz", - "integrity": "sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", "license": "MIT", "engines": { "node": ">= 0.4" } }, + "node_modules/math-log2": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-log2/-/math-log2-1.0.1.tgz", + "integrity": "sha512-9W0yGtkaMAkf74XGYVy4Dqw3YUMnTNB2eeiw9aQbUl4A3KmuCEHTt2DgAB07ENzOYAjsYSAYufkAq0Zd+jU7zA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -10865,9 +12541,9 @@ } }, "node_modules/memfs": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.15.0.tgz", - "integrity": "sha512-q9MmZXd2rRWHS6GU3WEm3HyiXZyyoA1DqdOhEq0lxPBmKb5S7IAOwX0RgUCwJfqjelDCySa5h8ujOy24LqsWcw==", + "version": "4.17.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.17.0.tgz", + "integrity": "sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -10898,7 +12574,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, "license": "MIT" }, "node_modules/merge2": { @@ -10965,7 +12640,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -10975,7 +12649,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "license": "MIT", "dependencies": { "mime-db": "1.52.0" @@ -11036,9 +12709,9 @@ "license": "ISC" }, "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": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -11285,6 +12958,38 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mouse-change": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/mouse-change/-/mouse-change-1.4.0.tgz", + "integrity": "sha512-vpN0s+zLL2ykyyUDh+fayu9Xkor5v/zRD9jhSqjRS1cJTGS0+oakVZzNm5n19JvvEj0you+MXlYTpNxUDQUjkQ==", + "license": "MIT", + "dependencies": { + "mouse-event": "^1.0.0" + } + }, + "node_modules/mouse-event": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/mouse-event/-/mouse-event-1.0.5.tgz", + "integrity": "sha512-ItUxtL2IkeSKSp9cyaX2JLUuKk2uMoxBg4bbOWVd29+CskYJR9BGsUqtXenNzKbnDshvupjUewDIYVrOB6NmGw==", + "license": "MIT" + }, + "node_modules/mouse-event-offset": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mouse-event-offset/-/mouse-event-offset-3.0.2.tgz", + "integrity": "sha512-s9sqOs5B1Ykox3Xo8b3Ss2IQju4UwlW6LSR+Q5FXWpprJ5fzMLefIIItr3PH8RwzfGy6gxs/4GAmiNuZScE25w==", + "license": "MIT" + }, + "node_modules/mouse-wheel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mouse-wheel/-/mouse-wheel-1.2.0.tgz", + "integrity": "sha512-+OfYBiUOCTWcTECES49neZwL5AoGkXE+lFjIvzwNCnYRlso+EnfvovcBxGoyQ0yQt806eSPjS675K0EwWknXmw==", + "license": "MIT", + "dependencies": { + "right-now": "^1.0.0", + "signum": "^1.0.0", + "to-px": "^1.0.1" + } + }, "node_modules/mrmime": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", @@ -11349,6 +13054,22 @@ "multicast-dns": "cli.js" } }, + "node_modules/mumath": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/mumath/-/mumath-3.3.4.tgz", + "integrity": "sha512-VAFIOG6rsxoc7q/IaY3jdjmrsuX9f15KlRLYTHmixASBZkZEKC1IFqE2BC5CdhXmK6WLM1Re33z//AGmeRI6FA==", + "deprecated": "Redundant dependency in your project.", + "license": "Unlicense", + "dependencies": { + "almost-equal": "^1.1.0" + } + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==", + "license": "MIT" + }, "node_modules/mute-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", @@ -11363,7 +13084,6 @@ "version": "3.3.8", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", - "dev": true, "funding": [ { "type": "github", @@ -11378,6 +13098,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/native-promise-only": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/native-promise-only/-/native-promise-only-0.8.1.tgz", + "integrity": "sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==", + "license": "MIT" + }, "node_modules/natural-compare": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.2.2.tgz", @@ -11439,9 +13165,14 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, "license": "MIT" }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "license": "ISC" + }, "node_modules/node-addon-api": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", @@ -11632,7 +13363,6 @@ "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", - "dev": true, "license": "MIT" }, "node_modules/nomnom": { @@ -11731,6 +13461,12 @@ "node": ">=0.10.0" } }, + "node_modules/normalize-svg-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-0.1.0.tgz", + "integrity": "sha512-1/kmYej2iedi5+ROxkRESL/pI02pkg0OBnaR4hJkSIX6+ORzepwbuUXfrdZaPjysTsJInj0Rj5NuX027+dMBvA==", + "license": "MIT" + }, "node_modules/npm-bundled": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", @@ -11768,9 +13504,9 @@ } }, "node_modules/npm-package-arg": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.0.tgz", - "integrity": "sha512-ZTE0hbwSdTNL+Stx2zxSqdu2KZfNDcrtrLdIk7XGnQFYBWYDho/ORvXtn5XEePcL3tFpGjHCV3X3xrtDh7eZ+A==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.1.tgz", + "integrity": "sha512-aDxjFfPV3Liw0WOBWlyZLMBqtbgbg03rmGvHDJa2Ttv7tIz+1oB5qWec4psCDFZcZi9b5XdGkPdQiJxOPzvQRQ==", "dev": true, "license": "ISC", "dependencies": { @@ -11845,11 +13581,22 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/number-is-integer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-integer/-/number-is-integer-1.0.1.tgz", + "integrity": "sha512-Dq3iuiFBkrbmuQjGFFF3zckXNCQoSD37/SdSbgcBailUx6knDvDwb5CympBgcoWHy36sfS12u74MHYkXyHq6bg==", + "license": "MIT", + "dependencies": { + "is-finite": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -11893,14 +13640,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -12008,6 +13757,39 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ora/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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/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, + "license": "MIT", + "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/ora/node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -12058,6 +13840,19 @@ "dev": true, "license": "ISC" }, + "node_modules/ora/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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ordered-binary": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", @@ -12210,6 +14005,12 @@ "node": ">=6" } }, + "node_modules/parenthesis": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/parenthesis/-/parenthesis-3.1.8.tgz", + "integrity": "sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==", + "license": "MIT" + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -12246,6 +14047,27 @@ "node": ">= 0.10" } }, + "node_modules/parse-rect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parse-rect/-/parse-rect-1.2.0.tgz", + "integrity": "sha512-4QZ6KYbnE6RTwg9E0HpLchUM9EZt6DnDxajFZZDSV4p/12ZJEvPO702DZpGvRYEPo00yKDys7jASi+/w7aO8LA==", + "license": "MIT", + "dependencies": { + "pick-by-alias": "^1.2.0" + } + }, + "node_modules/parse-svg-path": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", + "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==", + "license": "MIT" + }, + "node_modules/parse-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-unit/-/parse-unit-1.0.1.tgz", + "integrity": "sha512-hrqldJHokR3Qj88EIlV/kAyAi/G5R2+R56TBANxNMy0uPlYcttx0jnMW6Yx5KsKPSbC3KddM/7qQm3+0wEXKxg==", + "license": "MIT" + }, "node_modules/parse5": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", @@ -12382,11 +14204,35 @@ "integrity": "sha512-2AJyCGXy4VsZ2wa0TmMoL93KtWshxWQAMuuAG+7/Q3kth9uRDV38cMZTaSCsrTDJEwV8QbIHad+3E673s1ZY0A==", "license": "MIT" }, + "node_modules/pbf": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.3.0.tgz", + "integrity": "sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" + }, + "node_modules/pick-by-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pick-by-alias/-/pick-by-alias-1.2.0.tgz", + "integrity": "sha512-ESj2+eBxhGrcA1azgHs7lARG5+5iLakc/6nlfbpjcLl00HuuUOIuORhYXN4D1HfvMSKuVtFQjAlnwi1JHEeDIw==", + "license": "MIT" + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, "license": "ISC" }, "node_modules/picomatch": { @@ -12414,9 +14260,9 @@ } }, "node_modules/piscina": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.7.0.tgz", - "integrity": "sha512-b8hvkpp9zS0zsfa939b/jXbe64Z2gZv0Ha7FYPNUiDIB1y2AtxcOZdfP8xN8HFjUaqQiT9gRlfjAsoL8vdJ1Iw==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.8.0.tgz", + "integrity": "sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==", "dev": true, "license": "MIT", "optionalDependencies": { @@ -12448,6 +14294,66 @@ "node": ">= 0.4.0" } }, + "node_modules/plotly.js": { + "version": "2.35.3", + "resolved": "https://registry.npmjs.org/plotly.js/-/plotly.js-2.35.3.tgz", + "integrity": "sha512-7RaC6FxmCUhpD6H4MpD+QLUu3hCn76I11rotRefrh3m1iDvWqGnVqVk9dSaKmRAhFD3vsNsYea0OxnR1rc2IzQ==", + "license": "MIT", + "dependencies": { + "@plotly/d3": "3.8.2", + "@plotly/d3-sankey": "0.7.2", + "@plotly/d3-sankey-circular": "0.33.1", + "@plotly/mapbox-gl": "1.13.4", + "@turf/area": "^7.1.0", + "@turf/bbox": "^7.1.0", + "@turf/centroid": "^7.1.0", + "base64-arraybuffer": "^1.0.2", + "canvas-fit": "^1.5.0", + "color-alpha": "1.0.4", + "color-normalize": "1.5.0", + "color-parse": "2.0.0", + "color-rgba": "2.1.1", + "country-regex": "^1.1.0", + "css-loader": "^7.1.2", + "d3-force": "^1.2.1", + "d3-format": "^1.4.5", + "d3-geo": "^1.12.1", + "d3-geo-projection": "^2.9.0", + "d3-hierarchy": "^1.1.9", + "d3-interpolate": "^3.0.1", + "d3-time": "^1.1.0", + "d3-time-format": "^2.2.3", + "fast-isnumeric": "^1.1.4", + "gl-mat4": "^1.2.0", + "gl-text": "^1.4.0", + "has-hover": "^1.0.1", + "has-passive-events": "^1.0.0", + "is-mobile": "^4.0.0", + "maplibre-gl": "^4.5.2", + "mouse-change": "^1.4.0", + "mouse-event-offset": "^3.0.2", + "mouse-wheel": "^1.2.0", + "native-promise-only": "^0.8.1", + "parse-svg-path": "^0.1.2", + "point-in-polygon": "^1.1.0", + "polybooljs": "^1.2.2", + "probe-image-size": "^7.2.3", + "regl": "npm:@plotly/regl@^2.1.2", + "regl-error2d": "^2.0.12", + "regl-line2d": "^3.1.3", + "regl-scatter2d": "^3.3.1", + "regl-splom": "^1.0.14", + "strongly-connected-components": "^1.0.1", + "style-loader": "^4.0.0", + "superscript-text": "^1.0.0", + "svg-path-sdf": "^1.1.3", + "tinycolor2": "^1.4.2", + "to-px": "1.0.1", + "topojson-client": "^3.1.0", + "webgl-context": "^2.2.0", + "world-calendars": "^1.0.3" + } + }, "node_modules/plugin-error": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", @@ -12464,6 +14370,18 @@ "node": ">=0.10.0" } }, + "node_modules/point-in-polygon": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/point-in-polygon/-/point-in-polygon-1.1.0.tgz", + "integrity": "sha512-3ojrFwjnnw8Q9242TzgXuTD+eKiutbzyslcq1ydfu82Db2y+Ogbmyrkpv0Hgj31qwT3lbS9+QAAO/pIQM35XRw==", + "license": "MIT" + }, + "node_modules/polybooljs": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/polybooljs/-/polybooljs-1.2.2.tgz", + "integrity": "sha512-ziHW/02J0XuNuUtmidBc6GXE8YohYydp3DWPWXYsd7O721TjcmN+k6ezjdwkDqep+gnWnFY+yqZHvzElra2oCg==", + "license": "MIT" + }, "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", @@ -12477,7 +14395,6 @@ "version": "8.4.49", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", - "dev": true, "funding": [ { "type": "opencollective", @@ -12545,7 +14462,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", - "dev": true, "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" @@ -12558,7 +14474,6 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", - "dev": true, "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", @@ -12576,7 +14491,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", - "dev": true, "license": "ISC", "dependencies": { "postcss-selector-parser": "^7.0.0" @@ -12592,7 +14506,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, "license": "ISC", "dependencies": { "icss-utils": "^5.0.0" @@ -12608,7 +14521,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz", "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==", - "dev": true, "license": "MIT", "dependencies": { "cssesc": "^3.0.0", @@ -12622,9 +14534,51 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true, "license": "MIT" }, + "node_modules/potpack": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", + "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==", + "license": "ISC" + }, + "node_modules/probe-image-size": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-7.2.3.tgz", + "integrity": "sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==", + "license": "MIT", + "dependencies": { + "lodash.merge": "^4.6.2", + "needle": "^2.5.2", + "stream-parser": "~0.3.1" + } + }, + "node_modules/probe-image-size/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/probe-image-size/node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "license": "MIT", + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, "node_modules/proc-log": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", @@ -12677,6 +14631,12 @@ "node": ">= 0.6.6" } }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==", + "license": "MIT" + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -12763,11 +14723,25 @@ ], "license": "MIT" }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==", + "license": "ISC" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" @@ -12818,28 +14792,28 @@ "license": "ISC" }, "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" + "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/readdirp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", - "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.1.tgz", + "integrity": "sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==", "dev": true, "license": "MIT", "engines": { - "node": ">= 14.16.0" + "node": ">= 14.18.0" }, "funding": { "type": "individual", @@ -12898,14 +14872,16 @@ "license": "MIT" }, "node_modules/regexp.prototype.flags": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", "set-function-name": "^2.0.2" }, "engines": { @@ -12966,6 +14942,86 @@ "node": ">=6" } }, + "node_modules/regl": { + "name": "@plotly/regl", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@plotly/regl/-/regl-2.1.2.tgz", + "integrity": "sha512-Mdk+vUACbQvjd0m/1JJjOOafmkp/EpmHjISsopEz5Av44CBq7rPC05HHNbYGKVyNUF2zmEoBS/TT0pd0SPFFyw==", + "license": "MIT" + }, + "node_modules/regl-error2d": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/regl-error2d/-/regl-error2d-2.0.12.tgz", + "integrity": "sha512-r7BUprZoPO9AbyqM5qlJesrSRkl+hZnVKWKsVp7YhOl/3RIpi4UDGASGJY0puQ96u5fBYw/OlqV24IGcgJ0McA==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.1", + "color-normalize": "^1.5.0", + "flatten-vertex-data": "^1.0.2", + "object-assign": "^4.1.1", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.1.0", + "update-diff": "^1.1.0" + } + }, + "node_modules/regl-line2d": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/regl-line2d/-/regl-line2d-3.1.3.tgz", + "integrity": "sha512-fkgzW+tTn4QUQLpFKsUIE0sgWdCmXAM3ctXcCgoGBZTSX5FE2A0M7aynz7nrZT5baaftLrk9te54B+MEq4QcSA==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.1", + "array-find-index": "^1.0.2", + "array-normalize": "^1.1.4", + "color-normalize": "^1.5.0", + "earcut": "^2.1.5", + "es6-weak-map": "^2.0.3", + "flatten-vertex-data": "^1.0.2", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.1.0" + } + }, + "node_modules/regl-scatter2d": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/regl-scatter2d/-/regl-scatter2d-3.3.1.tgz", + "integrity": "sha512-seOmMIVwaCwemSYz/y4WE0dbSO9svNFSqtTh5RE57I7PjGo3tcUYKtH0MTSoshcAsreoqN8HoCtnn8wfHXXfKQ==", + "license": "MIT", + "dependencies": { + "@plotly/point-cluster": "^3.1.9", + "array-range": "^1.0.1", + "array-rearrange": "^2.2.2", + "clamp": "^1.0.1", + "color-id": "^1.1.0", + "color-normalize": "^1.5.0", + "color-rgba": "^2.1.1", + "flatten-vertex-data": "^1.0.2", + "glslify": "^7.0.0", + "is-iexplorer": "^1.0.0", + "object-assign": "^4.1.1", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "to-float32": "^1.1.0", + "update-diff": "^1.1.0" + } + }, + "node_modules/regl-splom": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/regl-splom/-/regl-splom-1.0.14.tgz", + "integrity": "sha512-OiLqjmPRYbd7kDlHC6/zDf6L8lxgDC65BhC8JirhP4ykrK4x22ZyS+BnY8EUinXKDeMgmpRwCvUmk7BK4Nweuw==", + "license": "MIT", + "dependencies": { + "array-bounds": "^1.0.1", + "array-range": "^1.0.1", + "color-alpha": "^1.0.4", + "flatten-vertex-data": "^1.0.2", + "parse-rect": "^1.2.0", + "pick-by-alias": "^1.2.0", + "raf": "^3.4.1", + "regl-scatter2d": "^3.2.3" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -12980,7 +15036,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -13000,18 +15055,21 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -13026,6 +15084,15 @@ "node": ">=4" } }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "license": "MIT", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, "node_modules/resolve-url-loader": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", @@ -13122,6 +15189,12 @@ "dev": true, "license": "MIT" }, + "node_modules/right-now": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/right-now/-/right-now-1.0.0.tgz", + "integrity": "sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==", + "license": "MIT" + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -13139,10 +15212,45 @@ "url": "https://github.com/sponsors/isaacs" } }, + "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, + "license": "ISC", + "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, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/rollup": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.26.0.tgz", - "integrity": "sha512-ilcl12hnWonG8f+NxU6BlgysVA0gvY2l8N0R84S1HcINbW20bvwuCngJkkInV6LXhwRpucsW5k1ovDwEdBVrNg==", + "version": "4.30.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.30.1.tgz", + "integrity": "sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==", "dev": true, "license": "MIT", "dependencies": { @@ -13156,24 +15264,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.26.0", - "@rollup/rollup-android-arm64": "4.26.0", - "@rollup/rollup-darwin-arm64": "4.26.0", - "@rollup/rollup-darwin-x64": "4.26.0", - "@rollup/rollup-freebsd-arm64": "4.26.0", - "@rollup/rollup-freebsd-x64": "4.26.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.26.0", - "@rollup/rollup-linux-arm-musleabihf": "4.26.0", - "@rollup/rollup-linux-arm64-gnu": "4.26.0", - "@rollup/rollup-linux-arm64-musl": "4.26.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.26.0", - "@rollup/rollup-linux-riscv64-gnu": "4.26.0", - "@rollup/rollup-linux-s390x-gnu": "4.26.0", - "@rollup/rollup-linux-x64-gnu": "4.26.0", - "@rollup/rollup-linux-x64-musl": "4.26.0", - "@rollup/rollup-win32-arm64-msvc": "4.26.0", - "@rollup/rollup-win32-ia32-msvc": "4.26.0", - "@rollup/rollup-win32-x64-msvc": "4.26.0", + "@rollup/rollup-android-arm-eabi": "4.30.1", + "@rollup/rollup-android-arm64": "4.30.1", + "@rollup/rollup-darwin-arm64": "4.30.1", + "@rollup/rollup-darwin-x64": "4.30.1", + "@rollup/rollup-freebsd-arm64": "4.30.1", + "@rollup/rollup-freebsd-x64": "4.30.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.30.1", + "@rollup/rollup-linux-arm-musleabihf": "4.30.1", + "@rollup/rollup-linux-arm64-gnu": "4.30.1", + "@rollup/rollup-linux-arm64-musl": "4.30.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.30.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.30.1", + "@rollup/rollup-linux-riscv64-gnu": "4.30.1", + "@rollup/rollup-linux-s390x-gnu": "4.30.1", + "@rollup/rollup-linux-x64-gnu": "4.30.1", + "@rollup/rollup-linux-x64-musl": "4.30.1", + "@rollup/rollup-win32-arm64-msvc": "4.30.1", + "@rollup/rollup-win32-ia32-msvc": "4.30.1", + "@rollup/rollup-win32-x64-msvc": "4.30.1", "fsevents": "~2.3.2" } }, @@ -13214,6 +15323,12 @@ "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==", + "license": "BSD-3-Clause" + }, "node_modules/rxjs": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", @@ -13224,24 +15339,9 @@ } }, "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" - } - ], + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "license": "MIT" }, "node_modules/safe-regex-test": { @@ -13265,13 +15365,12 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, "license": "MIT" }, "node_modules/sass": { - "version": "1.80.7", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.80.7.tgz", - "integrity": "sha512-MVWvN0u5meytrSjsU7AWsbhoXi1sc58zADXFllfZzbsBT1GHjjar6JwBINYPRrkx/zqnQ6uqbQuHgE95O+C+eQ==", + "version": "1.83.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.83.1.tgz", + "integrity": "sha512-EVJbDaEs4Rr3F0glJzFSOvtg2/oy2V/YrGFPqPY24UqcLDWcI9ZY5sN+qyO3c/QCZwzgfirvhXvINiJCE/OLcA==", "dev": true, "license": "MIT", "dependencies": { @@ -13290,9 +15389,9 @@ } }, "node_modules/sass-loader": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.3.tgz", - "integrity": "sha512-gosNorT1RCkuCMyihv6FBRR7BMV06oKRAs+l4UMp1mlcVg9rWN6KMmUj3igjQwmYys4mDP3etEYJgiHRbgHCHA==", + "version": "16.0.4", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.4.tgz", + "integrity": "sha512-LavLbgbBGUt3wCiYzhuLLu65+fWXaXLmq7YxivLhEqmiupCFZ5sKUAipK3do6V80YSU0jvSxNhEdT13IXNr3rg==", "dev": true, "license": "MIT", "dependencies": { @@ -13334,15 +15433,12 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "dev": true, - "license": "ISC", - "optional": true + "license": "ISC" }, "node_modules/schema-utils": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", - "dev": true, "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", @@ -13362,7 +15458,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, "license": "MIT", "dependencies": { "ajv": "^8.0.0" @@ -13401,7 +15496,6 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -13479,7 +15573,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" @@ -13639,6 +15732,22 @@ "node": ">=8" } }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -13760,6 +15869,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/signum": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signum/-/signum-1.0.0.tgz", + "integrity": "sha512-yodFGwcyt59XRh7w5W3jPcIQb3Bwi21suEfT7MAWnBX3iCdklJpgDgvGT9o04UonglZN5SNMfJFkHIR/jO8GHw==", + "license": "MIT" + }, "node_modules/sigstore": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-3.0.0.tgz", @@ -13972,6 +16087,16 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/socks": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", @@ -14016,7 +16141,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -14060,7 +16184,6 @@ "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, "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", @@ -14071,7 +16194,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -14107,9 +16229,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz", + "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==", "dev": true, "license": "CC0-1.0" }, @@ -14145,11 +16267,25 @@ "wbuf": "^1.7.3" } }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "license": "BSD-3-Clause" }, "node_modules/ssri": { @@ -14174,6 +16310,15 @@ "node": "*" } }, + "node_modules/static-eval": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", + "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", + "license": "MIT", + "dependencies": { + "escodegen": "^2.1.0" + } + }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -14197,6 +16342,36 @@ "node": ">= 0.4" } }, + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", + "license": "MIT", + "dependencies": { + "debug": "2" + } + }, + "node_modules/stream-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stream-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT" + }, "node_modules/streamroller": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", @@ -14213,13 +16388,21 @@ } }, "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-split-by": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string-split-by/-/string-split-by-1.0.0.tgz", + "integrity": "sha512-KaJKY+hfpzNyet/emP81PJA9hTVSfxNLS9SFTWxdCnnW1/zOOwiV248+EfoX7IQFcBaOp4G5YE6xTJMF+pLg6A==", + "license": "MIT", + "dependencies": { + "parenthesis": "^3.1.5" } }, "node_modules/string-width": { @@ -14329,6 +16512,26 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", @@ -14353,17 +16556,56 @@ "node": ">=0.8.0" } }, - "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, + "node_modules/strongly-connected-components": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strongly-connected-components/-/strongly-connected-components-1.0.1.tgz", + "integrity": "sha512-i0TFx4wPcO0FwX+4RkLJi1MxmcTv90jNZgxMu9XRnMXMeFUY1VJlIoXpZunPUvUUqbCT1pg5PEkFqqpcaElNaA==", + "license": "MIT" + }, + "node_modules/style-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", + "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.27.0" + } + }, + "node_modules/supercluster": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-7.1.5.tgz", + "integrity": "sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==", + "license": "ISC", + "dependencies": { + "kdbush": "^3.0.0" + } + }, + "node_modules/supercluster/node_modules/kdbush": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-3.0.0.tgz", + "integrity": "sha512-hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==", + "license": "ISC" + }, + "node_modules/superscript-text": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/superscript-text/-/superscript-text-1.0.0.tgz", + "integrity": "sha512-gwu8l5MtRZ6koO0icVTlmN5pm7Dhh1+Xpe9O4x6ObMAsW+3jPbW14d1DsBq1F4wiI+WOFjXF35pslgec/G8yCQ==", + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -14378,6 +16620,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/svg-arc-to-cubic-bezier": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz", + "integrity": "sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==", + "license": "ISC" + }, + "node_modules/svg-path-bounds": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz", + "integrity": "sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==", + "license": "MIT", + "dependencies": { + "abs-svg-path": "^0.1.1", + "is-svg-path": "^1.0.1", + "normalize-svg-path": "^1.0.0", + "parse-svg-path": "^0.1.2" + } + }, + "node_modules/svg-path-bounds/node_modules/normalize-svg-path": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz", + "integrity": "sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==", + "license": "MIT", + "dependencies": { + "svg-arc-to-cubic-bezier": "^3.0.0" + } + }, + "node_modules/svg-path-sdf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/svg-path-sdf/-/svg-path-sdf-1.1.3.tgz", + "integrity": "sha512-vJJjVq/R5lSr2KLfVXVAStktfcfa1pNFjFOgyJnzZFXlO/fDZ5DmM8FpnSKKzLPfEYTVeXuVBTHF296TpxuJVg==", + "license": "MIT", + "dependencies": { + "bitmap-sdf": "^1.0.0", + "draw-svg-path": "^1.0.0", + "is-svg-path": "^1.0.1", + "parse-svg-path": "^0.1.2", + "svg-path-bounds": "^1.0.1" + } + }, "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", @@ -14392,7 +16674,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -14500,10 +16781,9 @@ "license": "ISC" }, "node_modules/terser": { - "version": "5.36.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", - "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", - "dev": true, + "version": "5.37.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz", + "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -14522,7 +16802,6 @@ "version": "5.3.11", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz", "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", @@ -14553,6 +16832,12 @@ } } }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, "node_modules/thingies": { "version": "1.21.0", "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", @@ -14576,36 +16861,6 @@ "xtend": "~4.0.1" } }, - "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==", - "license": "MIT", - "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/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "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==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -14625,6 +16880,18 @@ "node": ">=0.10.0" } }, + "node_modules/tinycolor2": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.6.0.tgz", + "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==", + "license": "MIT" + }, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==", + "license": "ISC" + }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -14647,6 +16914,21 @@ "node": ">=0.10.0" } }, + "node_modules/to-float32": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/to-float32/-/to-float32-1.1.0.tgz", + "integrity": "sha512-keDnAusn/vc+R3iEiSDw8TOF7gPiTLdK1ArvWtYbJQiVfmRg6i/CAvbKq3uIS0vWroAC7ZecN3DjQKw3aSklUg==", + "license": "MIT" + }, + "node_modules/to-px": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-px/-/to-px-1.0.1.tgz", + "integrity": "sha512-2y3LjBeIZYL19e5gczp14/uRWFDtDUErJPVN3VU9a7SJO+RjGRtYR47aMN2bZgGlxvW4ZcEz2ddUPVHXcMfuXw==", + "license": "MIT", + "dependencies": { + "parse-unit": "^1.0.1" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -14679,6 +16961,20 @@ "node": ">=0.6" } }, + "node_modules/topojson-client": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", + "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", + "license": "ISC", + "dependencies": { + "commander": "2" + }, + "bin": { + "topo2geo": "bin/topo2geo", + "topomerge": "bin/topomerge", + "topoquantize": "bin/topoquantize" + } + }, "node_modules/tree-dump": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", @@ -14727,6 +17023,12 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC" + }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", @@ -14761,6 +17063,22 @@ "dev": true, "license": "MIT" }, + "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==", + "license": "MIT" + }, + "node_modules/typedarray-pool": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz", + "integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==", + "license": "MIT", + "dependencies": { + "bit-twiddle": "^1.0.0", + "dup": "^1.0.0" + } + }, "node_modules/typescript": { "version": "5.6.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", @@ -14776,9 +17094,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.39", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.39.tgz", - "integrity": "sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==", + "version": "0.7.40", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.40.tgz", + "integrity": "sha512-us1E3K+3jJppDBa3Tl0L3MOJiGhe1C6P0+nIvQAFYbxlMAx0h81eOwLmU57xgqToduDDPx3y5QsdjPfDu+FgOQ==", "dev": true, "funding": [ { @@ -14811,7 +17129,6 @@ "version": "6.20.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "dev": true, "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -14917,11 +17234,16 @@ "node": ">= 0.8" } }, - "node_modules/update-browserslist-db": { + "node_modules/unquote": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", - "dev": true, + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==", + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", "funding": [ { "type": "opencollective", @@ -14939,7 +17261,7 @@ "license": "MIT", "dependencies": { "escalade": "^3.2.0", - "picocolors": "^1.1.0" + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -14948,11 +17270,16 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/update-diff": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-diff/-/update-diff-1.1.0.tgz", + "integrity": "sha512-rCiBPiHxZwT4+sBhEbChzpO5hYHjm91kScWgdHf4Qeafs6Ba7MBl+d9GlGv72bcTZQO0sLmtQS1pHSWoCLtN/A==", + "license": "MIT" + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" @@ -14962,7 +17289,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -14990,6 +17316,39 @@ "node": ">= 0.6.4" } }, + "node_modules/utile/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", + "license": "ISC", + "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/utile/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/utile/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -15014,14 +17373,11 @@ } }, "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha512-FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT" }, "node_modules/validate-npm-package-license": { "version": "3.0.4", @@ -15055,21 +17411,21 @@ } }, "node_modules/vite": { - "version": "5.4.11", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.11.tgz", - "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.7.tgz", + "integrity": "sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.24.2", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -15078,19 +17434,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -15111,439 +17473,15 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, - "node_modules/vite/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, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "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" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/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, - "hasInstallScript": true, - "license": "MIT", - "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/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", @@ -15578,12 +17516,38 @@ "node": ">= 0.6.0" } }, - "node_modules/vow-fs/node_modules/uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha512-FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "license": "MIT" + "node_modules/vow-fs/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", + "license": "ISC", + "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/vow-fs/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, "node_modules/vow-queue": { "version": "0.4.3", @@ -15597,11 +17561,21 @@ "node": ">= 0.8.0" } }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "license": "MIT", + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, "node_modules/watchpack": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", - "dev": true, "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", @@ -15639,18 +17613,32 @@ "license": "MIT", "optional": true }, + "node_modules/weak-map": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.8.tgz", + "integrity": "sha512-lNR9aAefbGPpHO7AEnY0hCFjz1eTkWCXYvkTRrTHs9qv8zJp+SkVYpzfLIFXQQiG3tVvbNFQgVg2bQS8YGgxyw==", + "license": "Apache-2.0" + }, + "node_modules/webgl-context": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webgl-context/-/webgl-context-2.2.0.tgz", + "integrity": "sha512-q/fGIivtqTT7PEoF07axFIlHNk/XCPaYpq64btnepopSWvKNFkoORlQYgqDigBIuGA1ExnFd/GnSUnBNEPQY7Q==", + "license": "MIT", + "dependencies": { + "get-canvas-context": "^1.0.1" + } + }, "node_modules/webpack": { - "version": "5.96.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", - "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", - "dev": true, + "version": "5.97.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz", + "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==", "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.6", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", "acorn": "^8.14.0", "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", @@ -15717,9 +17705,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.1.0.tgz", - "integrity": "sha512-aQpaN81X6tXie1FoOB7xlMfCsN19pSvRAeYUHOdFWOlhpQ/LlbfTqYwwmEDFV0h8GGuqmCmKmT+pxcUV/Nt2gQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.0.tgz", + "integrity": "sha512-90SqqYXA2SK36KcT6o1bvwvZfJFcmoamqeJY7+boioffX9g9C0wjjJRGUrQIuh43pb0ttX7+ssavmj/WN2RHtA==", "dev": true, "license": "MIT", "dependencies": { @@ -15736,10 +17724,9 @@ "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^2.0.0", - "express": "^4.19.2", + "express": "^4.21.2", "graceful-fs": "^4.2.6", - "html-entities": "^2.4.0", - "http-proxy-middleware": "^2.0.3", + "http-proxy-middleware": "^2.0.7", "ipaddr.js": "^2.1.0", "launch-editor": "^2.6.1", "open": "^10.0.3", @@ -15904,7 +17891,6 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, "license": "MIT", "engines": { "node": ">=10.13.0" @@ -15936,7 +17922,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", @@ -15953,7 +17938,6 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" @@ -15963,21 +17947,18 @@ "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==", - "dev": true, "license": "MIT" }, "node_modules/webpack/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, "license": "MIT" }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", @@ -16068,15 +18049,16 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", - "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { @@ -16127,6 +18109,15 @@ "node": ">= 0.4.0" } }, + "node_modules/world-calendars": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/world-calendars/-/world-calendars-1.0.3.tgz", + "integrity": "sha512-sAjLZkBnsbHkHWVhrsCU5Sa/EVuf9QqgvrN8zyJ2L/F9FR9Oc6CvVK0674+PGAtmmmYQMH98tCUSO4QLQv3/TQ==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.0" + } + }, "node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -16161,6 +18152,22 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/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, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "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", @@ -16193,6 +18200,22 @@ "node": ">=8" } }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -16264,12 +18287,6 @@ "node": ">=0.8.0" } }, - "node_modules/xmlbuilder/node_modules/lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==", - "license": "MIT" - }, "node_modules/xmlhttprequest-ssl": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", diff --git a/frontend/bec_atlas/package.json b/frontend/bec_atlas/package.json index 2753515..edbdd63 100644 --- a/frontend/bec_atlas/package.json +++ b/frontend/bec_atlas/package.json @@ -23,6 +23,7 @@ "angular-gridster2": "^19.0.0", "gridstack": "^11.1.2", "gridstack-angular": "^0.6.0-dev", + "plotly.js": "^2.35.3", "rxjs": "~7.8.0", "socket.io-client": "^4.8.1", "tslib": "^2.3.0", @@ -33,6 +34,7 @@ "@angular/cli": "^19.0.5", "@angular/compiler-cli": "^19.0.0", "@types/jasmine": "~5.1.0", + "@types/plotly.js": "^2.35.2", "jasmine-core": "~5.4.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", @@ -41,4 +43,4 @@ "karma-jasmine-html-reporter": "~2.1.0", "typescript": "~5.6.2" } -} \ No newline at end of file +} diff --git a/frontend/bec_atlas/src/app/app-config.service.spec.ts b/frontend/bec_atlas/src/app/app-config.service.spec.ts new file mode 100644 index 0000000..ee08175 --- /dev/null +++ b/frontend/bec_atlas/src/app/app-config.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AppConfigService } from './app-config.service'; + +describe('AppConfigService', () => { + let service: AppConfigService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AppConfigService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/bec_atlas/src/app/app-config.service.ts b/frontend/bec_atlas/src/app/app-config.service.ts new file mode 100644 index 0000000..8664521 --- /dev/null +++ b/frontend/bec_atlas/src/app/app-config.service.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { firstValueFrom } from 'rxjs'; + +export interface AppConfig { + baseUrl?: string; +} +@Injectable() +export class AppConfigService { + private appConfig: object | undefined = {}; + + constructor(private http: HttpClient) {} + + async loadAppConfig(): Promise { + try { + this.appConfig = await firstValueFrom( + this.http.get('/assets/config.json') + ); + } catch (err) { + console.error('No config provided, applying defaults'); + } + } + + getConfig(): AppConfig { + return this.appConfig as AppConfig; + } +} diff --git a/frontend/bec_atlas/src/app/app.component.html b/frontend/bec_atlas/src/app/app.component.html index 10a3e3f..4e0840c 100644 --- a/frontend/bec_atlas/src/app/app.component.html +++ b/frontend/bec_atlas/src/app/app.component.html @@ -2,7 +2,7 @@ - + diff --git a/frontend/bec_atlas/src/app/app.component.ts b/frontend/bec_atlas/src/app/app.component.ts index aaaa9cb..c5ae30b 100644 --- a/frontend/bec_atlas/src/app/app.component.ts +++ b/frontend/bec_atlas/src/app/app.component.ts @@ -14,8 +14,6 @@ import { QueueTableComponent } from './queue-table/queue-table.component'; DashboardComponent, CommonModule, GridStackTestComponent, - DeviceBoxComponent, - QueueTableComponent, ], templateUrl: './app.component.html', styleUrl: './app.component.scss', diff --git a/frontend/bec_atlas/src/app/app.config.ts b/frontend/bec_atlas/src/app/app.config.ts index b33ea8c..c2b2dbc 100644 --- a/frontend/bec_atlas/src/app/app.config.ts +++ b/frontend/bec_atlas/src/app/app.config.ts @@ -1,17 +1,34 @@ import { + APP_INITIALIZER, ApplicationConfig, - provideEnvironmentInitializer, provideZoneChangeDetection, } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; -import { GridstackComponent } from 'gridstack/dist/angular'; import { provideAnimationsAsync } from '@angular/platform-browser/animations/async'; +import { AppConfigService } from './app-config.service'; +import { + provideHttpClient, + withInterceptorsFromDi, +} from '@angular/common/http'; + +const appConfigInitializerFn = (appConfig: AppConfigService) => { + return () => appConfig.loadAppConfig(); +}; export const appConfig: ApplicationConfig = { providers: [ provideZoneChangeDetection({ eventCoalescing: true }), - provideRouter(routes), provideAnimationsAsync(), + provideRouter(routes), + provideAnimationsAsync(), + provideHttpClient(withInterceptorsFromDi()), + AppConfigService, + { + provide: APP_INITIALIZER, + useFactory: appConfigInitializerFn, + deps: [AppConfigService], + multi: true, + }, ], }; diff --git a/frontend/bec_atlas/src/app/app.routes.ts b/frontend/bec_atlas/src/app/app.routes.ts index dc39edb..900e760 100644 --- a/frontend/bec_atlas/src/app/app.routes.ts +++ b/frontend/bec_atlas/src/app/app.routes.ts @@ -1,3 +1,10 @@ import { Routes } from '@angular/router'; +import { LoginComponent } from './login/login.component'; +import { DashboardComponent } from './dashboard/dashboard.component'; -export const routes: Routes = []; +export const routes: Routes = [ + { path: '', redirectTo: 'login', pathMatch: 'full' }, + { path: 'login', component: LoginComponent }, + { path: 'dashboard', component: DashboardComponent }, + { path: '**', redirectTo: 'login' } +]; diff --git a/frontend/bec_atlas/src/app/core/auth.service.spec.ts b/frontend/bec_atlas/src/app/core/auth.service.spec.ts new file mode 100644 index 0000000..f1251ca --- /dev/null +++ b/frontend/bec_atlas/src/app/core/auth.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/bec_atlas/src/app/core/auth.service.ts b/frontend/bec_atlas/src/app/core/auth.service.ts new file mode 100644 index 0000000..61347d0 --- /dev/null +++ b/frontend/bec_atlas/src/app/core/auth.service.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { shareReplay, timeout } from 'rxjs/operators'; +import { tap } from 'rxjs/operators'; +import { AuthDataService } from './remote-data.service'; + +@Injectable({ + providedIn: 'root', +}) +export class AuthService { + forceReload = false; + constructor(private dataService: AuthDataService) {} + + login(principal: string, password: string) { + return this.dataService.login(principal, password).pipe( + timeout(3000), + tap((res) => { + this.setSession(res); + }), + shareReplay() + ); + } + + setSession(authResult: string) { + console.log(authResult); + // it would be good to get an expiration date for the token... + localStorage.setItem('id_token', authResult); + localStorage.setItem('id_session', this.getRandomId()); + } + + logout() { + localStorage.removeItem('id_token'); + localStorage.removeItem('id_session'); + this.forceReload = true; + } + + getRandomId() { + return Math.floor(Math.random() * 1000 + 1).toString(); + } +} diff --git a/frontend/bec_atlas/src/app/core/model/auth.ts b/frontend/bec_atlas/src/app/core/model/auth.ts new file mode 100644 index 0000000..cb0e89f --- /dev/null +++ b/frontend/bec_atlas/src/app/core/model/auth.ts @@ -0,0 +1,3 @@ +export interface AuthResponse { + token: string; +} diff --git a/frontend/bec_atlas/src/app/core/redis-connector.service.ts b/frontend/bec_atlas/src/app/core/redis-connector.service.ts index a78cb39..6a935ab 100644 --- a/frontend/bec_atlas/src/app/core/redis-connector.service.ts +++ b/frontend/bec_atlas/src/app/core/redis-connector.service.ts @@ -27,13 +27,13 @@ export class RedisConnectorService { auth: { user: 'john_doe', token: '1234', - deployment: '674739bc344eabfbabcff8bd', + deployment: '678aa8d4875568640bd92176', }, }); - this.socket.onAny((event, ...args) => { - console.log('Received event:', event, 'with data:', args); - }); + // this.socket.onAny((event, ...args) => { + // // console.log('Received event:', event, 'with data:', args); + // }); this.socket.on('connect', () => { console.log('Connected to WebSocket server'); @@ -41,7 +41,7 @@ export class RedisConnectorService { }); this.socket.on('message', (data: any) => { - console.log('Received message:', data); + // console.log('Received message:', data); const dataObj = JSON.parse(data); const endpoint_signal = this.signals.get(dataObj.endpoint_request); if (endpoint_signal) { diff --git a/frontend/bec_atlas/src/app/core/redis_endpoints.ts b/frontend/bec_atlas/src/app/core/redis_endpoints.ts index 84a9a9f..8e30b1f 100644 --- a/frontend/bec_atlas/src/app/core/redis_endpoints.ts +++ b/frontend/bec_atlas/src/app/core/redis_endpoints.ts @@ -40,4 +40,16 @@ export class MessageEndpoints { }; return out; } + + /** + * + * @returns Endpoint for device monitor 2d + */ + static device_monitor_2d(device: string): EndpointInfo { + const out: EndpointInfo = { + endpoint: 'device_monitor_2d', + args: [device], + }; + return out; + } } diff --git a/frontend/bec_atlas/src/app/core/remote-data.service.spec.ts b/frontend/bec_atlas/src/app/core/remote-data.service.spec.ts new file mode 100644 index 0000000..653e555 --- /dev/null +++ b/frontend/bec_atlas/src/app/core/remote-data.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { RemoteDataService } from './remote-data.service'; + +describe('RemoteDataService', () => { + let service: RemoteDataService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(RemoteDataService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/bec_atlas/src/app/core/remote-data.service.ts b/frontend/bec_atlas/src/app/core/remote-data.service.ts new file mode 100644 index 0000000..dc2d65c --- /dev/null +++ b/frontend/bec_atlas/src/app/core/remote-data.service.ts @@ -0,0 +1,75 @@ +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { ServerSettingsService } from '../server-settings.service'; + +@Injectable({ + providedIn: 'root', +}) +export class RemoteDataService { + constructor( + private httpClient: HttpClient, + private serverSettings: ServerSettingsService + ) {} + + /** + * Base method for making a POST request to the server + * @param path path to the endpoint + * @param payload payload to send + * @param headers additional headers + * @returns response from the server + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + protected post(path: string, payload: any, headers: HttpHeaders) { + return this.httpClient.post( + this.serverSettings.getServerAddress() + path, + payload, + { + headers, + } + ); + } + + /** + * Base method for making a GET request to the server + * @param path path to the endpoint + * @param params query parameters + * @param headers additional headers + * @returns response from the server + */ + protected get( + path: string, + params: { [key: string]: string }, + headers: HttpHeaders + ) { + return this.httpClient.get( + this.serverSettings.getServerAddress() + path, + { + headers, + params, + } + ); + } +} + +@Injectable({ + providedIn: 'root', +}) +export class AuthDataService extends RemoteDataService { + /** + * Method for logging into BEC + * @param principal username or email + * @param password password + * @returns response from the server with the token + * @throws HttpErrorResponse if the request fails + * @throws TimeoutError if the request takes too long + */ + login(username: string, password: string) { + let headers = new HttpHeaders(); + headers = headers.set('Content-Type', 'application/json; charset=utf-8'); + return this.post( + 'user/login', + { username: username, password: password }, + headers + ); + } +} diff --git a/frontend/bec_atlas/src/app/dashboard/dashboard.component.html b/frontend/bec_atlas/src/app/dashboard/dashboard.component.html index efc5523..51dd92d 100644 --- a/frontend/bec_atlas/src/app/dashboard/dashboard.component.html +++ b/frontend/bec_atlas/src/app/dashboard/dashboard.component.html @@ -1,19 +1,27 @@ -
-
- - - {{ item }} - - - -
- -
- - - {{ item }} - - - -
-
+ + + + + + + + + +
+ + + +
+
+
diff --git a/frontend/bec_atlas/src/app/dashboard/dashboard.component.scss b/frontend/bec_atlas/src/app/dashboard/dashboard.component.scss index 07a5b59..d592041 100644 --- a/frontend/bec_atlas/src/app/dashboard/dashboard.component.scss +++ b/frontend/bec_atlas/src/app/dashboard/dashboard.component.scss @@ -1,61 +1,49 @@ -.gridster-container { - height: calc(100vh - 120px); - background-color: rgb(37, 94, 75); -} -.gridster-container-toolbar { - height: 50px; - background-color: aqua; +.sidenav-container { + height: 100vh; + display: flex; } -.gridster-container-toolbar .gridster-item { - background-color: aqua; +mat-sidenav { + width: 200px; + background: var(--mat-sys-primary); + color: var(--mat-sys-on-primary); + border-radius: 0px; + padding: 16px; + text-align: center; } -::ng-deep .gridster { - background-color: #848484; - padding: 2px; +.sidenav.collapsed { + width: 60px; } -::ng-deep .gridster-edit{ - background-color:#ca000093; - /* margin-top: 80px; */ +.menu-items { + display: flex; + flex-direction: column; + padding: 16px 0; } -::ng-deep .gridster{ - background-color:#ca000093; - /* margin-top: 80px; */ -} -::ng-deep .gridster-edit{ - background-color:#ca000093; - /* margin-top: 80px; */ +.menu-item { + width: 100%; + display: flex; + align-items: center; + justify-content: flex-start; + font-size: 1rem; } -.gridster-item{ - padding: 10px 15px; - background-color: #848484; - color: white; - border-radius: 2px; - overflow: hidden; +.menu-item.hovered { + background-color: var(--mat-sys-secondary-container); } -// .gridster-container{ -// /* top: 50px; */ -// padding-bottom: 100px; -// padding-right: 20px; -// padding-left: 20px; - -// height: calc(100vh - 120px); -// width: 100wh; -// overflow: hidden; -// } - -.dashboard-item{ - height:inherit; - overflow: inherit; - +.menu-item mat-icon { + color: var(--mat-sys-on-primary); + margin-right: 8px; } -.dashboard-edit{ - float: right; - height: 36px; -} \ No newline at end of file +.menu-item .menu-text { + transition: opacity 0.3s ease; + color: var(--mat-sys-on-primary); +} + +mat-sidenav-content { + margin-left: 0px; +} diff --git a/frontend/bec_atlas/src/app/dashboard/dashboard.component.ts b/frontend/bec_atlas/src/app/dashboard/dashboard.component.ts index ce4ef65..c62b0e4 100644 --- a/frontend/bec_atlas/src/app/dashboard/dashboard.component.ts +++ b/frontend/bec_atlas/src/app/dashboard/dashboard.component.ts @@ -1,145 +1,35 @@ -import { Component, OnInit } from '@angular/core'; +import { Component } from '@angular/core'; +import { DeviceBoxComponent } from '../device-box/device-box.component'; +import { QueueTableComponent } from '../queue-table/queue-table.component'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatIconModule } from '@angular/material/icon'; +import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; import { CommonModule } from '@angular/common'; -import { - CompactType, - DisplayGrid, - GridsterComponent, - GridsterConfig, - GridsterItem, - GridsterItemComponent, - GridType, -} from 'angular-gridster2'; +import { MatButtonModule } from '@angular/material/button'; @Component({ selector: 'app-dashboard', + imports: [ + DeviceBoxComponent, + CommonModule, + QueueTableComponent, + MatSidenavModule, + MatIconModule, + MatButtonModule, + ], templateUrl: './dashboard.component.html', styleUrl: './dashboard.component.scss', - imports: [CommonModule, GridsterItemComponent, GridsterComponent], }) -export class DashboardComponent implements OnInit { - dashboard: Array; +export class DashboardComponent { + // isScreenSmall = false; - options: GridsterConfig = { - gridType: GridType.Fit, - compactType: CompactType.None, - margin: 1, - outerMargin: true, - outerMarginTop: null, - outerMarginRight: null, - outerMarginBottom: null, - outerMarginLeft: null, - useTransformPositioning: true, - mobileBreakpoint: 640, - minCols: 40, - maxCols: 40, - minRows: 20, - maxRows: 20, - minColWidth: 300, - maxItemCols: 100, - minItemCols: 1, - maxItemRows: 100, - minItemRows: 1, - maxItemArea: 2500, - minItemArea: 1, - defaultItemCols: 1, - defaultItemRows: 1, - // fixedColWidth: 105, - // fixedRowHeight: 105, - keepFixedHeightInMobile: false, - keepFixedWidthInMobile: false, - scrollSensitivity: 50, - scrollSpeed: 20, - enableEmptyCellClick: false, - enableEmptyCellContextMenu: false, - enableEmptyCellDrop: false, - enableEmptyCellDrag: false, - enableOccupiedCellDrop: false, - emptyCellDragMaxCols: 50, - emptyCellDragMaxRows: 50, - ignoreMarginInRow: false, - draggable: { - enabled: true, - }, - resizable: { - enabled: true, - }, - swap: true, - pushItems: true, - disablePushOnDrag: false, - disablePushOnResize: false, - pushDirections: { north: true, east: true, south: true, west: true }, - pushResizeItems: false, - displayGrid: DisplayGrid.None, - disableWindowResize: false, - disableWarnings: false, - scrollToNewItems: false, - }; - - optionsEdit: GridsterConfig; - toolbarOptions: GridsterConfig; - - constructor() { - this.dashboard = []; - this.optionsEdit = JSON.parse(JSON.stringify(this.options)); - this.toolbarOptions = JSON.parse(JSON.stringify(this.options)); - } + constructor(private breakpointObserver: BreakpointObserver) {} ngOnInit(): void { - this.optionsEdit = JSON.parse(JSON.stringify(this.options)); // seriously??? I cannot believe that's the only way to perform a deep copy of an object - this.optionsEdit.draggable = { enabled: true }; - this.optionsEdit.resizable = { enabled: true }; - this.optionsEdit.displayGrid = DisplayGrid.Always; - this.toolbarOptions.minCols = 40; - this.toolbarOptions.maxCols = 40; - this.toolbarOptions.minRows = 1; - this.toolbarOptions.maxRows = 1; - - this.dashboard = [ - { cols: 2, rows: 1, y: 0, x: 0 }, - { cols: 2, rows: 2, y: 0, x: 2, hasContent: true }, - { cols: 1, rows: 1, y: 0, x: 4 }, - { cols: 1, rows: 1, y: 2, x: 5 }, - { cols: 1, rows: 1, y: 1, x: 0 }, - { cols: 1, rows: 1, y: 1, x: 0 }, - { - cols: 2, - rows: 2, - y: 3, - x: 5, - minItemRows: 2, - minItemCols: 2, - label: 'Min rows & cols = 2', - }, - { - cols: 2, - rows: 2, - y: 2, - x: 0, - maxItemRows: 2, - maxItemCols: 2, - label: 'Max rows & cols = 2', - }, - { - cols: 2, - rows: 1, - y: 2, - x: 2, - dragEnabled: true, - resizeEnabled: true, - label: 'Drag&Resize Enabled', - }, - { - cols: 1, - rows: 1, - y: 2, - x: 4, - dragEnabled: false, - resizeEnabled: false, - label: 'Drag&Resize Disabled', - }, - { cols: 1, rows: 1, y: 2, x: 6 }, - ]; - - console.log('DashboardComponent initialized'); + // this.breakpointObserver + // .observe([Breakpoints.Small, Breakpoints.XSmall]) + // .subscribe((result) => { + // this.isScreenSmall = result.matches; + // }); } } diff --git a/frontend/bec_atlas/src/app/login/login.component.html b/frontend/bec_atlas/src/app/login/login.component.html new file mode 100644 index 0000000..7e13ead --- /dev/null +++ b/frontend/bec_atlas/src/app/login/login.component.html @@ -0,0 +1,63 @@ +
+ diff --git a/frontend/bec_atlas/src/app/login/login.component.scss b/frontend/bec_atlas/src/app/login/login.component.scss new file mode 100644 index 0000000..f6af7c5 --- /dev/null +++ b/frontend/bec_atlas/src/app/login/login.component.scss @@ -0,0 +1,36 @@ +// @import "../styles/colors"; + +.login-form-flex { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + opacity: 0.95; +} + +.background-image { + background-image: url("../../assets/psi_background.jpg"); + filter: blur(4px); + -webkit-filter: blur(4px); + height: 100vh; + background-position: center; + background-repeat: no-repeat; + background-size: cover; +} + +.mat-form-field { + width: 100%; + padding-top: 20px; +} + +.mat-card-actions { + width: 100%; + justify-content: center; + align-items: center; +} + +.tab-container { + padding: 0px; + margin: 0px; + overflow: hidden; +} diff --git a/frontend/bec_atlas/src/app/login/login.component.spec.ts b/frontend/bec_atlas/src/app/login/login.component.spec.ts new file mode 100644 index 0000000..18f3685 --- /dev/null +++ b/frontend/bec_atlas/src/app/login/login.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LoginComponent } from './login.component'; + +describe('LoginComponent', () => { + let component: LoginComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [LoginComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(LoginComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/bec_atlas/src/app/login/login.component.ts b/frontend/bec_atlas/src/app/login/login.component.ts new file mode 100644 index 0000000..9ce15e0 --- /dev/null +++ b/frontend/bec_atlas/src/app/login/login.component.ts @@ -0,0 +1,87 @@ +import { Component } from '@angular/core'; +import { ReactiveFormsModule } from '@angular/forms'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatIcon } from '@angular/material/icon'; +import { MatTabsModule } from '@angular/material/tabs'; +import { MatInputModule } from '@angular/material/input'; +import { + UntypedFormBuilder, + UntypedFormGroup, + Validators, +} from '@angular/forms'; +import { firstValueFrom } from 'rxjs'; +import { AuthService } from '../core/auth.service'; +import { ActivatedRoute, Router } from '@angular/router'; +import { AppConfig, AppConfigService } from '../app-config.service'; +import { HttpErrorResponse } from '@angular/common/http'; + +@Component({ + selector: 'app-login', + imports: [ + MatCardModule, + MatFormFieldModule, + MatInputModule, + MatButtonModule, + MatTabsModule, + MatTooltipModule, + MatIcon, + ReactiveFormsModule, + ], + templateUrl: './login.component.html', + styleUrl: './login.component.scss', +}) +export class LoginComponent { + hide = true; + form: UntypedFormGroup; + loginMessage = ' '; + appConfig!: AppConfig; + + constructor( + private appConfigService: AppConfigService, + private fb: UntypedFormBuilder, + private authService: AuthService, + private router: Router, + private route: ActivatedRoute + ) { + this.appConfig = this.appConfigService.getConfig(); + this.form = this.fb.group({ + email: ['', Validators.required], + password: ['', Validators.required], + }); + } + + ngOnInit(): void { + if (this.authService.forceReload) { + window.location.reload(); + } + } + + async login() { + const val = this.form.value; + if (val.email && val.password) { + try { + const data = await firstValueFrom( + this.authService.login(val.email, val.password) + ); + console.log('User is logged in'); + this.router.navigateByUrl('/dashboard'); + } catch (error: unknown) { + switch ((error as HttpErrorResponse).statusText) { + case 'Unknown Error': + this.loginMessage = 'Authentication failed.'; + return; + case 'Unauthorized': + this.loginMessage = + 'User name / email or password are not correct.'; + return; + default: + this.loginMessage = 'Authentication failed.'; + return; + } + } + } + } +} diff --git a/frontend/bec_atlas/src/app/queue-table/queue-table.component.html b/frontend/bec_atlas/src/app/queue-table/queue-table.component.html index 3deac12..7a1f9e2 100644 --- a/frontend/bec_atlas/src/app/queue-table/queue-table.component.html +++ b/frontend/bec_atlas/src/app/queue-table/queue-table.component.html @@ -1,37 +1,34 @@ - - Queue Table - + Queue Table - - + + - - + + - - + + - - + + + - +
Queue ID {{ element.queue_id }} Queue ID{{ element.queue_id }} Scan ID {{ element.scan_id }} Scan ID{{ element.scan_id }} Scan Number {{ element.scan_number }} Scan Number{{ element.scan_number }} Status {{ element.status }} Status{{ element.status }}
- - \ No newline at end of file diff --git a/frontend/bec_atlas/src/app/queue-table/queue-table.component.ts b/frontend/bec_atlas/src/app/queue-table/queue-table.component.ts index 5a4c1f4..237c644 100644 --- a/frontend/bec_atlas/src/app/queue-table/queue-table.component.ts +++ b/frontend/bec_atlas/src/app/queue-table/queue-table.component.ts @@ -4,10 +4,11 @@ import { MatTableModule } from '@angular/material/table'; import { MatToolbarModule } from '@angular/material/toolbar'; import { RedisConnectorService } from '../core/redis-connector.service'; import { MessageEndpoints } from '../core/redis_endpoints'; +import { CommonModule } from '@angular/common'; @Component({ selector: 'app-queue-table', - imports: [MatCardModule, MatTableModule, MatToolbarModule], + imports: [MatCardModule, MatTableModule, MatToolbarModule, CommonModule], templateUrl: './queue-table.component.html', styleUrl: './queue-table.component.scss', }) diff --git a/frontend/bec_atlas/src/app/server-settings.service.spec.ts b/frontend/bec_atlas/src/app/server-settings.service.spec.ts new file mode 100644 index 0000000..49e700f --- /dev/null +++ b/frontend/bec_atlas/src/app/server-settings.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { ServerSettingsService } from './server-settings.service'; + +describe('ServerSettingsService', () => { + let service: ServerSettingsService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(ServerSettingsService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/bec_atlas/src/app/server-settings.service.ts b/frontend/bec_atlas/src/app/server-settings.service.ts new file mode 100644 index 0000000..8439fe7 --- /dev/null +++ b/frontend/bec_atlas/src/app/server-settings.service.ts @@ -0,0 +1,23 @@ +import { Injectable } from '@angular/core'; +import { AppConfigService } from './app-config.service'; + +@Injectable({ + providedIn: 'root', +}) +export class ServerSettingsService { + constructor(private appConfigService: AppConfigService) {} + + getServerAddress() { + return ( + this.appConfigService.getConfig().baseUrl ?? 'http://localhost/api/v1/' + ); + } + + getSocketAddress() { + const baseUrl = + this.appConfigService.getConfig().baseUrl ?? 'http://localhost/api/v1/'; + if (!baseUrl.startsWith('http')) + throw new Error('BaseURL must use the http or https protocol'); + return `ws${baseUrl.substring(4)}`; + } +} diff --git a/frontend/bec_atlas/src/assets/psi_background.jpg b/frontend/bec_atlas/src/assets/psi_background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..320b02490a523eb57ddaff7953048174e42c4657 GIT binary patch literal 781314 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

Xs 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

X}aZJnLWA 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%0ANn0F{_POY!ux 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