diff --git a/backend/app/api/v1/module_system/auth/controller.py b/backend/app/api/v1/module_system/auth/controller.py index 080c3e6a..84d0e380 100644 --- a/backend/app/api/v1/module_system/auth/controller.py +++ b/backend/app/api/v1/module_system/auth/controller.py @@ -1,13 +1,17 @@ +import json +import secrets from typing import Annotated -from fastapi import APIRouter, Depends, Request -from fastapi.responses import JSONResponse +from fastapi import APIRouter, Depends, Path, Query, Request +from fastapi.responses import JSONResponse, RedirectResponse from redis.asyncio.client import Redis from sqlalchemy.ext.asyncio import AsyncSession from app.common.response import ErrorResponse, SuccessResponse from app.config.setting import settings from app.core.dependencies import db_getter, get_current_user, redis_getter +from app.core.exceptions import CustomException +from app.core.redis_crud import RedisCURD from app.core.logger import log from app.core.router_class import OperationLogRoute from app.core.security import CustomOAuth2PasswordRequestForm @@ -20,6 +24,15 @@ from .schema import ( LogoutPayloadSchema, RefreshTokenPayloadSchema, ) +from .oauth_service import ( + STATE_PREFIX, + build_authorize_url, + complete_oauth_login, + oauth_service_error_redirect, + oauth_service_frontend_redirect_from_token, + save_oauth_state, + _callback_url, +) from .service import AutoLoginService, CaptchaService, LoginService AuthRouter = APIRouter(route_class=OperationLogRoute, prefix="/auth", tags=["认证授权"]) @@ -236,3 +249,100 @@ async def auto_login_controller( ) log.info("用户免登录成功") return SuccessResponse(data=login_token.model_dump(), msg="登录成功") + + +@AuthRouter.get( + "/oauth/{provider}/login", + summary="第三方OAuth跳转", + description="浏览器重定向到微信/GitHub/Gitee/QQ 授权页;redirect_uri 为授权完成后回到前端的登录页地址(如 http://localhost:5173/login)。", +) +async def oauth_login_redirect_controller( + request: Request, + redis: Annotated[Redis, Depends(redis_getter)], + provider: Annotated[str, Path(description="wechat | qq | github | gitee")], + redirect_uri: Annotated[ + str | None, + Query(description="OAuth 完成后浏览器回到的前端登录页完整 URL"), + ] = None, +) -> RedirectResponse: + allowed = {"wechat", "qq", "github", "gitee"} + fe = redirect_uri or settings.OAUTH_FRONTEND_FALLBACK + if provider not in allowed: + return RedirectResponse( + url=oauth_service_error_redirect(fe, "不支持的 OAuth 渠道"), + status_code=302, + ) + if not redirect_uri: + return RedirectResponse( + url=oauth_service_error_redirect(fe, "缺少 redirect_uri 参数"), + status_code=302, + ) + try: + state = secrets.token_urlsafe(32) + await save_oauth_state( + redis=redis, + state=state, + provider=provider, + frontend_redirect=redirect_uri, + ) + cb = _callback_url(request, provider) + url = build_authorize_url(provider=provider, callback_url=cb, state=state) + return RedirectResponse(url=url, status_code=302) + except CustomException as e: + return RedirectResponse( + url=oauth_service_error_redirect(redirect_uri, e.msg), + status_code=302, + ) + + +@AuthRouter.get( + "/oauth/{provider}/callback", + summary="第三方OAuth回调", + include_in_schema=False, +) +async def oauth_callback_controller( + request: Request, + redis: Annotated[Redis, Depends(redis_getter)], + db: Annotated[AsyncSession, Depends(db_getter)], + provider: Annotated[str, Path()], + code: Annotated[str | None, Query()] = None, + state: Annotated[str | None, Query()] = None, +) -> RedirectResponse: + fe_fallback = settings.OAUTH_FRONTEND_FALLBACK + + async def resolve_frontend() -> str: + if not state: + return fe_fallback + raw = await RedisCURD(redis).get(f"{STATE_PREFIX}{state}") + if not raw: + return fe_fallback + if isinstance(raw, bytes): + raw = raw.decode("utf-8") + try: + payload = json.loads(raw) + return str(payload.get("frontend_redirect") or fe_fallback).strip() or fe_fallback + except json.JSONDecodeError: + return fe_fallback + + if provider not in {"wechat", "qq", "github", "gitee"}: + url = oauth_service_error_redirect(await resolve_frontend(), "不支持的 OAuth 渠道") + return RedirectResponse(url=url, status_code=302) + if not code or not state: + url = oauth_service_error_redirect( + await resolve_frontend(), "授权被取消或参数不完整" + ) + return RedirectResponse(url=url, status_code=302) + try: + token, fe = await complete_oauth_login( + request=request, + redis=redis, + db=db, + provider=provider, + code=code, + state=state, + ) + success_url = oauth_service_frontend_redirect_from_token(fe, token) + return RedirectResponse(url=success_url, status_code=302) + except CustomException as e: + fe = await resolve_frontend() + return RedirectResponse(url=oauth_service_error_redirect(fe, e.msg), status_code=302) diff --git a/backend/app/api/v1/module_system/auth/oauth_service.py b/backend/app/api/v1/module_system/auth/oauth_service.py new file mode 100644 index 00000000..6e1b9ff3 --- /dev/null +++ b/backend/app/api/v1/module_system/auth/oauth_service.py @@ -0,0 +1,437 @@ +""" +第三方 OAuth2 登录(微信开放平台扫码、QQ、GitHub、Gitee)。 + +各平台需在开放平台登记「授权回调域 / redirect_uri」为: + {API}/system/auth/oauth/{provider}/callback +例如:https://your-domain.com/api/v1/system/auth/oauth/github/callback + +环境变量见 Settings 中 OAUTH_* 字段。 +""" + +from __future__ import annotations + +import json +import secrets +from typing import Any, Literal, Tuple +from urllib.parse import quote, urlencode + +import httpx +from fastapi import Request +from redis.asyncio.client import Redis +from sqlalchemy.ext.asyncio import AsyncSession + +from app.api.v1.module_system.auth.schema import AuthSchema +from app.api.v1.module_system.user.crud import UserCRUD +from app.api.v1.module_system.user.model import UserModel +from app.api.v1.module_system.user.schema import UserRegisterSchema +from app.api.v1.module_system.user.service import UserService +from app.config.setting import settings +from app.core.exceptions import CustomException +from app.core.logger import log +from app.core.redis_crud import RedisCURD +from .schema import JWTOutSchema +from .service import LoginService + +OAuthProvider = Literal["wechat", "qq", "github", "gitee"] + +STATE_PREFIX = "oauth_state:" +STATE_TTL_SECONDS = 600 + + +def _callback_url(request: Request, provider: OAuthProvider) -> str: + root = str(request.base_url).rstrip("/") + return f"{root}/system/auth/oauth/{provider}/callback" + + +def _frontend_error_redirect(frontend_base: str, message: str) -> str: + sep = "&" if "?" in frontend_base else "?" + return f"{frontend_base}{sep}oauth_error={quote(message, safe='')}" + + +def _frontend_success_redirect( + frontend_base: str, access_token: str, refresh_token: str, token_type: str +) -> str: + q = urlencode( + { + "access_token": access_token, + "refresh_token": refresh_token, + "token_type": token_type, + } + ) + sep = "&" if "?" in frontend_base else "?" + return f"{frontend_base}{sep}{q}" + + +def _require_credentials(provider: OAuthProvider) -> tuple[str, str]: + if provider == "github": + cid, sec = settings.OAUTH_GITHUB_CLIENT_ID, settings.OAUTH_GITHUB_CLIENT_SECRET + elif provider == "gitee": + cid, sec = settings.OAUTH_GITEE_CLIENT_ID, settings.OAUTH_GITEE_CLIENT_SECRET + elif provider == "wechat": + cid, sec = settings.OAUTH_WECHAT_OPEN_APP_ID, settings.OAUTH_WECHAT_OPEN_APP_SECRET + elif provider == "qq": + cid, sec = settings.OAUTH_QQ_APP_ID, settings.OAUTH_QQ_APP_SECRET + else: + raise CustomException(msg="不支持的 OAuth 渠道") + if not cid or not sec: + raise CustomException(msg=f"{provider} OAuth 未配置(客户端密钥为空)") + return cid, sec + + +def build_authorize_url( + *, + provider: OAuthProvider, + callback_url: str, + state: str, +) -> str: + """构造跳转至第三方授权页的 URL。""" + cid, _ = _require_credentials(provider) + + if provider == "github": + params = { + "client_id": cid, + "redirect_uri": callback_url, + "scope": "user:email", + "state": state, + } + return "https://github.com/login/oauth/authorize?" + urlencode(params) + + if provider == "gitee": + params = { + "client_id": cid, + "redirect_uri": callback_url, + "response_type": "code", + "state": state, + } + return "https://gitee.com/oauth/authorize?" + urlencode(params) + + if provider == "wechat": + params = { + "appid": cid, + "redirect_uri": callback_url, + "response_type": "code", + "scope": "snsapi_login", + "state": state, + } + return "https://open.weixin.qq.com/connect/qrconnect?" + urlencode(params) + "#wechat_redirect" + + if provider == "qq": + params = { + "response_type": "code", + "client_id": cid, + "redirect_uri": callback_url, + "state": state, + "scope": "get_user_info", + } + return "https://graph.qq.com/oauth2.0/authorize?" + urlencode(params) + + raise CustomException(msg="不支持的 OAuth 渠道") + + +async def _http_json(method: str, url: str, **kwargs: Any) -> Any: + timeout = getattr(settings, "HTTPX_DEFAULT_TIMEOUT", 15.0) + async with httpx.AsyncClient(timeout=timeout) as client: + r = await client.request(method, url, **kwargs) + r.raise_for_status() + try: + return r.json() + except json.JSONDecodeError: + text = r.text + log.error(f"OAuth 非 JSON 响应: {text[:500]}") + raise CustomException(msg="OAuth 接口返回异常") + + +async def _http_text(method: str, url: str, **kwargs: Any) -> str: + timeout = getattr(settings, "HTTPX_DEFAULT_TIMEOUT", 15.0) + async with httpx.AsyncClient(timeout=timeout) as client: + r = await client.request(method, url, **kwargs) + r.raise_for_status() + return r.text + + +async def exchange_github_token(client_id: str, client_secret: str, code: str, redirect_uri: str) -> str: + data = await _http_json( + "POST", + "https://github.com/login/oauth/access_token", + headers={"Accept": "application/json"}, + data={ + "client_id": client_id, + "client_secret": client_secret, + "code": code, + "redirect_uri": redirect_uri, + }, + ) + if not isinstance(data, dict): + raise CustomException(msg="GitHub token 响应格式错误") + token = data.get("access_token") + if not token: + raise CustomException(msg=data.get("error_description") or "GitHub 换取令牌失败") + return str(token) + + +async def exchange_gitee_token(client_id: str, client_secret: str, code: str, redirect_uri: str) -> str: + qs = urlencode( + { + "grant_type": "authorization_code", + "code": code, + "client_id": client_id, + "client_secret": client_secret, + "redirect_uri": redirect_uri, + } + ) + data = await _http_json("GET", f"https://gitee.com/oauth/token?{qs}") + if not isinstance(data, dict): + raise CustomException(msg="Gitee token 响应格式错误") + token = data.get("access_token") + if not token: + raise CustomException(msg=data.get("error_description") or "Gitee 换取令牌失败") + return str(token) + + +async def exchange_wechat_token(app_id: str, secret: str, code: str) -> tuple[str, str]: + qs = urlencode( + { + "appid": app_id, + "secret": secret, + "code": code, + "grant_type": "authorization_code", + } + ) + data = await _http_json("GET", f"https://api.weixin.qq.com/sns/oauth2/access_token?{qs}") + if not isinstance(data, dict): + raise CustomException(msg="微信 token 响应格式错误") + token = data.get("access_token") + openid = data.get("openid") + if not token or not openid: + raise CustomException(msg=data.get("errmsg") or "微信换取令牌失败") + return str(token), str(openid) + + +async def exchange_qq_token(client_id: str, client_secret: str, code: str, redirect_uri: str) -> tuple[str, str]: + qs = urlencode( + { + "grant_type": "authorization_code", + "client_id": client_id, + "client_secret": client_secret, + "code": code, + "redirect_uri": redirect_uri, + } + ) + text = await _http_text("GET", f"https://graph.qq.com/oauth2.0/token?{qs}") + parts = dict(p.split("=", 1) for p in text.split("&") if "=" in p) + token = parts.get("access_token") + if not token: + raise CustomException(msg="QQ 换取 access_token 失败") + me = await _http_json( + "GET", + "https://graph.qq.com/oauth2.0/me", + params={"access_token": token, "fmt": "json"}, + ) + if not isinstance(me, dict): + raise CustomException(msg="QQ openid 响应格式错误") + openid = me.get("openid") + if not openid: + raise CustomException(msg="QQ 获取 openid 失败") + return str(token), str(openid) + + +async def fetch_github_profile(access_token: str) -> tuple[str, str, str | None]: + headers = {"Authorization": f"Bearer {access_token}", "Accept": "application/json"} + user = await _http_json("GET", "https://api.github.com/user", headers=headers) + if not isinstance(user, dict): + raise CustomException(msg="GitHub 用户信息格式错误") + login = str(user.get("login") or "") + name = str(user.get("name") or login or "github") + email = user.get("email") + if not email: + emails = await _http_json("GET", "https://api.github.com/user/emails", headers=headers) + if isinstance(emails, list): + primary = next((e for e in emails if isinstance(e, dict) and e.get("primary")), None) + if primary: + email = primary.get("email") + return login, name, email + + +async def fetch_gitee_profile(access_token: str) -> tuple[str, str, str | None]: + user = await _http_json( + "GET", + "https://gitee.com/api/v5/user", + params={"access_token": access_token}, + ) + if not isinstance(user, dict): + raise CustomException(msg="Gitee 用户信息格式错误") + login = str(user.get("login") or "") + name = str(user.get("name") or login) + email = user.get("email") + return login, name, email + + +async def fetch_wechat_profile(access_token: str, openid: str) -> tuple[str, str]: + qs = urlencode({"access_token": access_token, "openid": openid, "lang": "zh_CN"}) + user = await _http_json("GET", f"https://api.weixin.qq.com/sns/userinfo?{qs}") + if not isinstance(user, dict): + raise CustomException(msg="微信用户信息格式错误") + nickname = str(user.get("nickname") or "wechat") + unionid = user.get("unionid") + oid = unionid or openid + return str(oid), nickname + + +async def fetch_qq_profile(access_token: str, app_id: str, openid: str) -> tuple[str, str]: + qs = urlencode( + { + "access_token": access_token, + "oauth_consumer_key": app_id, + "openid": openid, + } + ) + user = await _http_json("GET", f"https://graph.qq.com/user/get_user_info?{qs}") + if not isinstance(user, dict): + raise CustomException(msg="QQ 用户信息格式错误") + if user.get("ret") not in (0, "0", None): + raise CustomException(msg=user.get("msg") or "QQ 用户信息失败") + nickname = str(user.get("nickname") or "qq") + return openid, nickname + + +def _username_for_oauth(provider: OAuthProvider, unique_id: str) -> str: + """生成符合注册规则的登录名:oauth_{provider}_{id}。""" + raw = f"oauth_{provider}_{unique_id}" + raw = "".join(c if c.isalnum() or c in "_-." else "_" for c in raw)[:32] + if len(raw) < 3: + raw = (raw + "usr")[:32] + if not raw[0].isalpha(): + raw = "o" + raw[:31] + return raw + + +async def ensure_oauth_user( + *, + db: AsyncSession, + provider: OAuthProvider, + unique_id: str, + display_name: str, +) -> UserModel: + auth = AuthSchema(db=db, user=None, check_data_scope=False) + username = _username_for_oauth(provider, unique_id) + existing = await UserCRUD(auth).get_by_username_crud(username=username) + if existing: + return existing + + reg = UserRegisterSchema( + username=username, + password=secrets.token_urlsafe(24), + name=(display_name or username)[:32], + role_ids=list(settings.OAUTH_DEFAULT_ROLE_IDS), + ) + await UserService.register_user_service(auth=auth, data=reg) + user = await UserCRUD(auth).get_by_username_crud(username=username) + if not user: + raise CustomException(msg="OAuth 注册失败") + log.info(f"OAuth 自动注册用户: {username} ({provider})") + return user + + +async def complete_oauth_login( + *, + request: Request, + redis: Redis, + db: AsyncSession, + provider: OAuthProvider, + code: str, + state: str, +) -> Tuple[JWTOutSchema, str]: + rc = RedisCURD(redis) + raw = await rc.get(f"{STATE_PREFIX}{state}") + if not raw: + raise CustomException(msg="登录状态已失效,请重试") + if isinstance(raw, bytes): + raw = raw.decode("utf-8") + payload = json.loads(raw) + if payload.get("provider") != provider: + raise CustomException(msg="OAuth 状态不匹配") + + frontend = str(payload.get("frontend_redirect") or "").strip() + if not frontend: + raise CustomException(msg="缺少前端回调地址") + + callback_url = _callback_url(request, provider) + cid, csec = _require_credentials(provider) + + if provider == "github": + access = await exchange_github_token(cid, csec, code, callback_url) + login_k, name, _email = await fetch_github_profile(access) + uid = login_k + elif provider == "gitee": + access = await exchange_gitee_token(cid, csec, code, callback_url) + login_k, name, _email = await fetch_gitee_profile(access) + uid = login_k + elif provider == "wechat": + access, openid = await exchange_wechat_token(cid, csec, code) + uid, name = await fetch_wechat_profile(access, openid) + elif provider == "qq": + access, openid = await exchange_qq_token(cid, csec, code, callback_url) + uid, name = await fetch_qq_profile(access, cid, openid) + else: + raise CustomException(msg="不支持的 OAuth 渠道") + + user = await ensure_oauth_user(db=db, provider=provider, unique_id=uid, display_name=name) + if user.status == "1": + raise CustomException(msg="用户已被停用") + + user = await UserCRUD(AuthSchema(db=db, user=None, check_data_scope=False)).update_last_login_crud( + id=user.id + ) + if not user: + raise CustomException(msg="用户不存在") + + login_type = f"oauth_{provider}" + token = await LoginService.create_token_service( + request=request, redis=redis, user=user, login_type=login_type + ) + await rc.delete(f"{STATE_PREFIX}{state}") + return token, frontend + + +async def save_oauth_state( + *, + redis: Redis, + state: str, + provider: OAuthProvider, + frontend_redirect: str, +) -> None: + rc = RedisCURD(redis) + ok = await rc.set( + f"{STATE_PREFIX}{state}", + json.dumps({"provider": provider, "frontend_redirect": frontend_redirect}), + expire=STATE_TTL_SECONDS, + ) + if not ok: + raise CustomException(msg="缓存 OAuth 状态失败") + + +def oauth_service_frontend_redirect_from_token( + frontend_base: str, token: JWTOutSchema +) -> str: + return _frontend_success_redirect( + frontend_base, + token.access_token, + token.refresh_token, + token.token_type, + ) + + +def oauth_service_error_redirect(frontend_base: str, message: str) -> str: + return _frontend_error_redirect(frontend_base, message) + + +__all__ = [ + "OAuthProvider", + "STATE_PREFIX", + "build_authorize_url", + "complete_oauth_login", + "save_oauth_state", + "_callback_url", + "oauth_service_frontend_redirect_from_token", + "oauth_service_error_redirect", +] diff --git a/backend/app/config/setting.py b/backend/app/config/setting.py index fe6d9ff5..35c29a33 100755 --- a/backend/app/config/setting.py +++ b/backend/app/config/setting.py @@ -120,6 +120,22 @@ class Settings(BaseSettings): CAPTCHA_FONT_SIZE: int = 32 # 字体大小 CAPTCHA_FONT_PATH: str = "static/assets/font/Arial.ttf" # 字体路径 + # ================================================= # + # ***************** 第三方 OAuth 登录(可选)********* # + # ================================================= # + # 自动注册用户的默认角色 ID 列表(须与库中角色主键一致) + OAUTH_DEFAULT_ROLE_IDS: list[int] = [2] + # 回调异常时回跳的前端地址(与前端实际 /login 一致,含协议与端口) + OAUTH_FRONTEND_FALLBACK: str = "http://127.0.0.1:5173/login" + OAUTH_GITHUB_CLIENT_ID: str = "" + OAUTH_GITHUB_CLIENT_SECRET: str = "" + OAUTH_GITEE_CLIENT_ID: str = "" + OAUTH_GITEE_CLIENT_SECRET: str = "" + OAUTH_WECHAT_OPEN_APP_ID: str = "" + OAUTH_WECHAT_OPEN_APP_SECRET: str = "" + OAUTH_QQ_APP_ID: str = "" + OAUTH_QQ_APP_SECRET: str = "" + # ================================================= # # ******************* 外部 HTTP(httpx)******************* # # ================================================= # diff --git a/frontend/new-web/.editorconfig b/frontend/new-web/.editorconfig new file mode 100644 index 00000000..00ee2de4 --- /dev/null +++ b/frontend/new-web/.editorconfig @@ -0,0 +1,15 @@ +# http://editorconfig.org +root = true + +# 表示所有文件适用 +[*] +charset = utf-8 # 设置文件字符集为 utf-8 +end_of_line = lf # 控制换行类型(lf | cr | crlf) +indent_style = space # 缩进风格(tab | space) +indent_size = 2 # 缩进大小 +insert_final_newline = true # 始终在文件末尾插入一个新行 + +# 表示仅 md 文件适用以下规则 +[*.md] +max_line_length = off # 关闭最大行长度限制 +trim_trailing_whitespace = false # 关闭末尾空格修剪 diff --git a/frontend/new-web/.env b/frontend/new-web/.env index 3a67c6c5..4000d5b0 100755 --- a/frontend/new-web/.env +++ b/frontend/new-web/.env @@ -1,22 +1,28 @@ -# 【通用】环境变量 +# 【通用】环境变量 - 所有环境共享 -# 版本号 +# 应用版本号 VITE_VERSION = 3.0.2 -# 端口号 -VITE_PORT = 3006 +# 开发服务器端口 +VITE_PORT = 5180 # 应用部署基础路径(如部署在子目录 /admin,则设置为 /admin/) VITE_BASE_URL = / -# 权限模式【 frontend 前端模式 / backend 后端模式 】 -VITE_ACCESS_MODE = frontend +# 权限模式【 frontend 仅前端路由 / backend 仅后端菜单 / mixed 后端菜单+前端路由模块合并 】 +VITE_ACCESS_MODE = mixed # 跨域请求时是否携带 Cookie(开启前需确保后端支持) VITE_WITH_CREDENTIALS = false -# 是否打开路由信息 +# 是否在控制台输出路由信息 VITE_OPEN_ROUTE_INFO = false # 锁屏加密密钥 VITE_LOCK_ENCRYPT_KEY = s3cur3k3y4adpro + +# 网络请求超时时间(毫秒) +VITE_API_TIMEOUT = 60000 + +# 代理前缀 +VITE_APP_BASE_API = /api/v1 diff --git a/frontend/new-web/.env.development b/frontend/new-web/.env.development index 10cc209a..01c63815 100755 --- a/frontend/new-web/.env.development +++ b/frontend/new-web/.env.development @@ -1,13 +1,21 @@ -# 【开发】环境变量 +# 【开发】环境变量 - 覆盖通用配置 -# 应用部署基础路径(如部署在子目录 /admin,则设置为 /admin/) -VITE_BASE_URL = / +# 环境标识 +VITE_APP_ENV = development -# API 请求基础路径(开发环境设置为 / 使用代理,生产环境设置为完整后端地址) +# 项目名称 +VITE_APP_TITLE = FastAPI Admin + +# 浏览器侧同源前缀(与 Vite 代理配合时用 /,请求走 localhost:端口 + 代理) VITE_API_URL = / -# 代理目标地址(开发环境通过 Vite 代理转发请求到此地址,解决跨域问题) -VITE_API_PROXY_URL = https://m1.apifoxmock.com/m1/6400575-6097373-default +# 代理目标:本机后端(若出现 ENOTFOUND,说明上面域名在当前网络/DNS 下不可解析,改用本地或可用地址) +# VITE_API_BASE_URL = http://127.0.0.1:8000 +VITE_API_BASE_URL = https://service.fastapiadmin.com -# Delete console -VITE_DROP_CONSOLE = false \ No newline at end of file +# 是否删除控制台输出 +VITE_DROP_CONSOLE = false + +# WebSocket 端点(AI对话功能需要配置) +# VITE_APP_WS_ENDPOINT = ws://localhost:8000 +VITE_APP_WS_ENDPOINT = wss://service.fastapiadmin.com diff --git a/frontend/new-web/.env.production b/frontend/new-web/.env.production index 89e0aaa2..e13a0191 100755 --- a/frontend/new-web/.env.production +++ b/frontend/new-web/.env.production @@ -1,10 +1,16 @@ -# 【生产】环境变量 +# 【生产】环境变量 - 覆盖通用配置 -# 应用部署基础路径(如部署在子目录 /admin,则设置为 /admin/) -VITE_BASE_URL = / +# 环境标识 +VITE_APP_ENV = production -# API 地址前缀 -VITE_API_URL = https://m1.apifoxmock.com/m1/6400575-6097373-default +# 项目名称 +VITE_APP_TITLE = FastAPI Admin -# Delete console -VITE_DROP_CONSOLE = true \ No newline at end of file +# API 请求基础路径(生产环境使用完整后端地址) +VITE_API_BASE_URL = https://server.fastapiadmin.com + +# 是否删除控制台输出 +VITE_DROP_CONSOLE = true + +# WebSocket 端点(AI对话功能需要配置,生产环境建议使用 wss) +VITE_APP_WS_ENDPOINT = wss://server.fastapiadmin.com diff --git a/frontend/new-web/.gitignore b/frontend/new-web/.gitignore index e48d2e97..da15d316 100755 --- a/frontend/new-web/.gitignore +++ b/frontend/new-web/.gitignore @@ -4,8 +4,25 @@ dist dist-ssr *.local .cursorrules +.history # Auto-generated files src/types/import/auto-imports.d.ts src/types/import/components.d.ts .auto-import.json + +# Editor directories and files +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.local + +stats.html +pnpm-lock.yaml +package-lock.json +.stylelintcache +.eslintcache + +# docs and app directories are at frontend root, managed by frontend/.gitignore diff --git a/frontend/new-web/.prettierignore b/frontend/new-web/.prettierignore index 9e96efc3..44421a7a 100644 --- a/frontend/new-web/.prettierignore +++ b/frontend/new-web/.prettierignore @@ -1,3 +1,12 @@ -/node_modules/* -/dist/* -/src/main.ts \ No newline at end of file +dist +node_modules +public +.husky +.vscode +.idea +*.sh +*.md + +src/assets +stats.html +pnpm-lock.yaml diff --git a/frontend/new-web/.prettierrc b/frontend/new-web/.prettierrc deleted file mode 100644 index f3d6ad50..00000000 --- a/frontend/new-web/.prettierrc +++ /dev/null @@ -1,20 +0,0 @@ -{ - "printWidth": 100, - "tabWidth": 2, - "useTabs": false, - "semi": false, - "vueIndentScriptAndStyle": true, - "singleQuote": true, - "quoteProps": "as-needed", - "bracketSpacing": true, - "trailingComma": "none", - "bracketSameLine": false, - "jsxSingleQuote": false, - "arrowParens": "always", - "insertPragma": false, - "requirePragma": false, - "proseWrap": "never", - "htmlWhitespaceSensitivity": "strict", - "endOfLine": "auto", - "rangeStart": 0 -} diff --git a/frontend/new-web/.prettierrc.yaml b/frontend/new-web/.prettierrc.yaml new file mode 100644 index 00000000..d9cf0c72 --- /dev/null +++ b/frontend/new-web/.prettierrc.yaml @@ -0,0 +1,41 @@ +# 在单参数箭头函数中始终添加括号 +arrowParens: "always" +# JSX 多行元素的闭合标签另起一行 +bracketSameLine: false +# 对象字面量中的括号之间添加空格 +bracketSpacing: true +# 自动格式化嵌入的代码(如 Markdown 和 HTML 内的代码) +embeddedLanguageFormatting: "auto" +# 忽略 HTML 空白敏感度,将空白视为非重要内容 +htmlWhitespaceSensitivity: "ignore" +# 不插入 @prettier 的 pragma 注释 +insertPragma: false +# 在 JSX 中使用双引号 +jsxSingleQuote: false +# 每行代码的最大长度限制为 100 字符 +printWidth: 100 +# 在 Markdown 中保留原有的换行格式 +proseWrap: "preserve" +# 仅在必要时添加对象属性的引号 +quoteProps: "as-needed" +# 不要求文件开头插入 @prettier 的 pragma 注释 +requirePragma: false +# 在语句末尾添加分号 +semi: true +# 使用双引号而不是单引号 +singleQuote: false +# 缩进使用 2 个空格 +tabWidth: 2 +# 在多行元素的末尾添加逗号(ES5 支持的对象、数组等) +trailingComma: "es5" +# 使用空格而不是制表符缩进 +useTabs: false +# Vue 文件中的 diff --git a/frontend/new-web/package.json b/frontend/new-web/package.json index 7b663629..c1675085 100755 --- a/frontend/new-web/package.json +++ b/frontend/new-web/package.json @@ -1,21 +1,38 @@ { - "name": "art-design-pro", - "version": "0.0.0", + "name": "fastapiadmin", + "description": "Vue3 + Vite + TypeScript + Element-Plus 的后台管理模板", + "version": "2.2.0", + "private": true, "type": "module", - "engines": { - "node": ">=20.19.0", - "pnpm": ">=8.8.0" - }, "scripts": { - "dev": "vite --open", + "i": "pnpm install", + "dev": "vite", + "dev:force": "vite --force", + "prod": "vite --mode prod", "build": "vue-tsc --noEmit && vite build", - "serve": "vite preview", - "lint": "eslint", - "fix": "eslint --fix", + "build:pro": "pnpm vite build --mode pro", + "build:gitee": "pnpm vite build --mode gitee", + "build:dev": "pnpm vite build --mode dev", + "build:test": "pnpm vite build --mode test", + "serve:pro": "pnpm vite preview --mode pro", + "serve:dev": "pnpm vite preview --mode dev", + "serve:test": "pnpm vite preview --mode test", + "clean": "pnpx rimraf node_modules", + "ts:check": "pnpm vue-tsc --noEmit --skipLibCheck", + "npm:check": "pnpx npm-check-updates -u", + "clean:cache": "pnpx rimraf node_modules/.cache node_modules/.vite", + "prepare": "husky install", + "icon": "esno ./scripts/icon.ts", + "preview": "vite preview", + "type-check": "vue-tsc --noEmit", + "lint": "pnpm run lint:eslint && pnpm run lint:prettier && pnpm run lint:stylelint", + "lint:format": "prettier --write --loglevel warn \"src/**/*.{js,ts,json,tsx,css,less,vue,html,md}\"", + "lint:style": "stylelint --fix \"**/*.{vue,less,postcss,css,scss}\" --cache --cache-location node_modules/.cache/stylelint/", + "lint:lint-staged": "lint-staged -c ./.husky/lintstagedrc.cjs", + "lint:eslint": "eslint --cache \"src/**/*.{vue,ts,js}\" --fix", "lint:prettier": "prettier --write \"**/*.{js,cjs,ts,json,tsx,css,less,scss,vue,html,md}\"", - "lint:stylelint": "stylelint \"**/*.{css,scss,vue}\" --fix", - "lint:lint-staged": "lint-staged", - "prepare": "husky", + "lint:stylelint": "stylelint --cache \"**/*.{css,scss,vue}\" --fix", + "fix": "eslint --fix", "commit": "git-cz", "clean:dev": "tsx scripts/clean-dev.ts" }, @@ -55,61 +72,98 @@ "@element-plus/icons-vue": "^2.3.2", "@iconify/vue": "^5.0.0", "@tailwindcss/vite": "^4.1.14", - "@vue/reactivity": "^3.5.21", + "@vue-flow/background": "^1.3.2", + "@vue-flow/controls": "^1.1.3", + "@vue-flow/core": "^1.48.1", + "@vue-flow/minimap": "^1.5.4", "@vueuse/core": "^13.9.0", - "@wangeditor/editor": "^5.1.23", - "@wangeditor/editor-for-vue": "next", + "@wangeditor-next/editor": "^5.6.49", + "@wangeditor-next/editor-for-vue": "^5.1.14", + "animate.css": "^4.1.1", "axios": "^1.12.2", + "clipboard": "^2.0.11", + "codemirror": "^5.65.19", + "codemirror-editor-vue3": "^2.8.0", "crypto-js": "^4.2.0", + "dagre": "^0.8.5", + "dayjs": "^1.11.13", + "dompurify": "^3.3.1", "echarts": "^6.0.0", "element-plus": "^2.11.2", + "exceljs": "^4.4.0", "file-saver": "^2.0.5", - "highlight.js": "^11.10.0", + "highlight.js": "^11.11.1", + "js-beautify": "^1.15.4", + "markdown-it": "^14.1.0", + "markdown-it-highlightjs": "^4.2.0", "mitt": "^3.0.1", "nprogress": "^0.2.0", "ohash": "^2.0.11", + "path-browserify": "^1.0.1", + "path-to-regexp": "^8.2.0", "pinia": "^3.0.3", - "pinia-plugin-persistedstate": "^4.3.0", + "pinia-plugin-persistedstate": "^4.4.1", "qrcode.vue": "^3.6.0", + "qs": "^6.14.0", "tailwindcss": "^4.1.14", "vue": "^3.5.21", "vue-draggable-plus": "^0.6.0", - "vue-i18n": "^9.14.0", + "vue-i18n": "^11.1.10", + "vue-json-pretty": "^2.5.0", "vue-router": "^4.5.1", + "vue-web-terminal": "^3.4.1", + "vue3-cron-plus": "^0.1.9", + "vuedraggable": "^4.1.0", "xgplayer": "^3.0.20", "xlsx": "^0.18.5" }, "devDependencies": { "@commitlint/cli": "^19.4.1", "@commitlint/config-conventional": "^19.4.1", - "@eslint/js": "^9.9.1", + "@eslint/js": "^9.32.0", + "@iconify/utils": "^2.3.0", + "@types/codemirror": "^5.60.16", + "@types/dagre": "^0.7.53", + "@types/dompurify": "^3.2.0", + "@types/file-saver": "^2.0.7", + "@types/markdown-it": "^14.1.2", "@types/node": "^24.0.5", - "@typescript-eslint/eslint-plugin": "^8.3.0", - "@typescript-eslint/parser": "^8.3.0", + "@types/nprogress": "^0.2.3", + "@types/path-browserify": "^1.0.3", + "@types/qs": "^6.14.0", + "@typescript-eslint/eslint-plugin": "^8.38.0", + "@typescript-eslint/parser": "^8.38.0", "@vitejs/plugin-vue": "^6.0.1", "@vue/compiler-sfc": "^3.0.5", - "commitizen": "^4.3.0", - "cz-git": "^1.11.1", - "eslint": "^9.9.1", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-prettier": "^5.2.1", - "eslint-plugin-vue": "^9.27.0", - "globals": "^15.9.0", - "husky": "^9.1.5", + "autoprefixer": "^10.4.21", + "commitizen": "^4.3.1", + "cz-git": "^1.12.0", + "eslint": "^9.32.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.3", + "eslint-plugin-vue": "^10.4.0", + "fs-extra": "^11.2.0", + "globals": "^15.15.0", + "husky": "^9.1.7", "lint-staged": "^15.5.2", - "prettier": "^3.5.3", + "postcss": "^8.5.6", + "postcss-html": "^1.8.0", + "postcss-scss": "^4.0.9", + "prettier": "^3.6.2", "rollup-plugin-visualizer": "^5.12.0", - "sass": "^1.81.0", - "stylelint": "^16.20.0", + "sass": "^1.89.2", + "stylelint": "^16.25.0", "stylelint-config-html": "^1.1.0", - "stylelint-config-recess-order": "^4.6.0", + "stylelint-config-recess-order": "^6.1.0", + "stylelint-config-recommended": "^15.0.0", "stylelint-config-recommended-scss": "^14.1.0", - "stylelint-config-recommended-vue": "^1.5.0", + "stylelint-config-recommended-vue": "^1.6.1", "stylelint-config-standard": "^36.0.1", - "terser": "^5.36.0", + "stylelint-prettier": "^5.0.3", + "terser": "^5.43.1", "tsx": "^4.20.3", - "typescript": "~5.6.3", - "typescript-eslint": "^8.9.0", + "typescript": "^5.8.3", + "typescript-eslint": "^8.38.0", "unplugin-auto-import": "^20.2.0", "unplugin-element-plus": "^0.10.0", "unplugin-vue-components": "^29.1.0", @@ -117,7 +171,23 @@ "vite-plugin-compression": "^0.5.1", "vite-plugin-vue-devtools": "^7.7.6", "vue-demi": "^0.14.9", - "vue-img-cutter": "^3.0.5", - "vue-tsc": "~2.1.6" - } + "vue-eslint-parser": "^10.2.0", + "vue-tsc": "^2.2.12" + }, + "packageManager": "pnpm@9.15.3", + "engines": { + "node": ">=20.19.0", + "npm": ">=10.0.0", + "pnpm": ">=8.8.0" + }, + "repository": { + "type": "git", + "url": "https://gitee.com/fastapiadmin/FastapiAdmin.git" + }, + "bugs": { + "url": "https://gitee.com/fastapiadmin/FastapiAdmin/issues" + }, + "author": "fastapiadmin <948080782@qq.com>", + "license": "MIT", + "homepage": "https://gitee.com/fastapiadmin/FastapiAdmin" } diff --git a/frontend/new-web/pnpm-lock.yaml b/frontend/new-web/pnpm-lock.yaml index 401c518a..066721e1 100644 --- a/frontend/new-web/pnpm-lock.yaml +++ b/frontend/new-web/pnpm-lock.yaml @@ -5,47 +5,90 @@ settings: excludeLinksFromLockfile: false importers: + .: dependencies: '@element-plus/icons-vue': specifier: ^2.3.2 - version: 2.3.2(vue@3.5.22(typescript@5.6.3)) + version: 2.3.2(vue@3.5.22(typescript@5.9.3)) '@iconify/vue': specifier: ^5.0.0 - version: 5.0.0(vue@3.5.22(typescript@5.6.3)) + version: 5.0.0(vue@3.5.22(typescript@5.9.3)) '@tailwindcss/vite': specifier: ^4.1.14 version: 4.1.14(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - '@vue/reactivity': - specifier: ^3.5.21 - version: 3.5.22 + '@vue-flow/background': + specifier: ^1.3.2 + version: 1.3.2(@vue-flow/core@1.48.2(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) + '@vue-flow/controls': + specifier: ^1.1.3 + version: 1.1.3(@vue-flow/core@1.48.2(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) + '@vue-flow/core': + specifier: ^1.48.1 + version: 1.48.2(vue@3.5.22(typescript@5.9.3)) + '@vue-flow/minimap': + specifier: ^1.5.4 + version: 1.5.4(@vue-flow/core@1.48.2(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3)) '@vueuse/core': specifier: ^13.9.0 - version: 13.9.0(vue@3.5.22(typescript@5.6.3)) - '@wangeditor/editor': - specifier: ^5.1.23 - version: 5.1.23 - '@wangeditor/editor-for-vue': - specifier: next - version: 5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.22(typescript@5.6.3)) + version: 13.9.0(vue@3.5.22(typescript@5.9.3)) + '@wangeditor-next/editor': + specifier: ^5.6.49 + version: 5.7.0 + '@wangeditor-next/editor-for-vue': + specifier: ^5.1.14 + version: 5.1.14(@wangeditor-next/editor@5.7.0)(vue@3.5.22(typescript@5.9.3)) + animate.css: + specifier: ^4.1.1 + version: 4.1.1 axios: specifier: ^1.12.2 version: 1.12.2 + clipboard: + specifier: ^2.0.11 + version: 2.0.11 + codemirror: + specifier: ^5.65.19 + version: 5.65.21 + codemirror-editor-vue3: + specifier: ^2.8.0 + version: 2.8.0(codemirror@5.65.21)(diff-match-patch@1.0.5)(vue@3.5.22(typescript@5.9.3)) crypto-js: specifier: ^4.2.0 version: 4.2.0 + dagre: + specifier: ^0.8.5 + version: 0.8.5 + dayjs: + specifier: ^1.11.13 + version: 1.11.18 + dompurify: + specifier: ^3.3.1 + version: 3.4.2 echarts: specifier: ^6.0.0 version: 6.0.0 element-plus: specifier: ^2.11.2 - version: 2.11.4(vue@3.5.22(typescript@5.6.3)) + version: 2.11.4(vue@3.5.22(typescript@5.9.3)) + exceljs: + specifier: ^4.4.0 + version: 4.4.0 file-saver: specifier: ^2.0.5 version: 2.0.5 highlight.js: - specifier: ^11.10.0 + specifier: ^11.11.1 version: 11.11.1 + js-beautify: + specifier: ^1.15.4 + version: 1.15.4 + markdown-it: + specifier: ^14.1.0 + version: 14.1.1 + markdown-it-highlightjs: + specifier: ^4.2.0 + version: 4.3.0 mitt: specifier: ^3.0.1 version: 3.0.1 @@ -55,30 +98,51 @@ importers: ohash: specifier: ^2.0.11 version: 2.0.11 + path-browserify: + specifier: ^1.0.1 + version: 1.0.1 + path-to-regexp: + specifier: ^8.2.0 + version: 8.4.2 pinia: specifier: ^3.0.3 - version: 3.0.3(typescript@5.6.3)(vue@3.5.22(typescript@5.6.3)) + version: 3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)) pinia-plugin-persistedstate: - specifier: ^4.3.0 - version: 4.5.0(pinia@3.0.3(typescript@5.6.3)(vue@3.5.22(typescript@5.6.3))) + specifier: ^4.4.1 + version: 4.5.0(pinia@3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))) qrcode.vue: specifier: ^3.6.0 - version: 3.6.0(vue@3.5.22(typescript@5.6.3)) + version: 3.6.0(vue@3.5.22(typescript@5.9.3)) + qs: + specifier: ^6.14.0 + version: 6.15.1 tailwindcss: specifier: ^4.1.14 version: 4.1.14 vue: specifier: ^3.5.21 - version: 3.5.22(typescript@5.6.3) + version: 3.5.22(typescript@5.9.3) vue-draggable-plus: specifier: ^0.6.0 version: 0.6.0(@types/sortablejs@1.15.8) vue-i18n: - specifier: ^9.14.0 - version: 9.14.5(vue@3.5.22(typescript@5.6.3)) + specifier: ^11.1.10 + version: 11.4.0(vue@3.5.22(typescript@5.9.3)) + vue-json-pretty: + specifier: ^2.5.0 + version: 2.6.0(vue@3.5.22(typescript@5.9.3)) vue-router: specifier: ^4.5.1 - version: 4.5.1(vue@3.5.22(typescript@5.6.3)) + version: 4.5.1(vue@3.5.22(typescript@5.9.3)) + vue-web-terminal: + specifier: ^3.4.1 + version: 3.4.2(typescript@5.9.3) + vue3-cron-plus: + specifier: ^0.1.9 + version: 0.1.9(typescript@5.9.3) + vuedraggable: + specifier: ^4.1.0 + version: 4.1.0(vue@3.5.22(typescript@5.9.3)) xgplayer: specifier: ^3.0.20 version: 3.0.23(core-js@3.45.1) @@ -88,103 +152,151 @@ importers: devDependencies: '@commitlint/cli': specifier: ^19.4.1 - version: 19.8.1(@types/node@24.8.1)(typescript@5.6.3) + version: 19.8.1(@types/node@24.8.1)(typescript@5.9.3) '@commitlint/config-conventional': specifier: ^19.4.1 version: 19.8.1 '@eslint/js': - specifier: ^9.9.1 + specifier: ^9.32.0 version: 9.36.0 + '@iconify/utils': + specifier: ^2.3.0 + version: 2.3.0 + '@types/codemirror': + specifier: ^5.60.16 + version: 5.60.17 + '@types/dagre': + specifier: ^0.7.53 + version: 0.7.54 + '@types/dompurify': + specifier: ^3.2.0 + version: 3.2.0 + '@types/file-saver': + specifier: ^2.0.7 + version: 2.0.7 + '@types/markdown-it': + specifier: ^14.1.2 + version: 14.1.2 '@types/node': specifier: ^24.0.5 version: 24.8.1 + '@types/nprogress': + specifier: ^0.2.3 + version: 0.2.3 + '@types/path-browserify': + specifier: ^1.0.3 + version: 1.0.3 + '@types/qs': + specifier: ^6.14.0 + version: 6.15.0 '@typescript-eslint/eslint-plugin': - specifier: ^8.3.0 - version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3))(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) + specifier: ^8.38.0 + version: 8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) '@typescript-eslint/parser': - specifier: ^8.3.0 - version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) + specifier: ^8.38.0 + version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.1(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.6.3)) + version: 6.0.1(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vue/compiler-sfc': specifier: ^3.0.5 version: 3.5.22 + autoprefixer: + specifier: ^10.4.21 + version: 10.5.0(postcss@8.5.6) commitizen: - specifier: ^4.3.0 - version: 4.3.1(@types/node@24.8.1)(typescript@5.6.3) + specifier: ^4.3.1 + version: 4.3.1(@types/node@24.8.1)(typescript@5.9.3) cz-git: - specifier: ^1.11.1 + specifier: ^1.12.0 version: 1.12.0 eslint: - specifier: ^9.9.1 + specifier: ^9.32.0 version: 9.36.0(jiti@2.6.0) eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.2(eslint@9.36.0(jiti@2.6.0)) + specifier: ^10.1.8 + version: 10.1.8(eslint@9.36.0(jiti@2.6.0)) eslint-plugin-prettier: - specifier: ^5.2.1 - version: 5.5.4(eslint-config-prettier@9.1.2(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(prettier@3.6.2) + specifier: ^5.5.3 + version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(prettier@3.6.2) eslint-plugin-vue: - specifier: ^9.27.0 - version: 9.33.0(eslint@9.36.0(jiti@2.6.0)) + specifier: ^10.4.0 + version: 10.9.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.0))(vue-eslint-parser@10.4.0(eslint@9.36.0(jiti@2.6.0))) + fs-extra: + specifier: ^11.2.0 + version: 11.3.2 globals: - specifier: ^15.9.0 + specifier: ^15.15.0 version: 15.15.0 husky: - specifier: ^9.1.5 + specifier: ^9.1.7 version: 9.1.7 lint-staged: specifier: ^15.5.2 version: 15.5.2 + postcss: + specifier: ^8.5.6 + version: 8.5.6 + postcss-html: + specifier: ^1.8.0 + version: 1.8.0 + postcss-scss: + specifier: ^4.0.9 + version: 4.0.9(postcss@8.5.6) prettier: - specifier: ^3.5.3 + specifier: ^3.6.2 version: 3.6.2 rollup-plugin-visualizer: specifier: ^5.12.0 version: 5.14.0(rollup@4.52.3) sass: - specifier: ^1.81.0 + specifier: ^1.89.2 version: 1.93.2 stylelint: - specifier: ^16.20.0 - version: 16.24.0(typescript@5.6.3) + specifier: ^16.25.0 + version: 16.26.1(typescript@5.9.3) stylelint-config-html: specifier: ^1.1.0 - version: 1.1.0(postcss-html@1.8.0)(stylelint@16.24.0(typescript@5.6.3)) + version: 1.1.0(postcss-html@1.8.0)(stylelint@16.26.1(typescript@5.9.3)) stylelint-config-recess-order: - specifier: ^4.6.0 - version: 4.6.0(stylelint@16.24.0(typescript@5.6.3)) + specifier: ^6.1.0 + version: 6.1.0(stylelint@16.26.1(typescript@5.9.3)) + stylelint-config-recommended: + specifier: ^15.0.0 + version: 15.0.0(stylelint@16.26.1(typescript@5.9.3)) stylelint-config-recommended-scss: specifier: ^14.1.0 - version: 14.1.0(postcss@8.5.6)(stylelint@16.24.0(typescript@5.6.3)) + version: 14.1.0(postcss@8.5.6)(stylelint@16.26.1(typescript@5.9.3)) stylelint-config-recommended-vue: - specifier: ^1.5.0 - version: 1.6.1(postcss-html@1.8.0)(stylelint@16.24.0(typescript@5.6.3)) + specifier: ^1.6.1 + version: 1.6.1(postcss-html@1.8.0)(stylelint@16.26.1(typescript@5.9.3)) stylelint-config-standard: specifier: ^36.0.1 - version: 36.0.1(stylelint@16.24.0(typescript@5.6.3)) + version: 36.0.1(stylelint@16.26.1(typescript@5.9.3)) + stylelint-prettier: + specifier: ^5.0.3 + version: 5.0.3(prettier@3.6.2)(stylelint@16.26.1(typescript@5.9.3)) terser: - specifier: ^5.36.0 + specifier: ^5.43.1 version: 5.44.0 tsx: specifier: ^4.20.3 version: 4.20.6 typescript: - specifier: ~5.6.3 - version: 5.6.3 + specifier: ^5.8.3 + version: 5.9.3 typescript-eslint: - specifier: ^8.9.0 - version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) + specifier: ^8.38.0 + version: 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) unplugin-auto-import: specifier: ^20.2.0 - version: 20.2.0(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.6.3))) + version: 20.2.0(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))) unplugin-element-plus: specifier: ^0.10.0 version: 0.10.0 unplugin-vue-components: specifier: ^29.1.0 - version: 29.1.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.6.3)) + version: 29.1.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)) vite: specifier: ^7.1.5 version: 7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) @@ -193,1103 +305,718 @@ importers: version: 0.5.1(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) vite-plugin-vue-devtools: specifier: ^7.7.6 - version: 7.7.7(rollup@4.52.3)(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.6.3)) + version: 7.7.7(rollup@4.52.3)(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) vue-demi: specifier: ^0.14.9 - version: 0.14.10(vue@3.5.22(typescript@5.6.3)) - vue-img-cutter: - specifier: ^3.0.5 - version: 3.0.7(typescript@5.6.3) + version: 0.14.10(vue@3.5.22(typescript@5.9.3)) + vue-eslint-parser: + specifier: ^10.2.0 + version: 10.4.0(eslint@9.36.0(jiti@2.6.0)) vue-tsc: - specifier: ~2.1.6 - version: 2.1.10(typescript@5.6.3) + specifier: ^2.2.12 + version: 2.2.12(typescript@5.9.3) packages: + + '@antfu/install-pkg@1.1.0': + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + '@antfu/utils@0.7.10': - resolution: - { - integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== - } + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@antfu/utils@8.1.1': + resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} '@babel/code-frame@7.27.1': - resolution: - { - integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} '@babel/compat-data@7.28.4': - resolution: - { - integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} + engines: {node: '>=6.9.0'} '@babel/core@7.28.4': - resolution: - { - integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} + engines: {node: '>=6.9.0'} '@babel/generator@7.28.3': - resolution: - { - integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} + engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.27.3': - resolution: - { - integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.27.2': - resolution: - { - integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.28.3': - resolution: - { - integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-globals@7.28.0': - resolution: - { - integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} '@babel/helper-member-expression-to-functions@7.27.1': - resolution: - { - integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.27.1': - resolution: - { - integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} '@babel/helper-module-transforms@7.28.3': - resolution: - { - integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-optimise-call-expression@7.27.1': - resolution: - { - integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} '@babel/helper-plugin-utils@7.27.1': - resolution: - { - integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} '@babel/helper-replace-supers@7.27.1': - resolution: - { - integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: - { - integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.27.1': - resolution: - { - integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.27.1': - resolution: - { - integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.27.1': - resolution: - { - integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} '@babel/helpers@7.28.4': - resolution: - { - integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + engines: {node: '>=6.9.0'} '@babel/parser@7.28.4': - resolution: - { - integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg== - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} + engines: {node: '>=6.0.0'} hasBin: true '@babel/plugin-proposal-decorators@7.28.0': - resolution: - { - integrity: sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-decorators@7.27.1': - resolution: - { - integrity: sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: - { - integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-meta@7.10.4': - resolution: - { - integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - } + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-jsx@7.27.1': - resolution: - { - integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-typescript@7.27.1': - resolution: - { - integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typescript@7.28.0': - resolution: - { - integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/runtime@7.28.4': - resolution: - { - integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} + engines: {node: '>=6.9.0'} '@babel/template@7.27.2': - resolution: - { - integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} '@babel/traverse@7.28.4': - resolution: - { - integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} + engines: {node: '>=6.9.0'} '@babel/types@7.28.4': - resolution: - { - integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} + engines: {node: '>=6.9.0'} - '@cacheable/memoize@2.0.2': - resolution: - { - integrity: sha512-wPrr7FUiq3Qt4yQyda2/NcOLTJCFcQSU3Am2adP+WLy+sz93/fKTokVTHmtz+rjp4PD7ee0AEOeRVNN6IvIfsg== - } + '@cacheable/memory@2.0.8': + resolution: {integrity: sha512-FvEb29x5wVwu/Kf93IWwsOOEuhHh6dYCJF3vcKLzXc0KXIW181AOzv6ceT4ZpBHDvAfG60eqb+ekmrnLHIy+jw==} - '@cacheable/memory@2.0.2': - resolution: - { - integrity: sha512-sJTITLfeCI1rg7P3ssaGmQryq235EGT8dXGcx6oZwX5NRnKq9IE6lddlllcOl+oXW+yaeTRddCjo0xrfU6ZySA== - } - - '@cacheable/utils@2.0.2': - resolution: - { - integrity: sha512-JTFM3raFhVv8LH95T7YnZbf2YoE9wEtkPPStuRF9a6ExZ103hFvs+QyCuYJ6r0hA9wRtbzgZtwUCoDWxssZd4Q== - } + '@cacheable/utils@2.4.1': + resolution: {integrity: sha512-eiFgzCbIneyMlLOmNG4g9xzF7Hv3Mga4LjxjcSC/ues6VYq2+gUbQI8JqNuw/ZM8tJIeIaBGpswAsqV2V7ApgA==} '@commitlint/cli@19.8.1': - resolution: - { - integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==} + engines: {node: '>=v18'} hasBin: true '@commitlint/config-conventional@19.8.1': - resolution: - { - integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-/AZHJL6F6B/G959CsMAzrPKKZjeEiAVifRyEwXxcT6qtqbPwGw+iQxmNS+Bu+i09OCtdNRW6pNpBvgPrtMr9EQ==} + engines: {node: '>=v18'} '@commitlint/config-validator@19.8.1': - resolution: - { - integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==} + engines: {node: '>=v18'} '@commitlint/config-validator@20.0.0': - resolution: - { - integrity: sha512-BeyLMaRIJDdroJuYM2EGhDMGwVBMZna9UiIqV9hxj+J551Ctc6yoGuGSmghOy/qPhBSuhA6oMtbEiTmxECafsg== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-BeyLMaRIJDdroJuYM2EGhDMGwVBMZna9UiIqV9hxj+J551Ctc6yoGuGSmghOy/qPhBSuhA6oMtbEiTmxECafsg==} + engines: {node: '>=v18'} '@commitlint/ensure@19.8.1': - resolution: - { - integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==} + engines: {node: '>=v18'} '@commitlint/execute-rule@19.8.1': - resolution: - { - integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==} + engines: {node: '>=v18'} '@commitlint/execute-rule@20.0.0': - resolution: - { - integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==} + engines: {node: '>=v18'} '@commitlint/format@19.8.1': - resolution: - { - integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==} + engines: {node: '>=v18'} '@commitlint/is-ignored@19.8.1': - resolution: - { - integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==} + engines: {node: '>=v18'} '@commitlint/lint@19.8.1': - resolution: - { - integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==} + engines: {node: '>=v18'} '@commitlint/load@19.8.1': - resolution: - { - integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==} + engines: {node: '>=v18'} '@commitlint/load@20.0.0': - resolution: - { - integrity: sha512-WiNKO9fDPlLY90Rruw2HqHKcghrmj5+kMDJ4GcTlX1weL8K07Q6b27C179DxnsrjGCRAKVwFKyzxV4x+xDY28Q== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-WiNKO9fDPlLY90Rruw2HqHKcghrmj5+kMDJ4GcTlX1weL8K07Q6b27C179DxnsrjGCRAKVwFKyzxV4x+xDY28Q==} + engines: {node: '>=v18'} '@commitlint/message@19.8.1': - resolution: - { - integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==} + engines: {node: '>=v18'} '@commitlint/parse@19.8.1': - resolution: - { - integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==} + engines: {node: '>=v18'} '@commitlint/read@19.8.1': - resolution: - { - integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==} + engines: {node: '>=v18'} '@commitlint/resolve-extends@19.8.1': - resolution: - { - integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==} + engines: {node: '>=v18'} '@commitlint/resolve-extends@20.0.0': - resolution: - { - integrity: sha512-BA4vva1hY8y0/Hl80YDhe9TJZpRFMsUYzVxvwTLPTEBotbGx/gS49JlVvtF1tOCKODQp7pS7CbxCpiceBgp3Dg== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-BA4vva1hY8y0/Hl80YDhe9TJZpRFMsUYzVxvwTLPTEBotbGx/gS49JlVvtF1tOCKODQp7pS7CbxCpiceBgp3Dg==} + engines: {node: '>=v18'} '@commitlint/rules@19.8.1': - resolution: - { - integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==} + engines: {node: '>=v18'} '@commitlint/to-lines@19.8.1': - resolution: - { - integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==} + engines: {node: '>=v18'} '@commitlint/top-level@19.8.1': - resolution: - { - integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==} + engines: {node: '>=v18'} '@commitlint/types@19.8.1': - resolution: - { - integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==} + engines: {node: '>=v18'} '@commitlint/types@20.0.0': - resolution: - { - integrity: sha512-bVUNBqG6aznYcYjTjnc3+Cat/iBgbgpflxbIBTnsHTX0YVpnmINPEkSRWymT2Q8aSH3Y7aKnEbunilkYe8TybA== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-bVUNBqG6aznYcYjTjnc3+Cat/iBgbgpflxbIBTnsHTX0YVpnmINPEkSRWymT2Q8aSH3Y7aKnEbunilkYe8TybA==} + engines: {node: '>=v18'} '@csstools/css-parser-algorithms@3.0.5': - resolution: - { - integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + engines: {node: '>=18'} peerDependencies: '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-syntax-patches-for-csstree@1.1.3': + resolution: {integrity: sha512-SH60bMfrRCJF3morcdk57WklujF4Jr/EsQUzqkarfHXEFcAR1gg7fS/chAE922Sehgzc1/+Tz5H3Ypa1HiEKrg==} + peerDependencies: + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true + '@csstools/css-tokenizer@3.0.4': - resolution: - { - integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + engines: {node: '>=18'} '@csstools/media-query-list-parser@4.0.3': - resolution: - { - integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} + engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 '@csstools/selector-specificity@5.0.0': - resolution: - { - integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==} + engines: {node: '>=18'} peerDependencies: postcss-selector-parser: ^7.0.0 '@ctrl/tinycolor@3.6.1': - resolution: - { - integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} '@dual-bundle/import-meta-resolve@4.2.1': - resolution: - { - integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg== - } + resolution: {integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==} '@element-plus/icons-vue@2.3.2': - resolution: - { - integrity: sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A== - } + resolution: {integrity: sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==} peerDependencies: vue: ^3.2.0 '@esbuild/aix-ppc64@0.25.10': - resolution: - { - integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] '@esbuild/android-arm64@0.25.10': - resolution: - { - integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} + engines: {node: '>=18'} cpu: [arm64] os: [android] '@esbuild/android-arm@0.25.10': - resolution: - { - integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} + engines: {node: '>=18'} cpu: [arm] os: [android] '@esbuild/android-x64@0.25.10': - resolution: - { - integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} + engines: {node: '>=18'} cpu: [x64] os: [android] '@esbuild/darwin-arm64@0.25.10': - resolution: - { - integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.25.10': - resolution: - { - integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] '@esbuild/freebsd-arm64@0.25.10': - resolution: - { - integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.25.10': - resolution: - { - integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] '@esbuild/linux-arm64@0.25.10': - resolution: - { - integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.25.10': - resolution: - { - integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} + engines: {node: '>=18'} cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.25.10': - resolution: - { - integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.25.10': - resolution: - { - integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.25.10': - resolution: - { - integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.25.10': - resolution: - { - integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.25.10': - resolution: - { - integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.25.10': - resolution: - { - integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.25.10': - resolution: - { - integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} + engines: {node: '>=18'} cpu: [x64] os: [linux] '@esbuild/netbsd-arm64@0.25.10': - resolution: - { - integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} + engines: {node: '>=18'} cpu: [arm64] os: [netbsd] '@esbuild/netbsd-x64@0.25.10': - resolution: - { - integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] '@esbuild/openbsd-arm64@0.25.10': - resolution: - { - integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} + engines: {node: '>=18'} cpu: [arm64] os: [openbsd] '@esbuild/openbsd-x64@0.25.10': - resolution: - { - integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] '@esbuild/openharmony-arm64@0.25.10': - resolution: - { - integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} + engines: {node: '>=18'} cpu: [arm64] os: [openharmony] '@esbuild/sunos-x64@0.25.10': - resolution: - { - integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] '@esbuild/win32-arm64@0.25.10': - resolution: - { - integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.25.10': - resolution: - { - integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.25.10': - resolution: - { - integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} + engines: {node: '>=18'} cpu: [x64] os: [win32] '@eslint-community/eslint-utils@4.9.0': - resolution: - { - integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 '@eslint-community/regexpp@4.12.1': - resolution: - { - integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== - } - engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/config-array@0.21.0': - resolution: - { - integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/config-helpers@0.3.1': - resolution: - { - integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/core@0.15.2': - resolution: - { - integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.3.1': - resolution: - { - integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/js@9.36.0': - resolution: - { - integrity: sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.6': - resolution: - { - integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/plugin-kit@0.3.5': - resolution: - { - integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@fast-csv/format@4.3.5': + resolution: {integrity: sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==} + + '@fast-csv/parse@4.3.6': + resolution: {integrity: sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==} '@floating-ui/core@1.7.3': - resolution: - { - integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w== - } + resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} '@floating-ui/dom@1.7.4': - resolution: - { - integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA== - } + resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} '@floating-ui/utils@0.2.10': - resolution: - { - integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ== - } + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} '@humanfs/core@0.19.1': - resolution: - { - integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== - } - engines: { node: '>=18.18.0' } + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} '@humanfs/node@0.16.7': - resolution: - { - integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ== - } - engines: { node: '>=18.18.0' } + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} + engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': - resolution: - { - integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - } - engines: { node: '>=12.22' } + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} '@humanwhocodes/retry@0.4.3': - resolution: - { - integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== - } - engines: { node: '>=18.18' } + resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} + engines: {node: '>=18.18'} '@iconify/types@2.0.0': - resolution: - { - integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== - } + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@2.3.0': + resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} '@iconify/vue@5.0.0': - resolution: - { - integrity: sha512-C+KuEWIF5nSBrobFJhT//JS87OZ++QDORB6f2q2Wm6fl2mueSTpFBeBsveK0KW9hWiZ4mNiPjsh6Zs4jjdROSg== - } + resolution: {integrity: sha512-C+KuEWIF5nSBrobFJhT//JS87OZ++QDORB6f2q2Wm6fl2mueSTpFBeBsveK0KW9hWiZ4mNiPjsh6Zs4jjdROSg==} peerDependencies: vue: '>=3' - '@intlify/core-base@9.14.5': - resolution: - { - integrity: sha512-5ah5FqZG4pOoHjkvs8mjtv+gPKYU0zCISaYNjBNNqYiaITxW8ZtVih3GS/oTOqN8d9/mDLyrjD46GBApNxmlsA== - } - engines: { node: '>= 16' } + '@intlify/core-base@11.4.0': + resolution: {integrity: sha512-nlxFOnmjJgVkL1PsuSMagyh3qIHTwc2KlO2R3qQQV1ydrcwh1XpM7opWUGqvGaLlktttopDzbLBpr/k5tvbNmA==} + engines: {node: '>= 16'} - '@intlify/message-compiler@9.14.5': - resolution: - { - integrity: sha512-IHzgEu61/YIpQV5Pc3aRWScDcnFKWvQA9kigcINcCBXN8mbW+vk9SK+lDxA6STzKQsVJxUPg9ACC52pKKo3SVQ== - } - engines: { node: '>= 16' } + '@intlify/devtools-types@11.4.0': + resolution: {integrity: sha512-LtQ04kG8/2Nv6AbuINpkjODuhKHdd+MGLlXKW3I0GTCeDsDIBZUot82nnyK7D6+qersF08FqSvoN/eGPcL3c7Q==} + engines: {node: '>= 16'} - '@intlify/shared@9.14.5': - resolution: - { - integrity: sha512-9gB+E53BYuAEMhbCAxVgG38EZrk59sxBtv3jSizNL2hEWlgjBjAw1AwpLHtNaeda12pe6W20OGEa0TwuMSRbyQ== - } - engines: { node: '>= 16' } + '@intlify/message-compiler@11.4.0': + resolution: {integrity: sha512-v455gVZqMb0er63Wd/akX8DXTnwSubgrgQaRigLB60V3xpnq3B99oPvGXW+N4G/5QFt8Ls84FJ8qHJUVnRCs1A==} + engines: {node: '>= 16'} + + '@intlify/shared@11.4.0': + resolution: {integrity: sha512-r9qUeLeO0TMZmUZ+mXS6IGQ6xwzZJaVMK6j4CdoA3eQP8xp3JtCfwkZ30gB4+knlN40pmBdDXgx85SWhMCzHng==} + engines: {node: '>= 16'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} '@isaacs/fs-minipass@4.0.1': - resolution: - { - integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w== - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} '@jridgewell/gen-mapping@0.3.13': - resolution: - { - integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== - } + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} '@jridgewell/remapping@2.3.5': - resolution: - { - integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== - } + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} '@jridgewell/resolve-uri@3.1.2': - resolution: - { - integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} '@jridgewell/source-map@0.3.11': - resolution: - { - integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA== - } + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} '@jridgewell/sourcemap-codec@1.5.5': - resolution: - { - integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - } + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} '@jridgewell/trace-mapping@0.3.31': - resolution: - { - integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== - } + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@keyv/bigmap@1.0.2': - resolution: - { - integrity: sha512-KR03xkEZlAZNF4IxXgVXb+uNIVNvwdh8UwI0cnc7WI6a+aQcDp8GL80qVfeB4E5NpsKJzou5jU0r6yLSSbMOtA== - } - engines: { node: '>= 18' } + '@keyv/bigmap@1.3.1': + resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} + engines: {node: '>= 18'} + peerDependencies: + keyv: ^5.6.0 '@keyv/serialize@1.1.1': - resolution: - { - integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA== - } + resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} '@nodelib/fs.scandir@2.1.5': - resolution: - { - integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} '@nodelib/fs.stat@2.0.5': - resolution: - { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} '@nodelib/fs.walk@1.2.8': - resolution: - { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@one-ini/wasm@0.1.1': + resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==} '@parcel/watcher-android-arm64@2.5.1': - resolution: - { - integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [android] '@parcel/watcher-darwin-arm64@2.5.1': - resolution: - { - integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [darwin] '@parcel/watcher-darwin-x64@2.5.1': - resolution: - { - integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [darwin] '@parcel/watcher-freebsd-x64@2.5.1': - resolution: - { - integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [freebsd] '@parcel/watcher-linux-arm-glibc@2.5.1': - resolution: - { - integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} + engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] libc: [glibc] '@parcel/watcher-linux-arm-musl@2.5.1': - resolution: - { - integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} + engines: {node: '>= 10.0.0'} cpu: [arm] os: [linux] libc: [musl] '@parcel/watcher-linux-arm64-glibc@2.5.1': - resolution: - { - integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] libc: [glibc] '@parcel/watcher-linux-arm64-musl@2.5.1': - resolution: - { - integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [linux] libc: [musl] '@parcel/watcher-linux-x64-glibc@2.5.1': - resolution: - { - integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] libc: [glibc] '@parcel/watcher-linux-x64-musl@2.5.1': - resolution: - { - integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [linux] libc: [musl] '@parcel/watcher-win32-arm64@2.5.1': - resolution: - { - integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} + engines: {node: '>= 10.0.0'} cpu: [arm64] os: [win32] '@parcel/watcher-win32-ia32@2.5.1': - resolution: - { - integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} + engines: {node: '>= 10.0.0'} cpu: [ia32] os: [win32] '@parcel/watcher-win32-x64@2.5.1': - resolution: - { - integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} + engines: {node: '>= 10.0.0'} cpu: [x64] os: [win32] '@parcel/watcher@2.5.1': - resolution: - { - integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} + engines: {node: '>= 10.0.0'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} '@pkgr/core@0.2.9': - resolution: - { - integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== - } - engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} '@polka/url@1.0.0-next.29': - resolution: - { - integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== - } + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} '@rolldown/pluginutils@1.0.0-beta.29': - resolution: - { - integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q== - } + resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} '@rollup/pluginutils@5.3.0': - resolution: - { - integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q== - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} + engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: @@ -1297,308 +1024,200 @@ packages: optional: true '@rollup/rollup-android-arm-eabi@4.52.3': - resolution: - { - integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw== - } + resolution: {integrity: sha512-h6cqHGZ6VdnwliFG1NXvMPTy/9PS3h8oLh7ImwR+kl+oYnQizgjxsONmmPSb2C66RksfkfIxEVtDSEcJiO0tqw==} cpu: [arm] os: [android] '@rollup/rollup-android-arm64@4.52.3': - resolution: - { - integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw== - } + resolution: {integrity: sha512-wd+u7SLT/u6knklV/ifG7gr5Qy4GUbH2hMWcDauPFJzmCZUAJ8L2bTkVXC2niOIxp8lk3iH/QX8kSrUxVZrOVw==} cpu: [arm64] os: [android] '@rollup/rollup-darwin-arm64@4.52.3': - resolution: - { - integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg== - } + resolution: {integrity: sha512-lj9ViATR1SsqycwFkJCtYfQTheBdvlWJqzqxwc9f2qrcVrQaF/gCuBRTiTolkRWS6KvNxSk4KHZWG7tDktLgjg==} cpu: [arm64] os: [darwin] '@rollup/rollup-darwin-x64@4.52.3': - resolution: - { - integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A== - } + resolution: {integrity: sha512-+Dyo7O1KUmIsbzx1l+4V4tvEVnVQqMOIYtrxK7ncLSknl1xnMHLgn7gddJVrYPNZfEB8CIi3hK8gq8bDhb3h5A==} cpu: [x64] os: [darwin] '@rollup/rollup-freebsd-arm64@4.52.3': - resolution: - { - integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ== - } + resolution: {integrity: sha512-u9Xg2FavYbD30g3DSfNhxgNrxhi6xVG4Y6i9Ur1C7xUuGDW3banRbXj+qgnIrwRN4KeJ396jchwy9bCIzbyBEQ==} cpu: [arm64] os: [freebsd] '@rollup/rollup-freebsd-x64@4.52.3': - resolution: - { - integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A== - } + resolution: {integrity: sha512-5M8kyi/OX96wtD5qJR89a/3x5x8x5inXBZO04JWhkQb2JWavOWfjgkdvUqibGJeNNaz1/Z1PPza5/tAPXICI6A==} cpu: [x64] os: [freebsd] '@rollup/rollup-linux-arm-gnueabihf@4.52.3': - resolution: - { - integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA== - } + resolution: {integrity: sha512-IoerZJ4l1wRMopEHRKOO16e04iXRDyZFZnNZKrWeNquh5d6bucjezgd+OxG03mOMTnS1x7hilzb3uURPkJ0OfA==} cpu: [arm] os: [linux] libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.52.3': - resolution: - { - integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA== - } + resolution: {integrity: sha512-ZYdtqgHTDfvrJHSh3W22TvjWxwOgc3ThK/XjgcNGP2DIwFIPeAPNsQxrJO5XqleSlgDux2VAoWQ5iJrtaC1TbA==} cpu: [arm] os: [linux] libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.52.3': - resolution: - { - integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ== - } + resolution: {integrity: sha512-NcViG7A0YtuFDA6xWSgmFb6iPFzHlf5vcqb2p0lGEbT+gjrEEz8nC/EeDHvx6mnGXnGCC1SeVV+8u+smj0CeGQ==} cpu: [arm64] os: [linux] libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.52.3': - resolution: - { - integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw== - } + resolution: {integrity: sha512-d3pY7LWno6SYNXRm6Ebsq0DJGoiLXTb83AIPCXl9fmtIQs/rXoS8SJxxUNtFbJ5MiOvs+7y34np77+9l4nfFMw==} cpu: [arm64] os: [linux] libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.52.3': - resolution: - { - integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg== - } + resolution: {integrity: sha512-3y5GA0JkBuirLqmjwAKwB0keDlI6JfGYduMlJD/Rl7fvb4Ni8iKdQs1eiunMZJhwDWdCvrcqXRY++VEBbvk6Eg==} cpu: [loong64] os: [linux] libc: [glibc] '@rollup/rollup-linux-ppc64-gnu@4.52.3': - resolution: - { - integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw== - } + resolution: {integrity: sha512-AUUH65a0p3Q0Yfm5oD2KVgzTKgwPyp9DSXc3UA7DtxhEb/WSPfbG4wqXeSN62OG5gSo18em4xv6dbfcUGXcagw==} cpu: [ppc64] os: [linux] libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.52.3': - resolution: - { - integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg== - } + resolution: {integrity: sha512-1makPhFFVBqZE+XFg3Dkq+IkQ7JvmUrwwqaYBL2CE+ZpxPaqkGaiWFEWVGyvTwZace6WLJHwjVh/+CXbKDGPmg==} cpu: [riscv64] os: [linux] libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.52.3': - resolution: - { - integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg== - } + resolution: {integrity: sha512-OOFJa28dxfl8kLOPMUOQBCO6z3X2SAfzIE276fwT52uXDWUS178KWq0pL7d6p1kz7pkzA0yQwtqL0dEPoVcRWg==} cpu: [riscv64] os: [linux] libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.52.3': - resolution: - { - integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg== - } + resolution: {integrity: sha512-jMdsML2VI5l+V7cKfZx3ak+SLlJ8fKvLJ0Eoa4b9/vCUrzXKgoKxvHqvJ/mkWhFiyp88nCkM5S2v6nIwRtPcgg==} cpu: [s390x] os: [linux] libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.52.3': - resolution: - { - integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA== - } + resolution: {integrity: sha512-tPgGd6bY2M2LJTA1uGq8fkSPK8ZLYjDjY+ZLK9WHncCnfIz29LIXIqUgzCR0hIefzy6Hpbe8Th5WOSwTM8E7LA==} cpu: [x64] os: [linux] libc: [glibc] '@rollup/rollup-linux-x64-musl@4.52.3': - resolution: - { - integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw== - } + resolution: {integrity: sha512-BCFkJjgk+WFzP+tcSMXq77ymAPIxsX9lFJWs+2JzuZTLtksJ2o5hvgTdIcZ5+oKzUDMwI0PfWzRBYAydAHF2Mw==} cpu: [x64] os: [linux] libc: [musl] '@rollup/rollup-openharmony-arm64@4.52.3': - resolution: - { - integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA== - } + resolution: {integrity: sha512-KTD/EqjZF3yvRaWUJdD1cW+IQBk4fbQaHYJUmP8N4XoKFZilVL8cobFSTDnjTtxWJQ3JYaMgF4nObY/+nYkumA==} cpu: [arm64] os: [openharmony] '@rollup/rollup-win32-arm64-msvc@4.52.3': - resolution: - { - integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA== - } + resolution: {integrity: sha512-+zteHZdoUYLkyYKObGHieibUFLbttX2r+58l27XZauq0tcWYYuKUwY2wjeCN9oK1Um2YgH2ibd6cnX/wFD7DuA==} cpu: [arm64] os: [win32] '@rollup/rollup-win32-ia32-msvc@4.52.3': - resolution: - { - integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g== - } + resolution: {integrity: sha512-of1iHkTQSo3kr6dTIRX6t81uj/c/b15HXVsPcEElN5sS859qHrOepM5p9G41Hah+CTqSh2r8Bm56dL2z9UQQ7g==} cpu: [ia32] os: [win32] '@rollup/rollup-win32-x64-gnu@4.52.3': - resolution: - { - integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ== - } + resolution: {integrity: sha512-s0hybmlHb56mWVZQj8ra9048/WZTPLILKxcvcq+8awSZmyiSUZjjem1AhU3Tf4ZKpYhK4mg36HtHDOe8QJS5PQ==} cpu: [x64] os: [win32] '@rollup/rollup-win32-x64-msvc@4.52.3': - resolution: - { - integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA== - } + resolution: {integrity: sha512-zGIbEVVXVtauFgl3MRwGWEN36P5ZGenHRMgNw88X5wEhEBpq0XrMEZwOn07+ICrwM17XO5xfMZqh0OldCH5VTA==} cpu: [x64] os: [win32] '@sec-ant/readable-stream@0.4.1': - resolution: - { - integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg== - } + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} '@sindresorhus/merge-streams@4.0.0': - resolution: - { - integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} '@sxzz/popperjs-es@2.11.7': - resolution: - { - integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ== - } + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} '@tailwindcss/node@4.1.14': - resolution: - { - integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw== - } + resolution: {integrity: sha512-hpz+8vFk3Ic2xssIA3e01R6jkmsAhvkQdXlEbRTk6S10xDAtiQiM3FyvZVGsucefq764euO/b8WUW9ysLdThHw==} '@tailwindcss/oxide-android-arm64@4.1.14': - resolution: - { - integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-a94ifZrGwMvbdeAxWoSuGcIl6/DOP5cdxagid7xJv6bwFp3oebp7y2ImYsnZBMTwjn5Ev5xESvS3FFYUGgPODQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [android] '@tailwindcss/oxide-darwin-arm64@4.1.14': - resolution: - { - integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-HkFP/CqfSh09xCnrPJA7jud7hij5ahKyWomrC3oiO2U9i0UjP17o9pJbxUN0IJ471GTQQmzwhp0DEcpbp4MZTA==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@tailwindcss/oxide-darwin-x64@4.1.14': - resolution: - { - integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-eVNaWmCgdLf5iv6Qd3s7JI5SEFBFRtfm6W0mphJYXgvnDEAZ5sZzqmI06bK6xo0IErDHdTA5/t7d4eTfWbWOFw==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@tailwindcss/oxide-freebsd-x64@4.1.14': - resolution: - { - integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-QWLoRXNikEuqtNb0dhQN6wsSVVjX6dmUFzuuiL09ZeXju25dsei2uIPl71y2Ic6QbNBsB4scwBoFnlBfabHkEw==} + engines: {node: '>= 10'} cpu: [x64] os: [freebsd] '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.14': - resolution: - { - integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-VB4gjQni9+F0VCASU+L8zSIyjrLLsy03sjcR3bM0V2g4SNamo0FakZFKyUQ96ZVwGK4CaJsc9zd/obQy74o0Fw==} + engines: {node: '>= 10'} cpu: [arm] os: [linux] '@tailwindcss/oxide-linux-arm64-gnu@4.1.14': - resolution: - { - integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-qaEy0dIZ6d9vyLnmeg24yzA8XuEAD9WjpM5nIM1sUgQ/Zv7cVkharPDQcmm/t/TvXoKo/0knI3me3AGfdx6w1w==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [glibc] '@tailwindcss/oxide-linux-arm64-musl@4.1.14': - resolution: - { - integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-ISZjT44s59O8xKsPEIesiIydMG/sCXoMBCqsphDm/WcbnuWLxxb+GcvSIIA5NjUw6F8Tex7s5/LM2yDy8RqYBQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] libc: [musl] '@tailwindcss/oxide-linux-x64-gnu@4.1.14': - resolution: - { - integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-02c6JhLPJj10L2caH4U0zF8Hji4dOeahmuMl23stk0MU1wfd1OraE7rOloidSF8W5JTHkFdVo/O7uRUJJnUAJg==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [glibc] '@tailwindcss/oxide-linux-x64-musl@4.1.14': - resolution: - { - integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-TNGeLiN1XS66kQhxHG/7wMeQDOoL0S33x9BgmydbrWAb9Qw0KYdd8o1ifx4HOGDWhVmJ+Ul+JQ7lyknQFilO3Q==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] libc: [musl] '@tailwindcss/oxide-wasm32-wasi@4.1.14': - resolution: - { - integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ== - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-uZYAsaW/jS/IYkd6EWPJKW/NlPNSkWkBlaeVBi/WsFQNP05/bzkebUL8FH1pdsqx4f2fH/bWFcUABOM9nfiJkQ==} + engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: - '@napi-rs/wasm-runtime' @@ -1609,264 +1228,222 @@ packages: - tslib '@tailwindcss/oxide-win32-arm64-msvc@4.1.14': - resolution: - { - integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-Az0RnnkcvRqsuoLH2Z4n3JfAef0wElgzHD5Aky/e+0tBUxUhIeIqFBTMNQvmMRSP15fWwmvjBxZ3Q8RhsDnxAA==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@tailwindcss/oxide-win32-x64-msvc@4.1.14': - resolution: - { - integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-ttblVGHgf68kEE4om1n/n44I0yGPkCPbLsqzjvybhpwa6mKKtgFfAzy6btc3HRmuW7nHe0OOrSeNP9sQmmH9XA==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] '@tailwindcss/oxide@4.1.14': - resolution: - { - integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-23yx+VUbBwCg2x5XWdB8+1lkPajzLmALEfMb51zZUBYaYVPDQvBSD/WYDqiVyBIo2BZFa3yw1Rpy3G2Jp+K0dw==} + engines: {node: '>= 10'} '@tailwindcss/vite@4.1.14': - resolution: - { - integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA== - } + resolution: {integrity: sha512-BoFUoU0XqgCUS1UXWhmDJroKKhNXeDzD7/XwabjkDIAbMnc4ULn5e2FuEuBbhZ6ENZoSYzKlzvZ44Yr6EUDUSA==} peerDependencies: vite: ^5.2.0 || ^6 || ^7 '@transloadit/prettier-bytes@0.0.7': - resolution: - { - integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA== - } + resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==} + + '@types/codemirror@5.60.17': + resolution: {integrity: sha512-AZq2FIsUHVMlp7VSe2hTfl5w4pcUkoFkM3zVsRKsn1ca8CXRDYvnin04+HP2REkwsxemuHqvDofdlhUWNpbwfw==} '@types/conventional-commits-parser@5.0.1': - resolution: - { - integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ== - } + resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==} + + '@types/dagre@0.7.54': + resolution: {integrity: sha512-QjcRY+adGbYvBFS7cwv5txhVIwX1XXIUswWl+kSQTbI6NjgZydrZkEKX/etzVd7i+bCsCb40Z/xlBY5eoFuvWQ==} + + '@types/dompurify@3.2.0': + resolution: {integrity: sha512-Fgg31wv9QbLDA0SpTOXO3MaxySc4DKGLi8sna4/Utjo4r3ZRPdCt4UQee8BWr+Q5z21yifghREPJGYaEOEIACg==} + deprecated: This is a stub types definition. dompurify provides its own type definitions, so you do not need this installed. '@types/estree@1.0.8': - resolution: - { - integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - } + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/event-emitter@0.3.5': - resolution: - { - integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ== - } + resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==} + + '@types/file-saver@2.0.7': + resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==} '@types/json-schema@7.0.15': - resolution: - { - integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - } + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} '@types/lodash-es@4.17.12': - resolution: - { - integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ== - } + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} '@types/lodash@4.17.20': - resolution: - { - integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA== - } + resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/node@14.18.63': + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} '@types/node@24.8.1': - resolution: - { - integrity: sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q== - } + resolution: {integrity: sha512-alv65KGRadQVfVcG69MuB4IzdYVpRwMG/mq8KWOaoOdyY617P5ivaDiMCGOFDWD2sAn5Q0mR3mRtUOgm99hL9Q==} + + '@types/nprogress@0.2.3': + resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} + + '@types/path-browserify@1.0.3': + resolution: {integrity: sha512-ZmHivEbNCBtAfcrFeBCiTjdIc2dey0l7oCGNGpSuRTy8jP6UVND7oUowlvDujBy8r2Hoa8bfFUOCiPWfmtkfxw==} + + '@types/qs@6.15.0': + resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==} '@types/sortablejs@1.15.8': - resolution: - { - integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg== - } + resolution: {integrity: sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg==} + + '@types/tern@0.23.9': + resolution: {integrity: sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} '@types/web-bluetooth@0.0.16': - resolution: - { - integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ== - } + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} '@types/web-bluetooth@0.0.21': - resolution: - { - integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== - } + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} '@typescript-eslint/eslint-plugin@8.44.1': - resolution: - { - integrity: sha512-molgphGqOBT7t4YKCSkbasmu1tb1MgrZ2szGzHbclF7PNmOkSTQVHy+2jXOSnxvR3+Xe1yySHFZoqMpz3TfQsw== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-molgphGqOBT7t4YKCSkbasmu1tb1MgrZ2szGzHbclF7PNmOkSTQVHy+2jXOSnxvR3+Xe1yySHFZoqMpz3TfQsw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.44.1 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/parser@8.44.1': - resolution: - { - integrity: sha512-EHrrEsyhOhxYt8MTg4zTF+DJMuNBzWwgvvOYNj/zm1vnaD/IC5zCXFehZv94Piqa2cRFfXrTFxIvO95L7Qc/cw== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-EHrrEsyhOhxYt8MTg4zTF+DJMuNBzWwgvvOYNj/zm1vnaD/IC5zCXFehZv94Piqa2cRFfXrTFxIvO95L7Qc/cw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/project-service@8.44.1': - resolution: - { - integrity: sha512-ycSa60eGg8GWAkVsKV4E6Nz33h+HjTXbsDT4FILyL8Obk5/mx4tbvCNsLf9zret3ipSumAOG89UcCs/KRaKYrA== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-ycSa60eGg8GWAkVsKV4E6Nz33h+HjTXbsDT4FILyL8Obk5/mx4tbvCNsLf9zret3ipSumAOG89UcCs/KRaKYrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/scope-manager@8.44.1': - resolution: - { - integrity: sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-NdhWHgmynpSvyhchGLXh+w12OMT308Gm25JoRIyTZqEbApiBiQHD/8xgb6LqCWCFcxFtWwaVdFsLPQI3jvhywg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/tsconfig-utils@8.44.1': - resolution: - { - integrity: sha512-B5OyACouEjuIvof3o86lRMvyDsFwZm+4fBOqFHccIctYgBjqR3qT39FBYGN87khcgf0ExpdCBeGKpKRhSFTjKQ== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-B5OyACouEjuIvof3o86lRMvyDsFwZm+4fBOqFHccIctYgBjqR3qT39FBYGN87khcgf0ExpdCBeGKpKRhSFTjKQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/type-utils@8.44.1': - resolution: - { - integrity: sha512-KdEerZqHWXsRNKjF9NYswNISnFzXfXNDfPxoTh7tqohU/PRIbwTmsjGK6V9/RTYWau7NZvfo52lgVk+sJh0K3g== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-KdEerZqHWXsRNKjF9NYswNISnFzXfXNDfPxoTh7tqohU/PRIbwTmsjGK6V9/RTYWau7NZvfo52lgVk+sJh0K3g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/types@8.44.1': - resolution: - { - integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-Lk7uj7y9uQUOEguiDIDLYLJOrYHQa7oBiURYVFqIpGxclAFQ78f6VUOM8lI2XEuNOKNB7XuvM2+2cMXAoq4ALQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.44.1': - resolution: - { - integrity: sha512-qnQJ+mVa7szevdEyvfItbO5Vo+GfZ4/GZWWDRRLjrxYPkhM+6zYB2vRYwCsoJLzqFCdZT4mEqyJoyzkunsZ96A== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-qnQJ+mVa7szevdEyvfItbO5Vo+GfZ4/GZWWDRRLjrxYPkhM+6zYB2vRYwCsoJLzqFCdZT4mEqyJoyzkunsZ96A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/utils@8.44.1': - resolution: - { - integrity: sha512-DpX5Fp6edTlocMCwA+mHY8Mra+pPjRZ0TfHkXI8QFelIKcbADQz1LUPNtzOFUriBB2UYqw4Pi9+xV4w9ZczHFg== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-DpX5Fp6edTlocMCwA+mHY8Mra+pPjRZ0TfHkXI8QFelIKcbADQz1LUPNtzOFUriBB2UYqw4Pi9+xV4w9ZczHFg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/visitor-keys@8.44.1': - resolution: - { - integrity: sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-576+u0QD+Jp3tZzvfRfxon0EA2lzcDt3lhUbsC6Lgzy9x2VR4E+JUiNyGHi5T8vk0TV+fpJ5GLG1JsJuWCaKhw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@uppy/companion-client@2.2.2': - resolution: - { - integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og== - } + resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==} '@uppy/core@2.3.4': - resolution: - { - integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ== - } + resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==} '@uppy/store-default@2.1.1': - resolution: - { - integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ== - } + resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==} '@uppy/utils@4.1.3': - resolution: - { - integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw== - } + resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==} '@uppy/xhr-upload@2.1.3': - resolution: - { - integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ== - } + resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==} peerDependencies: '@uppy/core': ^2.3.3 '@vitejs/plugin-vue@6.0.1': - resolution: - { - integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw== - } - engines: { node: ^20.19.0 || >=22.12.0 } + resolution: {integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==} + engines: {node: ^20.19.0 || >=22.12.0} peerDependencies: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 vue: ^3.2.25 - '@volar/language-core@2.4.23': - resolution: - { - integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ== - } + '@volar/language-core@2.4.15': + resolution: {integrity: sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==} - '@volar/source-map@2.4.23': - resolution: - { - integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q== - } + '@volar/source-map@2.4.15': + resolution: {integrity: sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==} - '@volar/typescript@2.4.23': - resolution: - { - integrity: sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag== - } + '@volar/typescript@2.4.15': + resolution: {integrity: sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==} + + '@vue-flow/background@1.3.2': + resolution: {integrity: sha512-eJPhDcLj1wEo45bBoqTXw1uhl0yK2RaQGnEINqvvBsAFKh/camHJd5NPmOdS1w+M9lggc9igUewxaEd3iCQX2w==} + peerDependencies: + '@vue-flow/core': ^1.23.0 + vue: ^3.3.0 + + '@vue-flow/controls@1.1.3': + resolution: {integrity: sha512-XCf+G+jCvaWURdFlZmOjifZGw3XMhN5hHlfMGkWh9xot+9nH9gdTZtn+ldIJKtarg3B21iyHU8JjKDhYcB6JMw==} + peerDependencies: + '@vue-flow/core': ^1.23.0 + vue: ^3.3.0 + + '@vue-flow/core@1.48.2': + resolution: {integrity: sha512-raxhgKWE+G/mcEvXJjGFUDYW9rAI3GOtiHR3ZkNpwBWuIaCC1EYiBmKGwJOoNzVFgwO7COgErnK7i08i287AFA==} + peerDependencies: + vue: ^3.3.0 + + '@vue-flow/minimap@1.5.4': + resolution: {integrity: sha512-l4C+XTAXnRxsRpUdN7cAVFBennC1sVRzq4bDSpVK+ag7tdMczAnhFYGgbLkUw3v3sY6gokyWwMl8CDonp8eB2g==} + peerDependencies: + '@vue-flow/core': ^1.23.0 + vue: ^3.3.0 '@vue/babel-helper-vue-transform-on@1.5.0': - resolution: - { - integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA== - } + resolution: {integrity: sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==} '@vue/babel-plugin-jsx@1.5.0': - resolution: - { - integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw== - } + resolution: {integrity: sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==} peerDependencies: '@babel/core': ^7.0.0-0 peerDependenciesMeta: @@ -1874,80 +1451,44 @@ packages: optional: true '@vue/babel-plugin-resolve-type@1.5.0': - resolution: - { - integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w== - } + resolution: {integrity: sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==} peerDependencies: '@babel/core': ^7.0.0-0 '@vue/compiler-core@3.5.22': - resolution: - { - integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ== - } + resolution: {integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==} '@vue/compiler-dom@3.5.22': - resolution: - { - integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA== - } + resolution: {integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==} '@vue/compiler-sfc@3.5.22': - resolution: - { - integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ== - } + resolution: {integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==} '@vue/compiler-ssr@3.5.22': - resolution: - { - integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww== - } + resolution: {integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==} '@vue/compiler-vue2@2.7.16': - resolution: - { - integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A== - } + resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} '@vue/devtools-api@6.6.4': - resolution: - { - integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== - } + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} '@vue/devtools-api@7.7.7': - resolution: - { - integrity: sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg== - } + resolution: {integrity: sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==} '@vue/devtools-core@7.7.7': - resolution: - { - integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ== - } + resolution: {integrity: sha512-9z9TLbfC+AjAi1PQyWX+OErjIaJmdFlbDHcD+cAMYKY6Bh5VlsAtCeGyRMrXwIlMEQPukvnWt3gZBLwTAIMKzQ==} peerDependencies: vue: ^3.0.0 '@vue/devtools-kit@7.7.7': - resolution: - { - integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA== - } + resolution: {integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==} '@vue/devtools-shared@7.7.7': - resolution: - { - integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw== - } + resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==} - '@vue/language-core@2.1.10': - resolution: - { - integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ== - } + '@vue/language-core@2.2.12': + resolution: {integrity: sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1955,745 +1496,541 @@ packages: optional: true '@vue/reactivity@3.5.22': - resolution: - { - integrity: sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A== - } + resolution: {integrity: sha512-f2Wux4v/Z2pqc9+4SmgZC1p73Z53fyD90NFWXiX9AKVnVBEvLFOWCEgJD3GdGnlxPZt01PSlfmLqbLYzY/Fw4A==} '@vue/runtime-core@3.5.22': - resolution: - { - integrity: sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ== - } + resolution: {integrity: sha512-EHo4W/eiYeAzRTN5PCextDUZ0dMs9I8mQ2Fy+OkzvRPUYQEyK9yAjbasrMCXbLNhF7P0OUyivLjIy0yc6VrLJQ==} '@vue/runtime-dom@3.5.22': - resolution: - { - integrity: sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww== - } + resolution: {integrity: sha512-Av60jsryAkI023PlN7LsqrfPvwfxOd2yAwtReCjeuugTJTkgrksYJJstg1e12qle0NarkfhfFu1ox2D+cQotww==} '@vue/server-renderer@3.5.22': - resolution: - { - integrity: sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ== - } + resolution: {integrity: sha512-gXjo+ao0oHYTSswF+a3KRHZ1WszxIqO7u6XwNHqcqb9JfyIL/pbWrrh/xLv7jeDqla9u+LK7yfZKHih1e1RKAQ==} peerDependencies: vue: 3.5.22 '@vue/shared@3.5.22': - resolution: - { - integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w== - } + resolution: {integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==} + + '@vueuse/core@10.11.1': + resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} '@vueuse/core@13.9.0': - resolution: - { - integrity: sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA== - } + resolution: {integrity: sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==} peerDependencies: vue: ^3.5.0 '@vueuse/core@9.13.0': - resolution: - { - integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw== - } + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + + '@vueuse/metadata@10.11.1': + resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==} '@vueuse/metadata@13.9.0': - resolution: - { - integrity: sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg== - } + resolution: {integrity: sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==} '@vueuse/metadata@9.13.0': - resolution: - { - integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ== - } + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + + '@vueuse/shared@10.11.1': + resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==} '@vueuse/shared@13.9.0': - resolution: - { - integrity: sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g== - } + resolution: {integrity: sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==} peerDependencies: vue: ^3.5.0 '@vueuse/shared@9.13.0': - resolution: - { - integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw== - } + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} - '@wangeditor/basic-modules@1.1.7': - resolution: - { - integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg== - } + '@wangeditor-next/basic-modules@2.0.0': + resolution: {integrity: sha512-oH7Cv6mHorvBkj5t3isP9wncgWABYLlQpoQZYOIFtWVwgsQatwoGVFHF6PoJzz+mTkt5UaJcyfDxFSo9Thvhdw==} peerDependencies: - '@wangeditor/core': 1.x - dom7: ^3.0.0 + '@wangeditor-next/core': 1.8.0 + dom7: ^3.0.0 || ^4.0.0 lodash.throttle: ^4.1.1 - nanoid: ^3.2.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 + nanoid: ^5.0.0 + slate: ^0.123.0 + snabbdom: ^3.6.0 - '@wangeditor/code-highlight@1.0.3': - resolution: - { - integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw== - } + '@wangeditor-next/code-highlight@2.0.0': + resolution: {integrity: sha512-A0m4KghOK+9jyufSBidTAtva5VssC2zW3oYItRdMi75p3WV8Kqb67q0kUeFcDzlm9H+IvXzwvSnQ8xl6Zk07nw==} peerDependencies: - '@wangeditor/core': 1.x - dom7: ^3.0.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 + '@wangeditor-next/core': 1.8.0 + dom7: ^3.0.0 || ^4.0.0 + slate: ^0.123.0 + snabbdom: ^3.6.0 - '@wangeditor/core@1.1.19': - resolution: - { - integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q== - } + '@wangeditor-next/core@1.8.0': + resolution: {integrity: sha512-U2TlQ0Lpo6aLb0KD8oJgzG/rFAYO61cy+qbZu+t5lDfS3CECNjOhGIC3C7/dXIhiMQ8V/LY4cvrPt9R5G4vLjA==} peerDependencies: '@uppy/core': ^2.1.1 '@uppy/xhr-upload': ^2.0.3 - dom7: ^3.0.0 + dom7: ^3.0.0 || ^4.0.0 is-hotkey: ^0.2.0 lodash.camelcase: ^4.3.0 lodash.clonedeep: ^4.5.0 lodash.debounce: ^4.0.8 lodash.foreach: ^4.5.0 - lodash.isequal: ^4.5.0 lodash.throttle: ^4.1.1 lodash.toarray: ^4.4.0 - nanoid: ^3.2.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 + nanoid: ^5.0.0 + slate: ^0.123.0 + snabbdom: ^3.6.0 - '@wangeditor/editor-for-vue@5.1.12': - resolution: - { - integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ== - } + '@wangeditor-next/editor-for-vue@5.1.14': + resolution: {integrity: sha512-Xkrdo590AhLHvzyR+U246t6T89nIWHz1weAgMuo8jEA2HS5RiUnsA4U6+iUGaQ2E5c8mYQaeNqzHQXUp9Okbiw==} peerDependencies: - '@wangeditor/editor': '>=5.1.0' + '@wangeditor-next/editor': '>=5.1.0' vue: ^3.0.5 - '@wangeditor/editor@5.1.23': - resolution: - { - integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ== - } + '@wangeditor-next/editor@5.7.0': + resolution: {integrity: sha512-bxkw/TeWBJz7AU4qXZnx5tx/s1yzx8XdLmSRN9ev4btArKnfXR/6hr3dqxUSsyea8q//IpEv1qr9tc2ureEAsA==} - '@wangeditor/list-module@1.0.5': - resolution: - { - integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ== - } + '@wangeditor-next/list-module@2.0.0': + resolution: {integrity: sha512-n7WruLV9VQxBFbav/pwWS+n5rsANqmEhVINwtngTSbScD/tDYRtLJ95SGKPU3gtBR9KHd06yEnXEgG3Pmy7A4A==} peerDependencies: - '@wangeditor/core': 1.x - dom7: ^3.0.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 + '@wangeditor-next/core': 1.8.0 + dom7: ^3.0.0 || ^4.0.0 + slate: ^0.123.0 + snabbdom: ^3.6.0 - '@wangeditor/table-module@1.1.4': - resolution: - { - integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w== - } + '@wangeditor-next/table-module@2.0.0': + resolution: {integrity: sha512-uOj0QA6Esb/T75cCGYWByWDRX/i8EBYIJq0tNOhGxufKQVAS9/D8QshTKQpKniS1AR2PaZg4BEPkn6+QuipKTw==} peerDependencies: - '@wangeditor/core': 1.x - dom7: ^3.0.0 - lodash.isequal: ^4.5.0 + '@wangeditor-next/core': 1.8.0 + dom7: ^3.0.0 || ^4.0.0 + lodash.debounce: ^4.0.8 lodash.throttle: ^4.1.1 - nanoid: ^3.2.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 + nanoid: ^5.0.0 + slate: ^0.123.0 + snabbdom: ^3.6.0 - '@wangeditor/upload-image-module@1.0.2': - resolution: - { - integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA== - } + '@wangeditor-next/upload-image-module@2.0.0': + resolution: {integrity: sha512-mAZjCEpANWYmAZ1xkdda25AT+BMvEUqY5F3WHMB0zg3yPqUtzMv7FN1dpLl1ujErpnX+CdkL0iwon7nejpymjw==} peerDependencies: '@uppy/core': ^2.0.3 '@uppy/xhr-upload': ^2.0.3 - '@wangeditor/basic-modules': 1.x - '@wangeditor/core': 1.x - dom7: ^3.0.0 + '@wangeditor-next/basic-modules': 2.0.0 + '@wangeditor-next/core': 1.8.0 + dom7: ^3.0.0 || ^4.0.0 lodash.foreach: ^4.5.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 + slate: ^0.123.0 + snabbdom: ^3.6.0 - '@wangeditor/video-module@1.1.4': - resolution: - { - integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg== - } + '@wangeditor-next/video-module@2.0.0': + resolution: {integrity: sha512-M21rIXlQ41rb5mjAlzEuZB9mRDDrNSsj8EmJBzAwKStEGpJhzMC44HCOFtzbRvh2W3J5mGAPXXWbdHGknxDa6g==} peerDependencies: '@uppy/core': ^2.1.4 '@uppy/xhr-upload': ^2.0.7 - '@wangeditor/core': 1.x - dom7: ^3.0.0 - nanoid: ^3.2.0 - slate: ^0.72.0 - snabbdom: ^3.1.0 + '@wangeditor-next/core': 1.8.0 + dom7: ^3.0.0 || ^4.0.0 + nanoid: ^5.0.0 + slate: ^0.123.0 + snabbdom: ^3.6.0 JSONStream@1.3.5: - resolution: - { - integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - } + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + acorn-jsx@5.3.2: - resolution: - { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - } + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn@8.15.0: - resolution: - { - integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== - } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} hasBin: true adler-32@1.3.1: - resolution: - { - integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==} + engines: {node: '>=0.8'} ajv@6.12.6: - resolution: - { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - } + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} ajv@8.17.1: - resolution: - { - integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== - } + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - alien-signals@0.2.2: - resolution: - { - integrity: sha512-cZIRkbERILsBOXTQmMrxc9hgpxglstn69zm+F1ARf4aPAzdAFYd6sBq87ErO0Fj3DV94tglcyHG5kQz9nDC/8A== - } + alien-signals@1.0.13: + resolution: {integrity: sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==} + + animate.css@4.1.1: + resolution: {integrity: sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ==} ansi-escapes@4.3.2: - resolution: - { - integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} ansi-escapes@7.1.1: - resolution: - { - integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==} + engines: {node: '>=18'} ansi-regex@5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} ansi-regex@6.2.2: - resolution: - { - integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} ansi-styles@3.2.1: - resolution: - { - integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - } - engines: { node: '>=4' } + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} ansi-styles@4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} ansi-styles@6.2.3: - resolution: - { - integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} anymatch@3.1.3: - resolution: - { - integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + + archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + + archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} argparse@2.0.1: - resolution: - { - integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - } + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} array-ify@1.0.0: - resolution: - { - integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== - } + resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} array-union@2.1.0: - resolution: - { - integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} astral-regex@2.0.0: - resolution: - { - integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} async-validator@4.2.5: - resolution: - { - integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== - } + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} asynckit@0.4.0: - resolution: - { - integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - } + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} at-least-node@1.0.0: - resolution: - { - integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + autoprefixer@10.5.0: + resolution: {integrity: sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 axios@1.12.2: - resolution: - { - integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw== - } + resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} balanced-match@1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - } + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} balanced-match@2.0.0: - resolution: - { - integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA== - } + resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==} base64-js@1.5.1: - resolution: - { - integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - } + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + baseline-browser-mapping@2.10.25: + resolution: {integrity: sha512-QO/VHsXCQdnzADMfmkeOPvHdIAkoB7i0/rGjINPJEetLx75hNttVWGQ/jycHUDP9zZ9rupbm60WRxcwViB0MiA==} + engines: {node: '>=6.0.0'} + hasBin: true baseline-browser-mapping@2.8.8: - resolution: - { - integrity: sha512-be0PUaPsQX/gPWWgFsdD+GFzaoig5PXaUC1xLkQiYdDnANU8sMnHoQd8JhbJQuvTWrWLyeFN9Imb5Qtfvr4RrQ== - } + resolution: {integrity: sha512-be0PUaPsQX/gPWWgFsdD+GFzaoig5PXaUC1xLkQiYdDnANU8sMnHoQd8JhbJQuvTWrWLyeFN9Imb5Qtfvr4RrQ==} hasBin: true + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + binary-extensions@2.3.0: - resolution: - { - integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + binary@0.3.0: + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} birpc@2.6.1: - resolution: - { - integrity: sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ== - } + resolution: {integrity: sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==} bl@4.1.0: - resolution: - { - integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - } + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + bluebird@3.4.7: + resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==} boolbase@1.0.0: - resolution: - { - integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - } + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} brace-expansion@1.1.12: - resolution: - { - integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== - } + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} brace-expansion@2.0.2: - resolution: - { - integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== - } + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} braces@3.0.3: - resolution: - { - integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} browserslist@4.26.2: - resolution: - { - integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A== - } - engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-from@1.1.2: - resolution: - { - integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - } + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer-indexof-polyfill@1.0.2: + resolution: {integrity: sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==} + engines: {node: '>=0.10'} buffer@5.7.1: - resolution: - { - integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - } + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffers@0.1.1: + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} + engines: {node: '>=0.2.0'} bundle-name@4.1.0: - resolution: - { - integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} - cacheable@2.0.2: - resolution: - { - integrity: sha512-dWjhLx8RWnPsAWVKwW/wI6OJpQ/hSVb1qS0NUif8TR9vRiSwci7Gey8x04kRU9iAF+Rnbtex5Kjjfg/aB5w8Pg== - } + cacheable@2.3.4: + resolution: {integrity: sha512-djgxybDbw9fL/ZWMI3+CE8ZilNxcwFkVtDc1gJ+IlOSSWkSMPQabhV/XCHTQ6pwwN6aivXPZ43omTooZiX06Ew==} cachedir@2.3.0: - resolution: - { - integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} + engines: {node: '>=6'} call-bind-apply-helpers@1.0.2: - resolution: - { - integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} callsites@3.1.0: - resolution: - { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} caniuse-lite@1.0.30001745: - resolution: - { - integrity: sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ== - } + resolution: {integrity: sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==} + + caniuse-lite@1.0.30001791: + resolution: {integrity: sha512-yk0l/YSrOnFZk3UROpDLQD9+kC1l4meK/wed583AXrzoarMGJcbRi2Q4RaUYbKxYAsZ8sWmaSa/DsLmdBeI1vQ==} cfb@1.2.2: - resolution: - { - integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==} + engines: {node: '>=0.8'} + + chainsaw@0.1.0: + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} chalk@2.4.2: - resolution: - { - integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - } - engines: { node: '>=4' } + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} chalk@4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} chalk@5.6.2: - resolution: - { - integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== - } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} chardet@0.7.0: - resolution: - { - integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - } + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} chokidar@3.6.0: - resolution: - { - integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - } - engines: { node: '>= 8.10.0' } + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} chokidar@4.0.3: - resolution: - { - integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== - } - engines: { node: '>= 14.16.0' } + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} chownr@3.0.0: - resolution: - { - integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} cli-cursor@3.1.0: - resolution: - { - integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} cli-cursor@5.0.0: - resolution: - { - integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} cli-spinners@2.9.2: - resolution: - { - integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} cli-truncate@4.0.0: - resolution: - { - integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} cli-width@3.0.0: - resolution: - { - integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} + + clipboard@2.0.11: + resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==} cliui@8.0.1: - resolution: - { - integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} clone@1.0.4: - resolution: - { - integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + codemirror-editor-vue3@2.8.0: + resolution: {integrity: sha512-ebYGNhBpLmQNLguXzNyMMkn6K8v3lcS5/Ncvdn6YS4bLGEHE67MfsJIS/WV0L7I6WavUuFlY/Rs/AJKChIwSwg==} + peerDependencies: + codemirror: ^5 + diff-match-patch: ^1.0.5 + vue: ^3.x + + codemirror@5.65.21: + resolution: {integrity: sha512-6teYk0bA0nR3QP0ihGMoxuKzpl5W80FpnHpBJpgy66NK3cZv5b/d/HY8PnRvfSsCG1MTfr92u2WUl+wT0E40mQ==} codepage@1.15.0: - resolution: - { - integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==} + engines: {node: '>=0.8'} color-convert@1.9.3: - resolution: - { - integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - } + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} color-convert@2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - } - engines: { node: '>=7.0.0' } + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} color-name@1.1.3: - resolution: - { - integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - } + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} color-name@1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - } + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} colord@2.9.3: - resolution: - { - integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== - } + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} colorette@2.0.20: - resolution: - { - integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== - } + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} combined-stream@1.0.8: - resolution: - { - integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} commander@13.1.0: - resolution: - { - integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} commander@2.20.3: - resolution: - { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - } + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} commitizen@4.3.1: - resolution: - { - integrity: sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw== - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-gwAPAVTy/j5YcOOebcCRIijn+mSjWJC+IYKivTu6aG8Ei/scoXgfsMRnuAk6b0GRste2J4NGxVdMN3ZpfNaVaw==} + engines: {node: '>= 12'} hasBin: true compare-func@2.0.0: - resolution: - { - integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== - } + resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - compute-scroll-into-view@1.0.20: - resolution: - { - integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== - } + compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + + compute-scroll-into-view@3.1.1: + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} concat-map@0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - } + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} confbox@0.1.8: - resolution: - { - integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== - } + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} confbox@0.2.2: - resolution: - { - integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ== - } + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + + config-chain@1.1.13: + resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} conventional-changelog-angular@7.0.0: - resolution: - { - integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== - } - engines: { node: '>=16' } + resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} + engines: {node: '>=16'} conventional-changelog-conventionalcommits@7.0.2: - resolution: - { - integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w== - } - engines: { node: '>=16' } + resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==} + engines: {node: '>=16'} conventional-commit-types@3.0.0: - resolution: - { - integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg== - } + resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} conventional-commits-parser@5.0.0: - resolution: - { - integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA== - } - engines: { node: '>=16' } + resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==} + engines: {node: '>=16'} hasBin: true convert-source-map@2.0.0: - resolution: - { - integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - } + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} copy-anything@3.0.5: - resolution: - { - integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== - } - engines: { node: '>=12.13' } + resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} + engines: {node: '>=12.13'} core-js@3.45.1: - resolution: - { - integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg== - } + resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} cosmiconfig-typescript-loader@6.1.0: - resolution: - { - integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g== - } - engines: { node: '>=v18' } + resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==} + engines: {node: '>=v18'} peerDependencies: '@types/node': '*' cosmiconfig: '>=9' typescript: '>=5' cosmiconfig@9.0.0: - resolution: - { - integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== - } - engines: { node: '>=14' } + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' peerDependenciesMeta: @@ -2701,106 +2038,106 @@ packages: optional: true crc-32@1.2.2: - resolution: - { - integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} hasBin: true + crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + cross-spawn@7.0.6: - resolution: - { - integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} crypto-js@4.2.0: - resolution: - { - integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== - } + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} css-functions-list@3.2.3: - resolution: - { - integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA== - } - engines: { node: '>=12 || >=16' } + resolution: {integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==} + engines: {node: '>=12 || >=16'} css-tree@3.1.0: - resolution: - { - integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w== - } - engines: { node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0 } + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} cssesc@3.0.0: - resolution: - { - integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - } - engines: { node: '>=4' } + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} hasBin: true csstype@3.1.3: - resolution: - { - integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== - } + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} cz-conventional-changelog@3.3.0: - resolution: - { - integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw== - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} + engines: {node: '>= 10'} cz-git@1.12.0: - resolution: - { - integrity: sha512-LaZ+8whPPUOo6Y0Zy4nIbf6JOleV3ejp41sT6N4RPKiKKA+ICWf4ueeIlxIO8b6JtdlDxRzHH/EcRji07nDxcg== - } - engines: { node: '>=v12.20.0' } + resolution: {integrity: sha512-LaZ+8whPPUOo6Y0Zy4nIbf6JOleV3ejp41sT6N4RPKiKKA+ICWf4ueeIlxIO8b6JtdlDxRzHH/EcRji07nDxcg==} + engines: {node: '>=v12.20.0'} + + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} + + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} + + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} d@1.0.2: - resolution: - { - integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== - } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==} + engines: {node: '>=0.12'} + + dagre@0.8.5: + resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==} danmu.js@1.1.13: - resolution: - { - integrity: sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg== - } + resolution: {integrity: sha512-knFd0/cB2HA4FFWiA7eB2suc5vCvoHdqio33FyyCSfP7C+1A+zQcTvnvwfxaZhrxsGj4qaQI2I8XiTqedRaVmg==} dargs@8.1.0: - resolution: - { - integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} + engines: {node: '>=12'} dayjs@1.11.18: - resolution: - { - integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA== - } + resolution: {integrity: sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==} de-indent@1.0.2: - resolution: - { - integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== - } + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} debug@4.4.3: - resolution: - { - integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -2808,352 +2145,222 @@ packages: optional: true dedent@0.7.0: - resolution: - { - integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - } + resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} deep-is@0.1.4: - resolution: - { - integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - } + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} deep-pick-omit@1.2.1: - resolution: - { - integrity: sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw== - } + resolution: {integrity: sha512-2J6Kc/m3irCeqVG42T+SaUMesaK7oGWaedGnQQK/+O0gYc+2SP5bKh/KKTE7d7SJ+GCA9UUE1GRzh6oDe0EnGw==} default-browser-id@5.0.0: - resolution: - { - integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} default-browser@5.2.1: - resolution: - { - integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} defaults@1.0.4: - resolution: - { - integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== - } + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} define-lazy-prop@2.0.0: - resolution: - { - integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} define-lazy-prop@3.0.0: - resolution: - { - integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} defu@6.1.4: - resolution: - { - integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== - } + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} delayed-stream@1.0.0: - resolution: - { - integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} delegate@3.2.0: - resolution: - { - integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== - } + resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==} destr@2.0.5: - resolution: - { - integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== - } + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} detect-file@1.0.0: - resolution: - { - integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} + engines: {node: '>=0.10.0'} detect-indent@6.1.0: - resolution: - { - integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} detect-libc@1.0.3: - resolution: - { - integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} hasBin: true detect-libc@2.1.2: - resolution: - { - integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + diff-match-patch@1.0.5: + resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} dir-glob@3.0.1: - resolution: - { - integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} dom-serializer@2.0.0: - resolution: - { - integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - } + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} - dom7@3.0.0: - resolution: - { - integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g== - } + dom7@4.0.6: + resolution: {integrity: sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==} domelementtype@2.3.0: - resolution: - { - integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - } + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} domhandler@5.0.3: - resolution: - { - integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + dompurify@3.4.2: + resolution: {integrity: sha512-lHeS9SA/IKeIFFyYciHBr2n0v1VMPlSj843HdLOwjb2OxNwdq9Xykxqhk+FE42MzAdHvInbAolSE4mhahPpjXA==} domutils@3.2.2: - resolution: - { - integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== - } + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} dot-prop@5.3.0: - resolution: - { - integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} downloadjs@1.4.7: - resolution: - { - integrity: sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q== - } + resolution: {integrity: sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==} dunder-proto@1.0.1: - resolution: - { - integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer2@0.1.4: + resolution: {integrity: sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} echarts@6.0.0: - resolution: - { - integrity: sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ== - } + resolution: {integrity: sha512-Tte/grDQRiETQP4xz3iZWSvoHrkCQtwqd6hs+mifXcjrCuo2iKWbajFObuLJVBlDIJlOzgQPd1hsaKt/3+OMkQ==} + + editorconfig@1.0.7: + resolution: {integrity: sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw==} + engines: {node: '>=14'} + hasBin: true electron-to-chromium@1.5.227: - resolution: - { - integrity: sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA== - } + resolution: {integrity: sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA==} + + electron-to-chromium@1.5.348: + resolution: {integrity: sha512-QC2X59nRlycQQMc4ZXjSVBX+tSgJfgRtcrYHbIZLgOV2dCvefoQGegLR7lLXKgpPpSuVmJU19LMzGrSa2C7k3Q==} element-plus@2.11.4: - resolution: - { - integrity: sha512-sLq+Ypd0cIVilv8wGGMEGvzRVBBsRpJjnAS5PsI/1JU1COZXqzH3N1UYMUc/HCdvdjf6dfrBy80Sj7KcACsT7w== - } + resolution: {integrity: sha512-sLq+Ypd0cIVilv8wGGMEGvzRVBBsRpJjnAS5PsI/1JU1COZXqzH3N1UYMUc/HCdvdjf6dfrBy80Sj7KcACsT7w==} peerDependencies: vue: ^3.2.0 emoji-regex@10.5.0: - resolution: - { - integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg== - } + resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} emoji-regex@8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - } + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} enhanced-resolve@5.18.3: - resolution: - { - integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww== - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} entities@4.5.0: - resolution: - { - integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} env-paths@2.2.1: - resolution: - { - integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} environment@1.1.0: - resolution: - { - integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} error-ex@1.3.4: - resolution: - { - integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== - } + resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} error-stack-parser-es@0.1.5: - resolution: - { - integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg== - } + resolution: {integrity: sha512-xHku1X40RO+fO8yJ8Wh2f2rZWVjqyhb1zgq1yZ8aZRQkv6OOKhKWRUaht3eSCUbAOBaKIgM+ykwFLE+QUxgGeg==} es-define-property@1.0.1: - resolution: - { - integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} es-errors@1.3.0: - resolution: - { - integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} es-module-lexer@1.7.0: - resolution: - { - integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA== - } + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} es-object-atoms@1.1.1: - resolution: - { - integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: - resolution: - { - integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} es5-ext@0.10.64: - resolution: - { - integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg== - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==} + engines: {node: '>=0.10'} es6-iterator@2.0.3: - resolution: - { - integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== - } + resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==} es6-symbol@3.1.4: - resolution: - { - integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg== - } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==} + engines: {node: '>=0.12'} esbuild@0.25.10: - resolution: - { - integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} + engines: {node: '>=18'} hasBin: true escalade@3.2.0: - resolution: - { - integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} escape-html@1.0.3: - resolution: - { - integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - } + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} escape-string-regexp@1.0.5: - resolution: - { - integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} escape-string-regexp@4.0.0: - resolution: - { - integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} escape-string-regexp@5.0.0: - resolution: - { - integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} - eslint-config-prettier@9.1.2: - resolution: - { - integrity: sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ== - } + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' eslint-plugin-prettier@5.5.4: - resolution: - { - integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg== - } - engines: { node: ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' eslint: '>=8.0.0' @@ -3165,49 +2372,35 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-vue@9.33.0: - resolution: - { - integrity: sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== - } - engines: { node: ^14.17.0 || >=16.0.0 } + eslint-plugin-vue@10.9.0: + resolution: {integrity: sha512-EFNNzu4HqtTRb5DJINpyd+u3bDdzETWDMpCzG+UBHz1tpsnMDCeOcf61u4Wy/cbXnMymK+MT9bjH7KcG1fItSw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-scope@7.2.2: - resolution: - { - integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + vue-eslint-parser: ^10.0.0 + peerDependenciesMeta: + '@stylistic/eslint-plugin': + optional: true + '@typescript-eslint/parser': + optional: true eslint-scope@8.4.0: - resolution: - { - integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint-visitor-keys@3.4.3: - resolution: - { - integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} eslint-visitor-keys@4.2.1: - resolution: - { - integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} eslint@9.36.0: - resolution: - { - integrity: sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: jiti: '*' @@ -3216,180 +2409,103 @@ packages: optional: true esniff@2.0.1: - resolution: - { - integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg== - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==} + engines: {node: '>=0.10'} espree@10.4.0: - resolution: - { - integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - - espree@9.6.1: - resolution: - { - integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} esquery@1.6.0: - resolution: - { - integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} esrecurse@4.3.0: - resolution: - { - integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} estraverse@5.3.0: - resolution: - { - integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} estree-walker@2.0.2: - resolution: - { - integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - } + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} estree-walker@3.0.3: - resolution: - { - integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== - } + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} esutils@2.0.3: - resolution: - { - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} event-emitter@0.3.5: - resolution: - { - integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA== - } + resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==} eventemitter3@4.0.7: - resolution: - { - integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - } + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} eventemitter3@5.0.1: - resolution: - { - integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - } + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + exceljs@4.4.0: + resolution: {integrity: sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==} + engines: {node: '>=8.3.0'} execa@8.0.1: - resolution: - { - integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - } - engines: { node: '>=16.17' } + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} execa@9.6.0: - resolution: - { - integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw== - } - engines: { node: ^18.19.0 || >=20.5.0 } + resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==} + engines: {node: ^18.19.0 || >=20.5.0} expand-tilde@2.0.2: - resolution: - { - integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} + engines: {node: '>=0.10.0'} exsolve@1.0.7: - resolution: - { - integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw== - } + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} ext@1.7.0: - resolution: - { - integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== - } + resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==} external-editor@3.1.0: - resolution: - { - integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - } - engines: { node: '>=4' } + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-csv@4.3.6: + resolution: {integrity: sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==} + engines: {node: '>=10.0.0'} fast-deep-equal@3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - } + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-diff@1.3.0: - resolution: - { - integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - } + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} fast-glob@3.3.3: - resolution: - { - integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== - } - engines: { node: '>=8.6.0' } + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: - resolution: - { - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - } + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} fast-levenshtein@2.0.6: - resolution: - { - integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - } + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} fast-uri@3.1.0: - resolution: - { - integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== - } + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} fastest-levenshtein@1.0.16: - resolution: - { - integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== - } - engines: { node: '>= 4.9.1' } + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} fastq@1.19.1: - resolution: - { - integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ== - } + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} fdir@6.5.0: - resolution: - { - integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -3397,1664 +2513,1073 @@ packages: optional: true figures@3.2.0: - resolution: - { - integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} figures@6.1.0: - resolution: - { - integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} - file-entry-cache@10.1.4: - resolution: - { - integrity: sha512-5XRUFc0WTtUbjfGzEwXc42tiGxQHBmtbUG1h9L2apu4SulCGN3Hqm//9D6FAolf8MYNL7f/YlJl9vy08pj5JuA== - } + file-entry-cache@11.1.2: + resolution: {integrity: sha512-N2WFfK12gmrK1c1GXOqiAJ1tc5YE+R53zvQ+t5P8S5XhnmKYVB5eZEiLNZKDSmoG8wqqbF9EXYBBW/nef19log==} file-entry-cache@8.0.0: - resolution: - { - integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== - } - engines: { node: '>=16.0.0' } + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} file-saver@2.0.5: - resolution: - { - integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== - } + resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} fill-range@7.1.1: - resolution: - { - integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} find-node-modules@2.1.3: - resolution: - { - integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg== - } + resolution: {integrity: sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==} find-root@1.1.0: - resolution: - { - integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - } + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} find-up@5.0.0: - resolution: - { - integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} find-up@7.0.0: - resolution: - { - integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} findup-sync@4.0.0: - resolution: - { - integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==} + engines: {node: '>= 8'} flat-cache@4.0.1: - resolution: - { - integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== - } - engines: { node: '>=16' } + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} - flat-cache@6.1.14: - resolution: - { - integrity: sha512-ExZSCSV9e7v/Zt7RzCbX57lY2dnPdxzU/h3UE6WJ6NtEMfwBd8jmi1n4otDEUfz+T/R+zxrFDpICFdjhD3H/zw== - } + flat-cache@6.1.22: + resolution: {integrity: sha512-N2dnzVJIphnNsjHcrxGW7DePckJ6haPrSFqpsBUhHYgwtKGVq4JrBGielEGD2fCVnsGm1zlBVZ8wGhkyuetgug==} flatted@3.3.3: - resolution: - { - integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== - } + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + flatted@3.4.2: + resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} follow-redirects@1.15.11: - resolution: - { - integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} peerDependencies: debug: '*' peerDependenciesMeta: debug: optional: true + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + form-data@4.0.4: - resolution: - { - integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + engines: {node: '>= 6'} frac@1.1.2: - resolution: - { - integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==} + engines: {node: '>=0.8'} + + fraction.js@5.3.4: + resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} fs-extra@10.1.0: - resolution: - { - integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} fs-extra@11.3.2: - resolution: - { - integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A== - } - engines: { node: '>=14.14' } + resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} + engines: {node: '>=14.14'} fs-extra@9.1.0: - resolution: - { - integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} fs.realpath@1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - } + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} fsevents@2.3.3: - resolution: - { - integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + fstream@1.0.12: + resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} + engines: {node: '>=0.6'} + deprecated: This package is no longer supported. + function-bind@1.1.2: - resolution: - { - integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - } + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} gensync@1.0.0-beta.2: - resolution: - { - integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} get-caller-file@2.0.5: - resolution: - { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - } - engines: { node: 6.* || 8.* || >= 10.* } + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} get-east-asian-width@1.4.0: - resolution: - { - integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} + engines: {node: '>=18'} get-intrinsic@1.3.0: - resolution: - { - integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} get-proto@1.0.1: - resolution: - { - integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} get-stream@8.0.1: - resolution: - { - integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - } - engines: { node: '>=16' } + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} get-stream@9.0.1: - resolution: - { - integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} get-tsconfig@4.10.1: - resolution: - { - integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ== - } + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} git-raw-commits@4.0.0: - resolution: - { - integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ== - } - engines: { node: '>=16' } + resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} + engines: {node: '>=16'} hasBin: true glob-parent@5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} glob-parent@6.0.2: - resolution: - { - integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true glob@7.2.3: - resolution: - { - integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - } + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported global-directory@4.0.1: - resolution: - { - integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} + engines: {node: '>=18'} global-modules@1.0.0: - resolution: - { - integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} + engines: {node: '>=0.10.0'} global-modules@2.0.0: - resolution: - { - integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} global-prefix@1.0.2: - resolution: - { - integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} + engines: {node: '>=0.10.0'} global-prefix@3.0.0: - resolution: - { - integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - } - engines: { node: '>=6' } - - globals@13.24.0: - resolution: - { - integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} globals@14.0.0: - resolution: - { - integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} globals@15.15.0: - resolution: - { - integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} globby@11.1.0: - resolution: - { - integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} globjoin@0.1.4: - resolution: - { - integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg== - } + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + + good-listener@1.2.2: + resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==} gopd@1.2.0: - resolution: - { - integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} graceful-fs@4.2.11: - resolution: - { - integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - } + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} graphemer@1.4.0: - resolution: - { - integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - } + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + graphlib@2.1.8: + resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} has-flag@3.0.0: - resolution: - { - integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - } - engines: { node: '>=4' } + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} has-flag@4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} has-symbols@1.1.0: - resolution: - { - integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} has-tostringtag@1.0.2: - resolution: - { - integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hashery@1.5.1: + resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} + engines: {node: '>=20'} hasown@2.0.2: - resolution: - { - integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} he@1.2.0: - resolution: - { - integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - } + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true highlight.js@11.11.1: - resolution: - { - integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w== - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==} + engines: {node: '>=12.0.0'} homedir-polyfill@1.0.3: - resolution: - { - integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} + engines: {node: '>=0.10.0'} hookable@5.5.3: - resolution: - { - integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== - } + resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} - hookified@1.12.1: - resolution: - { - integrity: sha512-xnKGl+iMIlhrZmGHB729MqlmPoWBznctSQTYCpFKqNsCgimJQmithcW0xSQMMFzYnV2iKUh25alswn6epgxS0Q== - } + hookified@1.15.1: + resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} + + hookified@2.2.0: + resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} html-tags@3.3.1: - resolution: - { - integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} - html-void-elements@2.0.1: - resolution: - { - integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== - } + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} htmlparser2@8.0.2: - resolution: - { - integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA== - } + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} human-signals@5.0.0: - resolution: - { - integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - } - engines: { node: '>=16.17.0' } + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} human-signals@8.0.1: - resolution: - { - integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ== - } - engines: { node: '>=18.18.0' } + resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} + engines: {node: '>=18.18.0'} husky@9.1.7: - resolution: - { - integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} hasBin: true - i18next@20.6.1: - resolution: - { - integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A== - } + i18next@23.16.8: + resolution: {integrity: sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==} iconv-lite@0.4.24: - resolution: - { - integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} ieee754@1.2.1: - resolution: - { - integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - } + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} ignore@5.3.2: - resolution: - { - integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} ignore@7.0.5: - resolution: - { - integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} - immer@9.0.21: - resolution: - { - integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== - } + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} immutable@5.1.3: - resolution: - { - integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg== - } + resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} import-fresh@3.3.1: - resolution: - { - integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} import-meta-resolve@4.2.0: - resolution: - { - integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg== - } + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} imurmurhash@0.1.4: - resolution: - { - integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - } - engines: { node: '>=0.8.19' } + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} inflight@1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - } + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - } + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} ini@1.3.8: - resolution: - { - integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - } + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} ini@4.1.1: - resolution: - { - integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== - } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} inquirer@8.2.5: - resolution: - { - integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + engines: {node: '>=12.0.0'} is-arrayish@0.2.1: - resolution: - { - integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - } + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} is-binary-path@2.1.0: - resolution: - { - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} is-docker@2.2.1: - resolution: - { - integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} hasBin: true is-docker@3.0.0: - resolution: - { - integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true is-extglob@2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} is-fullwidth-code-point@3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} is-fullwidth-code-point@4.0.0: - resolution: - { - integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} is-fullwidth-code-point@5.1.0: - resolution: - { - integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} + engines: {node: '>=18'} is-glob@4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} is-hotkey@0.2.0: - resolution: - { - integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw== - } + resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==} is-inside-container@1.0.0: - resolution: - { - integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} hasBin: true is-interactive@1.0.0: - resolution: - { - integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} is-number@7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} is-obj@2.0.0: - resolution: - { - integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} + engines: {node: '>=8'} is-plain-obj@4.1.0: - resolution: - { - integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} is-plain-object@5.0.0: - resolution: - { - integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} is-stream@3.0.0: - resolution: - { - integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} is-stream@4.0.1: - resolution: - { - integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} is-text-path@2.0.0: - resolution: - { - integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} + engines: {node: '>=8'} is-unicode-supported@0.1.0: - resolution: - { - integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} is-unicode-supported@2.1.0: - resolution: - { - integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} is-url@1.2.4: - resolution: - { - integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - } + resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} is-utf8@0.2.1: - resolution: - { - integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== - } + resolution: {integrity: sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==} is-what@4.1.16: - resolution: - { - integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== - } - engines: { node: '>=12.13' } + resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} + engines: {node: '>=12.13'} is-windows@1.0.2: - resolution: - { - integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} is-wsl@2.2.0: - resolution: - { - integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} is-wsl@3.1.0: - resolution: - { - integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== - } - engines: { node: '>=16' } + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} isexe@2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - } + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} jiti@2.6.0: - resolution: - { - integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ== - } + resolution: {integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==} hasBin: true + js-beautify@1.15.4: + resolution: {integrity: sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==} + engines: {node: '>=14'} + hasBin: true + + js-cookie@3.0.5: + resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} + engines: {node: '>=14'} + js-tokens@4.0.0: - resolution: - { - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - } + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} js-tokens@9.0.1: - resolution: - { - integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ== - } + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} js-yaml@4.1.0: - resolution: - { - integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - } + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true jsesc@3.1.0: - resolution: - { - integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} hasBin: true json-buffer@3.0.1: - resolution: - { - integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - } + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} json-parse-even-better-errors@2.3.1: - resolution: - { - integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - } + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} json-schema-traverse@0.4.1: - resolution: - { - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - } + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} json-schema-traverse@1.0.0: - resolution: - { - integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - } + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} json-stable-stringify-without-jsonify@1.0.1: - resolution: - { - integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - } + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} json5@2.2.3: - resolution: - { - integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} hasBin: true jsonfile@6.2.0: - resolution: - { - integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== - } + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} jsonparse@1.3.1: - resolution: - { - integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - } - engines: { '0': node >= 0.2.0 } + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} keyv@4.5.4: - resolution: - { - integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - } + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - keyv@5.5.3: - resolution: - { - integrity: sha512-h0Un1ieD+HUrzBH6dJXhod3ifSghk5Hw/2Y4/KHBziPlZecrFyE9YOTPU6eOs0V9pYl8gOs86fkr/KN8lUX39A== - } + keyv@5.6.0: + resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} kind-of@6.0.3: - resolution: - { - integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} known-css-properties@0.36.0: - resolution: - { - integrity: sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA== - } + resolution: {integrity: sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==} known-css-properties@0.37.0: - resolution: - { - integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ== - } + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} kolorist@1.8.0: - resolution: - { - integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== - } + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} levn@0.4.1: - resolution: - { - integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} lightningcss-darwin-arm64@1.30.1: - resolution: - { - integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] lightningcss-darwin-x64@1.30.1: - resolution: - { - integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] lightningcss-freebsd-x64@1.30.1: - resolution: - { - integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] lightningcss-linux-arm-gnueabihf@1.30.1: - resolution: - { - integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} + engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] lightningcss-linux-arm64-gnu@1.30.1: - resolution: - { - integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] libc: [glibc] lightningcss-linux-arm64-musl@1.30.1: - resolution: - { - integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] libc: [musl] lightningcss-linux-x64-gnu@1.30.1: - resolution: - { - integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] libc: [glibc] lightningcss-linux-x64-musl@1.30.1: - resolution: - { - integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] libc: [musl] lightningcss-win32-arm64-msvc@1.30.1: - resolution: - { - integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] lightningcss-win32-x64-msvc@1.30.1: - resolution: - { - integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] lightningcss@1.30.1: - resolution: - { - integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg== - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} + engines: {node: '>= 12.0.0'} lilconfig@3.1.3: - resolution: - { - integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw== - } - engines: { node: '>=14' } + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} lines-and-columns@1.2.4: - resolution: - { - integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - } + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} lint-staged@15.5.2: - resolution: - { - integrity: sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w== - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-YUSOLq9VeRNAo/CTaVmhGDKG+LBtA8KF1X4K5+ykMSwWST1vDxJRB2kv2COgLb1fvpCo+A/y9A0G0znNVmdx4w==} + engines: {node: '>=18.12.0'} hasBin: true + listenercount@1.0.1: + resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==} + listr2@8.3.3: - resolution: - { - integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ== - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ==} + engines: {node: '>=18.0.0'} local-pkg@1.1.2: - resolution: - { - integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A== - } - engines: { node: '>=14' } + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} locate-path@6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} locate-path@7.2.0: - resolution: - { - integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lodash-es@4.17.21: - resolution: - { - integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== - } + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} lodash-unified@1.0.3: - resolution: - { - integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ== - } + resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} peerDependencies: '@types/lodash-es': '*' lodash: '*' lodash-es: '*' lodash.camelcase@4.3.0: - resolution: - { - integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== - } + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} lodash.clonedeep@4.5.0: - resolution: - { - integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ== - } + resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} lodash.debounce@4.0.8: - resolution: - { - integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - } + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} lodash.foreach@4.5.0: - resolution: - { - integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ== - } + resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==} + + lodash.groupby@4.6.0: + resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} lodash.isequal@4.5.0: - resolution: - { - integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - } + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + lodash.isfunction@3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + + lodash.isnil@4.0.0: + resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} + lodash.isplainobject@4.0.6: - resolution: - { - integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - } + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isundefined@3.0.1: + resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==} lodash.kebabcase@4.1.1: - resolution: - { - integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== - } + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} lodash.map@4.6.0: - resolution: - { - integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q== - } + resolution: {integrity: sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==} lodash.merge@4.6.2: - resolution: - { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - } + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} lodash.mergewith@4.6.2: - resolution: - { - integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== - } + resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} lodash.snakecase@4.1.1: - resolution: - { - integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== - } + resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==} lodash.startcase@4.4.0: - resolution: - { - integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== - } + resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} lodash.throttle@4.1.1: - resolution: - { - integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ== - } + resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} lodash.toarray@4.4.0: - resolution: - { - integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw== - } + resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==} lodash.truncate@4.4.2: - resolution: - { - integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== - } + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + + lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} lodash.uniq@4.5.0: - resolution: - { - integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== - } + resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} lodash.upperfirst@4.3.1: - resolution: - { - integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== - } + resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} lodash@4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - } + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} log-symbols@4.1.0: - resolution: - { - integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} log-update@6.1.0: - resolution: - { - integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} longest@2.0.1: - resolution: - { - integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-Ajzxb8CM6WAnFjgiloPsI3bF+WCxcvhdIG3KNA2KN962+tdBsHcuQ4k4qX/EcS/2CRkcc0iAkR956Nib6aXU/Q==} + engines: {node: '>=0.10.0'} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@5.1.1: - resolution: - { - integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - } + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} magic-string@0.30.19: - resolution: - { - integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw== - } + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} + + markdown-it-highlightjs@4.3.0: + resolution: {integrity: sha512-dTEXpTV2J9WJiO8TA/FJ4DxidrYtTNcfBAdl+CLjQ3UFWj8s4dJyCPTcvoXNLmN5U5ZTCGu7TSkSvBvi4fUqkQ==} + + markdown-it@14.1.1: + resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} + hasBin: true math-intrinsics@1.1.0: - resolution: - { - integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} mathml-tag-names@2.1.3: - resolution: - { - integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg== - } + resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} mdn-data@2.12.2: - resolution: - { - integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA== - } + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} mdn-data@2.24.0: - resolution: - { - integrity: sha512-i97fklrJl03tL1tdRVw0ZfLLvuDsdb6wxL+TrJ+PKkCbLrp2PCu2+OYdCKychIUm19nSM/35S6qz7pJpnXttoA== - } + resolution: {integrity: sha512-i97fklrJl03tL1tdRVw0ZfLLvuDsdb6wxL+TrJ+PKkCbLrp2PCu2+OYdCKychIUm19nSM/35S6qz7pJpnXttoA==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} memoize-one@6.0.0: - resolution: - { - integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== - } + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} meow@12.1.1: - resolution: - { - integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw== - } - engines: { node: '>=16.10' } + resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} + engines: {node: '>=16.10'} meow@13.2.0: - resolution: - { - integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} + engines: {node: '>=18'} merge-stream@2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - } + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} merge2@1.4.1: - resolution: - { - integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} merge@2.1.1: - resolution: - { - integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w== - } + resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} micromatch@4.0.8: - resolution: - { - integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== - } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} mime-db@1.52.0: - resolution: - { - integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} mime-match@1.0.2: - resolution: - { - integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg== - } + resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} mime-types@2.1.35: - resolution: - { - integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} mimic-fn@2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} mimic-fn@4.0.0: - resolution: - { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} mimic-function@5.0.1: - resolution: - { - integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} minimatch@3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - } + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} minimatch@9.0.5: - resolution: - { - integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== - } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.7: - resolution: - { - integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - } + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} minimist@1.2.8: - resolution: - { - integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - } + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} minipass@7.1.2: - resolution: - { - integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== - } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} minizlib@3.1.0: - resolution: - { - integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw== - } - engines: { node: '>= 18' } + resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} + engines: {node: '>= 18'} mitt@3.0.1: - resolution: - { - integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== - } + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true mlly@1.8.0: - resolution: - { - integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g== - } + resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} mrmime@2.0.1: - resolution: - { - integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} ms@2.1.3: - resolution: - { - integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - } + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} muggle-string@0.4.1: - resolution: - { - integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== - } + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} mute-stream@0.0.8: - resolution: - { - integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== - } + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} namespace-emitter@2.0.1: - resolution: - { - integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g== - } + resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} nanoid@3.3.11: - resolution: - { - integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - } - engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true nanoid@5.1.6: - resolution: - { - integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg== - } - engines: { node: ^18 || >=20 } + resolution: {integrity: sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==} + engines: {node: ^18 || >=20} hasBin: true natural-compare@1.4.0: - resolution: - { - integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - } + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} next-tick@1.1.0: - resolution: - { - integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - } + resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} node-addon-api@7.1.1: - resolution: - { - integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== - } + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} node-releases@2.0.21: - resolution: - { - integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw== - } + resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} + + node-releases@2.0.38: + resolution: {integrity: sha512-3qT/88Y3FbH/Kx4szpQQ4HzUbVrHPKTLVpVocKiLfoYvw9XSGOX2FmD2d6DrXbVYyAQTF2HeF6My8jmzx7/CRw==} + + nopt@7.2.1: + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true normalize-path@3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} normalize-wheel-es@1.2.0: - resolution: - { - integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw== - } + resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} npm-run-path@5.3.0: - resolution: - { - integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} npm-run-path@6.0.0: - resolution: - { - integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} nprogress@0.2.0: - resolution: - { - integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA== - } + resolution: {integrity: sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==} nth-check@2.1.1: - resolution: - { - integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - } + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} ohash@2.0.11: - resolution: - { - integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ== - } + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} once@1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - } + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} onetime@5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} onetime@6.0.0: - resolution: - { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} onetime@7.0.0: - resolution: - { - integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} open@10.2.0: - resolution: - { - integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} + engines: {node: '>=18'} open@8.4.2: - resolution: - { - integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} optionator@0.9.4: - resolution: - { - integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} ora@5.4.1: - resolution: - { - integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} os-tmpdir@1.0.2: - resolution: - { - integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} p-limit@3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} p-limit@4.0.0: - resolution: - { - integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} p-locate@5.0.0: - resolution: - { - integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} p-locate@6.0.0: - resolution: - { - integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} parent-module@1.0.1: - resolution: - { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} parse-json@5.2.0: - resolution: - { - integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} parse-ms@4.0.0: - resolution: - { - integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} parse-passwd@1.0.0: - resolution: - { - integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} + engines: {node: '>=0.10.0'} path-browserify@1.0.1: - resolution: - { - integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - } + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} path-exists@4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} path-exists@5.0.0: - resolution: - { - integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} path-is-absolute@1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} path-key@3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} path-key@4.0.0: - resolution: - { - integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} path-type@4.0.0: - resolution: - { - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} pathe@2.0.3: - resolution: - { - integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== - } + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} perfect-debounce@1.0.0: - resolution: - { - integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== - } + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} picocolors@1.1.1: - resolution: - { - integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - } + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} picomatch@4.0.3: - resolution: - { - integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} pidtree@0.6.0: - resolution: - { - integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} hasBin: true pinia-plugin-persistedstate@4.5.0: - resolution: - { - integrity: sha512-QTkP1xJVyCdr2I2p3AKUZM84/e+IS+HktRxKGAIuDzkyaKKV48mQcYkJFVVDuvTxlI5j6X3oZObpqoVB8JnWpw== - } + resolution: {integrity: sha512-QTkP1xJVyCdr2I2p3AKUZM84/e+IS+HktRxKGAIuDzkyaKKV48mQcYkJFVVDuvTxlI5j6X3oZObpqoVB8JnWpw==} peerDependencies: '@nuxt/kit': '>=3.0.0' '@pinia/nuxt': '>=0.10.0' @@ -5068,10 +3593,7 @@ packages: optional: true pinia@3.0.3: - resolution: - { - integrity: sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA== - } + resolution: {integrity: sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA==} peerDependencies: typescript: '>=4.4.4' vue: ^2.7.0 || ^3.5.11 @@ -5080,268 +3602,179 @@ packages: optional: true pkg-types@1.3.1: - resolution: - { - integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== - } + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} pkg-types@2.3.0: - resolution: - { - integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig== - } + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} postcss-html@1.8.0: - resolution: - { - integrity: sha512-5mMeb1TgLWoRKxZ0Xh9RZDfwUUIqRrcxO2uXO+Ezl1N5lqpCiSU5Gk6+1kZediBfBHFtPCdopr2UZ2SgUsKcgQ== - } - engines: { node: ^12 || >=14 } + resolution: {integrity: sha512-5mMeb1TgLWoRKxZ0Xh9RZDfwUUIqRrcxO2uXO+Ezl1N5lqpCiSU5Gk6+1kZediBfBHFtPCdopr2UZ2SgUsKcgQ==} + engines: {node: ^12 || >=14} postcss-media-query-parser@0.2.3: - resolution: - { - integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig== - } + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} postcss-resolve-nested-selector@0.1.6: - resolution: - { - integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw== - } + resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} postcss-safe-parser@6.0.0: - resolution: - { - integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ== - } - engines: { node: '>=12.0' } + resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} + engines: {node: '>=12.0'} peerDependencies: postcss: ^8.3.3 postcss-safe-parser@7.0.1: - resolution: - { - integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A== - } - engines: { node: '>=18.0' } + resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + engines: {node: '>=18.0'} peerDependencies: postcss: ^8.4.31 postcss-scss@4.0.9: - resolution: - { - integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A== - } - engines: { node: '>=12.0' } + resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} + engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 - postcss-selector-parser@6.1.2: - resolution: - { - integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== - } - engines: { node: '>=4' } - postcss-selector-parser@7.1.0: - resolution: - { - integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== - } - engines: { node: '>=4' } + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} postcss-sorting@8.0.2: - resolution: - { - integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q== - } + resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} peerDependencies: postcss: ^8.4.20 postcss-value-parser@4.2.0: - resolution: - { - integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - } + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} postcss@8.5.6: - resolution: - { - integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== - } - engines: { node: ^10 || ^12 || >=14 } + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} preact@10.27.2: - resolution: - { - integrity: sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg== - } + resolution: {integrity: sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==} prelude-ls@1.2.1: - resolution: - { - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} prettier-linter-helpers@1.0.0: - resolution: - { - integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} prettier@3.6.2: - resolution: - { - integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== - } - engines: { node: '>=14' } + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} + engines: {node: '>=14'} hasBin: true pretty-ms@9.3.0: - resolution: - { - integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} + engines: {node: '>=18'} prismjs@1.30.0: - resolution: - { - integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + proto-list@1.2.4: + resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} proxy-from-env@1.1.0: - resolution: - { - integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - } + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} punycode@2.3.1: - resolution: - { - integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qified@0.9.1: + resolution: {integrity: sha512-n7mar4T0xQ+39dE2vGTAlbxUEpndwPANH0kDef1/MYsB8Bba9wshkybIRx74qgcvKQPEWErf9AqAdYjhzY2Ilg==} + engines: {node: '>=20'} qrcode.vue@3.6.0: - resolution: - { - integrity: sha512-vQcl2fyHYHMjDO1GguCldJxepq2izQjBkDEEu9NENgfVKP6mv/e2SU62WbqYHGwTgWXLhxZ1NCD1dAZKHQq1fg== - } + resolution: {integrity: sha512-vQcl2fyHYHMjDO1GguCldJxepq2izQjBkDEEu9NENgfVKP6mv/e2SU62WbqYHGwTgWXLhxZ1NCD1dAZKHQq1fg==} peerDependencies: vue: ^3.0.0 + qs@6.15.1: + resolution: {integrity: sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==} + engines: {node: '>=0.6'} + quansync@0.2.11: - resolution: - { - integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== - } + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} queue-microtask@1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - } + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} readable-stream@3.6.2: - resolution: - { - integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} readdirp@3.6.0: - resolution: - { - integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - } - engines: { node: '>=8.10.0' } + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} readdirp@4.1.2: - resolution: - { - integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== - } - engines: { node: '>= 14.18.0' } + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} require-directory@2.1.1: - resolution: - { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} require-from-string@2.0.2: - resolution: - { - integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} resolve-dir@1.0.1: - resolution: - { - integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} + engines: {node: '>=0.10.0'} resolve-from@4.0.0: - resolution: - { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - } - engines: { node: '>=4' } + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} resolve-from@5.0.0: - resolution: - { - integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} resolve-pkg-maps@1.0.0: - resolution: - { - integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== - } + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} restore-cursor@3.1.0: - resolution: - { - integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} restore-cursor@5.1.0: - resolution: - { - integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} reusify@1.1.0: - resolution: - { - integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - } - engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rfdc@1.4.1: - resolution: - { - integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== - } + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true rollup-plugin-visualizer@5.14.0: - resolution: - { - integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-VlDXneTDaKsHIw8yzJAFWtrzguoJ/LnQ+lMpoVfYJ3jJF4Ihe5oYLAqLklIK/35lgUY+1yEzCkHyZ1j4A5w5fA==} + engines: {node: '>=18'} hasBin: true peerDependencies: rolldown: 1.x @@ -5353,322 +3786,223 @@ packages: optional: true rollup@4.52.3: - resolution: - { - integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A== - } - engines: { node: '>=18.0.0', npm: '>=8.0.0' } + resolution: {integrity: sha512-RIDh866U8agLgiIcdpB+COKnlCreHJLfIhWC3LVflku5YHfpnsIKigRZeFfMfCc4dVcqNVfQQ5gO/afOck064A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true run-applescript@7.1.0: - resolution: - { - integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} + engines: {node: '>=18'} run-async@2.4.1: - resolution: - { - integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} run-parallel@1.2.0: - resolution: - { - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - } + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} rxjs@7.8.2: - resolution: - { - integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== - } + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: - resolution: - { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - } + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} safer-buffer@2.1.2: - resolution: - { - integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - } + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} sass@1.93.2: - resolution: - { - integrity: sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg== - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==} + engines: {node: '>=14.0.0'} hasBin: true - scroll-into-view-if-needed@2.2.31: - resolution: - { - integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== - } + saxes@5.0.1: + resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} + engines: {node: '>=10'} + + scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} scule@1.3.0: - resolution: - { - integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g== - } + resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + + select@1.1.2: + resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==} semver@6.3.1: - resolution: - { - integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - } + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true semver@7.7.2: - resolution: - { - integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} hasBin: true + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + shebang-command@2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} shebang-regex@3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} signal-exit@3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - } + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} signal-exit@4.1.0: - resolution: - { - integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - } - engines: { node: '>=14' } + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} sirv@3.0.2: - resolution: - { - integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} slash@3.0.0: - resolution: - { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} - slate-history@0.66.0: - resolution: - { - integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng== - } + slate-history@0.115.0: + resolution: {integrity: sha512-QdUm9aVyQFz6JG4a84Z6Um+tJpZJmsh9bjXwTVTvYiN4rdKbqL6+/4HT94on1WYxe10Q4vY6mA6BCpoYxgF3tQ==} peerDependencies: - slate: '>=0.65.3' + slate: '>=0.114.3' - slate@0.72.8: - resolution: - { - integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw== - } + slate@0.123.0: + resolution: {integrity: sha512-Oon3HR/QzJQBjuOUJT1jGGlp8Ff7t3Bkr/rJ2lDqxNT4H+cBnXpEVQ/si6hn1ZCHhD2xY/2N91PQoH/rD7kxTg==} slice-ansi@4.0.0: - resolution: - { - integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} slice-ansi@5.0.0: - resolution: - { - integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} slice-ansi@7.1.2: - resolution: - { - integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} + engines: {node: '>=18'} snabbdom@3.6.2: - resolution: - { - integrity: sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q== - } - engines: { node: '>=12.17.0' } + resolution: {integrity: sha512-ig5qOnCDbugFntKi6c7Xlib8bA6xiJVk8O+WdFrV3wxbMqeHO0hXFQC4nAhPVWfZfi8255lcZkNhtIBINCc4+Q==} + engines: {node: '>=12.17.0'} + + sortablejs@1.14.0: + resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==} source-map-js@1.2.1: - resolution: - { - integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} source-map-support@0.5.21: - resolution: - { - integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - } + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} source-map@0.6.1: - resolution: - { - integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} source-map@0.7.6: - resolution: - { - integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ== - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} speakingurl@14.0.1: - resolution: - { - integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} split2@4.2.0: - resolution: - { - integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - } - engines: { node: '>= 10.x' } + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} ssf@0.11.2: - resolution: - { - integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==} + engines: {node: '>=0.8'} - ssr-window@3.0.0: - resolution: - { - integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA== - } + ssr-window@4.0.2: + resolution: {integrity: sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==} string-argv@0.3.2: - resolution: - { - integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - } - engines: { node: '>=0.6.19' } + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} string-width@4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} string-width@7.2.0: - resolution: - { - integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} string_decoder@1.3.0: - resolution: - { - integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - } + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} strip-ansi@6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} strip-ansi@7.1.2: - resolution: - { - integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} + engines: {node: '>=12'} strip-bom@4.0.0: - resolution: - { - integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} + engines: {node: '>=8'} strip-final-newline@3.0.0: - resolution: - { - integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} strip-final-newline@4.0.0: - resolution: - { - integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} strip-json-comments@3.1.1: - resolution: - { - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} strip-literal@3.1.0: - resolution: - { - integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg== - } + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} stylelint-config-html@1.1.0: - resolution: - { - integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ== - } - engines: { node: ^12 || >=14 } + resolution: {integrity: sha512-IZv4IVESjKLumUGi+HWeb7skgO6/g4VMuAYrJdlqQFndgbj6WJAXPhaysvBiXefX79upBdQVumgYcdd17gCpjQ==} + engines: {node: ^12 || >=14} peerDependencies: postcss-html: ^1.0.0 stylelint: '>=14.0.0' - stylelint-config-recess-order@4.6.0: - resolution: - { - integrity: sha512-V76fhv3YtcNXh/hyAuAdSzi5FmcrG54Mp2AThJ3D/PTMTSYzUPd7GIhP6z9mTqnRhmkk6YTfcu/JWB8h+Yrcaw== - } + stylelint-config-recess-order@6.1.0: + resolution: {integrity: sha512-0rGZgJQjUKqv1PXZnRJxr13f3hb3i2snx2nIL6luDWUf4nD3BAweB8noS7jdfBQ56HQG3RKSF0a+MAHfBGFxgw==} peerDependencies: - stylelint: '>=15' + stylelint: '>=16' stylelint-config-recommended-scss@14.1.0: - resolution: - { - integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg== - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==} + engines: {node: '>=18.12.0'} peerDependencies: postcss: ^8.3.3 stylelint: ^16.6.1 @@ -5677,316 +4011,204 @@ packages: optional: true stylelint-config-recommended-vue@1.6.1: - resolution: - { - integrity: sha512-lLW7hTIMBiTfjenGuDq2kyHA6fBWd/+Df7MO4/AWOxiFeXP9clbpKgg27kHfwA3H7UNMGC7aeP3mNlZB5LMmEQ== - } - engines: { node: ^12 || >=14 } + resolution: {integrity: sha512-lLW7hTIMBiTfjenGuDq2kyHA6fBWd/+Df7MO4/AWOxiFeXP9clbpKgg27kHfwA3H7UNMGC7aeP3mNlZB5LMmEQ==} + engines: {node: ^12 || >=14} peerDependencies: postcss-html: ^1.0.0 stylelint: '>=14.0.0' stylelint-config-recommended@14.0.1: - resolution: - { - integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg== - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==} + engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.1.0 - stylelint-config-recommended@17.0.0: - resolution: - { - integrity: sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA== - } - engines: { node: '>=18.12.0' } + stylelint-config-recommended@15.0.0: + resolution: {integrity: sha512-9LejMFsat7L+NXttdHdTq94byn25TD+82bzGRiV1Pgasl99pWnwipXS5DguTpp3nP1XjvLXVnEJIuYBfsRjRkA==} + engines: {node: '>=18.12.0'} peerDependencies: - stylelint: ^16.23.0 + stylelint: ^16.13.0 stylelint-config-standard@36.0.1: - resolution: - { - integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw== - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==} + engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.1.0 stylelint-order@6.0.4: - resolution: - { - integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA== - } + resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==} peerDependencies: stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 + stylelint-prettier@5.0.3: + resolution: {integrity: sha512-B6V0oa35ekRrKZlf+6+jA+i50C4GXJ7X1PPmoCqSUoXN6BrNF6NhqqhanvkLjqw2qgvrS0wjdpeC+Tn06KN3jw==} + engines: {node: '>=18.12.0'} + peerDependencies: + prettier: '>=3.0.0' + stylelint: '>=16.0.0' + stylelint-scss@6.12.1: - resolution: - { - integrity: sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA== - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-UJUfBFIvXfly8WKIgmqfmkGKPilKB4L5j38JfsDd+OCg2GBdU0vGUV08Uw82tsRZzd4TbsUURVVNGeOhJVF7pA==} + engines: {node: '>=18.12.0'} peerDependencies: stylelint: ^16.0.2 - stylelint@16.24.0: - resolution: - { - integrity: sha512-7ksgz3zJaSbTUGr/ujMXvLVKdDhLbGl3R/3arNudH7z88+XZZGNLMTepsY28WlnvEFcuOmUe7fg40Q3lfhOfSQ== - } - engines: { node: '>=18.12.0' } + stylelint@16.26.1: + resolution: {integrity: sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==} + engines: {node: '>=18.12.0'} hasBin: true superjson@2.2.2: - resolution: - { - integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q== - } - engines: { node: '>=16' } + resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==} + engines: {node: '>=16'} supports-color@5.5.0: - resolution: - { - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - } - engines: { node: '>=4' } + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} supports-color@7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} supports-hyperlinks@3.2.0: - resolution: - { - integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig== - } - engines: { node: '>=14.18' } + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + engines: {node: '>=14.18'} svg-tags@1.0.0: - resolution: - { - integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA== - } + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} synckit@0.11.11: - resolution: - { - integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw== - } - engines: { node: ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + engines: {node: ^14.18.0 || >=16.0.0} table@6.9.0: - resolution: - { - integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A== - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + engines: {node: '>=10.0.0'} tailwindcss@4.1.14: - resolution: - { - integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA== - } + resolution: {integrity: sha512-b7pCxjGO98LnxVkKjaZSDeNuljC4ueKUddjENJOADtubtdo8llTaJy7HwBMeLNSSo2N5QIAgklslK1+Ir8r6CA==} tapable@2.3.0: - resolution: - { - integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} + engines: {node: '>=6'} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} tar@7.5.1: - resolution: - { - integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==} + engines: {node: '>=18'} terser@5.44.0: - resolution: - { - integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==} + engines: {node: '>=10'} hasBin: true text-extensions@2.4.0: - resolution: - { - integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g== - } - engines: { node: '>=8' } + resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} + engines: {node: '>=8'} through@2.3.8: - resolution: - { - integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - } + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - tiny-warning@1.0.3: - resolution: - { - integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== - } + tiny-emitter@2.1.0: + resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} tinyexec@1.0.1: - resolution: - { - integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw== - } + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} tinyglobby@0.2.15: - resolution: - { - integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} tmp@0.0.33: - resolution: - { - integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== - } - engines: { node: '>=0.6.0' } + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmp@0.2.5: + resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} + engines: {node: '>=14.14'} to-regex-range@5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} totalist@3.0.1: - resolution: - { - integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== - } - engines: { node: '>=6' } + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + traverse@0.3.9: + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} ts-api-utils@2.1.0: - resolution: - { - integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== - } - engines: { node: '>=18.12' } + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' tslib@2.3.0: - resolution: - { - integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== - } + resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==} tslib@2.8.1: - resolution: - { - integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== - } + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} tsx@4.20.6: - resolution: - { - integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg== - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==} + engines: {node: '>=18.0.0'} hasBin: true type-check@0.4.0: - resolution: - { - integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - } - engines: { node: '>= 0.8.0' } - - type-fest@0.20.2: - resolution: - { - integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} type-fest@0.21.3: - resolution: - { - integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} type@2.7.3: - resolution: - { - integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ== - } + resolution: {integrity: sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==} typescript-eslint@8.44.1: - resolution: - { - integrity: sha512-0ws8uWGrUVTjEeN2OM4K1pLKHK/4NiNP/vz6ns+LjT/6sqpaYzIVFajZb1fj/IDwpsrrHb3Jy0Qm5u9CPcKaeg== - } - engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } + resolution: {integrity: sha512-0ws8uWGrUVTjEeN2OM4K1pLKHK/4NiNP/vz6ns+LjT/6sqpaYzIVFajZb1fj/IDwpsrrHb3Jy0Qm5u9CPcKaeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - typescript@5.6.3: - resolution: - { - integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== - } - engines: { node: '>=14.17' } + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} hasBin: true + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + ufo@1.6.1: - resolution: - { - integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA== - } + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} undici-types@7.14.0: - resolution: - { - integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA== - } + resolution: {integrity: sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==} unicorn-magic@0.1.0: - resolution: - { - integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} unicorn-magic@0.3.0: - resolution: - { - integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} unimport@5.4.0: - resolution: - { - integrity: sha512-g/OLFZR2mEfqbC6NC9b2225eCJGvufxq34mj6kM3OmI5gdSL0qyqtnv+9qmsGpAmnzSl6x0IWZj4W+8j2hLkMA== - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-g/OLFZR2mEfqbC6NC9b2225eCJGvufxq34mj6kM3OmI5gdSL0qyqtnv+9qmsGpAmnzSl6x0IWZj4W+8j2hLkMA==} + engines: {node: '>=18.12.0'} universalify@2.0.1: - resolution: - { - integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} unplugin-auto-import@20.2.0: - resolution: - { - integrity: sha512-vfBI/SvD9hJqYNinipVOAj5n8dS8DJXFlCKFR5iLDp2SaQwsfdnfLXgZ+34Kd3YY3YEY9omk8XQg0bwos3Q8ug== - } - engines: { node: '>=14' } + resolution: {integrity: sha512-vfBI/SvD9hJqYNinipVOAj5n8dS8DJXFlCKFR5iLDp2SaQwsfdnfLXgZ+34Kd3YY3YEY9omk8XQg0bwos3Q8ug==} + engines: {node: '>=14'} peerDependencies: '@nuxt/kit': ^4.0.0 '@vueuse/core': '*' @@ -5997,32 +4219,20 @@ packages: optional: true unplugin-element-plus@0.10.0: - resolution: - { - integrity: sha512-oRSW0x6U58xBOWKy8TcoVZNA8ElIpfp3TUJRLQI6ey/E9PpjHl9/deeTAZNt8D57Li4OA4pCJtM6p2cb4Ff4ZA== - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-oRSW0x6U58xBOWKy8TcoVZNA8ElIpfp3TUJRLQI6ey/E9PpjHl9/deeTAZNt8D57Li4OA4pCJtM6p2cb4Ff4ZA==} + engines: {node: '>=18.12.0'} unplugin-utils@0.2.5: - resolution: - { - integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg== - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==} + engines: {node: '>=18.12.0'} unplugin-utils@0.3.0: - resolution: - { - integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg== - } - engines: { node: '>=20.19.0' } + resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==} + engines: {node: '>=20.19.0'} unplugin-vue-components@29.1.0: - resolution: - { - integrity: sha512-z/9ACPXth199s9aCTCdKZAhe5QGOpvzJYP+Hkd0GN1/PpAmsu+W3UlRY3BJAewPqQxh5xi56+Og6mfiCV1Jzpg== - } - engines: { node: '>=14' } + resolution: {integrity: sha512-z/9ACPXth199s9aCTCdKZAhe5QGOpvzJYP+Hkd0GN1/PpAmsu+W3UlRY3BJAewPqQxh5xi56+Og6mfiCV1Jzpg==} + engines: {node: '>=14'} peerDependencies: '@babel/parser': ^7.15.8 '@nuxt/kit': ^3.2.2 || ^4.0.0 @@ -6034,55 +4244,47 @@ packages: optional: true unplugin@2.3.10: - resolution: - { - integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw== - } - engines: { node: '>=18.12.0' } + resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} + engines: {node: '>=18.12.0'} + + unzipper@0.10.14: + resolution: {integrity: sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==} update-browserslist-db@1.1.3: - resolution: - { - integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== - } + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' uri-js@4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - } + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} util-deprecate@1.0.2: - resolution: - { - integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - } + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true vite-hot-client@2.1.0: - resolution: - { - integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ== - } + resolution: {integrity: sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==} peerDependencies: vite: ^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 vite-plugin-compression@0.5.1: - resolution: - { - integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg== - } + resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==} peerDependencies: vite: '>=2.0.0' vite-plugin-inspect@0.8.9: - resolution: - { - integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A== - } - engines: { node: '>=14' } + resolution: {integrity: sha512-22/8qn+LYonzibb1VeFZmISdVao5kC22jmEKm24vfFE8siEn47EpVcCLYMv6iKOYMJfjSvSJfueOwcFCkUnV3A==} + engines: {node: '>=14'} peerDependencies: '@nuxt/kit': '*' vite: ^3.1.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.1 @@ -6091,28 +4293,19 @@ packages: optional: true vite-plugin-vue-devtools@7.7.7: - resolution: - { - integrity: sha512-d0fIh3wRcgSlr4Vz7bAk4va1MkdqhQgj9ANE/rBhsAjOnRfTLs2ocjFMvSUOsv6SRRXU9G+VM7yMgqDb6yI4iQ== - } - engines: { node: '>=v14.21.3' } + resolution: {integrity: sha512-d0fIh3wRcgSlr4Vz7bAk4va1MkdqhQgj9ANE/rBhsAjOnRfTLs2ocjFMvSUOsv6SRRXU9G+VM7yMgqDb6yI4iQ==} + engines: {node: '>=v14.21.3'} peerDependencies: vite: ^3.1.0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 vite-plugin-vue-inspector@5.3.2: - resolution: - { - integrity: sha512-YvEKooQcSiBTAs0DoYLfefNja9bLgkFM7NI2b07bE2SruuvX0MEa9cMaxjKVMkeCp5Nz9FRIdcN1rOdFVBeL6Q== - } + resolution: {integrity: sha512-YvEKooQcSiBTAs0DoYLfefNja9bLgkFM7NI2b07bE2SruuvX0MEa9cMaxjKVMkeCp5Nz9FRIdcN1rOdFVBeL6Q==} peerDependencies: vite: ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 vite@7.1.7: - resolution: - { - integrity: sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA== - } - engines: { node: ^20.19.0 || >=22.12.0 } + resolution: {integrity: sha512-VbA8ScMvAISJNJVbRDTJdCwqQoAareR/wutevKanhR2/1EkoXVZVkkORaYm/tNVCjP/UDTKtcw3bAkwOUdedmA==} + engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 @@ -6151,17 +4344,11 @@ packages: optional: true vscode-uri@3.1.0: - resolution: - { - integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== - } + resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} vue-demi@0.14.10: - resolution: - { - integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} hasBin: true peerDependencies: '@vue/composition-api': ^1.0.0-rc.1 @@ -6171,10 +4358,7 @@ packages: optional: true vue-draggable-plus@0.6.0: - resolution: - { - integrity: sha512-G5TSfHrt9tX9EjdG49InoFJbt2NYk0h3kgjgKxkFWr3ulIUays0oFObr5KZ8qzD4+QnhtALiRwIqY6qul4egqw== - } + resolution: {integrity: sha512-G5TSfHrt9tX9EjdG49InoFJbt2NYk0h3kgjgKxkFWr3ulIUays0oFObr5KZ8qzD4+QnhtALiRwIqY6qul4egqw==} peerDependencies: '@types/sortablejs': ^1.15.0 '@vue/composition-api': '*' @@ -6182,249 +4366,188 @@ packages: '@vue/composition-api': optional: true - vue-eslint-parser@9.4.3: - resolution: - { - integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== - } - engines: { node: ^14.17.0 || >=16.0.0 } + vue-eslint-parser@10.4.0: + resolution: {integrity: sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=6.0.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - vue-i18n@9.14.5: - resolution: - { - integrity: sha512-0jQ9Em3ymWngyiIkj0+c/k7WgaPO+TNzjKSNq9BvBQaKJECqn9cd9fL4tkDhB5G1QBskGl9YxxbDAhgbFtpe2g== - } - engines: { node: '>= 16' } + vue-i18n@11.4.0: + resolution: {integrity: sha512-gxLVtcwdvOgwKSzkdb7nHKlW0N85A6aDNmHLnq6V+3w2/BXy/os5l71P7TIlgIQTxX0zJjiz89iImoHi51GieQ==} + engines: {node: '>= 16'} peerDependencies: vue: ^3.0.0 - vue-img-cutter@3.0.7: - resolution: - { - integrity: sha512-fNw3kimawg9XVXDZCw2bI74NI+Jq+H42wjymatZVVSY46wuBty6LbQsu4GeVfo/yzpS9AHY0tzckpYzX3D2fmA== - } + vue-json-pretty@2.6.0: + resolution: {integrity: sha512-glz1aBVS35EO8+S9agIl3WOQaW2cJZW192UVKTuGmryx01ZvOVWc4pR3t+5UcyY4jdOfBUgVHjcpRpcnjRhCAg==} + engines: {node: '>= 10.0.0', npm: '>= 5.0.0'} + peerDependencies: + vue: '>=3.0.0' + + vue-json-viewer@3.0.4: + resolution: {integrity: sha512-pnC080rTub6YjccthVSNQod2z9Sl5IUUq46srXtn6rxwhW8QM4rlYn+CTSLFKXWfw+N3xv77Cioxw7B4XUKIbQ==} + peerDependencies: + vue: ^3.2.2 vue-router@4.5.1: - resolution: - { - integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw== - } + resolution: {integrity: sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==} peerDependencies: vue: ^3.2.0 - vue-tsc@2.1.10: - resolution: - { - integrity: sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA== - } + vue-tsc@2.2.12: + resolution: {integrity: sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==} hasBin: true peerDependencies: typescript: '>=5.0.0' + vue-web-terminal@3.4.2: + resolution: {integrity: sha512-H+wvDxZxWu7vHMNhsHzqPLn/wxgiQ7bSKWbcAORMwNfPadtWgAZa0fCvct25RJBMBYQrh1wfCJ6KtrDzdAn6Gg==} + + vue3-cron-plus@0.1.9: + resolution: {integrity: sha512-jirDV1F9q7oaGerJztzcXY7e9eGUZbkP2jzfR/Chxice1c7ywthA+iO1zERvPtpbK2WHjOfidbvoY1DUzI3YKA==} + vue@3.5.22: - resolution: - { - integrity: sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ== - } + resolution: {integrity: sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ==} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true + vuedraggable@4.1.0: + resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} + peerDependencies: + vue: ^3.0.1 + wcwidth@1.0.1: - resolution: - { - integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== - } + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} webpack-virtual-modules@0.6.2: - resolution: - { - integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== - } + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} which@1.3.1: - resolution: - { - integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - } + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true which@2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true wildcard@1.1.2: - resolution: - { - integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng== - } + resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} wmf@1.0.2: - resolution: - { - integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==} + engines: {node: '>=0.8'} word-wrap@1.2.5: - resolution: - { - integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} word@0.3.0: - resolution: - { - integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==} + engines: {node: '>=0.8'} wrap-ansi@7.0.0: - resolution: - { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} wrap-ansi@9.0.2: - resolution: - { - integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} wrappy@1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - } + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} write-file-atomic@5.0.1: - resolution: - { - integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== - } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} wsl-utils@0.1.0: - resolution: - { - integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} + engines: {node: '>=18'} xgplayer-subtitles@3.0.23: - resolution: - { - integrity: sha512-deGdV75giVzfTTdG9XATmji39NHwKTpEelWt2rRx/RyXGgU2bQFp0Ft7yWaK2Uu8A/WVrP5fpxEAj4MstREMkQ== - } + resolution: {integrity: sha512-deGdV75giVzfTTdG9XATmji39NHwKTpEelWt2rRx/RyXGgU2bQFp0Ft7yWaK2Uu8A/WVrP5fpxEAj4MstREMkQ==} peerDependencies: core-js: '>=3.12.1' xgplayer@3.0.23: - resolution: - { - integrity: sha512-Bn3zQfMMAZimlVG9EeIDybMcklc+6FH8Sv47KpTq4K6ofCzyhPG/KenxailDedlHmxjb5B2o+240TpJtMQ3oJA== - } + resolution: {integrity: sha512-Bn3zQfMMAZimlVG9EeIDybMcklc+6FH8Sv47KpTq4K6ofCzyhPG/KenxailDedlHmxjb5B2o+240TpJtMQ3oJA==} peerDependencies: core-js: '>=3.12.1' xlsx@0.18.5: - resolution: - { - integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ== - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==} + engines: {node: '>=0.8'} hasBin: true xml-name-validator@4.0.0: - resolution: - { - integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xmlchars@2.2.0: + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} y18n@5.0.8: - resolution: - { - integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} yallist@3.1.1: - resolution: - { - integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - } + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} yallist@5.0.0: - resolution: - { - integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} yaml@2.8.1: - resolution: - { - integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== - } - engines: { node: '>= 14.6' } + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} hasBin: true yargs-parser@21.1.1: - resolution: - { - integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} yargs@17.7.2: - resolution: - { - integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - } - engines: { node: '>=12' } + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} yocto-queue@0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - } - engines: { node: '>=10' } + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} yocto-queue@1.2.1: - resolution: - { - integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg== - } - engines: { node: '>=12.20' } + resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} + engines: {node: '>=12.20'} yoctocolors@2.1.2: - resolution: - { - integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug== - } - engines: { node: '>=18' } + resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} + engines: {node: '>=18'} + + zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} zrender@6.0.0: - resolution: - { - integrity: sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg== - } + resolution: {integrity: sha512-41dFXEEXuJpNecuUQq6JlbybmnHaqqpGlbH1yxnA5V9MMP4SbohSVZsJIwz+zdjQXSSlR1Vc34EgH1zxyTDvhg==} snapshots: + + '@antfu/install-pkg@1.1.0': + dependencies: + package-manager-detector: 1.6.0 + tinyexec: 1.0.1 + '@antfu/utils@0.7.10': {} + '@antfu/utils@8.1.1': {} + '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.27.1 @@ -6618,25 +4741,23 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@cacheable/memoize@2.0.2': + '@cacheable/memory@2.0.8': dependencies: - '@cacheable/utils': 2.0.2 + '@cacheable/utils': 2.4.1 + '@keyv/bigmap': 1.3.1(keyv@5.6.0) + hookified: 1.15.1 + keyv: 5.6.0 - '@cacheable/memory@2.0.2': + '@cacheable/utils@2.4.1': dependencies: - '@cacheable/memoize': 2.0.2 - '@cacheable/utils': 2.0.2 - '@keyv/bigmap': 1.0.2 - hookified: 1.12.1 - keyv: 5.5.3 + hashery: 1.5.1 + keyv: 5.6.0 - '@cacheable/utils@2.0.2': {} - - '@commitlint/cli@19.8.1(@types/node@24.8.1)(typescript@5.6.3)': + '@commitlint/cli@19.8.1(@types/node@24.8.1)(typescript@5.9.3)': dependencies: '@commitlint/format': 19.8.1 '@commitlint/lint': 19.8.1 - '@commitlint/load': 19.8.1(@types/node@24.8.1)(typescript@5.6.3) + '@commitlint/load': 19.8.1(@types/node@24.8.1)(typescript@5.9.3) '@commitlint/read': 19.8.1 '@commitlint/types': 19.8.1 tinyexec: 1.0.1 @@ -6692,15 +4813,15 @@ snapshots: '@commitlint/rules': 19.8.1 '@commitlint/types': 19.8.1 - '@commitlint/load@19.8.1(@types/node@24.8.1)(typescript@5.6.3)': + '@commitlint/load@19.8.1(@types/node@24.8.1)(typescript@5.9.3)': dependencies: '@commitlint/config-validator': 19.8.1 '@commitlint/execute-rule': 19.8.1 '@commitlint/resolve-extends': 19.8.1 '@commitlint/types': 19.8.1 chalk: 5.6.2 - cosmiconfig: 9.0.0(typescript@5.6.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@24.8.1)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@24.8.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -6708,15 +4829,15 @@ snapshots: - '@types/node' - typescript - '@commitlint/load@20.0.0(@types/node@24.8.1)(typescript@5.6.3)': + '@commitlint/load@20.0.0(@types/node@24.8.1)(typescript@5.9.3)': dependencies: '@commitlint/config-validator': 20.0.0 '@commitlint/execute-rule': 20.0.0 '@commitlint/resolve-extends': 20.0.0 '@commitlint/types': 20.0.0 chalk: 5.6.2 - cosmiconfig: 9.0.0(typescript@5.6.3) - cosmiconfig-typescript-loader: 6.1.0(@types/node@24.8.1)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3) + cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig-typescript-loader: 6.1.0(@types/node@24.8.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -6788,6 +4909,10 @@ snapshots: dependencies: '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-syntax-patches-for-csstree@1.1.3(css-tree@3.1.0)': + optionalDependencies: + css-tree: 3.1.0 + '@csstools/css-tokenizer@3.0.4': {} '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': @@ -6803,9 +4928,9 @@ snapshots: '@dual-bundle/import-meta-resolve@4.2.1': {} - '@element-plus/icons-vue@2.3.2(vue@3.5.22(typescript@5.6.3))': + '@element-plus/icons-vue@2.3.2(vue@3.5.22(typescript@5.9.3))': dependencies: - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) '@esbuild/aix-ppc64@0.25.10': optional: true @@ -6929,6 +5054,25 @@ snapshots: '@eslint/core': 0.15.2 levn: 0.4.1 + '@fast-csv/format@4.3.5': + dependencies: + '@types/node': 14.18.63 + lodash.escaperegexp: 4.1.2 + lodash.isboolean: 3.0.3 + lodash.isequal: 4.5.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + + '@fast-csv/parse@4.3.6': + dependencies: + '@types/node': 14.18.63 + lodash.escaperegexp: 4.1.2 + lodash.groupby: 4.6.0 + lodash.isfunction: 3.0.9 + lodash.isnil: 4.0.0 + lodash.isundefined: 3.0.1 + lodash.uniq: 4.5.0 + '@floating-ui/core@1.7.3': dependencies: '@floating-ui/utils': 0.2.10 @@ -6953,22 +5097,50 @@ snapshots: '@iconify/types@2.0.0': {} - '@iconify/vue@5.0.0(vue@3.5.22(typescript@5.6.3))': + '@iconify/utils@2.3.0': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@antfu/utils': 8.1.1 + '@iconify/types': 2.0.0 + debug: 4.4.3 + globals: 15.15.0 + kolorist: 1.8.0 + local-pkg: 1.1.2 + mlly: 1.8.0 + transitivePeerDependencies: + - supports-color + + '@iconify/vue@5.0.0(vue@3.5.22(typescript@5.9.3))': dependencies: '@iconify/types': 2.0.0 - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) - '@intlify/core-base@9.14.5': + '@intlify/core-base@11.4.0': dependencies: - '@intlify/message-compiler': 9.14.5 - '@intlify/shared': 9.14.5 + '@intlify/devtools-types': 11.4.0 + '@intlify/message-compiler': 11.4.0 + '@intlify/shared': 11.4.0 - '@intlify/message-compiler@9.14.5': + '@intlify/devtools-types@11.4.0': dependencies: - '@intlify/shared': 9.14.5 + '@intlify/core-base': 11.4.0 + '@intlify/shared': 11.4.0 + + '@intlify/message-compiler@11.4.0': + dependencies: + '@intlify/shared': 11.4.0 source-map-js: 1.2.1 - '@intlify/shared@9.14.5': {} + '@intlify/shared@11.4.0': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 '@isaacs/fs-minipass@4.0.1': dependencies: @@ -6998,9 +5170,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@keyv/bigmap@1.0.2': + '@keyv/bigmap@1.3.1(keyv@5.6.0)': dependencies: - hookified: 1.12.1 + hashery: 1.5.1 + hookified: 1.15.1 + keyv: 5.6.0 '@keyv/serialize@1.1.1': {} @@ -7016,6 +5190,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.19.1 + '@one-ini/wasm@0.1.1': {} + '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -7077,6 +5253,9 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true + '@pkgjs/parseargs@0.11.0': + optional: true + '@pkgr/core@0.2.9': {} '@polka/url@1.0.0-next.29': {} @@ -7236,67 +5415,105 @@ snapshots: '@transloadit/prettier-bytes@0.0.7': {} + '@types/codemirror@5.60.17': + dependencies: + '@types/tern': 0.23.9 + '@types/conventional-commits-parser@5.0.1': dependencies: '@types/node': 24.8.1 + '@types/dagre@0.7.54': {} + + '@types/dompurify@3.2.0': + dependencies: + dompurify: 3.4.2 + '@types/estree@1.0.8': {} '@types/event-emitter@0.3.5': {} + '@types/file-saver@2.0.7': {} + '@types/json-schema@7.0.15': {} + '@types/linkify-it@5.0.0': {} + '@types/lodash-es@4.17.12': dependencies: '@types/lodash': 4.17.20 '@types/lodash@4.17.20': {} + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdurl@2.0.0': {} + + '@types/node@14.18.63': {} + '@types/node@24.8.1': dependencies: undici-types: 7.14.0 + '@types/nprogress@0.2.3': {} + + '@types/path-browserify@1.0.3': {} + + '@types/qs@6.15.0': {} + '@types/sortablejs@1.15.8': {} + '@types/tern@0.23.9': + dependencies: + '@types/estree': 1.0.8 + + '@types/trusted-types@2.0.7': + optional: true + '@types/web-bluetooth@0.0.16': {} + '@types/web-bluetooth@0.0.20': {} + '@types/web-bluetooth@0.0.21': {} - '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3))(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) + '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) '@typescript-eslint/scope-manager': 8.44.1 - '@typescript-eslint/type-utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) - '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) + '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.44.1 eslint: 9.36.0(jiti@2.6.0) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.6.3) - typescript: 5.6.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3)': + '@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.44.1 '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.44.1 debug: 4.4.3 eslint: 9.36.0(jiti@2.6.0) - typescript: 5.6.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.44.1(typescript@5.6.3)': + '@typescript-eslint/project-service@8.44.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.6.3) + '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.3) '@typescript-eslint/types': 8.44.1 debug: 4.4.3 - typescript: 5.6.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -7305,28 +5522,28 @@ snapshots: '@typescript-eslint/types': 8.44.1 '@typescript-eslint/visitor-keys': 8.44.1 - '@typescript-eslint/tsconfig-utils@8.44.1(typescript@5.6.3)': + '@typescript-eslint/tsconfig-utils@8.44.1(typescript@5.9.3)': dependencies: - typescript: 5.6.3 + typescript: 5.9.3 - '@typescript-eslint/type-utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) debug: 4.4.3 eslint: 9.36.0(jiti@2.6.0) - ts-api-utils: 2.1.0(typescript@5.6.3) - typescript: 5.6.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color '@typescript-eslint/types@8.44.1': {} - '@typescript-eslint/typescript-estree@8.44.1(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.44.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.44.1(typescript@5.6.3) - '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.6.3) + '@typescript-eslint/project-service': 8.44.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.44.1(typescript@5.9.3) '@typescript-eslint/types': 8.44.1 '@typescript-eslint/visitor-keys': 8.44.1 debug: 4.4.3 @@ -7334,19 +5551,19 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.6.3) - typescript: 5.6.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3)': + '@typescript-eslint/utils@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) '@typescript-eslint/scope-manager': 8.44.1 '@typescript-eslint/types': 8.44.1 - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) eslint: 9.36.0(jiti@2.6.0) - typescript: 5.6.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -7384,24 +5601,52 @@ snapshots: '@uppy/utils': 4.1.3 nanoid: 3.3.11 - '@vitejs/plugin-vue@6.0.1(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.6.3))': + '@vitejs/plugin-vue@6.0.1(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 vite: 7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) - '@volar/language-core@2.4.23': + '@volar/language-core@2.4.15': dependencies: - '@volar/source-map': 2.4.23 + '@volar/source-map': 2.4.15 - '@volar/source-map@2.4.23': {} + '@volar/source-map@2.4.15': {} - '@volar/typescript@2.4.23': + '@volar/typescript@2.4.15': dependencies: - '@volar/language-core': 2.4.23 + '@volar/language-core': 2.4.15 path-browserify: 1.0.1 vscode-uri: 3.1.0 + '@vue-flow/background@1.3.2(@vue-flow/core@1.48.2(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@vue-flow/core': 1.48.2(vue@3.5.22(typescript@5.9.3)) + vue: 3.5.22(typescript@5.9.3) + + '@vue-flow/controls@1.1.3(@vue-flow/core@1.48.2(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@vue-flow/core': 1.48.2(vue@3.5.22(typescript@5.9.3)) + vue: 3.5.22(typescript@5.9.3) + + '@vue-flow/core@1.48.2(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@vueuse/core': 10.11.1(vue@3.5.22(typescript@5.9.3)) + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-zoom: 3.0.0 + vue: 3.5.22(typescript@5.9.3) + transitivePeerDependencies: + - '@vue/composition-api' + + '@vue-flow/minimap@1.5.4(@vue-flow/core@1.48.2(vue@3.5.22(typescript@5.9.3)))(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@vue-flow/core': 1.48.2(vue@3.5.22(typescript@5.9.3)) + d3-selection: 3.0.0 + d3-zoom: 3.0.0 + vue: 3.5.22(typescript@5.9.3) + '@vue/babel-helper-vue-transform-on@1.5.0': {} '@vue/babel-plugin-jsx@1.5.0(@babel/core@7.28.4)': @@ -7472,7 +5717,7 @@ snapshots: dependencies: '@vue/devtools-kit': 7.7.7 - '@vue/devtools-core@7.7.7(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.6.3))': + '@vue/devtools-core@7.7.7(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': dependencies: '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 @@ -7480,7 +5725,7 @@ snapshots: nanoid: 5.1.6 pathe: 2.0.3 vite-hot-client: 2.1.0(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - vite @@ -7498,18 +5743,18 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@2.1.10(typescript@5.6.3)': + '@vue/language-core@2.2.12(typescript@5.9.3)': dependencies: - '@volar/language-core': 2.4.23 + '@volar/language-core': 2.4.15 '@vue/compiler-dom': 3.5.22 '@vue/compiler-vue2': 2.7.16 '@vue/shared': 3.5.22 - alien-signals: 0.2.2 + alien-signals: 1.0.13 minimatch: 9.0.5 muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 '@vue/reactivity@3.5.22': dependencies: @@ -7527,152 +5772,169 @@ snapshots: '@vue/shared': 3.5.22 csstype: 3.1.3 - '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.6.3))': + '@vue/server-renderer@3.5.22(vue@3.5.22(typescript@5.9.3))': dependencies: '@vue/compiler-ssr': 3.5.22 '@vue/shared': 3.5.22 - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) '@vue/shared@3.5.22': {} - '@vueuse/core@13.9.0(vue@3.5.22(typescript@5.6.3))': + '@vueuse/core@10.11.1(vue@3.5.22(typescript@5.9.3))': dependencies: - '@types/web-bluetooth': 0.0.21 - '@vueuse/metadata': 13.9.0 - '@vueuse/shared': 13.9.0(vue@3.5.22(typescript@5.6.3)) - vue: 3.5.22(typescript@5.6.3) - - '@vueuse/core@9.13.0(vue@3.5.22(typescript@5.6.3))': - dependencies: - '@types/web-bluetooth': 0.0.16 - '@vueuse/metadata': 9.13.0 - '@vueuse/shared': 9.13.0(vue@3.5.22(typescript@5.6.3)) - vue-demi: 0.14.10(vue@3.5.22(typescript@5.6.3)) + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.1 + '@vueuse/shared': 10.11.1(vue@3.5.22(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - vue + '@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 13.9.0 + '@vueuse/shared': 13.9.0(vue@3.5.22(typescript@5.9.3)) + vue: 3.5.22(typescript@5.9.3) + + '@vueuse/core@9.13.0(vue@3.5.22(typescript@5.9.3))': + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0(vue@3.5.22(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@10.11.1': {} + '@vueuse/metadata@13.9.0': {} '@vueuse/metadata@9.13.0': {} - '@vueuse/shared@13.9.0(vue@3.5.22(typescript@5.6.3))': + '@vueuse/shared@10.11.1(vue@3.5.22(typescript@5.9.3))': dependencies: - vue: 3.5.22(typescript@5.6.3) - - '@vueuse/shared@9.13.0(vue@3.5.22(typescript@5.6.3))': - dependencies: - vue-demi: 0.14.10(vue@3.5.22(typescript@5.6.3)) + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)': + '@vueuse/shared@13.9.0(vue@3.5.22(typescript@5.9.3))': dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - dom7: 3.0.0 + vue: 3.5.22(typescript@5.9.3) + + '@vueuse/shared@9.13.0(vue@3.5.22(typescript@5.9.3))': + dependencies: + vue-demi: 0.14.10(vue@3.5.22(typescript@5.9.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@wangeditor-next/basic-modules@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2)': + dependencies: + '@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + dom7: 4.0.6 is-url: 1.2.4 lodash.throttle: 4.1.1 - nanoid: 3.3.11 - slate: 0.72.8 + nanoid: 5.1.6 + slate: 0.123.0 snabbdom: 3.6.2 - '@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)': + '@wangeditor-next/code-highlight@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.2)': dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - dom7: 3.0.0 + '@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + dom7: 4.0.6 prismjs: 1.30.0 - slate: 0.72.8 + slate: 0.123.0 snabbdom: 3.6.2 - '@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)': + '@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2)': dependencies: '@types/event-emitter': 0.3.5 '@uppy/core': 2.3.4 '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) - dom7: 3.0.0 + dom7: 4.0.6 event-emitter: 0.3.5 - html-void-elements: 2.0.1 - i18next: 20.6.1 + html-void-elements: 3.0.0 + i18next: 23.16.8 is-hotkey: 0.2.0 lodash.camelcase: 4.3.0 lodash.clonedeep: 4.5.0 lodash.debounce: 4.0.8 lodash.foreach: 4.5.0 - lodash.isequal: 4.5.0 lodash.throttle: 4.1.1 lodash.toarray: 4.4.0 - nanoid: 3.3.11 - scroll-into-view-if-needed: 2.2.31 - slate: 0.72.8 - slate-history: 0.66.0(slate@0.72.8) + nanoid: 5.1.6 + scroll-into-view-if-needed: 3.1.0 + slate: 0.123.0 + slate-history: 0.115.0(slate@0.123.0) snabbdom: 3.6.2 - '@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.23)(vue@3.5.22(typescript@5.6.3))': + '@wangeditor-next/editor-for-vue@5.1.14(@wangeditor-next/editor@5.7.0)(vue@3.5.22(typescript@5.9.3))': dependencies: - '@wangeditor/editor': 5.1.23 - vue: 3.5.22(typescript@5.6.3) + '@wangeditor-next/editor': 5.7.0 + vue: 3.5.22(typescript@5.9.3) - '@wangeditor/editor@5.1.23': + '@wangeditor-next/editor@5.7.0': dependencies: '@uppy/core': 2.3.4 '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) - '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - '@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2) - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - '@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2) - '@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - '@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2) - '@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - dom7: 3.0.0 + '@wangeditor-next/basic-modules': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + '@wangeditor-next/code-highlight': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.2) + '@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + '@wangeditor-next/list-module': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.2) + '@wangeditor-next/table-module': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + '@wangeditor-next/upload-image-module': 2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.123.0)(snabbdom@3.6.2) + '@wangeditor-next/video-module': 2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + dom7: 4.0.6 is-hotkey: 0.2.0 lodash.camelcase: 4.3.0 lodash.clonedeep: 4.5.0 lodash.debounce: 4.0.8 lodash.foreach: 4.5.0 - lodash.isequal: 4.5.0 lodash.throttle: 4.1.1 lodash.toarray: 4.4.0 - nanoid: 3.3.11 - slate: 0.72.8 + nanoid: 5.1.6 + slate: 0.123.0 snabbdom: 3.6.2 - '@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.6.2)': + '@wangeditor-next/list-module@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(slate@0.123.0)(snabbdom@3.6.2)': dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - dom7: 3.0.0 - slate: 0.72.8 + '@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + dom7: 4.0.6 + slate: 0.123.0 snabbdom: 3.6.2 - '@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)': + '@wangeditor-next/table-module@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(lodash.debounce@4.0.8)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2)': dependencies: - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - dom7: 3.0.0 - lodash.isequal: 4.5.0 + '@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + dom7: 4.0.6 + lodash.debounce: 4.0.8 lodash.throttle: 4.1.1 - nanoid: 3.3.11 - slate: 0.72.8 + nanoid: 5.1.6 + slate: 0.123.0 snabbdom: 3.6.2 - '@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.6.2)': + '@wangeditor-next/upload-image-module@2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/basic-modules@2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(lodash.foreach@4.5.0)(slate@0.123.0)(snabbdom@3.6.2)': dependencies: '@uppy/core': 2.3.4 '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) - '@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - dom7: 3.0.0 + '@wangeditor-next/basic-modules': 2.0.0(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(lodash.throttle@4.1.1)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + '@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + dom7: 4.0.6 lodash.foreach: 4.5.0 - slate: 0.72.8 + slate: 0.123.0 snabbdom: 3.6.2 - '@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2))(dom7@3.0.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2)': + '@wangeditor-next/video-module@2.0.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(@wangeditor-next/core@1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2))(dom7@4.0.6)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2)': dependencies: '@uppy/core': 2.3.4 '@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4) - '@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@3.0.0)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@3.3.11)(slate@0.72.8)(snabbdom@3.6.2) - dom7: 3.0.0 - nanoid: 3.3.11 - slate: 0.72.8 + '@wangeditor-next/core': 1.8.0(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4))(dom7@4.0.6)(is-hotkey@0.2.0)(lodash.camelcase@4.3.0)(lodash.clonedeep@4.5.0)(lodash.debounce@4.0.8)(lodash.foreach@4.5.0)(lodash.throttle@4.1.1)(lodash.toarray@4.4.0)(nanoid@5.1.6)(slate@0.123.0)(snabbdom@3.6.2) + dom7: 4.0.6 + nanoid: 5.1.6 + slate: 0.123.0 snabbdom: 3.6.2 JSONStream@1.3.5: @@ -7680,6 +5942,8 @@ snapshots: jsonparse: 1.3.1 through: 2.3.8 + abbrev@2.0.0: {} + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -7702,7 +5966,9 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - alien-signals@0.2.2: {} + alien-signals@1.0.13: {} + + animate.css@4.1.1: {} ansi-escapes@4.3.2: dependencies: @@ -7731,6 +5997,42 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + archiver-utils@2.1.0: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + + archiver-utils@3.0.4: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + archiver@5.3.2: + dependencies: + archiver-utils: 2.1.0 + async: 3.2.6 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + argparse@2.0.1: {} array-ify@1.0.0: {} @@ -7741,10 +6043,21 @@ snapshots: async-validator@4.2.5: {} + async@3.2.6: {} + asynckit@0.4.0: {} at-least-node@1.0.0: {} + autoprefixer@10.5.0(postcss@8.5.6): + dependencies: + browserslist: 4.28.2 + caniuse-lite: 1.0.30001791 + fraction.js: 5.3.4 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + axios@1.12.2: dependencies: follow-redirects: 1.15.11 @@ -7759,10 +6072,19 @@ snapshots: base64-js@1.5.1: {} + baseline-browser-mapping@2.10.25: {} + baseline-browser-mapping@2.8.8: {} + big-integer@1.6.52: {} + binary-extensions@2.3.0: {} + binary@0.3.0: + dependencies: + buffers: 0.1.1 + chainsaw: 0.1.0 + birpc@2.6.1: {} bl@4.1.0: @@ -7771,6 +6093,8 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + bluebird@3.4.7: {} + boolbase@1.0.0: {} brace-expansion@1.1.12: @@ -7794,24 +6118,38 @@ snapshots: node-releases: 2.0.21 update-browserslist-db: 1.1.3(browserslist@4.26.2) + browserslist@4.28.2: + dependencies: + baseline-browser-mapping: 2.10.25 + caniuse-lite: 1.0.30001791 + electron-to-chromium: 1.5.348 + node-releases: 2.0.38 + update-browserslist-db: 1.2.3(browserslist@4.28.2) + + buffer-crc32@0.2.13: {} + buffer-from@1.1.2: {} + buffer-indexof-polyfill@1.0.2: {} + buffer@5.7.1: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + buffers@0.1.1: {} + bundle-name@4.1.0: dependencies: run-applescript: 7.1.0 - cacheable@2.0.2: + cacheable@2.3.4: dependencies: - '@cacheable/memoize': 2.0.2 - '@cacheable/memory': 2.0.2 - '@cacheable/utils': 2.0.2 - hookified: 1.12.1 - keyv: 5.5.3 + '@cacheable/memory': 2.0.8 + '@cacheable/utils': 2.4.1 + hookified: 1.15.1 + keyv: 5.6.0 + qified: 0.9.1 cachedir@2.3.0: {} @@ -7820,15 +6158,26 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + callsites@3.1.0: {} caniuse-lite@1.0.30001745: {} + caniuse-lite@1.0.30001791: {} + cfb@1.2.2: dependencies: adler-32: 1.3.1 crc-32: 1.2.2 + chainsaw@0.1.0: + dependencies: + traverse: 0.3.9 + chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -7879,6 +6228,12 @@ snapshots: cli-width@3.0.0: {} + clipboard@2.0.11: + dependencies: + good-listener: 1.2.2 + select: 1.1.2 + tiny-emitter: 2.1.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -7887,6 +6242,14 @@ snapshots: clone@1.0.4: {} + codemirror-editor-vue3@2.8.0(codemirror@5.65.21)(diff-match-patch@1.0.5)(vue@3.5.22(typescript@5.9.3)): + dependencies: + codemirror: 5.65.21 + diff-match-patch: 1.0.5 + vue: 3.5.22(typescript@5.9.3) + + codemirror@5.65.21: {} + codepage@1.15.0: {} color-convert@1.9.3: @@ -7909,14 +6272,16 @@ snapshots: dependencies: delayed-stream: 1.0.0 + commander@10.0.1: {} + commander@13.1.0: {} commander@2.20.3: {} - commitizen@4.3.1(@types/node@24.8.1)(typescript@5.6.3): + commitizen@4.3.1(@types/node@24.8.1)(typescript@5.9.3): dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@24.8.1)(typescript@5.6.3) + cz-conventional-changelog: 3.3.0(@types/node@24.8.1)(typescript@5.9.3) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -7938,7 +6303,14 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 - compute-scroll-into-view@1.0.20: {} + compress-commons@4.1.2: + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + compute-scroll-into-view@3.1.1: {} concat-map@0.0.1: {} @@ -7946,6 +6318,11 @@ snapshots: confbox@0.2.2: {} + config-chain@1.1.13: + dependencies: + ini: 1.3.8 + proto-list: 1.2.4 + conventional-changelog-angular@7.0.0: dependencies: compare-func: 2.0.0 @@ -7971,24 +6348,31 @@ snapshots: core-js@3.45.1: {} - cosmiconfig-typescript-loader@6.1.0(@types/node@24.8.1)(cosmiconfig@9.0.0(typescript@5.6.3))(typescript@5.6.3): + core-util-is@1.0.3: {} + + cosmiconfig-typescript-loader@6.1.0(@types/node@24.8.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): dependencies: '@types/node': 24.8.1 - cosmiconfig: 9.0.0(typescript@5.6.3) + cosmiconfig: 9.0.0(typescript@5.9.3) jiti: 2.6.0 - typescript: 5.6.3 + typescript: 5.9.3 - cosmiconfig@9.0.0(typescript@5.6.3): + cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 crc-32@1.2.2: {} + crc32-stream@4.0.3: + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -8008,27 +6392,68 @@ snapshots: csstype@3.1.3: {} - cz-conventional-changelog@3.3.0(@types/node@24.8.1)(typescript@5.6.3): + cz-conventional-changelog@3.3.0(@types/node@24.8.1)(typescript@5.9.3): dependencies: chalk: 2.4.2 - commitizen: 4.3.1(@types/node@24.8.1)(typescript@5.6.3) + commitizen: 4.3.1(@types/node@24.8.1)(typescript@5.9.3) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 20.0.0(@types/node@24.8.1)(typescript@5.6.3) + '@commitlint/load': 20.0.0(@types/node@24.8.1)(typescript@5.9.3) transitivePeerDependencies: - '@types/node' - typescript cz-git@1.12.0: {} + d3-color@3.1.0: {} + + d3-dispatch@3.0.1: {} + + d3-drag@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + + d3-ease@3.0.1: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-selection@3.0.0: {} + + d3-timer@3.0.1: {} + + d3-transition@3.0.1(d3-selection@3.0.0): + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + + d3-zoom@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + d@1.0.2: dependencies: es5-ext: 0.10.64 type: 2.7.3 + dagre@0.8.5: + dependencies: + graphlib: 2.1.8 + lodash: 4.17.21 + danmu.js@1.1.13: dependencies: event-emitter: 0.3.5 @@ -8081,6 +6506,8 @@ snapshots: detect-libc@2.1.2: {} + diff-match-patch@1.0.5: {} + dir-glob@3.0.1: dependencies: path-type: 4.0.0 @@ -8091,9 +6518,9 @@ snapshots: domhandler: 5.0.3 entities: 4.5.0 - dom7@3.0.0: + dom7@4.0.6: dependencies: - ssr-window: 3.0.0 + ssr-window: 4.0.2 domelementtype@2.3.0: {} @@ -8101,6 +6528,10 @@ snapshots: dependencies: domelementtype: 2.3.0 + dompurify@3.4.2: + optionalDependencies: + '@types/trusted-types': 2.0.7 + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 @@ -8119,22 +6550,37 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + duplexer2@0.1.4: + dependencies: + readable-stream: 2.3.8 + + eastasianwidth@0.2.0: {} + echarts@6.0.0: dependencies: tslib: 2.3.0 zrender: 6.0.0 + editorconfig@1.0.7: + dependencies: + '@one-ini/wasm': 0.1.1 + commander: 10.0.1 + minimatch: 9.0.5 + semver: 7.7.2 + electron-to-chromium@1.5.227: {} - element-plus@2.11.4(vue@3.5.22(typescript@5.6.3)): + electron-to-chromium@1.5.348: {} + + element-plus@2.11.4(vue@3.5.22(typescript@5.9.3)): dependencies: '@ctrl/tinycolor': 3.6.1 - '@element-plus/icons-vue': 2.3.2(vue@3.5.22(typescript@5.6.3)) + '@element-plus/icons-vue': 2.3.2(vue@3.5.22(typescript@5.9.3)) '@floating-ui/dom': 1.7.4 '@popperjs/core': '@sxzz/popperjs-es@2.11.7' '@types/lodash': 4.17.20 '@types/lodash-es': 4.17.12 - '@vueuse/core': 9.13.0(vue@3.5.22(typescript@5.6.3)) + '@vueuse/core': 9.13.0(vue@3.5.22(typescript@5.9.3)) async-validator: 4.2.5 dayjs: 1.11.18 escape-html: 1.0.3 @@ -8143,7 +6589,7 @@ snapshots: lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21) memoize-one: 6.0.0 normalize-wheel-es: 1.2.0 - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) transitivePeerDependencies: - '@vue/composition-api' @@ -8151,6 +6597,12 @@ snapshots: emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + + end-of-stream@1.4.5: + dependencies: + once: 1.4.0 + enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 @@ -8242,37 +6694,31 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-prettier@9.1.2(eslint@9.36.0(jiti@2.6.0)): + eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)): dependencies: eslint: 9.36.0(jiti@2.6.0) - eslint-plugin-prettier@5.5.4(eslint-config-prettier@9.1.2(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(prettier@3.6.2): + eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.36.0(jiti@2.6.0)))(eslint@9.36.0(jiti@2.6.0))(prettier@3.6.2): dependencies: eslint: 9.36.0(jiti@2.6.0) prettier: 3.6.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.11 optionalDependencies: - eslint-config-prettier: 9.1.2(eslint@9.36.0(jiti@2.6.0)) + eslint-config-prettier: 10.1.8(eslint@9.36.0(jiti@2.6.0)) - eslint-plugin-vue@9.33.0(eslint@9.36.0(jiti@2.6.0)): + eslint-plugin-vue@10.9.0(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.0))(vue-eslint-parser@10.4.0(eslint@9.36.0(jiti@2.6.0))): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.6.0)) eslint: 9.36.0(jiti@2.6.0) - globals: 13.24.0 natural-compare: 1.4.0 nth-check: 2.1.1 - postcss-selector-parser: 6.1.2 + postcss-selector-parser: 7.1.0 semver: 7.7.2 - vue-eslint-parser: 9.4.3(eslint@9.36.0(jiti@2.6.0)) + vue-eslint-parser: 10.4.0(eslint@9.36.0(jiti@2.6.0)) xml-name-validator: 4.0.0 - transitivePeerDependencies: - - supports-color - - eslint-scope@7.2.2: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 + optionalDependencies: + '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) eslint-scope@8.4.0: dependencies: @@ -8338,12 +6784,6 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 - espree@9.6.1: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 3.4.3 - esquery@1.6.0: dependencies: estraverse: 5.3.0 @@ -8371,6 +6811,18 @@ snapshots: eventemitter3@5.0.1: {} + exceljs@4.4.0: + dependencies: + archiver: 5.3.2 + dayjs: 1.11.18 + fast-csv: 4.3.6 + jszip: 3.10.1 + readable-stream: 3.6.2 + saxes: 5.0.1 + tmp: 0.2.5 + unzipper: 0.10.14 + uuid: 8.3.2 + execa@8.0.1: dependencies: cross-spawn: 7.0.6 @@ -8414,6 +6866,11 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 + fast-csv@4.3.6: + dependencies: + '@fast-csv/format': 4.3.5 + '@fast-csv/parse': 4.3.6 + fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} @@ -8450,9 +6907,9 @@ snapshots: dependencies: is-unicode-supported: 2.1.0 - file-entry-cache@10.1.4: + file-entry-cache@11.1.2: dependencies: - flat-cache: 6.1.14 + flat-cache: 6.1.22 file-entry-cache@8.0.0: dependencies: @@ -8494,16 +6951,23 @@ snapshots: flatted: 3.3.3 keyv: 4.5.4 - flat-cache@6.1.14: + flat-cache@6.1.22: dependencies: - cacheable: 2.0.2 - flatted: 3.3.3 - hookified: 1.12.1 + cacheable: 2.3.4 + flatted: 3.4.2 + hookified: 1.15.1 flatted@3.3.3: {} + flatted@3.4.2: {} + follow-redirects@1.15.11: {} + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + form-data@4.0.4: dependencies: asynckit: 0.4.0 @@ -8514,6 +6978,10 @@ snapshots: frac@1.1.2: {} + fraction.js@5.3.4: {} + + fs-constants@1.0.0: {} + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -8538,6 +7006,13 @@ snapshots: fsevents@2.3.3: optional: true + fstream@1.0.12: + dependencies: + graceful-fs: 4.2.11 + inherits: 2.0.4 + mkdirp: 0.5.6 + rimraf: 2.7.1 + function-bind@1.1.2: {} gensync@1.0.0-beta.2: {} @@ -8589,6 +7064,15 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -8626,10 +7110,6 @@ snapshots: kind-of: 6.0.3 which: 1.3.1 - globals@13.24.0: - dependencies: - type-fest: 0.20.2 - globals@14.0.0: {} globals@15.15.0: {} @@ -8645,12 +7125,20 @@ snapshots: globjoin@0.1.4: {} + good-listener@1.2.2: + dependencies: + delegate: 3.2.0 + gopd@1.2.0: {} graceful-fs@4.2.11: {} graphemer@1.4.0: {} + graphlib@2.1.8: + dependencies: + lodash: 4.17.21 + has-flag@3.0.0: {} has-flag@4.0.0: {} @@ -8661,6 +7149,10 @@ snapshots: dependencies: has-symbols: 1.1.0 + hashery@1.5.1: + dependencies: + hookified: 1.15.1 + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -8675,11 +7167,13 @@ snapshots: hookable@5.5.3: {} - hookified@1.12.1: {} + hookified@1.15.1: {} + + hookified@2.2.0: {} html-tags@3.3.1: {} - html-void-elements@2.0.1: {} + html-void-elements@3.0.0: {} htmlparser2@8.0.2: dependencies: @@ -8694,7 +7188,7 @@ snapshots: husky@9.1.7: {} - i18next@20.6.1: + i18next@23.16.8: dependencies: '@babel/runtime': 7.28.4 @@ -8708,7 +7202,7 @@ snapshots: ignore@7.0.5: {} - immer@9.0.21: {} + immediate@3.0.6: {} immutable@5.1.3: {} @@ -8818,10 +7312,28 @@ snapshots: dependencies: is-inside-container: 1.0.0 + isarray@1.0.0: {} + isexe@2.0.0: {} + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jiti@2.6.0: {} + js-beautify@1.15.4: + dependencies: + config-chain: 1.1.13 + editorconfig: 1.0.7 + glob: 10.4.5 + js-cookie: 3.0.5 + nopt: 7.2.1 + + js-cookie@3.0.5: {} + js-tokens@4.0.0: {} js-tokens@9.0.1: {} @@ -8852,11 +7364,18 @@ snapshots: jsonparse@1.3.1: {} + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 - keyv@5.5.3: + keyv@5.6.0: dependencies: '@keyv/serialize': 1.1.1 @@ -8868,11 +7387,19 @@ snapshots: kolorist@1.8.0: {} + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + levn@0.4.1: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + lie@3.3.0: + dependencies: + immediate: 3.0.6 + lightningcss-darwin-arm64@1.30.1: optional: true @@ -8922,6 +7449,10 @@ snapshots: lines-and-columns@1.2.4: {} + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + lint-staged@15.5.2: dependencies: chalk: 5.6.2 @@ -8937,6 +7468,8 @@ snapshots: transitivePeerDependencies: - supports-color + listenercount@1.0.1: {} + listr2@8.3.3: dependencies: cli-truncate: 4.0.0 @@ -8974,12 +7507,30 @@ snapshots: lodash.debounce@4.0.8: {} + lodash.defaults@4.2.0: {} + + lodash.difference@4.5.0: {} + + lodash.escaperegexp@4.1.2: {} + + lodash.flatten@4.4.0: {} + lodash.foreach@4.5.0: {} + lodash.groupby@4.6.0: {} + + lodash.isboolean@3.0.3: {} + lodash.isequal@4.5.0: {} + lodash.isfunction@3.0.9: {} + + lodash.isnil@4.0.0: {} + lodash.isplainobject@4.0.6: {} + lodash.isundefined@3.0.1: {} + lodash.kebabcase@4.1.1: {} lodash.map@4.6.0: {} @@ -8998,6 +7549,8 @@ snapshots: lodash.truncate@4.4.2: {} + lodash.union@4.6.0: {} + lodash.uniq@4.5.0: {} lodash.upperfirst@4.3.1: {} @@ -9019,6 +7572,8 @@ snapshots: longest@2.0.1: {} + lru-cache@10.4.3: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -9027,6 +7582,19 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + markdown-it-highlightjs@4.3.0: + dependencies: + highlight.js: 11.11.1 + + markdown-it@14.1.1: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + math-intrinsics@1.1.0: {} mathml-tag-names@2.1.3: {} @@ -9035,6 +7603,8 @@ snapshots: mdn-data@2.24.0: {} + mdurl@2.0.0: {} + memoize-one@6.0.0: {} meow@12.1.1: {} @@ -9072,6 +7642,10 @@ snapshots: dependencies: brace-expansion: 1.1.12 + minimatch@5.1.9: + dependencies: + brace-expansion: 2.0.2 + minimatch@9.0.5: dependencies: brace-expansion: 2.0.2 @@ -9088,6 +7662,10 @@ snapshots: mitt@3.0.1: {} + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + mlly@1.8.0: dependencies: acorn: 8.15.0 @@ -9118,6 +7696,12 @@ snapshots: node-releases@2.0.21: {} + node-releases@2.0.38: {} + + nopt@7.2.1: + dependencies: + abbrev: 2.0.0 + normalize-path@3.0.0: {} normalize-wheel-es@1.2.0: {} @@ -9137,6 +7721,8 @@ snapshots: dependencies: boolbase: 1.0.0 + object-inspect@1.13.4: {} + ohash@2.0.11: {} once@1.4.0: @@ -9207,6 +7793,12 @@ snapshots: dependencies: p-limit: 4.0.0 + package-json-from-dist@1.0.1: {} + + package-manager-detector@1.6.0: {} + + pako@1.0.11: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -9234,6 +7826,13 @@ snapshots: path-key@4.0.0: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-to-regexp@8.4.2: {} + path-type@4.0.0: {} pathe@2.0.3: {} @@ -9248,20 +7847,20 @@ snapshots: pidtree@0.6.0: {} - pinia-plugin-persistedstate@4.5.0(pinia@3.0.3(typescript@5.6.3)(vue@3.5.22(typescript@5.6.3))): + pinia-plugin-persistedstate@4.5.0(pinia@3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))): dependencies: deep-pick-omit: 1.2.1 defu: 6.1.4 destr: 2.0.5 optionalDependencies: - pinia: 3.0.3(typescript@5.6.3)(vue@3.5.22(typescript@5.6.3)) + pinia: 3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)) - pinia@3.0.3(typescript@5.6.3)(vue@3.5.22(typescript@5.6.3)): + pinia@3.0.3(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3)): dependencies: '@vue/devtools-api': 7.7.7 - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 pkg-types@1.3.1: dependencies: @@ -9298,11 +7897,6 @@ snapshots: dependencies: postcss: 8.5.6 - postcss-selector-parser@6.1.2: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 @@ -9336,24 +7930,52 @@ snapshots: prismjs@1.30.0: {} + process-nextick-args@2.0.1: {} + + proto-list@1.2.4: {} + proxy-from-env@1.1.0: {} + punycode.js@2.3.1: {} + punycode@2.3.1: {} - qrcode.vue@3.6.0(vue@3.5.22(typescript@5.6.3)): + qified@0.9.1: dependencies: - vue: 3.5.22(typescript@5.6.3) + hookified: 2.2.0 + + qrcode.vue@3.6.0(vue@3.5.22(typescript@5.9.3)): + dependencies: + vue: 3.5.22(typescript@5.9.3) + + qs@6.15.1: + dependencies: + side-channel: 1.1.0 quansync@0.2.11: {} queue-microtask@1.2.3: {} + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 string_decoder: 1.3.0 util-deprecate: 1.0.2 + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.9 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -9389,6 +8011,10 @@ snapshots: rfdc@1.4.1: {} + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + rollup-plugin-visualizer@5.14.0(rollup@4.52.3): dependencies: open: 8.4.2 @@ -9438,6 +8064,8 @@ snapshots: dependencies: tslib: 2.8.1 + safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} safer-buffer@2.1.2: {} @@ -9450,22 +8078,58 @@ snapshots: optionalDependencies: '@parcel/watcher': 2.5.1 - scroll-into-view-if-needed@2.2.31: + saxes@5.0.1: dependencies: - compute-scroll-into-view: 1.0.20 + xmlchars: 2.2.0 + + scroll-into-view-if-needed@3.1.0: + dependencies: + compute-scroll-into-view: 3.1.1 scule@1.3.0: {} + select@1.1.2: {} + semver@6.3.1: {} semver@7.7.2: {} + setimmediate@1.0.5: {} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -9478,16 +8142,11 @@ snapshots: slash@3.0.0: {} - slate-history@0.66.0(slate@0.72.8): + slate-history@0.115.0(slate@0.123.0): dependencies: - is-plain-object: 5.0.0 - slate: 0.72.8 + slate: 0.123.0 - slate@0.72.8: - dependencies: - immer: 9.0.21 - is-plain-object: 5.0.0 - tiny-warning: 1.0.3 + slate@0.123.0: {} slice-ansi@4.0.0: dependencies: @@ -9507,6 +8166,8 @@ snapshots: snabbdom@3.6.2: {} + sortablejs@1.14.0: {} + source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -9526,7 +8187,7 @@ snapshots: dependencies: frac: 1.1.2 - ssr-window@3.0.0: {} + ssr-window@4.0.2: {} string-argv@0.3.2: {} @@ -9536,12 +8197,22 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.2 + string-width@7.2.0: dependencies: emoji-regex: 10.5.0 get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -9566,53 +8237,59 @@ snapshots: dependencies: js-tokens: 9.0.1 - stylelint-config-html@1.1.0(postcss-html@1.8.0)(stylelint@16.24.0(typescript@5.6.3)): + stylelint-config-html@1.1.0(postcss-html@1.8.0)(stylelint@16.26.1(typescript@5.9.3)): dependencies: postcss-html: 1.8.0 - stylelint: 16.24.0(typescript@5.6.3) + stylelint: 16.26.1(typescript@5.9.3) - stylelint-config-recess-order@4.6.0(stylelint@16.24.0(typescript@5.6.3)): + stylelint-config-recess-order@6.1.0(stylelint@16.26.1(typescript@5.9.3)): dependencies: - stylelint: 16.24.0(typescript@5.6.3) - stylelint-order: 6.0.4(stylelint@16.24.0(typescript@5.6.3)) + stylelint: 16.26.1(typescript@5.9.3) + stylelint-order: 6.0.4(stylelint@16.26.1(typescript@5.9.3)) - stylelint-config-recommended-scss@14.1.0(postcss@8.5.6)(stylelint@16.24.0(typescript@5.6.3)): + stylelint-config-recommended-scss@14.1.0(postcss@8.5.6)(stylelint@16.26.1(typescript@5.9.3)): dependencies: postcss-scss: 4.0.9(postcss@8.5.6) - stylelint: 16.24.0(typescript@5.6.3) - stylelint-config-recommended: 14.0.1(stylelint@16.24.0(typescript@5.6.3)) - stylelint-scss: 6.12.1(stylelint@16.24.0(typescript@5.6.3)) + stylelint: 16.26.1(typescript@5.9.3) + stylelint-config-recommended: 14.0.1(stylelint@16.26.1(typescript@5.9.3)) + stylelint-scss: 6.12.1(stylelint@16.26.1(typescript@5.9.3)) optionalDependencies: postcss: 8.5.6 - stylelint-config-recommended-vue@1.6.1(postcss-html@1.8.0)(stylelint@16.24.0(typescript@5.6.3)): + stylelint-config-recommended-vue@1.6.1(postcss-html@1.8.0)(stylelint@16.26.1(typescript@5.9.3)): dependencies: postcss-html: 1.8.0 semver: 7.7.2 - stylelint: 16.24.0(typescript@5.6.3) - stylelint-config-html: 1.1.0(postcss-html@1.8.0)(stylelint@16.24.0(typescript@5.6.3)) - stylelint-config-recommended: 17.0.0(stylelint@16.24.0(typescript@5.6.3)) + stylelint: 16.26.1(typescript@5.9.3) + stylelint-config-html: 1.1.0(postcss-html@1.8.0)(stylelint@16.26.1(typescript@5.9.3)) + stylelint-config-recommended: 15.0.0(stylelint@16.26.1(typescript@5.9.3)) - stylelint-config-recommended@14.0.1(stylelint@16.24.0(typescript@5.6.3)): + stylelint-config-recommended@14.0.1(stylelint@16.26.1(typescript@5.9.3)): dependencies: - stylelint: 16.24.0(typescript@5.6.3) + stylelint: 16.26.1(typescript@5.9.3) - stylelint-config-recommended@17.0.0(stylelint@16.24.0(typescript@5.6.3)): + stylelint-config-recommended@15.0.0(stylelint@16.26.1(typescript@5.9.3)): dependencies: - stylelint: 16.24.0(typescript@5.6.3) + stylelint: 16.26.1(typescript@5.9.3) - stylelint-config-standard@36.0.1(stylelint@16.24.0(typescript@5.6.3)): + stylelint-config-standard@36.0.1(stylelint@16.26.1(typescript@5.9.3)): dependencies: - stylelint: 16.24.0(typescript@5.6.3) - stylelint-config-recommended: 14.0.1(stylelint@16.24.0(typescript@5.6.3)) + stylelint: 16.26.1(typescript@5.9.3) + stylelint-config-recommended: 14.0.1(stylelint@16.26.1(typescript@5.9.3)) - stylelint-order@6.0.4(stylelint@16.24.0(typescript@5.6.3)): + stylelint-order@6.0.4(stylelint@16.26.1(typescript@5.9.3)): dependencies: postcss: 8.5.6 postcss-sorting: 8.0.2(postcss@8.5.6) - stylelint: 16.24.0(typescript@5.6.3) + stylelint: 16.26.1(typescript@5.9.3) - stylelint-scss@6.12.1(stylelint@16.24.0(typescript@5.6.3)): + stylelint-prettier@5.0.3(prettier@3.6.2)(stylelint@16.26.1(typescript@5.9.3)): + dependencies: + prettier: 3.6.2 + prettier-linter-helpers: 1.0.0 + stylelint: 16.26.1(typescript@5.9.3) + + stylelint-scss@6.12.1(stylelint@16.26.1(typescript@5.9.3)): dependencies: css-tree: 3.1.0 is-plain-object: 5.0.0 @@ -9622,24 +8299,25 @@ snapshots: postcss-resolve-nested-selector: 0.1.6 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - stylelint: 16.24.0(typescript@5.6.3) + stylelint: 16.26.1(typescript@5.9.3) - stylelint@16.24.0(typescript@5.6.3): + stylelint@16.26.1(typescript@5.9.3): dependencies: '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-syntax-patches-for-csstree': 1.1.3(css-tree@3.1.0) '@csstools/css-tokenizer': 3.0.4 '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) '@dual-bundle/import-meta-resolve': 4.2.1 balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 9.0.0(typescript@5.6.3) + cosmiconfig: 9.0.0(typescript@5.9.3) css-functions-list: 3.2.3 css-tree: 3.1.0 debug: 4.4.3 fast-glob: 3.3.3 fastest-levenshtein: 1.0.16 - file-entry-cache: 10.1.4 + file-entry-cache: 11.1.2 global-modules: 2.0.0 globby: 11.1.0 globjoin: 0.1.4 @@ -9703,6 +8381,14 @@ snapshots: tapable@2.3.0: {} + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.5 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + tar@7.5.1: dependencies: '@isaacs/fs-minipass': 4.0.1 @@ -9722,7 +8408,7 @@ snapshots: through@2.3.8: {} - tiny-warning@1.0.3: {} + tiny-emitter@2.1.0: {} tinyexec@1.0.1: {} @@ -9735,15 +8421,19 @@ snapshots: dependencies: os-tmpdir: 1.0.2 + tmp@0.2.5: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 totalist@3.0.1: {} - ts-api-utils@2.1.0(typescript@5.6.3): + traverse@0.3.9: {} + + ts-api-utils@2.1.0(typescript@5.9.3): dependencies: - typescript: 5.6.3 + typescript: 5.9.3 tslib@2.3.0: {} @@ -9760,24 +8450,24 @@ snapshots: dependencies: prelude-ls: 1.2.1 - type-fest@0.20.2: {} - type-fest@0.21.3: {} type@2.7.3: {} - typescript-eslint@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3): + typescript-eslint@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3))(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) - '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) - '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.6.3) - '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.44.1(@typescript-eslint/parser@8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3))(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) + '@typescript-eslint/parser': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.44.1(eslint@9.36.0(jiti@2.6.0))(typescript@5.9.3) eslint: 9.36.0(jiti@2.6.0) - typescript: 5.6.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - typescript@5.6.3: {} + typescript@5.9.3: {} + + uc.micro@2.1.0: {} ufo@1.6.1: {} @@ -9806,7 +8496,7 @@ snapshots: universalify@2.0.1: {} - unplugin-auto-import@20.2.0(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.6.3))): + unplugin-auto-import@20.2.0(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.3))): dependencies: local-pkg: 1.1.2 magic-string: 0.30.19 @@ -9815,7 +8505,7 @@ snapshots: unplugin: 2.3.10 unplugin-utils: 0.3.0 optionalDependencies: - '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.6.3)) + '@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.3)) unplugin-element-plus@0.10.0: dependencies: @@ -9834,7 +8524,7 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.3 - unplugin-vue-components@29.1.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.6.3)): + unplugin-vue-components@29.1.0(@babel/parser@7.28.4)(vue@3.5.22(typescript@5.9.3)): dependencies: chokidar: 3.6.0 debug: 4.4.3 @@ -9844,7 +8534,7 @@ snapshots: tinyglobby: 0.2.15 unplugin: 2.3.10 unplugin-utils: 0.3.0 - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) optionalDependencies: '@babel/parser': 7.28.4 transitivePeerDependencies: @@ -9857,18 +8547,39 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 + unzipper@0.10.14: + dependencies: + big-integer: 1.6.52 + binary: 0.3.0 + bluebird: 3.4.7 + buffer-indexof-polyfill: 1.0.2 + duplexer2: 0.1.4 + fstream: 1.0.12 + graceful-fs: 4.2.11 + listenercount: 1.0.1 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + update-browserslist-db@1.1.3(browserslist@4.26.2): dependencies: browserslist: 4.26.2 escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 util-deprecate@1.0.2: {} + uuid@8.3.2: {} + vite-hot-client@2.1.0(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)): dependencies: vite: 7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1) @@ -9898,9 +8609,9 @@ snapshots: - rollup - supports-color - vite-plugin-vue-devtools@7.7.7(rollup@4.52.3)(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.6.3)): + vite-plugin-vue-devtools@7.7.7(rollup@4.52.3)(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)): dependencies: - '@vue/devtools-core': 7.7.7(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.6.3)) + '@vue/devtools-core': 7.7.7(vite@7.1.7(@types/node@24.8.1)(jiti@2.6.0)(lightningcss@1.30.1)(sass@1.93.2)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) '@vue/devtools-kit': 7.7.7 '@vue/devtools-shared': 7.7.7 execa: 9.6.0 @@ -9949,63 +8660,85 @@ snapshots: vscode-uri@3.1.0: {} - vue-demi@0.14.10(vue@3.5.22(typescript@5.6.3)): + vue-demi@0.14.10(vue@3.5.22(typescript@5.9.3)): dependencies: - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) vue-draggable-plus@0.6.0(@types/sortablejs@1.15.8): dependencies: '@types/sortablejs': 1.15.8 - vue-eslint-parser@9.4.3(eslint@9.36.0(jiti@2.6.0)): + vue-eslint-parser@10.4.0(eslint@9.36.0(jiti@2.6.0)): dependencies: debug: 4.4.3 eslint: 9.36.0(jiti@2.6.0) - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.4.0 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 esquery: 1.6.0 - lodash: 4.17.21 semver: 7.7.2 transitivePeerDependencies: - supports-color - vue-i18n@9.14.5(vue@3.5.22(typescript@5.6.3)): + vue-i18n@11.4.0(vue@3.5.22(typescript@5.9.3)): dependencies: - '@intlify/core-base': 9.14.5 - '@intlify/shared': 9.14.5 + '@intlify/core-base': 11.4.0 + '@intlify/devtools-types': 11.4.0 + '@intlify/shared': 11.4.0 '@vue/devtools-api': 6.6.4 - vue: 3.5.22(typescript@5.6.3) + vue: 3.5.22(typescript@5.9.3) - vue-img-cutter@3.0.7(typescript@5.6.3): + vue-json-pretty@2.6.0(vue@3.5.22(typescript@5.9.3)): dependencies: - core-js: 3.45.1 - vue: 3.5.22(typescript@5.6.3) - vue-i18n: 9.14.5(vue@3.5.22(typescript@5.6.3)) + vue: 3.5.22(typescript@5.9.3) + + vue-json-viewer@3.0.4(vue@3.5.22(typescript@5.9.3)): + dependencies: + clipboard: 2.0.11 + vue: 3.5.22(typescript@5.9.3) + + vue-router@4.5.1(vue@3.5.22(typescript@5.9.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.22(typescript@5.9.3) + + vue-tsc@2.2.12(typescript@5.9.3): + dependencies: + '@volar/typescript': 2.4.15 + '@vue/language-core': 2.2.12(typescript@5.9.3) + typescript: 5.9.3 + + vue-web-terminal@3.4.2(typescript@5.9.3): + dependencies: + vue: 3.5.22(typescript@5.9.3) + vue-json-viewer: 3.0.4(vue@3.5.22(typescript@5.9.3)) transitivePeerDependencies: - typescript - vue-router@4.5.1(vue@3.5.22(typescript@5.6.3)): + vue3-cron-plus@0.1.9(typescript@5.9.3): dependencies: - '@vue/devtools-api': 6.6.4 - vue: 3.5.22(typescript@5.6.3) + '@element-plus/icons-vue': 2.3.2(vue@3.5.22(typescript@5.9.3)) + core-js: 3.45.1 + element-plus: 2.11.4(vue@3.5.22(typescript@5.9.3)) + vue: 3.5.22(typescript@5.9.3) + transitivePeerDependencies: + - '@vue/composition-api' + - typescript - vue-tsc@2.1.10(typescript@5.6.3): - dependencies: - '@volar/typescript': 2.4.23 - '@vue/language-core': 2.1.10(typescript@5.6.3) - semver: 7.7.2 - typescript: 5.6.3 - - vue@3.5.22(typescript@5.6.3): + vue@3.5.22(typescript@5.9.3): dependencies: '@vue/compiler-dom': 3.5.22 '@vue/compiler-sfc': 3.5.22 '@vue/runtime-dom': 3.5.22 - '@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.6.3)) + '@vue/server-renderer': 3.5.22(vue@3.5.22(typescript@5.9.3)) '@vue/shared': 3.5.22 optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 + + vuedraggable@4.1.0(vue@3.5.22(typescript@5.9.3)): + dependencies: + sortablejs: 1.14.0 + vue: 3.5.22(typescript@5.9.3) wcwidth@1.0.1: dependencies: @@ -10035,6 +8768,12 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.1.2 + wrap-ansi@9.0.2: dependencies: ansi-styles: 6.2.3 @@ -10078,6 +8817,8 @@ snapshots: xml-name-validator@4.0.0: {} + xmlchars@2.2.0: {} + y18n@5.0.8: {} yallist@3.1.1: {} @@ -10104,6 +8845,12 @@ snapshots: yoctocolors@2.1.2: {} + zip-stream@4.1.1: + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + zrender@6.0.0: dependencies: tslib: 2.3.0 diff --git a/frontend/new-web/public/background.svg b/frontend/new-web/public/background.svg new file mode 100644 index 00000000..70f391f6 --- /dev/null +++ b/frontend/new-web/public/background.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/new-web/public/favicon.svg b/frontend/new-web/public/favicon.svg new file mode 100755 index 00000000..b7407f87 --- /dev/null +++ b/frontend/new-web/public/favicon.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/scripts/clean-dev.ts b/frontend/new-web/scripts/clean-dev.ts index cc0b9bce..68fc02bb 100644 --- a/frontend/new-web/scripts/clean-dev.ts +++ b/frontend/new-web/scripts/clean-dev.ts @@ -1,63 +1,63 @@ // scripts/clean-dev.ts -import fs from 'fs/promises' -import path from 'path' +import fs from "fs/promises"; +import path from "path"; // 现代化颜色主题 const theme = { // 基础颜色 - reset: '\x1b[0m', - bold: '\x1b[1m', - dim: '\x1b[2m', + reset: "\x1b[0m", + bold: "\x1b[1m", + dim: "\x1b[2m", // 前景色 - primary: '\x1b[38;5;75m', // 亮蓝色 - success: '\x1b[38;5;82m', // 亮绿色 - warning: '\x1b[38;5;220m', // 亮黄色 - error: '\x1b[38;5;196m', // 亮红色 - info: '\x1b[38;5;159m', // 青色 - purple: '\x1b[38;5;141m', // 紫色 - orange: '\x1b[38;5;208m', // 橙色 - gray: '\x1b[38;5;245m', // 灰色 - white: '\x1b[38;5;255m', // 白色 + primary: "\x1b[38;5;75m", // 亮蓝色 + success: "\x1b[38;5;82m", // 亮绿色 + warning: "\x1b[38;5;220m", // 亮黄色 + error: "\x1b[38;5;196m", // 亮红色 + info: "\x1b[38;5;159m", // 青色 + purple: "\x1b[38;5;141m", // 紫色 + orange: "\x1b[38;5;208m", // 橙色 + gray: "\x1b[38;5;245m", // 灰色 + white: "\x1b[38;5;255m", // 白色 // 背景色 - bgDark: '\x1b[48;5;235m', // 深灰背景 - bgBlue: '\x1b[48;5;24m', // 蓝色背景 - bgGreen: '\x1b[48;5;22m', // 绿色背景 - bgRed: '\x1b[48;5;52m' // 红色背景 -} + bgDark: "\x1b[48;5;235m", // 深灰背景 + bgBlue: "\x1b[48;5;24m", // 蓝色背景 + bgGreen: "\x1b[48;5;22m", // 绿色背景 + bgRed: "\x1b[48;5;52m", // 红色背景 +}; // 现代化图标集 const icons = { - rocket: '🚀', - fire: '🔥', - star: '⭐', - gem: '💎', - crown: '👑', - magic: '✨', - warning: '⚠️', - success: '✅', - error: '❌', - info: 'ℹ️', - folder: '📁', - file: '📄', - image: '🖼️', - code: '💻', - data: '📊', - globe: '🌐', - map: '🗺️', - chat: '💬', - bolt: '⚡', - shield: '🛡️', - key: '🔑', - link: '🔗', - clean: '🧹', - trash: '🗑️', - check: '✓', - cross: '✗', - arrow: '→', - loading: '⏳' -} + rocket: "🚀", + fire: "🔥", + star: "⭐", + gem: "💎", + crown: "👑", + magic: "✨", + warning: "⚠️", + success: "✅", + error: "❌", + info: "ℹ️", + folder: "📁", + file: "📄", + image: "🖼️", + code: "💻", + data: "📊", + globe: "🌐", + map: "🗺️", + chat: "💬", + bolt: "⚡", + shield: "🛡️", + key: "🔑", + link: "🔗", + clean: "🧹", + trash: "🗑️", + check: "✓", + cross: "✗", + arrow: "→", + loading: "⏳", +}; // 格式化工具 const fmt = { @@ -77,66 +77,66 @@ const fmt = { // 渐变效果模拟 gradient: (text: string) => { - const colors = ['\x1b[38;5;75m', '\x1b[38;5;81m', '\x1b[38;5;87m', '\x1b[38;5;159m'] - const chars = text.split('') - return chars.map((char, i) => `${colors[i % colors.length]}${char}`).join('') + theme.reset - } -} + const colors = ["\x1b[38;5;75m", "\x1b[38;5;81m", "\x1b[38;5;87m", "\x1b[38;5;159m"]; + const chars = text.split(""); + return chars.map((char, i) => `${colors[i % colors.length]}${char}`).join("") + theme.reset; + }, +}; // 创建现代化标题横幅 function createModernBanner() { - console.log() + console.log(); console.log( - fmt.gradient(' ╔══════════════════════════════════════════════════════════════════╗') - ) + fmt.gradient(" ╔══════════════════════════════════════════════════════════════════╗") + ); console.log( - fmt.gradient(' ║ ║') - ) + fmt.gradient(" ║ ║") + ); console.log( - ` ║ ${icons.rocket} ${fmt.title('ART DESIGN PRO')} ${fmt.subtitle('· 代码精简程序')} ${icons.magic} ║` - ) + ` ║ ${icons.rocket} ${fmt.title("ART DESIGN PRO")} ${fmt.subtitle("· 代码精简程序")} ${icons.magic} ║` + ); console.log( - ` ║ ${fmt.dim('为项目移除演示数据,快速切换至开发模式')} ║` - ) + ` ║ ${fmt.dim("为项目移除演示数据,快速切换至开发模式")} ║` + ); console.log( - fmt.gradient(' ║ ║') - ) + fmt.gradient(" ║ ║") + ); console.log( - fmt.gradient(' ╚══════════════════════════════════════════════════════════════════╝') - ) - console.log() + fmt.gradient(" ╚══════════════════════════════════════════════════════════════════╝") + ); + console.log(); } // 创建分割线 -function createDivider(char = '─', color = theme.primary) { - console.log(`${color}${' ' + char.repeat(66)}${theme.reset}`) +function createDivider(char = "─", color = theme.primary) { + console.log(`${color}${" " + char.repeat(66)}${theme.reset}`); } // 创建卡片样式容器 function createCard(title: string, content: string[]) { - console.log(` ${fmt.badge('', theme.bgBlue)} ${fmt.title(title)}`) - console.log() + console.log(` ${fmt.badge("", theme.bgBlue)} ${fmt.title(title)}`); + console.log(); content.forEach((line) => { - console.log(` ${line}`) - }) - console.log() + console.log(` ${line}`); + }); + console.log(); } // 进度条动画 function createProgressBar(current: number, total: number, text: string, width = 40) { - const percentage = Math.round((current / total) * 100) - const filled = Math.round((current / total) * width) - const empty = width - filled + const percentage = Math.round((current / total) * 100); + const filled = Math.round((current / total) * width); + const empty = width - filled; - const filledBar = '█'.repeat(filled) - const emptyBar = '░'.repeat(empty) + const filledBar = "█".repeat(filled); + const emptyBar = "░".repeat(empty); process.stdout.write( - `\r ${fmt.info('进度')} [${theme.success}${filledBar}${theme.gray}${emptyBar}${theme.reset}] ${fmt.highlight(percentage + '%')})}` - ) + `\r ${fmt.info("进度")} [${theme.success}${filledBar}${theme.gray}${emptyBar}${theme.reset}] ${fmt.highlight(percentage + "%")})}` + ); if (current === total) { - console.log() + console.log(); } } @@ -146,113 +146,106 @@ const stats = { deletedPaths: 0, failedPaths: 0, startTime: Date.now(), - totalFiles: 0 -} + totalFiles: 0, +}; // 清理目标 const targets = [ - 'README.md', - 'README.zh-CN.md', - 'CHANGELOG.md', - 'CHANGELOG.zh-CN.md', - 'src/views/change', - 'src/views/safeguard', - 'src/views/article', - 'src/views/examples', - 'src/views/system/nested', - 'src/views/widgets', - 'src/views/template', - 'src/views/dashboard/analysis', - 'src/views/dashboard/ecommerce', - 'src/mock/json', - 'src/mock/temp/articleList.ts', - 'src/mock/temp/commentDetail.ts', - 'src/mock/temp/commentList.ts', - 'src/assets/images/cover', - 'src/assets/images/safeguard', - 'src/assets/images/3d', - 'src/components/core/charts/art-map-chart', - 'src/components/business/comment-widget' -] + "README.md", + "README.zh-CN.md", + "CHANGELOG.md", + "CHANGELOG.zh-CN.md", + "src/views/change", + "src/views/safeguard", + "src/views/article", + "src/views/examples", + "src/views/system/nested", + "src/views/widgets", + "src/views/template", + "src/views/dashboard/analysis", + "src/views/dashboard/ecommerce", + "src/mock/json", + "src/mock/temp/articleList.ts", + "src/mock/temp/commentDetail.ts", + "src/mock/temp/commentList.ts", + "src/assets/images/cover", + "src/assets/images/safeguard", + "src/assets/images/3d", + "src/components/core/charts/art-map-chart", + "src/components/business/comment-widget", +]; // 递归统计文件数量 async function countFiles(targetPath: string): Promise { - const fullPath = path.resolve(process.cwd(), targetPath) + const fullPath = path.resolve(process.cwd(), targetPath); try { - const stat = await fs.stat(fullPath) + const stat = await fs.stat(fullPath); if (stat.isFile()) { - return 1 + return 1; } else if (stat.isDirectory()) { - const entries = await fs.readdir(fullPath) - let count = 0 + const entries = await fs.readdir(fullPath); + let count = 0; for (const entry of entries) { - const entryPath = path.join(targetPath, entry) - count += await countFiles(entryPath) + const entryPath = path.join(targetPath, entry); + count += await countFiles(entryPath); } - return count + return count; } } catch { - return 0 + return 0; } - return 0 + return 0; } // 统计所有目标的文件数量 async function countAllFiles(): Promise { - let totalCount = 0 + let totalCount = 0; for (const target of targets) { - const count = await countFiles(target) - totalCount += count + const count = await countFiles(target); + totalCount += count; } - return totalCount + return totalCount; } // 删除文件和目录 async function remove(targetPath: string, index: number) { - const fullPath = path.resolve(process.cwd(), targetPath) + const fullPath = path.resolve(process.cwd(), targetPath); - createProgressBar(index + 1, targets.length, targetPath) + createProgressBar(index + 1, targets.length, targetPath); try { - const fileCount = await countFiles(targetPath) - await fs.rm(fullPath, { recursive: true, force: true }) - stats.deletedFiles += fileCount - stats.deletedPaths++ - await new Promise((resolve) => setTimeout(resolve, 50)) + const fileCount = await countFiles(targetPath); + await fs.rm(fullPath, { recursive: true, force: true }); + stats.deletedFiles += fileCount; + stats.deletedPaths++; + await new Promise((resolve) => setTimeout(resolve, 50)); } catch (err) { - stats.failedPaths++ - console.log() - console.log(` ${icons.error} ${fmt.error('删除失败')}: ${fmt.highlight(targetPath)}`) - console.log(` ${fmt.dim('错误详情: ' + err)}`) + stats.failedPaths++; + console.log(); + console.log(` ${icons.error} ${fmt.error("删除失败")}: ${fmt.highlight(targetPath)}`); + console.log(` ${fmt.dim("错误详情: " + err)}`); } } // 清理路由模块 async function cleanRouteModules() { - const modulesPath = path.resolve(process.cwd(), 'src/router/modules') + const modulesPath = path.resolve(process.cwd(), "src/router/modules"); try { // 删除演示相关的路由模块 - const modulesToRemove = [ - 'template.ts', - 'widgets.ts', - 'examples.ts', - 'article.ts', - 'safeguard.ts', - 'help.ts' - ] + const modulesToRemove = ["template.ts", "widgets.ts", "examples.ts", "article.ts"]; for (const module of modulesToRemove) { - const modulePath = path.join(modulesPath, module) + const modulePath = path.join(modulesPath, module); try { - await fs.rm(modulePath, { force: true }) + await fs.rm(modulePath, { force: true }); } catch { // 文件不存在时忽略错误 } @@ -283,8 +276,8 @@ export const dashboardRoutes: AppRouteRecord = { } ] } -` - await fs.writeFile(path.join(modulesPath, 'dashboard.ts'), dashboardContent, 'utf-8') +`; + await fs.writeFile(path.join(modulesPath, "dashboard.ts"), dashboardContent, "utf-8"); // 重写 system.ts - 移除 nested 嵌套菜单 const systemContent = `import { AppRouteRecord } from '@/types/router' @@ -347,8 +340,8 @@ export const systemRoutes: AppRouteRecord = { } ] } -` - await fs.writeFile(path.join(modulesPath, 'system.ts'), systemContent, 'utf-8') +`; + await fs.writeFile(path.join(modulesPath, "system.ts"), systemContent, "utf-8"); // 重写 index.ts - 只导入保留的模块 const indexContent = `import { AppRouteRecord } from '@/types/router' @@ -366,19 +359,19 @@ export const routeModules: AppRouteRecord[] = [ resultRoutes, exceptionRoutes ] -` - await fs.writeFile(path.join(modulesPath, 'index.ts'), indexContent, 'utf-8') +`; + await fs.writeFile(path.join(modulesPath, "index.ts"), indexContent, "utf-8"); - console.log(` ${icons.success} ${fmt.success('清理路由模块完成')}`) + console.log(` ${icons.success} ${fmt.success("清理路由模块完成")}`); } catch (err) { - console.log(` ${icons.error} ${fmt.error('清理路由模块失败')}`) - console.log(` ${fmt.dim('错误详情: ' + err)}`) + console.log(` ${icons.error} ${fmt.error("清理路由模块失败")}`); + console.log(` ${fmt.dim("错误详情: " + err)}`); } } // 清理路由别名 async function cleanRoutesAlias() { - const routesAliasPath = path.resolve(process.cwd(), 'src/router/routesAlias.ts') + const routesAliasPath = path.resolve(process.cwd(), "src/router/routesAlias.ts"); try { const cleanedAlias = `/** @@ -389,19 +382,19 @@ export enum RoutesAlias { Layout = '/index/index', // 布局容器 Login = '/auth/login' // 登录页 } -` +`; - await fs.writeFile(routesAliasPath, cleanedAlias, 'utf-8') - console.log(` ${icons.success} ${fmt.success('重写路由别名配置完成')}`) + await fs.writeFile(routesAliasPath, cleanedAlias, "utf-8"); + console.log(` ${icons.success} ${fmt.success("重写路由别名配置完成")}`); } catch (err) { - console.log(` ${icons.error} ${fmt.error('清理路由别名失败')}`) - console.log(` ${fmt.dim('错误详情: ' + err)}`) + console.log(` ${icons.error} ${fmt.error("清理路由别名失败")}`); + console.log(` ${fmt.dim("错误详情: " + err)}`); } } // 清理变更日志 async function cleanChangeLog() { - const changeLogPath = path.resolve(process.cwd(), 'src/mock/upgrade/changeLog.ts') + const changeLogPath = path.resolve(process.cwd(), "src/mock/upgrade/changeLog.ts"); try { const cleanedChangeLog = `import { ref } from 'vue' @@ -416,86 +409,86 @@ interface UpgradeLog { } export const upgradeLogList = ref([]) -` +`; - await fs.writeFile(changeLogPath, cleanedChangeLog, 'utf-8') - console.log(` ${icons.success} ${fmt.success('清空变更日志数据完成')}`) + await fs.writeFile(changeLogPath, cleanedChangeLog, "utf-8"); + console.log(` ${icons.success} ${fmt.success("清空变更日志数据完成")}`); } catch (err) { - console.log(` ${icons.error} ${fmt.error('清理变更日志失败')}`) - console.log(` ${fmt.dim('错误详情: ' + err)}`) + console.log(` ${icons.error} ${fmt.error("清理变更日志失败")}`); + console.log(` ${fmt.dim("错误详情: " + err)}`); } } // 清理语言文件 async function cleanLanguageFiles() { const languageFiles = [ - { path: 'src/locales/langs/zh.json', name: '中文语言文件' }, - { path: 'src/locales/langs/en.json', name: '英文语言文件' } - ] + { path: "src/locales/langs/zh.json", name: "中文语言文件" }, + { path: "src/locales/langs/en.json", name: "英文语言文件" }, + ]; for (const { path: langPath, name } of languageFiles) { try { - const fullPath = path.resolve(process.cwd(), langPath) - const content = await fs.readFile(fullPath, 'utf-8') - const langData = JSON.parse(content) + const fullPath = path.resolve(process.cwd(), langPath); + const content = await fs.readFile(fullPath, "utf-8"); + const langData = JSON.parse(content); const menusToRemove = [ - 'widgets', - 'template', - 'article', - 'examples', - 'safeguard', - 'plan', - 'help' - ] + "widgets", + "template", + "article", + "examples", + "safeguard", + "plan", + "help", + ]; if (langData.menus) { menusToRemove.forEach((menuKey) => { if (langData.menus[menuKey]) { - delete langData.menus[menuKey] + delete langData.menus[menuKey]; } - }) + }); if (langData.menus.dashboard) { if (langData.menus.dashboard.analysis) { - delete langData.menus.dashboard.analysis + delete langData.menus.dashboard.analysis; } if (langData.menus.dashboard.ecommerce) { - delete langData.menus.dashboard.ecommerce + delete langData.menus.dashboard.ecommerce; } } if (langData.menus.system) { const systemKeysToRemove = [ - 'nested', - 'menu1', - 'menu2', - 'menu21', - 'menu3', - 'menu31', - 'menu32', - 'menu321' - ] + "nested", + "menu1", + "menu2", + "menu21", + "menu3", + "menu31", + "menu32", + "menu321", + ]; systemKeysToRemove.forEach((key) => { if (langData.menus.system[key]) { - delete langData.menus.system[key] + delete langData.menus.system[key]; } - }) + }); } } - await fs.writeFile(fullPath, JSON.stringify(langData, null, 2), 'utf-8') - console.log(` ${icons.success} ${fmt.success(`清理${name}完成`)}`) + await fs.writeFile(fullPath, JSON.stringify(langData, null, 2), "utf-8"); + console.log(` ${icons.success} ${fmt.success(`清理${name}完成`)}`); } catch (err) { - console.log(` ${icons.error} ${fmt.error(`清理${name}失败`)}`) - console.log(` ${fmt.dim('错误详情: ' + err)}`) + console.log(` ${icons.error} ${fmt.error(`清理${name}失败`)}`); + console.log(` ${fmt.dim("错误详情: " + err)}`); } } } // 清理快速入口组件 async function cleanFastEnterComponent() { - const fastEnterPath = path.resolve(process.cwd(), 'src/config/fastEnter.ts') + const fastEnterPath = path.resolve(process.cwd(), "src/config/fastEnter.ts"); try { const cleanedFastEnter = `/** @@ -559,13 +552,13 @@ const fastEnterConfig: FastEnterConfig = { name: '注册', enabled: true, order: 2, - routeName: 'Register' + routeName: 'Login' }, { name: '忘记密码', enabled: true, order: 3, - routeName: 'ForgetPassword' + routeName: 'Login' }, { name: '个人中心', @@ -577,262 +570,262 @@ const fastEnterConfig: FastEnterConfig = { } export default Object.freeze(fastEnterConfig) -` +`; - await fs.writeFile(fastEnterPath, cleanedFastEnter, 'utf-8') - console.log(` ${icons.success} ${fmt.success('清理快速入口配置完成')}`) + await fs.writeFile(fastEnterPath, cleanedFastEnter, "utf-8"); + console.log(` ${icons.success} ${fmt.success("清理快速入口配置完成")}`); } catch (err) { - console.log(` ${icons.error} ${fmt.error('清理快速入口配置失败')}`) - console.log(` ${fmt.dim('错误详情: ' + err)}`) + console.log(` ${icons.error} ${fmt.error("清理快速入口配置失败")}`); + console.log(` ${fmt.dim("错误详情: " + err)}`); } } // 更新菜单接口 async function updateMenuApi() { - const apiPath = path.resolve(process.cwd(), 'src/api/system-manage.ts') + const apiPath = path.resolve(process.cwd(), "src/api/system-manage.ts"); try { - const content = await fs.readFile(apiPath, 'utf-8') + const content = await fs.readFile(apiPath, "utf-8"); const updatedContent = content.replace( "url: '/api/v3/system/menus'", "url: '/api/v3/system/menus/simple'" - ) + ); - await fs.writeFile(apiPath, updatedContent, 'utf-8') - console.log(` ${icons.success} ${fmt.success('更新菜单接口完成')}`) + await fs.writeFile(apiPath, updatedContent, "utf-8"); + console.log(` ${icons.success} ${fmt.success("更新菜单接口完成")}`); } catch (err) { - console.log(` ${icons.error} ${fmt.error('更新菜单接口失败')}`) - console.log(` ${fmt.dim('错误详情: ' + err)}`) + console.log(` ${icons.error} ${fmt.error("更新菜单接口失败")}`); + console.log(` ${fmt.dim("错误详情: " + err)}`); } } // 用户确认函数 async function getUserConfirmation(): Promise { - const { createInterface } = await import('readline') + const { createInterface } = await import("readline"); return new Promise((resolve) => { const rl = createInterface({ input: process.stdin, - output: process.stdout - }) + output: process.stdout, + }); console.log( - ` ${fmt.highlight('请输入')} ${fmt.success('yes')} ${fmt.highlight('确认执行清理操作,或按 Enter 取消')}` - ) - console.log() - process.stdout.write(` ${icons.arrow} `) + ` ${fmt.highlight("请输入")} ${fmt.success("yes")} ${fmt.highlight("确认执行清理操作,或按 Enter 取消")}` + ); + console.log(); + process.stdout.write(` ${icons.arrow} `); - rl.question('', (answer: string) => { - rl.close() - resolve(answer.toLowerCase().trim() === 'yes') - }) - }) + rl.question("", (answer: string) => { + rl.close(); + resolve(answer.toLowerCase().trim() === "yes"); + }); + }); } // 显示清理警告 async function showCleanupWarning() { - createCard('安全警告', [ - `${fmt.warning('此操作将永久删除以下演示内容,且无法恢复!')}`, - `${fmt.dim('请仔细阅读清理列表,确认后再继续操作')}` - ]) + createCard("安全警告", [ + `${fmt.warning("此操作将永久删除以下演示内容,且无法恢复!")}`, + `${fmt.dim("请仔细阅读清理列表,确认后再继续操作")}`, + ]); const cleanupItems = [ { icon: icons.image, - name: '图片资源', - desc: '演示用的封面图片、3D图片、运维图片等', - color: theme.orange + name: "图片资源", + desc: "演示用的封面图片、3D图片、运维图片等", + color: theme.orange, }, { icon: icons.file, - name: '演示页面', - desc: 'widgets、template、article、examples、safeguard等页面', - color: theme.purple + name: "演示页面", + desc: "widgets、template、article、examples、safeguard等页面", + color: theme.purple, }, { icon: icons.code, - name: '路由模块文件', - desc: '删除演示路由模块,只保留核心模块(dashboard、system、result、exception)', - color: theme.primary + name: "路由模块文件", + desc: "删除演示路由模块,只保留核心模块(dashboard、system、result、exception)", + color: theme.primary, }, { icon: icons.link, - name: '路由别名', - desc: '重写routesAlias.ts,移除演示路由别名', - color: theme.info + name: "路由别名", + desc: "重写routesAlias.ts,移除演示路由别名", + color: theme.info, }, { icon: icons.data, - name: 'Mock数据', - desc: '演示用的JSON数据、文章列表、评论数据等', - color: theme.success + name: "Mock数据", + desc: "演示用的JSON数据、文章列表、评论数据等", + color: theme.success, }, { icon: icons.globe, - name: '多语言文件', - desc: '清理中英文语言包中的演示菜单项', - color: theme.warning + name: "多语言文件", + desc: "清理中英文语言包中的演示菜单项", + color: theme.warning, }, - { icon: icons.map, name: '地图组件', desc: '移除art-map-chart地图组件', color: theme.error }, - { icon: icons.chat, name: '评论组件', desc: '移除comment-widget评论组件', color: theme.orange }, + { icon: icons.map, name: "地图组件", desc: "移除art-map-chart地图组件", color: theme.error }, + { icon: icons.chat, name: "评论组件", desc: "移除comment-widget评论组件", color: theme.orange }, { icon: icons.bolt, - name: '快速入口', - desc: '移除分析页、礼花效果、聊天、更新日志、定价、留言管理等无效项目', - color: theme.purple - } - ] + name: "快速入口", + desc: "移除分析页、礼花效果、聊天、更新日志、定价、留言管理等无效项目", + color: theme.purple, + }, + ]; - console.log(` ${fmt.badge('', theme.bgRed)} ${fmt.title('将要清理的内容')}`) - console.log() + console.log(` ${fmt.badge("", theme.bgRed)} ${fmt.title("将要清理的内容")}`); + console.log(); cleanupItems.forEach((item, index) => { - console.log(` ${item.color}${theme.reset} ${fmt.highlight(`${index + 1}. ${item.name}`)}`) - console.log(` ${fmt.dim(item.desc)}`) - }) + console.log(` ${item.color}${theme.reset} ${fmt.highlight(`${index + 1}. ${item.name}`)}`); + console.log(` ${fmt.dim(item.desc)}`); + }); - console.log() - console.log(` ${fmt.badge('', theme.bgGreen)} ${fmt.title('保留的功能模块')}`) - console.log() + console.log(); + console.log(` ${fmt.badge("", theme.bgGreen)} ${fmt.title("保留的功能模块")}`); + console.log(); const preservedModules = [ - { name: 'Dashboard', desc: '工作台页面' }, - { name: 'System', desc: '系统管理模块' }, - { name: 'Result', desc: '结果页面' }, - { name: 'Exception', desc: '异常页面' }, - { name: 'Auth', desc: '登录注册功能' }, - { name: 'Core Components', desc: '核心组件库' } - ] + { name: "Dashboard", desc: "工作台页面" }, + { name: "System", desc: "系统管理模块" }, + { name: "Result", desc: "结果页面" }, + { name: "Exception", desc: "异常页面" }, + { name: "Auth", desc: "登录注册功能" }, + { name: "Core Components", desc: "核心组件库" }, + ]; preservedModules.forEach((module) => { - console.log(` ${icons.check} ${fmt.success(module.name)} ${fmt.dim(`- ${module.desc}`)}`) - }) + console.log(` ${icons.check} ${fmt.success(module.name)} ${fmt.dim(`- ${module.desc}`)}`); + }); - console.log() - createDivider() - console.log() + console.log(); + createDivider(); + console.log(); } // 显示统计信息 async function showStats() { - const duration = Date.now() - stats.startTime - const seconds = (duration / 1000).toFixed(2) + const duration = Date.now() - stats.startTime; + const seconds = (duration / 1000).toFixed(2); - console.log() - createCard('清理统计', [ - `${fmt.success('成功删除')}: ${fmt.highlight(stats.deletedFiles.toString())} 个文件`, - `${fmt.info('涉及路径')}: ${fmt.highlight(stats.deletedPaths.toString())} 个目录/文件`, + console.log(); + createCard("清理统计", [ + `${fmt.success("成功删除")}: ${fmt.highlight(stats.deletedFiles.toString())} 个文件`, + `${fmt.info("涉及路径")}: ${fmt.highlight(stats.deletedPaths.toString())} 个目录/文件`, ...(stats.failedPaths > 0 ? [ - `${icons.error} ${fmt.error('删除失败')}: ${fmt.highlight(stats.failedPaths.toString())} 个路径` + `${icons.error} ${fmt.error("删除失败")}: ${fmt.highlight(stats.failedPaths.toString())} 个路径`, ] : []), - `${fmt.info('耗时')}: ${fmt.highlight(seconds)} 秒` - ]) + `${fmt.info("耗时")}: ${fmt.highlight(seconds)} 秒`, + ]); } // 创建成功横幅 function createSuccessBanner() { - console.log() + console.log(); console.log( - fmt.gradient(' ╔══════════════════════════════════════════════════════════════════╗') - ) + fmt.gradient(" ╔══════════════════════════════════════════════════════════════════╗") + ); console.log( - fmt.gradient(' ║ ║') - ) + fmt.gradient(" ║ ║") + ); console.log( - ` ║ ${icons.star} ${fmt.success('清理完成!项目已准备就绪')} ${icons.rocket} ║` - ) + ` ║ ${icons.star} ${fmt.success("清理完成!项目已准备就绪")} ${icons.rocket} ║` + ); console.log( - ` ║ ${fmt.dim('现在可以开始您的开发之旅了!')} ║` - ) + ` ║ ${fmt.dim("现在可以开始您的开发之旅了!")} ║` + ); console.log( - fmt.gradient(' ║ ║') - ) + fmt.gradient(" ║ ║") + ); console.log( - fmt.gradient(' ╚══════════════════════════════════════════════════════════════════╝') - ) - console.log() + fmt.gradient(" ╚══════════════════════════════════════════════════════════════════╝") + ); + console.log(); } // 主函数 async function main() { // 清屏并显示横幅 - console.clear() - createModernBanner() + console.clear(); + createModernBanner(); // 显示清理警告 - await showCleanupWarning() + await showCleanupWarning(); // 统计文件数量 - console.log(` ${fmt.info('正在统计文件数量...')}`) - stats.totalFiles = await countAllFiles() + console.log(` ${fmt.info("正在统计文件数量...")}`); + stats.totalFiles = await countAllFiles(); - console.log(` ${fmt.info('即将清理')}: ${fmt.highlight(stats.totalFiles.toString())} 个文件`) - console.log(` ${fmt.dim(`涉及 ${targets.length} 个目录/文件路径`)}`) - console.log() + console.log(` ${fmt.info("即将清理")}: ${fmt.highlight(stats.totalFiles.toString())} 个文件`); + console.log(` ${fmt.dim(`涉及 ${targets.length} 个目录/文件路径`)}`); + console.log(); // 用户确认 - const confirmed = await getUserConfirmation() + const confirmed = await getUserConfirmation(); if (!confirmed) { - console.log(` ${fmt.warning('操作已取消,清理中止')}`) - console.log() - return + console.log(` ${fmt.warning("操作已取消,清理中止")}`); + console.log(); + return; } - console.log() - console.log(` ${icons.check} ${fmt.success('确认成功,开始清理...')}`) - console.log() + console.log(); + console.log(` ${icons.check} ${fmt.success("确认成功,开始清理...")}`); + console.log(); // 开始清理过程 - console.log(` ${fmt.badge('步骤 1/6', theme.bgBlue)} ${fmt.title('删除演示文件')}`) - console.log() + console.log(` ${fmt.badge("步骤 1/6", theme.bgBlue)} ${fmt.title("删除演示文件")}`); + console.log(); for (let i = 0; i < targets.length; i++) { - await remove(targets[i], i) + await remove(targets[i], i); } - console.log() + console.log(); - console.log(` ${fmt.badge('步骤 2/6', theme.bgBlue)} ${fmt.title('清理路由模块')}`) - console.log() - await cleanRouteModules() - console.log() + console.log(` ${fmt.badge("步骤 2/6", theme.bgBlue)} ${fmt.title("清理路由模块")}`); + console.log(); + await cleanRouteModules(); + console.log(); - console.log(` ${fmt.badge('步骤 3/6', theme.bgBlue)} ${fmt.title('重写路由别名')}`) - console.log() - await cleanRoutesAlias() - console.log() + console.log(` ${fmt.badge("步骤 3/6", theme.bgBlue)} ${fmt.title("重写路由别名")}`); + console.log(); + await cleanRoutesAlias(); + console.log(); - console.log(` ${fmt.badge('步骤 4/6', theme.bgBlue)} ${fmt.title('清空变更日志')}`) - console.log() - await cleanChangeLog() - console.log() + console.log(` ${fmt.badge("步骤 4/6", theme.bgBlue)} ${fmt.title("清空变更日志")}`); + console.log(); + await cleanChangeLog(); + console.log(); - console.log(` ${fmt.badge('步骤 5/6', theme.bgBlue)} ${fmt.title('清理语言文件')}`) - console.log() - await cleanLanguageFiles() - console.log() + console.log(` ${fmt.badge("步骤 5/6", theme.bgBlue)} ${fmt.title("清理语言文件")}`); + console.log(); + await cleanLanguageFiles(); + console.log(); - console.log(` ${fmt.badge('步骤 6/7', theme.bgBlue)} ${fmt.title('清理快速入口')}`) - console.log() - await cleanFastEnterComponent() - console.log() + console.log(` ${fmt.badge("步骤 6/7", theme.bgBlue)} ${fmt.title("清理快速入口")}`); + console.log(); + await cleanFastEnterComponent(); + console.log(); - console.log(` ${fmt.badge('步骤 7/7', theme.bgBlue)} ${fmt.title('更新菜单接口')}`) - console.log() - await updateMenuApi() + console.log(` ${fmt.badge("步骤 7/7", theme.bgBlue)} ${fmt.title("更新菜单接口")}`); + console.log(); + await updateMenuApi(); // 显示统计信息 - await showStats() + await showStats(); // 显示成功横幅 - createSuccessBanner() + createSuccessBanner(); } main().catch((err) => { - console.log() - console.log(` ${icons.error} ${fmt.error('清理脚本执行出错')}`) - console.log(` ${fmt.dim('错误详情: ' + err)}`) - console.log() - process.exit(1) -}) + console.log(); + console.log(` ${icons.error} ${fmt.error("清理脚本执行出错")}`); + console.log(` ${fmt.dim("错误详情: " + err)}`); + console.log(); + process.exit(1); +}); diff --git a/frontend/new-web/src/App.vue b/frontend/new-web/src/App.vue index d941a489..a150ee4b 100755 --- a/frontend/new-web/src/App.vue +++ b/frontend/new-web/src/App.vue @@ -1,41 +1,74 @@ diff --git a/frontend/new-web/src/api/auth.ts b/frontend/new-web/src/api/auth.ts index 9dc7b6a2..355bae90 100644 --- a/frontend/new-web/src/api/auth.ts +++ b/frontend/new-web/src/api/auth.ts @@ -1,29 +1,53 @@ -import request from '@/utils/http' - /** - * 登录 - * @param params 登录参数 - * @returns 登录响应 + * 认证相关便捷接口(示例页等使用 `@/api/auth` 路径导入) + * 实现委托至 `@/api/module_system/auth` / `user` */ -export function fetchLogin(params: Api.Auth.LoginParams) { - return request.post({ - url: '/api/auth/login', - params - // showSuccessMessage: true // 显示成功消息 - // showErrorMessage: false // 不显示错误消息 - }) +import AuthAPI, { type LoginFormData } from "@/api/module_system/auth"; +import UserAPI, { type UserInfo } from "@/api/module_system/user"; +import { ResultEnum } from "@/enums/api/result.enum"; + +export interface FetchLoginParams { + userName: string; + password: string; } -/** - * 获取用户信息 - * @returns 用户信息 - */ -export function fetchGetUserInfo() { - return request.get({ - url: '/api/user/info' - // 自定义请求头 - // headers: { - // 'X-Custom-Header': 'your-custom-value' - // } - }) +export async function fetchLogin(params: FetchLoginParams): Promise<{ + token: string; + refreshToken: string; +}> { + const captchaRes = await AuthAPI.getCaptcha(); + const captchaInfo = captchaRes.data?.data; + + const loginForm: LoginFormData = { + username: params.userName, + password: params.password, + captcha_key: captchaInfo?.key ?? "", + captcha: "", + remember: false, + login_type: "PC端", + }; + + const response = await AuthAPI.login(loginForm); + if (response.data.code !== ResultEnum.SUCCESS || !response.data.data) { + throw new Error(response.data.msg || "登录失败"); + } + + const data = response.data.data; + return { + token: data.access_token, + refreshToken: data.refresh_token, + }; +} + +/** 使用当前请求上下文中的 token 拉取用户信息(与 store.getUserInfo 数据来源一致) */ +export async function fetchGetUserInfo(): Promise { + const response = await UserAPI.getCurrentUserInfo(); + if (response.data.code !== ResultEnum.SUCCESS || response.data.data == null) { + throw new Error(response.data.msg || "获取用户信息失败"); + } + + const raw = response.data.data; + const next = { ...raw }; + delete next.menus; + return next as UserInfo; } diff --git a/frontend/new-web/src/api/module_ai/chat.ts b/frontend/new-web/src/api/module_ai/chat.ts new file mode 100644 index 00000000..cf4f112f --- /dev/null +++ b/frontend/new-web/src/api/module_ai/chat.ts @@ -0,0 +1,140 @@ +import request from "@/utils/http"; + +const API_PATH = "/ai/chat"; + +export const AiChatAPI = { + getSessionList(query: { + page_no: number; + page_size: number; + title?: string; + created_at?: string[]; + updated_at?: string[]; + }) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + createSession(body: { title: string }) { + return request>({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateSession(id: string, body: { title: string }) { + return request>({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteSession(body: string[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + chat(body: { message: string; session_id?: string | null }) { + return request>({ + url: `${API_PATH}/ai-chat`, + method: "post", + data: body, + }); + }, + + getSessionDetail(sessionId: string) { + return request>({ + url: `${API_PATH}/detail/${sessionId}`, + method: "get", + }); + }, +}; + +export default AiChatAPI; + +export interface ChatSessionMessage { + id: string; + role: string; + content: string; + created_at: number | null; +} + +export interface ChatSession { + session_id: string; + agent_id: string | null; + team_id: string | null; + team_name: string | null; + workflow_id: string | null; + user_id: string | null; + session_data: Record | null; + agent_data: Record | null; + team_data: Record | null; + workflow_data: Record | null; + metadata: Record | null; + runs: Array> | null; + summary: Record | null; + created_at: number | null; + updated_at: number | null; + + id: string; + title: string | null; + created_time: string | null; + updated_time: string | null; + message_count: number; + messages: ChatSessionMessage[]; +} + +export interface SessionGroup { + id: string; + title: string; + sessions: ChatSession[]; +} + +export interface UserInfo { + id: number; + name: string; + username: string; + avatar: string; + email: string; +} + +export interface AiChatResponse { + response: string; + session_id: string; + function_calls: Array<{ + name: string; + arguments: Record; + }> | null; +} + +export interface ChatSessionDetail { + session_id: string; + agent_id: string | null; + team_id: string | null; + team_name: string | null; + workflow_id: string | null; + user_id: string | null; + session_data: Record | null; + agent_data: Record | null; + team_data: Record | null; + workflow_data: Record | null; + metadata: Record | null; + runs: Array> | null; + summary: Record | null; + created_at: number | null; + updated_at: number | null; + + id: string; + title: string | null; + created_time: string | null; + updated_time: string | null; + message_count: number; + messages: ChatSessionMessage[]; +} diff --git a/frontend/new-web/src/api/module_application/portal.ts b/frontend/new-web/src/api/module_application/portal.ts new file mode 100644 index 00000000..dfb9e1a2 --- /dev/null +++ b/frontend/new-web/src/api/module_application/portal.ts @@ -0,0 +1,114 @@ +import request from "@/utils/http"; + +const API_PATH = "/application/portal"; + +export const ApplicationAPI = { + /** + * 获取应用详情 + * @param id 应用ID + */ + detailApp(id: number) { + return request>({ + url: `${API_PATH}/detail/${id}`, + method: "get", + }); + }, + + /** + * 查询应用列表 + * @param query 查询参数 + */ + listApp(query: ApplicationPageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + /** + * 创建应用 + * @param body 应用信息 + */ + createApp(body: ApplicationForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + /** + * 修改应用 + * @param id 应用ID + * @param body 应用信息 + */ + updateApp(id: number, body: ApplicationForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + /** + * 删除应用 + * @param body 应用ID数组 + */ + deleteApp(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + /** + * 批量修改应用状态 + * @param body 批量操作参数 + */ + batchApp(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, +}; + +export default ApplicationAPI; + +/** + * 应用分页查询参数 + */ +export interface ApplicationPageQuery extends PageQuery { + name?: string; + tenant_id?: number; + status?: string; + created_id?: number; + created_time?: string[]; + updated_id?: number; + updated_time?: string[]; +} + +/** + * 应用信息 + */ +export interface ApplicationInfo extends BaseType { + name?: string; + access_url?: string; + icon_url?: string; + tenant?: TenantType; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; +} + +/** + * 应用表单 + */ +export interface ApplicationForm extends BaseFormType { + name: string; + access_url: string; + icon_url: string; +} diff --git a/frontend/new-web/src/api/module_example/demo.ts b/frontend/new-web/src/api/module_example/demo.ts new file mode 100644 index 00000000..92647c0c --- /dev/null +++ b/frontend/new-web/src/api/module_example/demo.ts @@ -0,0 +1,124 @@ +import request from "@/utils/http"; + +const API_PATH = "/example/demo"; + +const DemoAPI = { + getDemoList(query: DemoPageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + getDemoDetail(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createDemo(body: DemoForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateDemo(id: number, body: DemoForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteDemo(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + batchDemo(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, + + exportDemo(body: DemoPageQuery) { + return request({ + url: `${API_PATH}/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, + + downloadTemplateDemo() { + return request({ + url: `${API_PATH}/download/template`, + method: "post", + responseType: "blob", + }); + }, + + importDemo(body: FormData) { + return request({ + url: `${API_PATH}/import`, + method: "post", + data: body, + headers: { + "Content-Type": "multipart/form-data", + }, + }); + }, +}; + +export default DemoAPI; + +export interface DemoPageQuery extends PageQuery { + name?: string; + status?: string; + created_time?: string[]; + updated_time?: string[]; + created_id?: number; + updated_id?: number; +} + +export interface DemoTable extends BaseType { + name?: string; + status?: string; + description?: string; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; + a?: number; + b?: number; + c?: number; + d?: boolean; + e?: string; + f?: string; + g?: string; + h?: string; + i?: Record; +} + +export interface DemoForm extends BaseFormType { + name?: string; + status?: string; + description?: string; + a?: number; + b?: number; + c?: number; + d?: boolean; + e?: string; + f?: Date | string; + g?: Date | string; + h?: string; + i?: Record; +} diff --git a/frontend/new-web/src/api/module_example/demo01.ts b/frontend/new-web/src/api/module_example/demo01.ts new file mode 100644 index 00000000..5262431e --- /dev/null +++ b/frontend/new-web/src/api/module_example/demo01.ts @@ -0,0 +1,116 @@ +import request from "@/utils/http"; + +const API_PATH = "/example/demo01"; + +const Demo01API = { + getDemo01List(query: Demo01PageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + getDemo01Detail(id: number) { + return request>({ + url: `${API_PATH}/detail/${id}`, + method: "get", + }); + }, + + createDemo01(body: Demo01Form) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateDemo01(id: number, body: Demo01Form) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteDemo01(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + batchDemo01(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, + + exportDemo01(body: Demo01PageQuery) { + return request({ + url: `${API_PATH}/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, + + downloadDemo01Template() { + return request({ + url: `${API_PATH}/download/template`, + method: "post", + responseType: "blob", + }); + }, + + importDemo01(body: FormData) { + return request({ + url: `${API_PATH}/import`, + method: "post", + data: body, + headers: { + "Content-Type": "multipart/form-data", + }, + }); + }, +}; + +export default Demo01API; + +export interface Demo01PageQuery extends PageQuery { + /** 与后端 Demo01QueryParam 一致 */ + name?: string; + description?: string; + /** 是否启用:0 启用 / 1 禁用(字符串) */ + status?: string; + created_time?: string[]; + updated_time?: string[]; + created_id?: number; + updated_id?: number; +} + +/** + * 与后端 Demo01OutSchema 一致: + * Demo01CreateSchema(name,status,description) + BaseSchema + UserBySchema + */ +export interface Demo01Table extends BaseType { + name?: string; + status?: string; + description?: string; + created_id?: number; + updated_id?: number; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; +} + +/** 与后端 Demo01CreateSchema / Demo01UpdateSchema 一致(不含 id,更新走 URL) */ +export interface Demo01Form extends BaseFormType { + name?: string; + status?: string; + description?: string; +} diff --git a/frontend/new-web/src/api/module_generator/gencode.ts b/frontend/new-web/src/api/module_generator/gencode.ts new file mode 100644 index 00000000..747d5728 --- /dev/null +++ b/frontend/new-web/src/api/module_generator/gencode.ts @@ -0,0 +1,199 @@ +import request from "@/utils/http"; + +const API_PATH = "/generator/gencode"; + +const GencodeAPI = { + // 查询生成表数据 + listTable(query: GenTablePageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + // 查询db数据库列表 + listDbTable(query: DBTablePageQuery) { + return request>>({ + url: `${API_PATH}/db/list`, + method: "get", + params: query, + }); + }, + + // 导入表 + importTable(table_names: string[]) { + return request({ + url: `${API_PATH}/import`, + method: "post", + data: table_names, + }); + }, + + // 查询表详细信息 + detailTable(table_id: number) { + return request>({ + url: `${API_PATH}/detail/${table_id}`, + method: "get", + }); + }, + + // 创建表(与后端 GenCreateTableSqlBody 一致) + createTable(sql: string) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: { sql }, + }); + }, + + // 更新表信息 + updateTable(data: GenTableSchema, table_id: number) { + return request({ + url: `${API_PATH}/update/${table_id}`, + method: "put", + data, + }); + }, + + // 删除表数据 + deleteTable(table_ids: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: table_ids, + }); + }, + + // 批量生成代码 + batchGenCode(table_names: string[]) { + return request({ + url: `${API_PATH}/batch/output`, + method: "patch", + data: table_names, + responseType: "blob", + }); + }, + + // 生成代码到指定路径 + genCodeToPath(table_name: string) { + return request({ + url: `${API_PATH}/output/${table_name}`, + method: "post", + }); + }, + + // 预览生成代码 + previewTable(id: number) { + return request>>({ + url: `${API_PATH}/preview/${id}`, + method: "get", + }); + }, + + // 同步数据库 + syncDb(table_name: string) { + return request({ + url: `${API_PATH}/sync_db/${table_name}`, + method: "post", + }); + }, + + // 同步数据库差异预览(不落库) + syncDbPreview(table_name: string) { + return request>({ + url: `${API_PATH}/sync_db/preview/${table_name}`, + method: "get", + }); + }, +}; + +export default GencodeAPI; + +/** 代码生成预览对象 */ +export interface GeneratorPreviewVO { + /** 文件生成路径 */ + path: string; + /** 文件名称 */ + file_name: string; + /** 文件内容 */ + content: string; +} + +/** 业务表结构 */ +export interface GenTableSchema extends BaseType { + table_name?: string; + table_comment?: string; + class_name?: string; + package_name?: string; + module_name?: string; + business_name?: string; + function_name?: string; + description?: string; + parent_menu_id?: number; + sub?: boolean; + sub_table_name?: string; + sub_table_fk_name?: string; + master_sub_hint?: string | null; + pk_column?: GenTableColumnSchema; + columns: GenTableColumnSchema[]; + sub_table?: GenTableSchema; +} + +export interface GenTableColumnSchema extends BaseType { + table_id?: number; + column_name?: string; + column_comment?: string; + column_type?: string; + column_length?: string; + column_default?: string; + is_pk?: boolean; + is_increment?: boolean; + is_nullable?: boolean; + is_unique?: boolean; + sort?: number; + python_type?: string; + python_field?: string; + html_type?: string | null; + dict_type?: string; + is_insert?: boolean | null; + is_edit?: boolean | null; + is_list?: boolean | null; + is_query?: boolean | null; + query_type?: string | null; +} + +/** 查询参数:生成表 */ +export interface GenTablePageQuery extends PageQuery { + table_name?: string; + table_comment?: string; +} + +/** 查询参数:DB 表 */ +export interface DBTablePageQuery extends PageQuery { + table_name?: string; + table_comment?: string; +} + +export interface DBTableSchema { + table_name: string; + table_comment?: string; + create_time?: string; + update_time?: string; +} + +export interface GenSyncColumnChange { + column_name: string; + before?: Record | null; + after?: Record | null; + changed_keys?: string[]; +} + +export interface GenSyncPreviewSchema { + table_name: string; + added: string[]; + removed: string[]; + unchanged: string[]; + changed: GenSyncColumnChange[]; + sub_tables?: GenSyncPreviewSchema[]; +} diff --git a/frontend/new-web/src/api/module_monitor/cache.ts b/frontend/new-web/src/api/module_monitor/cache.ts new file mode 100644 index 00000000..dffe1a63 --- /dev/null +++ b/frontend/new-web/src/api/module_monitor/cache.ts @@ -0,0 +1,95 @@ +import request from "@/utils/http"; + +const API_PATH = "/monitor/cache"; + +const CacheAPI = { + getCacheInfo() { + return request({ + url: `${API_PATH}/info`, + method: "get", + }); + }, + + getCacheNames() { + return request({ + url: `${API_PATH}/get/names`, + method: "get", + }); + }, + + getCacheKeys(cacheName: string) { + return request({ + url: `${API_PATH}/get/keys/${cacheName}`, + method: "get", + }); + }, + + getCacheValue(cacheName: string, cacheKey: string) { + return request({ + url: `${API_PATH}/get/value/${cacheName}/${cacheKey}`, + method: "get", + }); + }, + + deleteCacheName(cacheName: string) { + return request({ + url: `${API_PATH}/delete/name/${cacheName}`, + method: "delete", + }); + }, + + deleteCacheKey(cacheKey: string) { + return request({ + url: `${API_PATH}/delete/key/${cacheKey}`, + method: "delete", + }); + }, + + deleteCacheAll() { + return request({ + url: `${API_PATH}/delete/all`, + method: "delete", + }); + }, +}; + +export default CacheAPI; + +export interface CacheForm { + cache_name: string; + cache_key: string; + cache_value: string; +} + +export interface CacheInfo { + cache_key: string; + cache_name: string; + cache_value: string; + remark: string; +} + +export interface CommandStats { + name: string; + value: string; +} + +export interface RedisInfo { + redis_version: string; + redis_mode: string; + tcp_port: number; + connected_clients: number; + uptime_in_days: number; + used_memory_human: string; + used_cpu_user_children: string; + maxmemory_human: string; + aof_enabled: string; + rdb_last_bgsave_status: string; + instantaneous_input_kbps: number; + instantaneous_output_kbps: number; +} + +export interface CacheMonitor { + command_stats: CommandStats[]; + db_size: number; + info: RedisInfo; +} diff --git a/frontend/new-web/src/api/module_monitor/online.ts b/frontend/new-web/src/api/module_monitor/online.ts new file mode 100644 index 00000000..5ce44ae9 --- /dev/null +++ b/frontend/new-web/src/api/module_monitor/online.ts @@ -0,0 +1,52 @@ +import request from "@/utils/http"; + +const API_PATH = "/monitor/online"; + +const OnlineAPI = { + // 查询在线用户列表 + listOnline(query: OnlineUserPageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + // 强退用户 + deleteOnline(body: string) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + // 强退用户 + clearOnline() { + return request({ + url: `${API_PATH}/clear`, + method: "delete", + }); + }, +}; + +export default OnlineAPI; + +export interface OnlineUserPageQuery extends PageQuery { + ipaddr?: string; + name?: string; + login_location?: string; +} + +export interface OnlineUserTable { + session_id: string; + user_id: number; + name: string; + user_name: string; + ipaddr: string; + login_location: string; + os: string; + browser: string; + login_time: string; + login_type: string; +} diff --git a/frontend/new-web/src/api/module_monitor/resource.ts b/frontend/new-web/src/api/module_monitor/resource.ts new file mode 100644 index 00000000..267e804f --- /dev/null +++ b/frontend/new-web/src/api/module_monitor/resource.ts @@ -0,0 +1,248 @@ +import request from "@/utils/http"; + +const API_PATH = "/monitor/resource"; + +export const ResourceAPI = { + /** + * 获取目录列表 + * @param query 查询参数 + */ + listResource(query: ResourcePageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + /** + * 上传文件 + * @param formData 文件数据 + */ + uploadFile(formData: FormData) { + return request>({ + url: `${API_PATH}/upload`, + method: "post", + data: formData, + headers: { "Content-Type": "multipart/form-data" }, + }); + }, + + /** + * 下载文件 + * @param path 文件路径 + */ + downloadFile(path: string) { + return request({ + url: `${API_PATH}/download`, + method: "get", + params: { path }, + responseType: "blob", + }); + }, + + /** + * 删除文件或目录 + * @param body 文件路径数组 + */ + deleteResource(body: string[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + /** + * 移动文件或目录 + * @param body 移动参数 + */ + moveResource(body: ResourceMoveQuery) { + return request({ + url: `${API_PATH}/move`, + method: "post", + data: body, + }); + }, + + /** + * 复制文件或目录 + * @param body 复制参数 + */ + copyResource(body: ResourceCopyQuery) { + return request({ + url: `${API_PATH}/copy`, + method: "post", + data: body, + }); + }, + + /** + * 重命名文件或目录 + * @param body 重命名参数 + */ + renameResource(body: ResourceRenameQuery) { + return request({ + url: `${API_PATH}/rename`, + method: "post", + data: body, + }); + }, + + /** + * 创建目录 + * @param body 创建目录参数 + */ + createDirectory(body: ResourceCreateDirQuery) { + return request({ + url: `${API_PATH}/create-dir`, + method: "post", + data: body, + }); + }, + + /** + * 导出资源列表 + * @param body 导出条件 + */ + exportResource(body: ResourcePageQuery) { + return request({ + url: `${API_PATH}/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, +}; + +export default ResourceAPI; + +/** + * 资源列表查询参数 + */ +export interface ResourceListQuery { + /** 目录路径 */ + path?: string; + /** 包含隐藏文件 */ + include_hidden?: boolean; +} + +/** + * 资源目录模型 + */ +export interface ResourceDirectorySchema { + /** 目录路径 */ + path: string; + /** 目录名称 */ + name: string; + /** 目录项 */ + items: ResourceItem[]; + /** 文件总数 */ + total_files: number; + /** 目录总数 */ + total_dirs: number; + /** 总大小 */ + total_size: number; +} + +/** + * 资源搜索查询参数 + */ +export interface ResourceSearchQuery { + /** 关键词 */ + name?: string; +} + +/** + * 资源分页查询参数 + */ +export interface ResourcePageQuery extends PageQuery { + /** 关键词 */ + name?: string; + /** 目录路径 */ + path?: string; + /** 包含隐藏文件 */ + include_hidden?: boolean; +} + +/** + * 资源上传响应模型 + */ +export interface ResourceUploadSchema { + /** 文件名 */ + filename: string; + /** 访问URL */ + file_url: string; + /** 文件大小 */ + file_size: number; + /** 上传时间 */ + upload_time: string; +} + +/** + * 资源项信息 + */ +export interface ResourceItem { + /** 文件/目录名称 */ + name: string; + /** 文件URL路径 */ + file_url: string; + /** 相对路径 */ + relative_path?: string; + /** 是否为文件 */ + is_file?: boolean; + /** 是否为目录 */ + is_dir?: boolean; + /** 文件大小(字节) */ + size?: number | null; + /** 创建时间 */ + created_time: string; + /** 修改时间 */ + modified_time: string; + /** 是否为隐藏文件 */ + is_hidden?: boolean; +} + +/** + * 资源移动参数 + */ +export interface ResourceMoveQuery { + /** 源路径 */ + source_path: string; + /** 目标路径 */ + target_path: string; + /** 是否覆盖 */ + overwrite?: boolean; +} + +/** + * 资源复制参数 + */ +export interface ResourceCopyQuery { + /** 源路径 */ + source_path: string; + /** 目标路径 */ + target_path: string; + /** 是否覆盖 */ + overwrite?: boolean; +} + +/** + * 资源重命名参数 + */ +export interface ResourceRenameQuery { + /** 原路径 */ + old_path: string; + /** 新名称 */ + new_name: string; +} + +/** + * 创建目录参数 + */ +export interface ResourceCreateDirQuery { + /** 父目录路径 */ + parent_path: string; + /** 目录名称 */ + dir_name: string; +} diff --git a/frontend/new-web/src/api/module_monitor/server.ts b/frontend/new-web/src/api/module_monitor/server.ts new file mode 100644 index 00000000..ae8e026d --- /dev/null +++ b/frontend/new-web/src/api/module_monitor/server.ts @@ -0,0 +1,67 @@ +import request from "@/utils/http"; + +const API_PATH = "/monitor/server"; + +const ServerAPI = { + // 获取服务信息 + getServer() { + return request({ + url: `${API_PATH}/info`, + method: "get", + }); + }, +}; + +export default ServerAPI; + +export interface Cpu { + cpu_num: number; + used: number; + sys: number; + free: number; +} + +export interface Memory { + total: string; + used: string; + free: string; + usage: number; +} + +export interface System { + computer_name: string; + os_name: string; + computer_ip: string; + os_arch: string; + user_dir: string; +} + +export interface Python { + name: string; + version: string; + start_time: string; + run_time: string; + home: string; + memory_total: string; + memory_used: string; + memory_free: string; + memory_usage: number; +} + +export interface SysFile { + dirName: string; + sysTypeName: string; + typeName: string; + total: string; + free: string; + used: string; + usage: number; +} + +export interface ServerInfo { + cpu: Cpu; + mem: Memory; + sys: System; + py: Python; + disks: SysFile[]; +} diff --git a/frontend/new-web/src/api/module_system/auth.ts b/frontend/new-web/src/api/module_system/auth.ts new file mode 100644 index 00000000..d6dbc50a --- /dev/null +++ b/frontend/new-web/src/api/module_system/auth.ts @@ -0,0 +1,125 @@ +import request from "@/utils/http"; +// import request from '@/utils/http' + +const API_PATH = "/system/auth"; + +/** 第三方 OAuth 登录渠道(与后端 `/system/auth/oauth/{provider}` 一致) */ +export type OAuthProvider = "wechat" | "qq" | "github" | "gitee"; + +const AuthAPI = { + /** + * 登录 + * @param body 登录参数 + * @returns 登录响应 + */ + login(body: LoginFormData) { + return request>({ + url: `${API_PATH}/login`, + method: "post", + headers: { + "Content-Type": "multipart/form-data", + }, + data: body, + }); + }, + + refreshToken(body: RefreshToekenBody) { + return request>({ + url: `${API_PATH}/token/refresh`, + method: "post", + data: body, + }); + }, + + getCaptcha() { + return request>({ + url: `${API_PATH}/captcha/get`, + method: "get", + }); + }, + + logout(body: LogoutBody) { + return request({ + url: `${API_PATH}/logout`, + method: "post", + data: body, + }); + }, + + /** 获取免登录用户列表 */ + getAutoLoginUsers() { + return request>({ + url: `${API_PATH}/auto-login/users`, + method: "get", + }); + }, + + /** 获取免登录Token */ + getAutoLoginToken(userId: number) { + return request>({ + url: `${API_PATH}/auto-login/token`, + method: "post", + params: { user_id: userId }, + }); + }, + + /** 免登录 */ + autoLogin(token: string) { + return request>({ + url: `${API_PATH}/auto-login`, + method: "post", + params: { token }, + }); + }, +}; + +export default AuthAPI; + +/** 登录表单数据 */ +export interface LoginFormData { + username: string; + password: string; + captcha_key: string; + captcha: string; + remember: boolean; + login_type: string; +} + +// 刷新令牌 +export interface RefreshToekenBody { + refresh_token: string; +} + +/** 登录响应 */ +export interface LoginResult { + access_token: string; + refresh_token: string; + token_type: string; + expires_in: number; +} + +/** 验证码信息 */ +export interface CaptchaInfo { + enable: boolean; + key: string; + img_base: string; +} + +/** 退出登录操作 */ +export interface LogoutBody { + token: string; +} + +/** 免登录用户信息 */ +export interface AutoLoginUser { + id: number; + username: string; + name: string; + avatar: string | null; +} + +/** 免登录Token响应 */ +export interface AutoLoginToken { + token: string; + user: AutoLoginUser; +} diff --git a/frontend/new-web/src/api/module_system/dept.ts b/frontend/new-web/src/api/module_system/dept.ts new file mode 100644 index 00000000..9a394520 --- /dev/null +++ b/frontend/new-web/src/api/module_system/dept.ts @@ -0,0 +1,82 @@ +import request from "@/utils/http"; + +const API_PATH = "/system/dept"; + +const DeptAPI = { + listDept(query?: DeptPageQuery) { + return request>({ + url: `${API_PATH}/tree`, + method: "get", + params: query, + }); + }, + + detailDept(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createDept(body: DeptForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateDept(id: number, body: DeptForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteDept(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + batchDept(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, +}; + +export default DeptAPI; + +export interface DeptPageQuery { + name?: string; + status?: string; + created_time?: string[]; +} + +export interface DeptTable extends BaseType { + name?: string; + order?: number; + code: string; + leader?: string; + phone?: string; + email?: string; + parent_id?: number; + parent_name?: string; + children?: DeptTable[]; +} + +export interface DeptForm extends BaseFormType { + name?: string; + order?: number; + code: string; + leader?: string; + phone?: string; + email?: string; + parent_id?: number; +} diff --git a/frontend/new-web/src/api/module_system/dict.ts b/frontend/new-web/src/api/module_system/dict.ts new file mode 100644 index 00000000..e78731f0 --- /dev/null +++ b/frontend/new-web/src/api/module_system/dict.ts @@ -0,0 +1,182 @@ +import request from "@/utils/http"; + +const API_PATH = "/system/dict"; + +const DictAPI = { + listDictType(query: DictPageQuery) { + return request>>({ + url: `${API_PATH}/type/list`, + method: "get", + params: query, + }); + }, + + optionDictType() { + return request({ + url: `${API_PATH}/type/optionselect`, + method: "get", + }); + }, + + detailDictType(query: number) { + return request>({ + url: `${API_PATH}/type/detail/${query}`, + method: "get", + }); + }, + + createDictType(body: DictForm) { + return request({ + url: `${API_PATH}/type/create`, + method: "post", + data: body, + }); + }, + + updateDictType(id: number, body: DictForm) { + return request({ + url: `${API_PATH}/type/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteDictType(body: number[]) { + return request({ + url: `${API_PATH}/type/delete`, + method: "delete", + data: body, + }); + }, + + batchDictType(body: BatchType) { + return request({ + url: `${API_PATH}/type/available/setting`, + method: "patch", + data: body, + }); + }, + + exportDictType(body: DictPageQuery) { + return request({ + url: `${API_PATH}/type/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, + + listDictData(query: DictDataPageQuery) { + return request>>({ + url: `${API_PATH}/data/list`, + method: "get", + params: query, + }); + }, + + detailDictData(query: number) { + return request>({ + url: `${API_PATH}/data/detail/${query}`, + method: "get", + }); + }, + + createDictData(body: DictDataForm) { + return request({ + url: `${API_PATH}/data/create`, + method: "post", + data: body, + }); + }, + + updateDictData(id: number, body: DictDataForm) { + return request({ + url: `${API_PATH}/data/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteDictData(body: number[]) { + return request({ + url: `${API_PATH}/data/delete`, + method: "delete", + data: body, + }); + }, + + batchDictData(body: BatchType) { + return request({ + url: `${API_PATH}/data/available/setting`, + method: "patch", + data: body, + }); + }, + + exportDictData(body: DictDataPageQuery) { + return request({ + url: `${API_PATH}/data/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, + + getInitDict(dict_type: string) { + return request>({ + url: `${API_PATH}/data/info/${dict_type}`, + method: "get", + }); + }, +}; + +export default DictAPI; + +export interface DictPageQuery extends PageQuery { + dict_name?: string; + dict_type?: string; + status?: string; + created_time?: string[]; + updated_time?: string[]; +} + +export interface DictDataPageQuery extends PageQuery { + dict_label?: string; + dict_type?: string; + dict_type_id?: number; + status?: string; + created_time?: string[]; + updated_time?: string[]; +} + +export interface DictTable extends BaseType { + dict_name?: string; + dict_type?: string; +} + +export interface DictForm extends BaseFormType { + dict_name?: string; + dict_type?: string; +} + +export interface DictDataTable extends BaseType { + dict_sort?: number; + dict_label?: string; + dict_value?: string; + dict_type_id?: number; + dict_type?: string; + css_class?: string; + list_class?: string; + is_default?: boolean; +} + +export interface DictDataForm extends BaseFormType { + dict_sort?: number; + dict_label?: string; + dict_value?: string; + dict_type_id?: number; + dict_type?: string; + css_class?: string; + list_class?: string; + is_default?: boolean; +} diff --git a/frontend/new-web/src/api/module_system/log.ts b/frontend/new-web/src/api/module_system/log.ts new file mode 100644 index 00000000..e9a8e700 --- /dev/null +++ b/frontend/new-web/src/api/module_system/log.ts @@ -0,0 +1,66 @@ +import request from "@/utils/http"; + +const API_PATH = "/system/log"; + +const LogAPI = { + listLog(query: LogPageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + detailLog(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + deleteLog(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + exportLog(body: LogPageQuery) { + return request({ + url: `${API_PATH}/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, +}; + +export default LogAPI; + +export interface LogPageQuery extends PageQuery { + type?: number; + request_path?: string; + creator_name?: string; + created_time?: string[]; + updated_time?: string[]; + created_id?: number; + updated_id?: number; +} + +export interface LogTable extends BaseType { + type?: number; // 1 登录日志 2 操作日志 + request_path?: string; + request_method?: string; + request_ip?: string; + login_location?: string; + request_browser?: string; + request_os?: string; + response_code?: number; + request_payload?: string; + response_json?: string; + process_time?: string; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; +} diff --git a/frontend/new-web/src/api/module_system/menu.ts b/frontend/new-web/src/api/module_system/menu.ts new file mode 100644 index 00000000..72a22095 --- /dev/null +++ b/frontend/new-web/src/api/module_system/menu.ts @@ -0,0 +1,110 @@ +import request from "@/utils/http"; + +const API_PATH = "/system/menu"; + +const MenuAPI = { + listMenu(query?: MenuPageQuery) { + return request>({ + url: `${API_PATH}/tree`, + method: "get", + params: query, + }); + }, + + detailMenu(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createMenu(body: MenuForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateMenu(id: number, body: MenuForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteMenu(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + batchMenu(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, +}; + +export default MenuAPI; + +export interface MenuPageQuery { + name?: string; + status?: string; + created_time?: string[]; + updated_time?: string[]; + /** 与后端 Query `menu_client` 一致:pc | app;菜单管理 Tab 切换时传入 */ + menu_client?: "pc" | "app"; +} + +export interface MenuTable extends BaseType { + name?: string; + type?: number; + icon?: string; + order?: number; + permission?: string; + route_name?: string; + route_path?: string; + component_path?: string; + redirect?: string; + parent_id?: number; + parent_name?: string; + keep_alive?: boolean; + hidden?: boolean; + always_show?: boolean; + title?: string; + params?: { key: string; value: string }[]; + affix?: boolean; + children?: MenuTable[]; + client?: "pc" | "app"; +} + +export interface MenuForm extends BaseFormType { + name?: string; + type?: number; + icon?: string; + order?: number; + permission?: string; + route_name?: string; + route_path?: string; + component_path?: string; + redirect?: string; + parent_id?: number; + keep_alive?: boolean; + hidden?: boolean; + always_show?: boolean; + title?: string; + params?: KeyValue[]; + affix?: boolean; + client?: "pc" | "app"; +} + +export interface KeyValue { + key: string; + value: string; +} diff --git a/frontend/new-web/src/api/module_system/notice.ts b/frontend/new-web/src/api/module_system/notice.ts new file mode 100644 index 00000000..525c3e15 --- /dev/null +++ b/frontend/new-web/src/api/module_system/notice.ts @@ -0,0 +1,95 @@ +import request from "@/utils/http"; + +const API_PATH = "/system/notice"; + +const NoticeAPI = { + listNotice(query: NoticePageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + listNoticeAvailable() { + return request>>({ + url: `${API_PATH}/available`, + method: "get", + }); + }, + + detailNotice(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createNotice(body: NoticeForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateNotice(id: number, body: NoticeForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteNotice(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + batchNotice(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, + + exportNotice(body: NoticePageQuery) { + return request({ + url: `${API_PATH}/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, +}; + +export default NoticeAPI; + +export interface NoticePageQuery extends PageQuery { + notice_title?: string; + notice_type?: string; + status?: string; + created_time?: string[]; + updated_time?: string[]; + created_id?: number; + updated_id?: number; +} + +export interface NoticeTable extends BaseType { + notice_title?: string; + notice_type?: string; + notice_content?: string; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; +} + +export interface NoticeForm extends BaseFormType { + notice_title?: string; + notice_type?: string; + notice_content?: string; +} diff --git a/frontend/new-web/src/api/module_system/params.ts b/frontend/new-web/src/api/module_system/params.ts new file mode 100644 index 00000000..33db4f1b --- /dev/null +++ b/frontend/new-web/src/api/module_system/params.ts @@ -0,0 +1,98 @@ +import request from "@/utils/http"; +import { NO_AUTH_FLAG } from "@/utils/http/config"; + +const API_PATH = "/system/param"; + +const ParamsAPI = { + uploadFile(body: any) { + return request>({ + url: `${API_PATH}/upload`, + method: "post", + data: body, + headers: { "Content-Type": "multipart/form-data" }, + }); + }, + + /** 登录前拉取站点参数:不带 Token,避免过期 JWT 导致 401 无法展示底部备案等 */ + getInitConfig() { + return request>({ + url: `${API_PATH}/info`, + method: "get", + headers: { + Authorization: NO_AUTH_FLAG, + }, + }); + }, + + listParams(query: ConfigPageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + detailParams(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createParams(body: ConfigForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateParams(id: number, body: ConfigForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteParams(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + exportParams(body: ConfigPageQuery) { + return request({ + url: `${API_PATH}/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, +}; + +export default ParamsAPI; + +export interface ConfigPageQuery extends PageQuery { + config_name?: string; + config_key?: string; + config_type?: boolean; + created_time?: string[]; + updated_time?: string[]; +} + +export interface ConfigTable extends BaseType { + config_name?: string; + config_key?: string; + config_value?: string; + config_type?: boolean; +} + +export interface ConfigForm extends BaseFormType { + config_name?: string; + config_key?: string; + config_value?: string; + config_type?: boolean; +} diff --git a/frontend/new-web/src/api/module_system/position.ts b/frontend/new-web/src/api/module_system/position.ts new file mode 100644 index 00000000..0c0f11f6 --- /dev/null +++ b/frontend/new-web/src/api/module_system/position.ts @@ -0,0 +1,84 @@ +import request from "@/utils/http"; + +const API_PATH = "/system/position"; + +const PositionAPI = { + listPosition(query?: PositionPageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + detailPosition(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createPosition(body: PositionForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updatePosition(id: number, body: PositionForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deletePosition(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + batchPosition(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, + + exportPosition(body: PositionPageQuery) { + return request({ + url: `${API_PATH}/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, +}; + +export default PositionAPI; + +export interface PositionPageQuery extends PageQuery { + name?: string; + status?: string; + created_id?: number; + created_time?: string[]; + updated_time?: string[]; +} + +export interface PositionTable extends BaseType { + name?: string; + order?: number; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; +} + +export interface PositionForm extends BaseFormType { + name?: string; + order?: number; +} diff --git a/frontend/new-web/src/api/module_system/role.ts b/frontend/new-web/src/api/module_system/role.ts new file mode 100644 index 00000000..af936fe0 --- /dev/null +++ b/frontend/new-web/src/api/module_system/role.ts @@ -0,0 +1,119 @@ +import request from "@/utils/http"; + +const API_PATH = "/system/role"; + +const RoleAPI = { + listRole(query?: TablePageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + detailRole(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createRole(body: RoleForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateRole(id: number, body: RoleForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteRole(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + batchRole(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, + + setPermission(body: permissionDataType) { + return request({ + url: `${API_PATH}/permission/setting`, + method: "patch", + data: body, + }); + }, + + exportRole(body: TablePageQuery) { + return request({ + url: `${API_PATH}/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, +}; + +export default RoleAPI; + +export interface TablePageQuery extends PageQuery { + name?: string; + status?: string; + created_time?: string[]; + updated_time?: string[]; +} + +export interface RoleTable extends BaseType { + id: number; + name: string; + order?: number; + code: string; + data_scope?: number; + menus?: permissionMenuType[]; + depts?: permissionDeptType[]; +} + +export interface RoleForm extends BaseFormType { + name?: string; + order?: number; + code: string; +} + +export interface permissionDataType { + data_scope: number; + role_ids: RoleTable["id"][]; + menu_ids: permissionMenuType["id"][]; + dept_ids: permissionDeptType["id"][]; +} + +export interface permissionDeptType { + id: number; + name: string; + parent_id: number; + children: permissionDeptType[]; +} + +export interface permissionMenuType { + id: number; + name: string; + type: number; + permission: string; + parent_id?: number; + status: string; + description?: string; + children?: permissionMenuType[]; +} diff --git a/frontend/new-web/src/api/module_system/tenant.ts b/frontend/new-web/src/api/module_system/tenant.ts new file mode 100644 index 00000000..d5d5af93 --- /dev/null +++ b/frontend/new-web/src/api/module_system/tenant.ts @@ -0,0 +1,100 @@ +import request from "@/utils/http"; + +const API_PATH = "/system/tenant"; + +const TenantAPI = { + listTenant(query?: TenantPageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + detailTenant(id: number) { + return request>({ + url: `${API_PATH}/detail/${id}`, + method: "get", + }); + }, + + createTenant(body: TenantCreateForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateTenant(id: number, body: TenantUpdateForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteTenant(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + batchTenant(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, +}; + +export default TenantAPI; + +export interface TenantPageQuery extends PageQuery { + name?: string; + code?: string; + status?: string; + created_time?: string[]; +} + +export interface TenantTable extends BaseType { + name: string; + code: string; + start_time?: string; + end_time?: string; +} + +export interface TenantForm { + id?: number; + name?: string; + code?: string; + status?: string; + description?: string; + start_time?: string; + end_time?: string; +} + +export interface TenantCreateForm { + name: string; + code: string; + status?: string; + description?: string; + start_time?: string; + end_time?: string; +} + +export interface TenantUpdateForm { + name?: string; + status?: string; + description?: string; + start_time?: string; + end_time?: string; +} + +export interface BatchType { + ids: number[]; + status: string; +} diff --git a/frontend/new-web/src/api/module_system/user.ts b/frontend/new-web/src/api/module_system/user.ts new file mode 100644 index 00000000..954cefbb --- /dev/null +++ b/frontend/new-web/src/api/module_system/user.ts @@ -0,0 +1,268 @@ +import request from "@/utils/http"; +import { MenuTable, MenuForm } from "@/api/module_system/menu"; + +const API_PATH = "/system/user"; + +export const UserAPI = { + getCurrentUserInfo() { + return request>({ + url: `${API_PATH}/current/info`, + method: "get", + }); + }, + + uploadCurrentUserAvatar(body: any) { + return request>({ + url: `${API_PATH}/current/avatar/upload`, + method: "post", + data: body, + headers: { "Content-Type": "multipart/form-data" }, + }); + }, + + updateCurrentUserInfo(body: InfoFormState) { + return request>({ + url: `${API_PATH}/current/info/update`, + method: "put", + data: body, + }); + }, + + changeCurrentUserPassword(body: PasswordFormState) { + return request({ + url: `${API_PATH}/current/password/change`, + method: "put", + data: body, + }); + }, + + resetUserPassword(body: ResetPasswordForm) { + return request({ + url: `${API_PATH}/reset/password`, + method: "put", + data: body, + }); + }, + + registerUser(body: RegisterForm) { + return request({ + url: `${API_PATH}/register`, + method: "post", + data: body, + }); + }, + + forgetPassword(body: ForgetPasswordForm) { + return request({ + url: `${API_PATH}/forget/password`, + method: "post", + data: body, + }); + }, + + listUser(query: UserPageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + detailUser(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createUser(body: UserForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateUser(id: number, body: UserForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteUser(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + batchUser(body: BatchType) { + return request({ + url: `${API_PATH}/available/setting`, + method: "patch", + data: body, + }); + }, + + exportUser(body: UserPageQuery) { + return request({ + url: `${API_PATH}/export`, + method: "post", + data: body, + responseType: "blob", + }); + }, + + downloadTemplateUser() { + return request({ + url: `${API_PATH}/import/template`, + method: "post", + responseType: "blob", + }); + }, + + importUser(body: any) { + return request({ + url: `${API_PATH}/import/data`, + method: "post", + data: body, + headers: { + "Content-Type": "multipart/form-data", + }, + }); + }, +}; + +export default UserAPI; + +export interface ForgetPasswordForm { + username: string; + new_password: string; + mobile?: string; + confirmPassword: string; +} + +export interface RegisterForm { + username: string; + password: string; + confirmPassword: string; +} + +export interface UserPageQuery extends PageQuery { + username?: string; + name?: string; + mobile?: string; + email?: string; + dept_id?: number; + status?: string; + created_time?: string[]; + created_id?: number; + updated_id?: number; +} + +export interface searchSelectDataType { + name?: string; + status?: string; +} + +export interface UserInfo extends BaseType { + username?: string; + name?: string; + avatar?: string; + email?: string; + mobile?: string; + gender?: string; + password?: string; + menus?: MenuTable[]; + dept?: deptTreeType; + dept_id?: deptTreeType["id"]; + dept_name?: deptTreeType["name"]; + roles?: roleSelectorType[]; + role_names?: roleSelectorType["name"][]; + role_ids?: roleSelectorType["id"][]; + positions?: positionSelectorType[]; + position_names?: positionSelectorType["name"][]; + position_ids?: positionSelectorType["id"][]; + is_superuser?: boolean; + last_login?: string; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; +} + +export interface deptTreeType { + id?: number; + name?: string; + parent_id?: number; + children?: deptTreeType[]; +} + +export interface roleSelectorType { + id?: number; + name?: string; + code?: string; + status?: string; + description?: string; + menus?: MenuForm[]; +} + +export interface positionSelectorType { + id?: number; + name?: string; + status?: string; + description?: string; +} + +export interface InfoFormState { + id?: number; + name?: string; + gender?: number; + mobile?: string; + email?: string; + username?: string; + dept_name?: string; + dept?: deptTreeType; + positions?: positionSelectorType[]; + roles?: roleSelectorType[]; + avatar?: string; + created_time?: string; + updated_time?: string; +} + +export interface PasswordFormState { + old_password: string; + new_password: string; + confirm_password: string; +} + +export interface ResetPasswordForm { + id: number; + password: string; +} + +export interface UserForm extends BaseFormType { + username?: string; + name?: string; + dept_id?: number; + dept_name?: string; + role_ids?: number[]; + role_names?: string[]; + position_ids?: number[]; + position_names?: string[]; + password?: string; + gender?: number; + email?: string; + mobile?: string; + is_superuser?: boolean; +} + +export interface CurrentUserFormState { + name?: string; + gender?: number; + mobile?: string; + email?: string; + avatar?: string; +} diff --git a/frontend/new-web/src/api/module_task/cronjob/job.ts b/frontend/new-web/src/api/module_task/cronjob/job.ts new file mode 100644 index 00000000..5d3d661b --- /dev/null +++ b/frontend/new-web/src/api/module_task/cronjob/job.ts @@ -0,0 +1,155 @@ +import request from "@/utils/http"; + +const API_PATH = "/task/cronjob/job"; + +const JobAPI = { + getSchedulerStatus() { + return request>({ + url: `${API_PATH}/scheduler/status`, + method: "get", + }); + }, + + getSchedulerJobs() { + return request>({ + url: `${API_PATH}/scheduler/jobs`, + method: "get", + }); + }, + + startScheduler() { + return request({ + url: `${API_PATH}/scheduler/start`, + method: "post", + }); + }, + + pauseScheduler() { + return request({ + url: `${API_PATH}/scheduler/pause`, + method: "post", + }); + }, + + resumeScheduler() { + return request({ + url: `${API_PATH}/scheduler/resume`, + method: "post", + }); + }, + + shutdownScheduler() { + return request({ + url: `${API_PATH}/scheduler/shutdown`, + method: "post", + }); + }, + + clearAllJobs() { + return request({ + url: `${API_PATH}/scheduler/jobs/clear`, + method: "delete", + }); + }, + + getSchedulerConsole() { + return request>({ + url: `${API_PATH}/scheduler/console`, + method: "get", + }); + }, + + syncJobsToDb() { + return request>({ + url: `${API_PATH}/scheduler/sync`, + method: "post", + }); + }, + + pauseJob(jobId: string) { + return request({ + url: `${API_PATH}/task/pause/${jobId}`, + method: "post", + }); + }, + + resumeJob(jobId: string) { + return request({ + url: `${API_PATH}/task/resume/${jobId}`, + method: "post", + }); + }, + + runJobNow(jobId: string) { + return request({ + url: `${API_PATH}/task/run/${jobId}`, + method: "post", + }); + }, + + removeJob(jobId: string) { + return request({ + url: `${API_PATH}/task/remove/${jobId}`, + method: "delete", + }); + }, + + getJobLogList(query: JobLogPageQuery) { + return request>>({ + url: `${API_PATH}/log/list`, + method: "get", + params: query, + }); + }, + + getJobLogDetail(id: number) { + return request>({ + url: `${API_PATH}/log/detail/${id}`, + method: "get", + }); + }, + + deleteJobLog(ids: number[]) { + return request({ + url: `${API_PATH}/log/delete`, + method: "delete", + data: ids, + }); + }, +}; + +export default JobAPI; + +export interface SchedulerStatus { + status: string; + is_running: boolean; + job_count: number; +} + +export interface SchedulerJob { + id: string; + name: string; + trigger: string; + next_run_time?: string; + status: string; +} + +export interface JobLogPageQuery extends PageQuery { + job_id?: string; + job_name?: string; + status?: string; + trigger_type?: string; +} + +export interface JobLogTable extends BaseType { + job_id: string; + job_name?: string; + trigger_type?: string; + status: string; + next_run_time?: string; + job_state?: string; + result?: string; + error?: string; + created_time?: string; + updated_time?: string; +} diff --git a/frontend/new-web/src/api/module_task/cronjob/node.ts b/frontend/new-web/src/api/module_task/cronjob/node.ts new file mode 100644 index 00000000..16213714 --- /dev/null +++ b/frontend/new-web/src/api/module_task/cronjob/node.ts @@ -0,0 +1,135 @@ +import request from "@/utils/http"; + +const API_PATH = "/task/cronjob/node"; + +const NodeAPI = { + getNodeTypeOptions() { + return request>({ + url: `${API_PATH}/options`, + method: "get", + }); + }, + + listNode(query: NodePageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + detailNode(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createNode(body: NodeForm) { + return request({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateNode(id: number, body: NodeForm) { + return request({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteNode(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + clearNode() { + return request({ + url: `${API_PATH}/clear`, + method: "delete", + }); + }, + + executeNode(id: number, params: ExecuteNodeParams = { trigger: "now" }) { + return request>({ + url: `${API_PATH}/execute/${id}`, + method: "post", + data: params, + }); + }, +}; + +export default NodeAPI; + +export interface NodePageQuery extends PageQuery { + name?: string; + code?: string; + created_id?: number; + updated_id?: number; + created_time?: string[]; + updated_time?: string[]; +} + +export type TriggerType = "now" | "cron" | "interval" | "date"; + +export interface ExecuteNodeParams { + trigger: TriggerType; + trigger_args?: string; + start_date?: string; + end_date?: string; +} + +export interface ExecuteNodeResult { + job_id: number; + status: string; + trigger: TriggerType; +} + +export interface NodeTable extends BaseType { + name: string; + code: string; + jobstore?: string; + executor?: string; + trigger?: TriggerType; + trigger_args?: string; + func?: string; + args?: string; + kwargs?: string; + coalesce?: boolean; + max_instances?: number; + start_date?: string; + end_date?: string; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; +} + +export interface NodeForm { + id?: number; + name: string; + code?: string; + jobstore?: string; + executor?: string; + func?: string; + args?: string; + kwargs?: string; + coalesce?: boolean; + max_instances?: number; + start_date?: string; + end_date?: string; +} + +export interface NodeType { + id: number; + name: string; + code: string; + func?: string; + args?: string; + kwargs?: string; +} diff --git a/frontend/new-web/src/api/module_task/workflow/definition.ts b/frontend/new-web/src/api/module_task/workflow/definition.ts new file mode 100644 index 00000000..5065a8c9 --- /dev/null +++ b/frontend/new-web/src/api/module_task/workflow/definition.ts @@ -0,0 +1,117 @@ +import request from "@/utils/http"; + +/** 对应后端 `plugin.module_task.workflow.definition` */ +const API_PATH = "/task/workflow/definition"; + +const WorkflowDefinitionAPI = { + getWorkflowList(query: WorkflowPageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + getWorkflowDetail(query: number) { + return request>({ + url: `${API_PATH}/detail/${query}`, + method: "get", + }); + }, + + createWorkflow(body: WorkflowForm) { + return request>({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateWorkflow(id: number, body: WorkflowForm) { + return request>({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteWorkflow(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, + + publishWorkflow(id: number, body: WorkflowPublishForm) { + return request>({ + url: `${API_PATH}/publish/${id}`, + method: "post", + data: body, + }); + }, + + executeWorkflow(body: WorkflowExecuteForm) { + return request>({ + url: `${API_PATH}/execute`, + method: "post", + data: body, + }); + }, +}; + +export default WorkflowDefinitionAPI; +export { WorkflowDefinitionAPI }; + +export interface WorkflowPageQuery extends PageQuery { + name?: string; + code?: string; + status?: string; + created_time?: string[]; + updated_time?: string[]; + created_id?: number; + updated_id?: number; +} + +export interface WorkflowTable extends BaseType { + name?: string; + code?: string; + status?: string; + description?: string; + nodes?: any[]; + edges?: any[]; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; +} + +export interface WorkflowForm extends BaseFormType { + name?: string; + code?: string; + status?: string; + description?: string; + nodes?: any[]; + edges?: any[]; +} + +export interface WorkflowPublishForm { + remark?: string; +} + +export interface WorkflowExecuteForm { + workflow_id: number; + variables?: Record; + business_key?: string; + job_id?: number; +} + +export interface WorkflowExecuteResult { + workflow_id: number; + workflow_name: string; + status: string; + start_time?: string; + end_time?: string; + variables?: Record; + node_results?: Record; + error?: string; +} diff --git a/frontend/new-web/src/api/module_task/workflow/node-type.ts b/frontend/new-web/src/api/module_task/workflow/node-type.ts new file mode 100644 index 00000000..fbbb9e3a --- /dev/null +++ b/frontend/new-web/src/api/module_task/workflow/node-type.ts @@ -0,0 +1,101 @@ +import request from "@/utils/http"; + +/** 对应后端 `plugin.module_task.workflow.node_type` */ +const API_PATH = "/task/workflow/node-type"; + +const WorkflowNodeTypeAPI = { + getWorkflowNodeTypeOptions() { + return request>({ + url: `${API_PATH}/options`, + method: "get", + }); + }, + + getWorkflowNodeTypeList(query: WorkflowNodeTypePageQuery) { + return request>>({ + url: `${API_PATH}/list`, + method: "get", + params: query, + }); + }, + + getWorkflowNodeTypeDetail(id: number) { + return request>({ + url: `${API_PATH}/detail/${id}`, + method: "get", + }); + }, + + createWorkflowNodeType(body: WorkflowNodeTypeForm) { + return request>({ + url: `${API_PATH}/create`, + method: "post", + data: body, + }); + }, + + updateWorkflowNodeType(id: number, body: WorkflowNodeTypeForm) { + return request>({ + url: `${API_PATH}/update/${id}`, + method: "put", + data: body, + }); + }, + + deleteWorkflowNodeType(body: number[]) { + return request({ + url: `${API_PATH}/delete`, + method: "delete", + data: body, + }); + }, +}; + +export default WorkflowNodeTypeAPI; +export { WorkflowNodeTypeAPI }; + +/** 编排节点类型选项(对应后端 task_workflow_node_type) */ +export interface WorkflowNodeTypeOption { + id: number; + code: string; + name: string; + category: string; + args?: string; + kwargs?: string; +} + +export interface WorkflowNodeTypePageQuery extends PageQuery { + name?: string; + code?: string; + category?: string; + is_active?: boolean; + created_time?: string[]; + updated_time?: string[]; + created_id?: number; + updated_id?: number; +} + +export interface WorkflowNodeTypeTable extends BaseType { + name?: string; + code?: string; + category?: string; + func?: string; + args?: string; + kwargs?: string; + sort_order?: number; + is_active?: boolean; + created_by?: CommonType; + updated_by?: CommonType; + deleted_by?: CommonType; +} + +export interface WorkflowNodeTypeForm { + name: string; + code: string; + category?: string; + func: string; + args?: string; + kwargs?: string; + sort_order?: number; + is_active?: boolean; +} diff --git a/frontend/new-web/src/api/system-manage.ts b/frontend/new-web/src/api/system-manage.ts index f0345256..6b974cff 100644 --- a/frontend/new-web/src/api/system-manage.ts +++ b/frontend/new-web/src/api/system-manage.ts @@ -1,25 +1,115 @@ -import request from '@/utils/http' -import { AppRouteRecord } from '@/types/router' +/** + * 系统管理相关聚合接口(表格示例、views/system/* 等使用的 `@/api/system-manage`) + * 内部委托至 `module_system` 下各 API,并做分页字段与行展示字段映射。 + */ +import MenuAPI, { type MenuTable } from "@/api/module_system/menu"; +import RoleAPI, { type RoleTable, type TablePageQuery } from "@/api/module_system/role"; +import UserAPI, { type UserInfo, type UserPageQuery } from "@/api/module_system/user"; +import type { AppRouteRecord } from "@/types/router"; +import { ResultEnum } from "@/enums/api/result.enum"; -// 获取用户列表 -export function fetchGetUserList(params: Api.SystemManage.UserSearchParams) { - return request.get({ - url: '/api/user/list', - params - }) +function assertSuccess(res: { data: ApiResponse }, fallbackMsg: string): T { + if (res.data.code !== ResultEnum.SUCCESS || res.data.data == null) { + throw new Error(res.data.msg || fallbackMsg); + } + return res.data.data; } -// 获取角色列表 -export function fetchGetRoleList(params: Api.SystemManage.RoleSearchParams) { - return request.get({ - url: '/api/role/list', - params - }) +/** useTable 传入 current / size 及演示页自定义筛选字段 */ +export async function fetchGetUserList(params: Record) { + const q: UserPageQuery = { + page_no: Number(params.current) || 1, + page_size: Number(params.size) || 20, + username: (params.userName ?? params.name) as string | undefined, + name: params.name as string | undefined, + mobile: (params.userPhone ?? params.phone) as string | undefined, + email: (params.userEmail ?? params.email) as string | undefined, + status: params.status as string | undefined, + }; + + const res = await UserAPI.listUser(q); + const page = assertSuccess(res, "获取用户列表失败"); + + const items = (page.items || []).map((u) => mapUserToListRow(u)); + + return { + items, + total: page.total, + page_no: page.page_no, + page_size: page.page_size, + has_next: page.has_next, + }; } -// 获取菜单列表 -export function fetchGetMenuList() { - return request.get({ - url: '/api/v3/system/menus' - }) +function mapUserToListRow(u: UserInfo) { + return { + id: u.id, + nickName: u.name ?? u.username, + userName: u.username, + userGender: u.gender, + userPhone: u.mobile, + userEmail: u.email, + avatar: u.avatar, + status: u.status, + }; +} + +export async function fetchGetRoleList(params: Record) { + const q: TablePageQuery = { + page_no: Number(params.current) || 1, + page_size: Number(params.size) || 20, + name: params.roleName as string | undefined, + status: + params.enabled !== undefined && params.enabled !== null && params.enabled !== "" + ? String(params.enabled) + : undefined, + }; + + const res = await RoleAPI.listRole(q); + const page = assertSuccess(res, "获取角色列表失败"); + + const items = (page.items || []).map((r) => mapRoleToListRow(r)); + + return { + items, + total: page.total, + page_no: page.page_no, + page_size: page.page_size, + has_next: page.has_next, + }; +} + +function mapRoleToListRow(r: RoleTable) { + return { + roleId: r.id, + roleName: r.name, + roleCode: r.code, + description: r.description, + enabled: r.status === "0", + createTime: r.created_time, + }; +} + +function mapMenuTableToRoute(m: MenuTable): AppRouteRecord { + const childrenRaw = m.children?.filter(Boolean) ?? []; + const children = childrenRaw.length ? childrenRaw.map(mapMenuTableToRoute) : undefined; + + return { + path: (m.route_path ?? "").trim(), + name: m.route_name, + meta: { + title: m.title ?? m.name ?? "", + icon: m.icon, + hidden: m.hidden, + keepAlive: m.keep_alive, + }, + children, + }; +} + +/** 菜单管理演示页:树形表格数据 */ +export async function fetchGetMenuList(): Promise { + const res = await MenuAPI.listMenu({}); + const tree = assertSuccess(res, "获取菜单失败"); + return (tree || []).map(mapMenuTableToRoute); } diff --git a/frontend/new-web/src/assets/icons/ai copy.svg b/frontend/new-web/src/assets/icons/ai copy.svg new file mode 100644 index 00000000..2ad5041a --- /dev/null +++ b/frontend/new-web/src/assets/icons/ai copy.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/ai.svg b/frontend/new-web/src/assets/icons/ai.svg new file mode 100644 index 00000000..c3a1c1a3 --- /dev/null +++ b/frontend/new-web/src/assets/icons/ai.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/alipay.svg b/frontend/new-web/src/assets/icons/alipay.svg new file mode 100755 index 00000000..bd7cd549 --- /dev/null +++ b/frontend/new-web/src/assets/icons/alipay.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/api.svg b/frontend/new-web/src/assets/icons/api.svg new file mode 100644 index 00000000..0181bdde --- /dev/null +++ b/frontend/new-web/src/assets/icons/api.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/arco.svg b/frontend/new-web/src/assets/icons/arco.svg new file mode 100755 index 00000000..3913a29e --- /dev/null +++ b/frontend/new-web/src/assets/icons/arco.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/new-web/src/assets/icons/avatar-man.svg b/frontend/new-web/src/assets/icons/avatar-man.svg new file mode 100755 index 00000000..ddbcef69 --- /dev/null +++ b/frontend/new-web/src/assets/icons/avatar-man.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/avatar-woman.svg b/frontend/new-web/src/assets/icons/avatar-woman.svg new file mode 100755 index 00000000..ab027df9 --- /dev/null +++ b/frontend/new-web/src/assets/icons/avatar-woman.svg @@ -0,0 +1,24 @@ + + + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/backtop copy.svg b/frontend/new-web/src/assets/icons/backtop copy.svg new file mode 100755 index 00000000..af4eadfe --- /dev/null +++ b/frontend/new-web/src/assets/icons/backtop copy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/backtop.svg b/frontend/new-web/src/assets/icons/backtop.svg new file mode 100644 index 00000000..f8e6aa02 --- /dev/null +++ b/frontend/new-web/src/assets/icons/backtop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/bell.svg b/frontend/new-web/src/assets/icons/bell.svg new file mode 100644 index 00000000..262d0ac0 --- /dev/null +++ b/frontend/new-web/src/assets/icons/bell.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/bilibili.svg b/frontend/new-web/src/assets/icons/bilibili.svg new file mode 100644 index 00000000..b86747cc --- /dev/null +++ b/frontend/new-web/src/assets/icons/bilibili.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/browser.svg b/frontend/new-web/src/assets/icons/browser.svg new file mode 100644 index 00000000..15c3927c --- /dev/null +++ b/frontend/new-web/src/assets/icons/browser.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/captcha.svg b/frontend/new-web/src/assets/icons/captcha.svg new file mode 100644 index 00000000..8b1da30e --- /dev/null +++ b/frontend/new-web/src/assets/icons/captcha.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/cascader.svg b/frontend/new-web/src/assets/icons/cascader.svg new file mode 100644 index 00000000..57209bf5 --- /dev/null +++ b/frontend/new-web/src/assets/icons/cascader.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/client.svg b/frontend/new-web/src/assets/icons/client.svg new file mode 100644 index 00000000..7373b3d9 --- /dev/null +++ b/frontend/new-web/src/assets/icons/client.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/close.svg b/frontend/new-web/src/assets/icons/close.svg new file mode 100644 index 00000000..e99c9788 --- /dev/null +++ b/frontend/new-web/src/assets/icons/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/close_all.svg b/frontend/new-web/src/assets/icons/close_all.svg new file mode 100644 index 00000000..20051986 --- /dev/null +++ b/frontend/new-web/src/assets/icons/close_all.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/close_left.svg b/frontend/new-web/src/assets/icons/close_left.svg new file mode 100644 index 00000000..fc5cf716 --- /dev/null +++ b/frontend/new-web/src/assets/icons/close_left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/close_other.svg b/frontend/new-web/src/assets/icons/close_other.svg new file mode 100644 index 00000000..27ffc328 --- /dev/null +++ b/frontend/new-web/src/assets/icons/close_other.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/close_right.svg b/frontend/new-web/src/assets/icons/close_right.svg new file mode 100644 index 00000000..b96dc1c0 --- /dev/null +++ b/frontend/new-web/src/assets/icons/close_right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/cnblogs.svg b/frontend/new-web/src/assets/icons/cnblogs.svg new file mode 100644 index 00000000..4920a4c1 --- /dev/null +++ b/frontend/new-web/src/assets/icons/cnblogs.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/code.svg b/frontend/new-web/src/assets/icons/code.svg new file mode 100644 index 00000000..d8b546ca --- /dev/null +++ b/frontend/new-web/src/assets/icons/code.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/collapse.svg b/frontend/new-web/src/assets/icons/collapse.svg new file mode 100644 index 00000000..15075688 --- /dev/null +++ b/frontend/new-web/src/assets/icons/collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/csdn.svg b/frontend/new-web/src/assets/icons/csdn.svg new file mode 100644 index 00000000..e16bad0d --- /dev/null +++ b/frontend/new-web/src/assets/icons/csdn.svg @@ -0,0 +1,6 @@ + + ic/csdn + + + + diff --git a/frontend/new-web/src/assets/icons/dict.svg b/frontend/new-web/src/assets/icons/dict.svg new file mode 100644 index 00000000..db602201 --- /dev/null +++ b/frontend/new-web/src/assets/icons/dict.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/document.svg b/frontend/new-web/src/assets/icons/document.svg new file mode 100644 index 00000000..aaa0574f --- /dev/null +++ b/frontend/new-web/src/assets/icons/document.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/down.svg b/frontend/new-web/src/assets/icons/down.svg new file mode 100644 index 00000000..5fc8b88e --- /dev/null +++ b/frontend/new-web/src/assets/icons/down.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/download.svg b/frontend/new-web/src/assets/icons/download.svg new file mode 100644 index 00000000..a8077dc3 --- /dev/null +++ b/frontend/new-web/src/assets/icons/download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/enter.svg b/frontend/new-web/src/assets/icons/enter.svg new file mode 100644 index 00000000..9e199df2 --- /dev/null +++ b/frontend/new-web/src/assets/icons/enter.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/esc.svg b/frontend/new-web/src/assets/icons/esc.svg new file mode 100644 index 00000000..2f85dd25 --- /dev/null +++ b/frontend/new-web/src/assets/icons/esc.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/file copy.svg b/frontend/new-web/src/assets/icons/file copy.svg new file mode 100755 index 00000000..4768a536 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file copy.svg @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-close.svg b/frontend/new-web/src/assets/icons/file-close.svg new file mode 100755 index 00000000..04daada7 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-css.svg b/frontend/new-web/src/assets/icons/file-css.svg new file mode 100755 index 00000000..1aabe7c8 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-css.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-dir.svg b/frontend/new-web/src/assets/icons/file-dir.svg new file mode 100755 index 00000000..04daada7 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-dir.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-excel.svg b/frontend/new-web/src/assets/icons/file-excel.svg new file mode 100755 index 00000000..f53b51fa --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-excel.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-exe.svg b/frontend/new-web/src/assets/icons/file-exe.svg new file mode 100755 index 00000000..4111d06f --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-exe.svg @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-html.svg b/frontend/new-web/src/assets/icons/file-html.svg new file mode 100755 index 00000000..9b704e92 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-html.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-image.svg b/frontend/new-web/src/assets/icons/file-image.svg new file mode 100755 index 00000000..e4989db5 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-image.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-js.svg b/frontend/new-web/src/assets/icons/file-js.svg new file mode 100755 index 00000000..b38ef349 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-js.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-json.svg b/frontend/new-web/src/assets/icons/file-json.svg new file mode 100755 index 00000000..e7cd332a --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-json.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-music.svg b/frontend/new-web/src/assets/icons/file-music.svg new file mode 100755 index 00000000..77581161 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-music.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-open.svg b/frontend/new-web/src/assets/icons/file-open.svg new file mode 100755 index 00000000..9da190e8 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-open.svg @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-other.svg b/frontend/new-web/src/assets/icons/file-other.svg new file mode 100755 index 00000000..4215a134 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-other.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-pdf.svg b/frontend/new-web/src/assets/icons/file-pdf.svg new file mode 100755 index 00000000..9bf682b2 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-pdf.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-ppt.svg b/frontend/new-web/src/assets/icons/file-ppt.svg new file mode 100755 index 00000000..72bac64c --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-ppt.svg @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-rar.svg b/frontend/new-web/src/assets/icons/file-rar.svg new file mode 100755 index 00000000..8cc3ee23 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-rar.svg @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-txt.svg b/frontend/new-web/src/assets/icons/file-txt.svg new file mode 100755 index 00000000..833e12ac --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-txt.svg @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-video.svg b/frontend/new-web/src/assets/icons/file-video.svg new file mode 100755 index 00000000..720ee9f9 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-video.svg @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-wps.svg b/frontend/new-web/src/assets/icons/file-wps.svg new file mode 100755 index 00000000..210fd333 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-wps.svg @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file-zip.svg b/frontend/new-web/src/assets/icons/file-zip.svg new file mode 100755 index 00000000..51fde6fa --- /dev/null +++ b/frontend/new-web/src/assets/icons/file-zip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/file.svg b/frontend/new-web/src/assets/icons/file.svg new file mode 100644 index 00000000..fac9bf01 --- /dev/null +++ b/frontend/new-web/src/assets/icons/file.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/fullscreen-exit.svg b/frontend/new-web/src/assets/icons/fullscreen-exit.svg new file mode 100644 index 00000000..2452f2b0 --- /dev/null +++ b/frontend/new-web/src/assets/icons/fullscreen-exit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/fullscreen.svg b/frontend/new-web/src/assets/icons/fullscreen.svg new file mode 100644 index 00000000..4b6ee110 --- /dev/null +++ b/frontend/new-web/src/assets/icons/fullscreen.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/gitcode.svg b/frontend/new-web/src/assets/icons/gitcode.svg new file mode 100644 index 00000000..7a02760a --- /dev/null +++ b/frontend/new-web/src/assets/icons/gitcode.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/gitee.svg b/frontend/new-web/src/assets/icons/gitee.svg new file mode 100644 index 00000000..c799c2f3 --- /dev/null +++ b/frontend/new-web/src/assets/icons/gitee.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/github.svg b/frontend/new-web/src/assets/icons/github.svg new file mode 100644 index 00000000..1adfa4e7 --- /dev/null +++ b/frontend/new-web/src/assets/icons/github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/homepage.svg b/frontend/new-web/src/assets/icons/homepage.svg new file mode 100644 index 00000000..1e1feabf --- /dev/null +++ b/frontend/new-web/src/assets/icons/homepage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/icon-msg.svg b/frontend/new-web/src/assets/icons/icon-msg.svg new file mode 100755 index 00000000..8c615a9b --- /dev/null +++ b/frontend/new-web/src/assets/icons/icon-msg.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/icon-notice.svg b/frontend/new-web/src/assets/icons/icon-notice.svg new file mode 100755 index 00000000..13c2e7b7 --- /dev/null +++ b/frontend/new-web/src/assets/icons/icon-notice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/icon-num.svg b/frontend/new-web/src/assets/icons/icon-num.svg new file mode 100755 index 00000000..072832d1 --- /dev/null +++ b/frontend/new-web/src/assets/icons/icon-num.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/icon-user.svg b/frontend/new-web/src/assets/icons/icon-user.svg new file mode 100755 index 00000000..a65f7ecb --- /dev/null +++ b/frontend/new-web/src/assets/icons/icon-user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/icon-wait.svg b/frontend/new-web/src/assets/icons/icon-wait.svg new file mode 100755 index 00000000..1af3cbac --- /dev/null +++ b/frontend/new-web/src/assets/icons/icon-wait.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/item-angular.svg b/frontend/new-web/src/assets/icons/item-angular.svg new file mode 100755 index 00000000..9ac7695f --- /dev/null +++ b/frontend/new-web/src/assets/icons/item-angular.svg @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/item-github.svg b/frontend/new-web/src/assets/icons/item-github.svg new file mode 100755 index 00000000..a27e69e3 --- /dev/null +++ b/frontend/new-web/src/assets/icons/item-github.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/item-html5.svg b/frontend/new-web/src/assets/icons/item-html5.svg new file mode 100755 index 00000000..d88d66e4 --- /dev/null +++ b/frontend/new-web/src/assets/icons/item-html5.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/item-js.svg b/frontend/new-web/src/assets/icons/item-js.svg new file mode 100755 index 00000000..f2e6e29a --- /dev/null +++ b/frontend/new-web/src/assets/icons/item-js.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/item-react.svg b/frontend/new-web/src/assets/icons/item-react.svg new file mode 100755 index 00000000..3a99542f --- /dev/null +++ b/frontend/new-web/src/assets/icons/item-react.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/item-vue.svg b/frontend/new-web/src/assets/icons/item-vue.svg new file mode 100755 index 00000000..386fc7ba --- /dev/null +++ b/frontend/new-web/src/assets/icons/item-vue.svg @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/java.svg b/frontend/new-web/src/assets/icons/java.svg new file mode 100644 index 00000000..eaa93dbe --- /dev/null +++ b/frontend/new-web/src/assets/icons/java.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/juejin.svg b/frontend/new-web/src/assets/icons/juejin.svg new file mode 100644 index 00000000..937ace37 --- /dev/null +++ b/frontend/new-web/src/assets/icons/juejin.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/language.svg b/frontend/new-web/src/assets/icons/language.svg new file mode 100644 index 00000000..e754062d --- /dev/null +++ b/frontend/new-web/src/assets/icons/language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/layout_leftbar_close_line.svg b/frontend/new-web/src/assets/icons/layout_leftbar_close_line.svg new file mode 100644 index 00000000..084c1db0 --- /dev/null +++ b/frontend/new-web/src/assets/icons/layout_leftbar_close_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/layout_leftbar_open_line.svg b/frontend/new-web/src/assets/icons/layout_leftbar_open_line.svg new file mode 100644 index 00000000..8a9e395a --- /dev/null +++ b/frontend/new-web/src/assets/icons/layout_leftbar_open_line.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-about.svg b/frontend/new-web/src/assets/icons/menu-about.svg new file mode 100755 index 00000000..424adade --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-about.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-analyse.svg b/frontend/new-web/src/assets/icons/menu-analyse.svg new file mode 100755 index 00000000..2a6cb928 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-analyse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-crud.svg b/frontend/new-web/src/assets/icons/menu-crud.svg new file mode 100755 index 00000000..a55d0866 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-crud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-detail.svg b/frontend/new-web/src/assets/icons/menu-detail.svg new file mode 100755 index 00000000..c7c5dc8c --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-detail.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-document.svg b/frontend/new-web/src/assets/icons/menu-document.svg new file mode 100755 index 00000000..2ca37bea --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-document.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-error.svg b/frontend/new-web/src/assets/icons/menu-error.svg new file mode 100755 index 00000000..5aa48926 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-error.svg @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-example.svg b/frontend/new-web/src/assets/icons/menu-example.svg new file mode 100755 index 00000000..7c62fe58 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-example.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-file.svg b/frontend/new-web/src/assets/icons/menu-file.svg new file mode 100755 index 00000000..d2a1c8a0 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-form.svg b/frontend/new-web/src/assets/icons/menu-form.svg new file mode 100755 index 00000000..e9c9065f --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-form.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-gitee.svg b/frontend/new-web/src/assets/icons/menu-gitee.svg new file mode 100755 index 00000000..0e55b981 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-gitee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-home.svg b/frontend/new-web/src/assets/icons/menu-home.svg new file mode 100755 index 00000000..97ff012a --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-home.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-layout.svg b/frontend/new-web/src/assets/icons/menu-layout.svg new file mode 100755 index 00000000..b31cd2f9 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-layout.svg @@ -0,0 +1,21 @@ + + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-multi.svg b/frontend/new-web/src/assets/icons/menu-multi.svg new file mode 100755 index 00000000..7a5be39e --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-multi.svg @@ -0,0 +1,6 @@ + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-result.svg b/frontend/new-web/src/assets/icons/menu-result.svg new file mode 100755 index 00000000..7807e624 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-result.svg @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-system.svg b/frontend/new-web/src/assets/icons/menu-system.svg new file mode 100755 index 00000000..7d220b30 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-system.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-table.svg b/frontend/new-web/src/assets/icons/menu-table.svg new file mode 100755 index 00000000..404a0f69 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu-test.svg b/frontend/new-web/src/assets/icons/menu-test.svg new file mode 100755 index 00000000..5fe46944 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu-test.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/menu.svg b/frontend/new-web/src/assets/icons/menu.svg new file mode 100644 index 00000000..f5875d36 --- /dev/null +++ b/frontend/new-web/src/assets/icons/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/message.svg b/frontend/new-web/src/assets/icons/message.svg new file mode 100644 index 00000000..deacdc33 --- /dev/null +++ b/frontend/new-web/src/assets/icons/message.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/monitor.svg b/frontend/new-web/src/assets/icons/monitor.svg new file mode 100644 index 00000000..f153b9c5 --- /dev/null +++ b/frontend/new-web/src/assets/icons/monitor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/project.svg b/frontend/new-web/src/assets/icons/project.svg new file mode 100644 index 00000000..eaf6a122 --- /dev/null +++ b/frontend/new-web/src/assets/icons/project.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/python.svg b/frontend/new-web/src/assets/icons/python.svg new file mode 100644 index 00000000..d9bab518 --- /dev/null +++ b/frontend/new-web/src/assets/icons/python.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/qq.svg b/frontend/new-web/src/assets/icons/qq.svg new file mode 100644 index 00000000..a59086b4 --- /dev/null +++ b/frontend/new-web/src/assets/icons/qq.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/refresh.svg b/frontend/new-web/src/assets/icons/refresh.svg new file mode 100644 index 00000000..e598ed11 --- /dev/null +++ b/frontend/new-web/src/assets/icons/refresh.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/role.svg b/frontend/new-web/src/assets/icons/role.svg new file mode 100644 index 00000000..5d252784 --- /dev/null +++ b/frontend/new-web/src/assets/icons/role.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/search.svg b/frontend/new-web/src/assets/icons/search.svg new file mode 100644 index 00000000..2312daf9 --- /dev/null +++ b/frontend/new-web/src/assets/icons/search.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/setting.svg b/frontend/new-web/src/assets/icons/setting.svg new file mode 100644 index 00000000..fbc49451 --- /dev/null +++ b/frontend/new-web/src/assets/icons/setting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/size.svg b/frontend/new-web/src/assets/icons/size.svg new file mode 100644 index 00000000..f92f852e --- /dev/null +++ b/frontend/new-web/src/assets/icons/size.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/sql.svg b/frontend/new-web/src/assets/icons/sql.svg new file mode 100644 index 00000000..dc4a3a82 --- /dev/null +++ b/frontend/new-web/src/assets/icons/sql.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/system.svg b/frontend/new-web/src/assets/icons/system.svg new file mode 100644 index 00000000..2e6045b4 --- /dev/null +++ b/frontend/new-web/src/assets/icons/system.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/table.svg b/frontend/new-web/src/assets/icons/table.svg new file mode 100644 index 00000000..1a16abb3 --- /dev/null +++ b/frontend/new-web/src/assets/icons/table.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/time.svg b/frontend/new-web/src/assets/icons/time.svg new file mode 100755 index 00000000..9d2327bc --- /dev/null +++ b/frontend/new-web/src/assets/icons/time.svg @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/todo.svg b/frontend/new-web/src/assets/icons/todo.svg new file mode 100644 index 00000000..f48e667b --- /dev/null +++ b/frontend/new-web/src/assets/icons/todo.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/tree.svg b/frontend/new-web/src/assets/icons/tree.svg new file mode 100644 index 00000000..51aea8f7 --- /dev/null +++ b/frontend/new-web/src/assets/icons/tree.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/typescript.svg b/frontend/new-web/src/assets/icons/typescript.svg new file mode 100644 index 00000000..781d6f88 --- /dev/null +++ b/frontend/new-web/src/assets/icons/typescript.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/up.svg b/frontend/new-web/src/assets/icons/up.svg new file mode 100644 index 00000000..3b6c5353 --- /dev/null +++ b/frontend/new-web/src/assets/icons/up.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/upload-file.svg b/frontend/new-web/src/assets/icons/upload-file.svg new file mode 100755 index 00000000..8cc3731d --- /dev/null +++ b/frontend/new-web/src/assets/icons/upload-file.svg @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/upload-folder.svg b/frontend/new-web/src/assets/icons/upload-folder.svg new file mode 100755 index 00000000..07dd1df4 --- /dev/null +++ b/frontend/new-web/src/assets/icons/upload-folder.svg @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/user.svg b/frontend/new-web/src/assets/icons/user.svg new file mode 100644 index 00000000..8e693ec4 --- /dev/null +++ b/frontend/new-web/src/assets/icons/user.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/visitor.svg b/frontend/new-web/src/assets/icons/visitor.svg new file mode 100644 index 00000000..1fd8dbe6 --- /dev/null +++ b/frontend/new-web/src/assets/icons/visitor.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/vite.svg b/frontend/new-web/src/assets/icons/vite.svg new file mode 100755 index 00000000..b7407f87 --- /dev/null +++ b/frontend/new-web/src/assets/icons/vite.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/vue copy.svg b/frontend/new-web/src/assets/icons/vue copy.svg new file mode 100755 index 00000000..ac47eb63 --- /dev/null +++ b/frontend/new-web/src/assets/icons/vue copy.svg @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/vue.svg b/frontend/new-web/src/assets/icons/vue.svg new file mode 100644 index 00000000..456f8768 --- /dev/null +++ b/frontend/new-web/src/assets/icons/vue.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/wechat copy.svg b/frontend/new-web/src/assets/icons/wechat copy.svg new file mode 100755 index 00000000..263c89cb --- /dev/null +++ b/frontend/new-web/src/assets/icons/wechat copy.svg @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/icons/wechat.svg b/frontend/new-web/src/assets/icons/wechat.svg new file mode 100644 index 00000000..2fc58038 --- /dev/null +++ b/frontend/new-web/src/assets/icons/wechat.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/icons/xml.svg b/frontend/new-web/src/assets/icons/xml.svg new file mode 100644 index 00000000..f0412130 --- /dev/null +++ b/frontend/new-web/src/assets/icons/xml.svg @@ -0,0 +1 @@ + diff --git a/frontend/new-web/src/assets/images/401.svg b/frontend/new-web/src/assets/images/401.svg new file mode 100644 index 00000000..45005961 --- /dev/null +++ b/frontend/new-web/src/assets/images/401.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/images/404.svg b/frontend/new-web/src/assets/images/404.svg new file mode 100644 index 00000000..5244d8d4 --- /dev/null +++ b/frontend/new-web/src/assets/images/404.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/images/500.svg b/frontend/new-web/src/assets/images/500.svg new file mode 100644 index 00000000..9c020927 --- /dev/null +++ b/frontend/new-web/src/assets/images/500.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/new-web/src/assets/images/common/logo.png b/frontend/new-web/src/assets/images/common/logo.png new file mode 100644 index 00000000..81834963 Binary files /dev/null and b/frontend/new-web/src/assets/images/common/logo.png differ diff --git a/frontend/new-web/src/assets/images/favicon.png b/frontend/new-web/src/assets/images/favicon.png new file mode 100644 index 00000000..43eeb762 Binary files /dev/null and b/frontend/new-web/src/assets/images/favicon.png differ diff --git a/frontend/new-web/src/assets/images/login-bg.svg b/frontend/new-web/src/assets/images/login-bg.svg new file mode 100644 index 00000000..b143be88 --- /dev/null +++ b/frontend/new-web/src/assets/images/login-bg.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/new-web/src/assets/images/login-bg1.svg b/frontend/new-web/src/assets/images/login-bg1.svg new file mode 100644 index 00000000..a0fbc13f --- /dev/null +++ b/frontend/new-web/src/assets/images/login-bg1.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/new-web/src/components/AiAssistant/index.vue b/frontend/new-web/src/components/AiAssistant/index.vue new file mode 100644 index 00000000..73b8be93 --- /dev/null +++ b/frontend/new-web/src/components/AiAssistant/index.vue @@ -0,0 +1,901 @@ + + + + + diff --git a/frontend/new-web/src/components/AppLink/index.vue b/frontend/new-web/src/components/AppLink/index.vue new file mode 100644 index 00000000..b3b8f172 --- /dev/null +++ b/frontend/new-web/src/components/AppLink/index.vue @@ -0,0 +1,38 @@ + + + diff --git a/frontend/new-web/src/components/Breadcrumb/index.vue b/frontend/new-web/src/components/Breadcrumb/index.vue new file mode 100644 index 00000000..f2d8063c --- /dev/null +++ b/frontend/new-web/src/components/Breadcrumb/index.vue @@ -0,0 +1,88 @@ + + + + + diff --git a/frontend/new-web/src/components/CURD/CrudToolbarLeft.vue b/frontend/new-web/src/components/CURD/CrudToolbarLeft.vue new file mode 100644 index 00000000..9d0707f3 --- /dev/null +++ b/frontend/new-web/src/components/CURD/CrudToolbarLeft.vue @@ -0,0 +1,92 @@ + + + + diff --git a/frontend/new-web/src/components/CURD/CrudToolbarRight.vue b/frontend/new-web/src/components/CURD/CrudToolbarRight.vue new file mode 100644 index 00000000..033498df --- /dev/null +++ b/frontend/new-web/src/components/CURD/CrudToolbarRight.vue @@ -0,0 +1,55 @@ + + + + diff --git a/frontend/new-web/src/components/CURD/EnhancedDialog.vue b/frontend/new-web/src/components/CURD/EnhancedDialog.vue new file mode 100644 index 00000000..9522f0a9 --- /dev/null +++ b/frontend/new-web/src/components/CURD/EnhancedDialog.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/frontend/new-web/src/components/CURD/EnhancedDrawer.vue b/frontend/new-web/src/components/CURD/EnhancedDrawer.vue new file mode 100644 index 00000000..61ba3925 --- /dev/null +++ b/frontend/new-web/src/components/CURD/EnhancedDrawer.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/frontend/new-web/src/components/CURD/ExportModal.vue b/frontend/new-web/src/components/CURD/ExportModal.vue new file mode 100644 index 00000000..628d6967 --- /dev/null +++ b/frontend/new-web/src/components/CURD/ExportModal.vue @@ -0,0 +1,277 @@ + + + diff --git a/frontend/new-web/src/components/CURD/ImportModal.vue b/frontend/new-web/src/components/CURD/ImportModal.vue new file mode 100644 index 00000000..d58c4e75 --- /dev/null +++ b/frontend/new-web/src/components/CURD/ImportModal.vue @@ -0,0 +1,305 @@ + + + diff --git a/frontend/new-web/src/components/CURD/PageContent.vue b/frontend/new-web/src/components/CURD/PageContent.vue new file mode 100644 index 00000000..89eaa026 --- /dev/null +++ b/frontend/new-web/src/components/CURD/PageContent.vue @@ -0,0 +1,997 @@ + + + + + diff --git a/frontend/new-web/src/components/CURD/PageModal.vue b/frontend/new-web/src/components/CURD/PageModal.vue new file mode 100644 index 00000000..a86e298b --- /dev/null +++ b/frontend/new-web/src/components/CURD/PageModal.vue @@ -0,0 +1,284 @@ + + + + + diff --git a/frontend/new-web/src/components/CURD/PageSearch.vue b/frontend/new-web/src/components/CURD/PageSearch.vue new file mode 100644 index 00000000..bad67dec --- /dev/null +++ b/frontend/new-web/src/components/CURD/PageSearch.vue @@ -0,0 +1,335 @@ + + + + + diff --git a/frontend/new-web/src/components/CURD/helpers.ts b/frontend/new-web/src/components/CURD/helpers.ts new file mode 100644 index 00000000..e7779398 --- /dev/null +++ b/frontend/new-web/src/components/CURD/helpers.ts @@ -0,0 +1,90 @@ +import type { IObject, IComponentType, ISearchComponent } from "./types"; +import { markRaw } from "vue"; +import InputTag from "@/components/InputTag/index.vue"; +import IconSelect from "@/components/IconSelect/index.vue"; +import DatePicker from "@/components/DatePicker/index.vue"; + +/** + * 获取提示属性 + * @param tips 提示内容 + * @returns 提示属性对象 + */ +export const getTooltipProps = (tips: string | IObject) => { + return typeof tips === "string" ? { content: tips } : tips; +}; + +/** + * 模态框组件映射表 + */ +export const modalComponentMap = new Map([ + // @ts-ignore + ["input", markRaw(ElInput)], + // @ts-ignore + ["select", markRaw(ElSelect)], + // @ts-ignore + ["switch", markRaw(ElSwitch)], + // @ts-ignore + ["cascader", markRaw(ElCascader)], + // @ts-ignore + ["input-number", markRaw(ElInputNumber)], + // @ts-ignore + ["input-tag", markRaw(InputTag)], + // @ts-ignore + ["time-picker", markRaw(ElTimePicker)], + // @ts-ignore + ["time-select", markRaw(ElTimeSelect)], + // @ts-ignore + ["date-picker", markRaw(ElDatePicker)], + // @ts-ignore + ["tree-select", markRaw(ElTreeSelect)], + // @ts-ignore + ["custom-tag", markRaw(InputTag)], + // @ts-ignore + ["text", markRaw(ElText)], + // @ts-ignore + ["radio", markRaw(ElRadioGroup)], + // @ts-ignore + ["checkbox", markRaw(ElCheckboxGroup)], + // @ts-ignore + ["icon-select", markRaw(IconSelect)], + // @ts-ignore + ["custom", ""], +]); + +/** + * 搜索组件映射表 + */ +export const searchComponentMap = new Map([ + // @ts-ignore + ["input", markRaw(ElInput)], + // @ts-ignore + ["select", markRaw(ElSelect)], + // @ts-ignore + ["cascader", markRaw(ElCascader)], + // @ts-ignore + ["input-number", markRaw(ElInputNumber)], + // @ts-ignore + ["date-picker", markRaw(DatePicker)], + // @ts-ignore + ["time-picker", markRaw(ElTimePicker)], + // @ts-ignore + ["time-select", markRaw(ElTimeSelect)], + // @ts-ignore + ["tree-select", markRaw(ElTreeSelect)], + // @ts-ignore + ["input-tag", markRaw(ElInputTag)], + // @ts-ignore + ["custom-tag", markRaw(InputTag)], +]); + +/** + * 子组件映射表 + */ +export const childrenMap = new Map([ + // @ts-ignore + ["select", markRaw(ElOption)], + // @ts-ignore + ["radio", markRaw(ElRadio)], + // @ts-ignore + ["checkbox", markRaw(ElCheckbox)], +]); diff --git a/frontend/new-web/src/components/CURD/types.ts b/frontend/new-web/src/components/CURD/types.ts new file mode 100644 index 00000000..b656bb68 --- /dev/null +++ b/frontend/new-web/src/components/CURD/types.ts @@ -0,0 +1,371 @@ +import type { DialogProps, DrawerProps, FormItemRule, PaginationProps } from "element-plus"; +import type { FormProps, ColProps, ButtonProps, CardProps } from "element-plus"; +import type PageContent from "./PageContent.vue"; +import type PageModal from "./PageModal.vue"; +import type PageSearch from "./PageSearch.vue"; +import type { CSSProperties } from "vue"; + +export type PageSearchInstance = InstanceType; +export type PageContentInstance = InstanceType; +export type PageModalInstance = InstanceType; + +/** + * 通用对象类型 + */ +export type IObject = Record; + +/** + * 组件类型定义 + */ +type DateComponent = "date-picker" | "time-picker" | "time-select" | "custom-tag" | "input-tag"; +type InputComponent = "input" | "select" | "input-number" | "cascader" | "tree-select"; +type OtherComponent = + | "text" + | "radio" + | "checkbox" + | "switch" + | "rate" + | "slider" + | "icon-select" + | "custom"; +export type ISearchComponent = + | DateComponent + | InputComponent + | "radio" + | "checkbox" + | "switch" + | "rate" + | "slider" + /** 在 customComponents 中注册的自定义搜索控件类型 */ + | "user-table-select"; +export type IComponentType = DateComponent | InputComponent | OtherComponent; + +/** + * 工具按钮类型定义 + */ +type ToolbarLeft = "add" | "delete" | "patch"; +type ToolbarRight = "refresh" | "filter" | "import" | "export"; +type ToolbarTable = "edit" | "view" | "delete"; + +/** + * 工具按钮接口 + */ +export type IToolsButton = { + /** 按钮名称 */ + name: string; + /** 按钮文本 */ + text?: string; + /** 权限标识(可以是完整权限字符串如'sys:user:add'或操作权限如'add') */ + perm?: Array | string; + /** 按钮属性 */ + attrs?: Partial & { style?: CSSProperties }; + /** 条件渲染 */ + render?: (row: IObject) => boolean; + /** 按钮提示(支持字符串或Tooltip属性对象) */ + tooltip?: string | IObject; +}; + +/** + * 工具按钮默认类型 + */ +export type IToolsDefault = ToolbarLeft | ToolbarRight | ToolbarTable | IToolsButton; + +/** + * 操作数据接口 + */ +export interface IOperateData { + /** 操作名称 */ + name: string; + /** 行数据 */ + row: IObject; + /** 列数据 */ + column: IObject; + /** 行索引 */ + $index: number; +} + +/** + * 搜索配置接口 + */ +export interface ISearchConfig { + /** 权限前缀(如sys:user,用于组成权限标识),不提供则不进行权限校验 */ + permPrefix?: string; + /** 标签冒号(默认:false) */ + colon?: boolean; + /** 表单项(默认:[]) */ + formItems?: IFormItems; + /** 是否开启展开和收缩(默认:true) */ + isExpandable?: boolean; + /** 默认展示的表单项数量(默认:3) */ + showNumber?: number; + /** 卡片属性 */ + cardAttrs?: Partial & { style?: CSSProperties }; + /** form组件属性 */ + form?: IForm; + /** 启用等宽网格布局;为 "right" 时操作按钮靠行末 */ + grid?: boolean | "left" | "right"; + /** 自定义组件映射 */ + customComponents?: Record; + /** 是否显示搜索按钮(默认:true) */ + showSearchButton?: boolean; + /** 是否显示重置按钮(默认:true) */ + showResetButton?: boolean; + /** 搜索按钮权限 */ + searchButtonPerm?: string | string[]; + /** 重置按钮权限 */ + resetButtonPerm?: string | string[]; + /** 自定义按钮组 */ + customButtons?: Array<{ + /** 按钮唯一标识 */ + key: string; + /** 按钮文本 */ + text: string; + /** 按钮属性 */ + attrs?: IObject; + /** 按钮权限 */ + perm?: string | string[]; + /** 点击事件处理函数 */ + handler?: (params: IObject, instance: any) => void; + }>; +} + +/** + * 内容配置接口 + */ +export interface IContentConfig { + /** 权限前缀(如sys:user,用于组成权限标识),不提供则不进行权限校验 */ + permPrefix?: string; + /** table组件属性(用 IObject 避免与 el-table TableProps.context 等内部类型不兼容) */ + table?: IObject; + /** 页面标题与提示(用于卡片头部显示) */ + title?: string; + /** 提示信息 */ + tooltip?: string | IObject; + /** 分页组件位置(默认:left) */ + pagePosition?: "left" | "right"; + /** pagination组件属性 */ + pagination?: + | boolean + | Partial< + Omit< + PaginationProps, + "v-model:page-size" | "v-model:current-page" | "total" | "currentPage" + > + >; + /** 列表的网络请求函数(需返回promise) */ + indexAction: (queryParams: T) => Promise; + /** + * 是否在挂载时立即请求列表(默认 true)。 + * 若需在父组件合并 PageSearch 与额外条件后再请求,可设为 false,并在 onMounted 中自行调用 fetchPageData。 + */ + initialFetch?: boolean; + /** 默认的分页相关的请求参数 */ + request?: { + page_no: string; + page_size: string; + }; + /** 数据格式解析的回调函数 */ + parseData?: (res: any) => { + total: number; + list: IObject[]; + [key: string]: any; + }; + /** 修改属性的网络请求函数(需返回promise) */ + modifyAction?: (data: { + [key: string]: any; + field: string; + value: boolean | string | number; + }) => Promise; + /** 删除的网络请求函数(需返回promise) */ + deleteAction?: (ids: string) => Promise; + /** 删除确认弹窗(不传则标题「警告」、内容「确认删除?」) */ + deleteConfirm?: { + title?: string; + message?: string; + confirmButtonText?: string; + cancelButtonText?: string; + type?: "warning" | "info" | "success" | "error"; + }; + /** 后端导出的网络请求函数(需返回promise) */ + exportAction?: (queryParams: T) => Promise; + /** 前端全量导出的网络请求函数(需返回promise) */ + exportsAction?: (queryParams: T) => Promise; + /** 导入模板 */ + importTemplate?: string | (() => Promise); + /** 后端导入的网络请求函数(需返回promise) */ + importAction?: (file: File) => Promise; + /** 前端导入的网络请求函数(需返回promise) */ + importsAction?: (data: IObject[]) => Promise; + /** 主键名(默认为id) */ + pk?: string; + /** 表格工具栏(默认:add,delete,export,也可自定义) */ + toolbar?: Array; + /** 表格工具栏右侧图标(默认:refresh,filter,import,export) */ + defaultToolbar?: Array; + /** 使用 #table 插槽自定义表格/树表时,为 true 则隐藏「列筛选」按钮(避免与自定义列不同步) */ + hideColumnFilter?: boolean; + /** 内容区外层 el-card 额外 class */ + cardClass?: string; + /** el-card 阴影(默认 never,与 Element Plus el-card shadow 一致) */ + cardShadow?: "always" | "hover" | "never"; + /** 是否显示表格上方工具条(默认 true;纯卡片/无按钮时可设为 false) */ + showToolbar?: boolean; + /** 更多操作按钮配置 */ + moreButtons?: Array; + /** table组件列属性(额外的属性templet,operat,slotName) */ + cols: Array<{ + /** 列类型 */ + type?: "default" | "selection" | "index" | "expand"; + /** 列标签 */ + label?: string; + /** 列属性 */ + prop?: string; + /** 列宽度 */ + width?: string | number; + /** 最小列宽度 */ + minWidth?: string | number; + /** 对齐方式 */ + align?: "left" | "center" | "right"; + /** 列键名 */ + columnKey?: string; + /** 是否保留选择 */ + reserveSelection?: boolean; + /** 列是否显示 */ + show?: boolean; + /** 模板类型 */ + templet?: + | "image" + | "list" + | "url" + | "switch" + | "input" + | "price" + | "percent" + | "icon" + | "date" + | "tool" + | "custom"; + /** image模板相关参数 */ + imageWidth?: number; + /** image模板相关参数 */ + imageHeight?: number; + /** list模板相关参数 */ + selectList?: IObject; + /** switch模板相关参数 */ + activeValue?: boolean | string | number; + /** switch模板相关参数 */ + inactiveValue?: boolean | string | number; + /** switch模板相关参数 */ + activeText?: string; + /** switch模板相关参数 */ + inactiveText?: string; + /** input模板相关参数 */ + inputType?: string; + /** price模板相关参数 */ + priceFormat?: string; + /** date模板相关参数 */ + dateFormat?: string; + /** tool模板相关参数 */ + operat?: Array; + /** filter值拼接符 */ + filterJoin?: string; + /** 初始化数据函数 */ + initFn?: (item: IObject) => void; + /** 是否禁用 */ + disabled?: boolean; + /** 固定列 */ + fixed?: boolean | "left" | "right"; + /** 权限 */ + perm?: string; + [key: string]: any; + }>; +} + +/** + * PageContent 左侧 `createToolbar` 产物,供 CrudToolbarLeft 的 `configButtons` 使用。 + */ +export type CrudToolbarConfigButton = { + name: string; + text?: string; + attrs?: Record; + perm?: string | string[] | null; +}; + +/** + * 模态框配置接口 + */ +export interface IModalConfig { + /** 权限前缀(如sys:user,用于组成权限标识),不提供则不进行权限校验 */ + permPrefix?: string; + /** 标签冒号(默认:false) */ + colon?: boolean; + /** 主键名(主要用于编辑数据,默认为id) */ + pk?: string; + /** 组件类型(默认:dialog) */ + component?: "dialog" | "drawer"; + /** dialog组件属性(默认可拖拽;全屏由 EnhancedDialog 标题栏按钮切换) */ + dialog?: Partial> & { draggable?: boolean }; + /** drawer组件属性 */ + drawer?: Partial>; + /** 查看模式渲染方式(默认:form;可选:descriptions) */ + viewMode?: "form" | "descriptions"; + /** descriptions组件属性(当 viewMode 为 descriptions 时生效) */ + descriptions?: IObject; + /** form组件属性 */ + form?: IForm; + /** 表单项 */ + formItems: IFormItems; + /** 提交之前处理 */ + beforeSubmit?: (data: T) => void; + /** 提交的网络请求函数(需返回promise) */ + formAction?: (data: T) => Promise; +} + +/** + * 表单属性类型 + */ +export type IForm = Partial>; + +/** + * 表单项类型 + */ +export type IFormItems = Array<{ + /** 组件类型(如input,select,radio,custom等) */ + type: T; + /** 标签提示 */ + tips?: string | IObject; + /** 标签 */ + label: string; + /** 属性名 */ + prop: string; + /** 属性 */ + attrs?: IObject; + /** 选项 */ + options?: Array<{ label: string; value: any; [key: string]: any }> | Ref; + /** 规则 */ + rules?: FormItemRule[]; + /** 初始值 */ + initialValue?: any; + /** 插槽名称 */ + slotName?: string; + /** 是否隐藏 */ + hidden?: boolean; + /** 列属性 */ + col?: Partial; + /** 事件 */ + events?: Record void>; + /** 初始化函数 */ + initFn?: (item: IObject) => void; +}>; + +/** + * 页面表单接口 + */ +export interface IPageForm { + /** 主键 */ + pk?: string; + /** 表单属性 */ + form?: IForm; + /** 表单项 */ + formItems: IFormItems; +} diff --git a/frontend/new-web/src/components/CURD/useCrudList.ts b/frontend/new-web/src/components/CURD/useCrudList.ts new file mode 100644 index 00000000..a8225061 --- /dev/null +++ b/frontend/new-web/src/components/CURD/useCrudList.ts @@ -0,0 +1,53 @@ +import { ElMessage } from "element-plus"; +import { ref } from "vue"; +import type { IObject, PageContentInstance, PageSearchInstance } from "./types"; + +/** + * 仅列表查询区 + 表格区时复用:searchRef / contentRef 与查询、重置拉数逻辑。 + * 合并 `PageSearch` 查询参数与 `PageContent.getFilterParams()`(表头筛选等),与 usePage 中同名逻辑一致。 + * 业务页可替换手写 `handleQueryClick` / `handleResetClick` + 双 ref,参见 `module_example/demo`。 + */ +export function useCrudList() { + const searchRef = ref(); + const contentRef = ref(); + + function handleQueryClick(queryParams: IObject) { + try { + const filterParams = contentRef.value?.getFilterParams() || {}; + contentRef.value?.fetchPageData({ ...queryParams, ...filterParams }, true); + } catch (error) { + console.error("查询数据失败:", error); + ElMessage.error("查询数据失败: " + (error instanceof Error ? error.message : String(error))); + } + } + + function handleResetClick(queryParams: IObject) { + try { + const filterParams = contentRef.value?.getFilterParams() || {}; + contentRef.value?.fetchPageData({ ...queryParams, ...filterParams }, true); + } catch (error) { + console.error("重置数据失败:", error); + ElMessage.error("重置数据失败: " + (error instanceof Error ? error.message : String(error))); + } + } + + /** 弹窗提交后等与「查询」同参刷新:合并搜索条件 + 表头筛选 */ + function refreshList() { + try { + const q = searchRef.value?.getQueryParams() ?? {}; + const f = contentRef.value?.getFilterParams() ?? {}; + contentRef.value?.fetchPageData({ ...q, ...f }, true); + } catch (error) { + console.error("刷新列表失败:", error); + ElMessage.error("刷新列表失败: " + (error instanceof Error ? error.message : String(error))); + } + } + + return { + searchRef, + contentRef, + handleQueryClick, + handleResetClick, + refreshList, + }; +} diff --git a/frontend/new-web/src/components/CURD/usePage.ts b/frontend/new-web/src/components/CURD/usePage.ts new file mode 100644 index 00000000..28df4567 --- /dev/null +++ b/frontend/new-web/src/components/CURD/usePage.ts @@ -0,0 +1,184 @@ +import { ref, Ref } from "vue"; +import type { IObject, PageModalInstance } from "./types"; +import { useCrudList } from "./useCrudList"; + +/** + * CURD页面组合式函数 + * @returns 包含各种引用和处理函数的对象 + */ +function usePage() { + const { searchRef, contentRef, handleQueryClick, handleResetClick } = useCrudList(); + const addModalRef = ref(); + const editModalRef = ref(); + const viewModalRef = ref(); + + /** + * 处理新增点击事件 + * @param RefImpl 可选的模态框引用 + */ + function handleAddClick(RefImpl?: Ref) { + try { + if (RefImpl) { + RefImpl.value?.setModalVisible(); + RefImpl.value?.handleDisabled(false); + } else { + addModalRef.value?.setModalVisible(); + addModalRef.value?.handleDisabled(false); + } + } catch (error) { + console.error("打开新增模态框失败:", error); + ElMessage.error( + "打开新增模态框失败: " + (error instanceof Error ? error.message : String(error)) + ); + } + } + + /** + * 处理编辑点击事件 + * @param row 行数据 + * @param callback 回调函数 + * @param RefImpl 可选的模态框引用 + */ + async function handleEditClick( + row: IObject, + callback?: (result?: IObject) => IObject | Promise, + RefImpl?: Ref + ) { + try { + if (RefImpl) { + RefImpl.value?.setModalVisible(); + RefImpl.value?.handleDisabled(false); + const from = await (callback?.(row) ?? Promise.resolve(row)); + RefImpl.value?.setFormData(from ? from : row); + } else { + editModalRef.value?.setModalVisible(); + editModalRef.value?.handleDisabled(false); + const from = await (callback?.(row) ?? Promise.resolve(row)); + editModalRef.value?.setFormData(from ? from : row); + } + } catch (error) { + console.error("打开编辑模态框失败:", error); + ElMessage.error( + "打开编辑模态框失败: " + (error instanceof Error ? error.message : String(error)) + ); + } + } + + /** + * 处理查看点击事件 + * @param row 行数据 + * @param callback 回调函数 + * @param RefImpl 可选的模态框引用 + */ + async function handleViewClick( + row: IObject, + callback?: (result?: IObject) => IObject | Promise, + RefImpl?: Ref + ) { + try { + if (RefImpl) { + RefImpl.value?.setModalVisible(); + RefImpl.value?.handleDisabled(true); + const from = await (callback?.(row) ?? Promise.resolve(row)); + RefImpl.value?.setFormData(from ? from : row); + } else { + viewModalRef.value?.setModalVisible(); + viewModalRef.value?.handleDisabled(true); + const from = await (callback?.(row) ?? Promise.resolve(row)); + viewModalRef.value?.setFormData(from ? from : row); + } + } catch (error) { + console.error("打开查看模态框失败:", error); + ElMessage.error( + "打开查看模态框失败: " + (error instanceof Error ? error.message : String(error)) + ); + } + } + + /** + * 处理表单提交点击事件 + */ + function handleSubmitClick() { + try { + //根据检索条件刷新列表数据 + const queryParams = searchRef.value?.getQueryParams() || {}; + contentRef.value?.fetchPageData(queryParams, true); + } catch (error) { + console.error("提交表单失败:", error); + ElMessage.error("提交表单失败: " + (error instanceof Error ? error.message : String(error))); + } + } + + /** + * 处理导出点击事件 + */ + function handleExportClick() { + try { + // 根据检索条件导出数据 + const queryParams = searchRef.value?.getQueryParams() || {}; + contentRef.value?.exportPageData(queryParams); + } catch (error) { + console.error("导出数据失败:", error); + ElMessage.error("导出数据失败: " + (error instanceof Error ? error.message : String(error))); + } + } + + /** + * 处理筛选改变事件 + * @param filterParams 筛选参数 + */ + function handleFilterChange(filterParams: IObject) { + try { + const queryParams = searchRef.value?.getQueryParams() || {}; + contentRef.value?.fetchPageData({ ...queryParams, ...filterParams }, true); + } catch (error) { + console.error("筛选数据失败:", error); + ElMessage.error("筛选数据失败: " + (error instanceof Error ? error.message : String(error))); + } + } + + /** + * 处理更多操作事件 + * @param name 操作名称 + * @param selectedRows 选中的行数据 + * @param callback 回调函数 + */ + async function handleMoreOperation( + name: string, + selectedRows: IObject[], + callback?: (name: string, selectedRows: IObject[]) => Promise + ) { + try { + if (callback) { + await callback(name, selectedRows); + } + // 默认刷新数据 + handleSubmitClick(); + } catch (error) { + console.error("处理更多操作失败:", error); + ElMessage.error( + "处理更多操作失败: " + (error instanceof Error ? error.message : String(error)) + ); + } + } + + return { + searchRef, + contentRef, + addModalRef, + editModalRef, + viewModalRef, + handleQueryClick, + handleResetClick, + handleAddClick, + handleEditClick, + handleViewClick, + handleSubmitClick, + handleExportClick, + handleFilterChange, + handleMoreOperation, + }; +} + +export default usePage; +export { useCrudList } from "./useCrudList"; diff --git a/frontend/new-web/src/components/CommonWrapper/index.vue b/frontend/new-web/src/components/CommonWrapper/index.vue new file mode 100644 index 00000000..3b3b0161 --- /dev/null +++ b/frontend/new-web/src/components/CommonWrapper/index.vue @@ -0,0 +1,22 @@ + + + diff --git a/frontend/new-web/src/components/CopyButton/index.vue b/frontend/new-web/src/components/CopyButton/index.vue new file mode 100644 index 00000000..9ca3f12b --- /dev/null +++ b/frontend/new-web/src/components/CopyButton/index.vue @@ -0,0 +1,64 @@ + + + + diff --git a/frontend/new-web/src/components/DatePicker/index.vue b/frontend/new-web/src/components/DatePicker/index.vue new file mode 100644 index 00000000..6982b4d0 --- /dev/null +++ b/frontend/new-web/src/components/DatePicker/index.vue @@ -0,0 +1,84 @@ + + + + + + diff --git a/frontend/new-web/src/components/ECharts/index.vue b/frontend/new-web/src/components/ECharts/index.vue new file mode 100644 index 00000000..df159f19 --- /dev/null +++ b/frontend/new-web/src/components/ECharts/index.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/frontend/new-web/src/components/Frame/index.vue b/frontend/new-web/src/components/Frame/index.vue new file mode 100644 index 00000000..f0ac15c6 --- /dev/null +++ b/frontend/new-web/src/components/Frame/index.vue @@ -0,0 +1,43 @@ + +