workbuddy.xpcool.com/.workbuddy/tmp/local.diff

6073 lines
220 KiB
Diff
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml
index 8f1b964..65b5ec5 100644
--- a/.gitea/workflows/deploy.yml
+++ b/.gitea/workflows/deploy.yml
@@ -1,49 +1,74 @@
-# deployed by gitea act_runner (push to main triggers this)
+# admin.xpcool.com 自动部署Gitea act_runnerpush main/dev 触发)
+# 注意点:
+# 1. job 基础镜像为 node:20-bullseye但项目 pnpm@11 强依赖 node:sqlitenode 22.5+
+# 故先下载 node 22 二进制替换 PATHnpmmirror 源)。
+# 2. 构建必须直接跑 vite buildpnpm/turbo build 会卡死 15min+ 无产出),产物 apps/web-tdesign/dist。
+# 3. 部署目标 /data/www/admin.xpcool.comrunner 已挂载 /data/www
name: Build and Deploy (admin.xpcool.com)
on:
push:
- branches: [main]
+ branches: [main, dev]
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- - name: Install git & docker CLI
+ - name: Install git & node 22 (npmmirror)
run: |
- sed -i 's|deb.debian.org|mirrors.cloud.tencent.com|g; s|security.debian.org|mirrors.cloud.tencent.com|g' /etc/apt/sources.list 2>/dev/null || true
- sed -i 's|deb.debian.org|mirrors.cloud.tencent.com|g; s|security.debian.org|mirrors.cloud.tencent.com|g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || true
- apt-get update
- apt-get install -y git docker.io
+ set -e
+ apt-get update -qq
+ apt-get install -y -qq git xz-utils >/dev/null
+ # node 22 二进制解压到 /optPATH 前置(覆盖镜像自带 node 20
+ curl -fsSL https://npmmirror.com/mirrors/node/v22.22.2/node-v22.22.2-linux-x64.tar.xz -o /tmp/node.tar.xz
+ mkdir -p /opt && tar -xJf /tmp/node.tar.xz -C /opt
+ export PATH="/opt/node-v22.22.2-linux-x64/bin:$PATH"
+ echo "/opt/node-v22.22.2-linux-x64/bin" >> "$GITHUB_ENV"
+ echo "PATH=$PATH" >> "$GITHUB_ENV"
+ node -v && npm -v
- name: Checkout (local Gitea)
run: |
git clone --depth 1 --branch "${{ github.ref_name }}" https://oauth2:${{ github.token }}@git.xpcool.com/${{ github.repository }}.git .
git checkout ${{ github.sha }}
- - name: Docker build & deploy
+ - name: Enable pnpm via corepack (npmmirror)
+ env:
+ COREPACK_NPM_REGISTRY: https://registry.npmmirror.com
+ COREPACK_DEFAULT_TO_LATEST: "0"
run: |
- # .npmrc 里的 store-dir 是 Windows 路径Linux 容器里会导致 pnpm 异常,临时移除
- sed -i '/store-dir=/d' .npmrc
- docker build -f scripts/deploy/Dockerfile -t admin.xpcool.com:latest .
- docker rm -f admin.xpcool.com 2>/dev/null || true
- docker run -d \
- --name admin.xpcool.com \
- --restart unless-stopped \
- -p 127.0.0.1:8010:8080 \
- admin.xpcool.com:latest
+ export PATH="/opt/node-v22.22.2-linux-x64/bin:$PATH"
+ corepack enable
+ corepack prepare pnpm@11.16.0 --activate
+ pnpm -v
- - name: Notify success (PushPlus)
- if: success()
+ - name: Install dependencies
+ env:
+ NODE_OPTIONS: --experimental-sqlite
run: |
- curl -s -X POST "https://www.pushplus.plus/send" \
- -H "Content-Type: application/json" \
- -d '{"token":"${{ secrets.PUSHPLUS_TOKEN }}","title":"✅ 部署成功 admin.xpcool.com","content":"仓库: ${{ github.repository }}<br>分支: ${{ github.ref_name }}<br>提交: ${{ github.sha }}<br>触发人: ${{ github.actor }}<br>状态: 编译打包部署成功<br>访问: https://admin.xpcool.com","template":"html"}'
+ export PATH="/opt/node-v22.22.2-linux-x64/bin:$PATH"
+ pnpm install
- - name: Notify failure (PushPlus)
- if: failure()
+ - name: Build (vite direct, avoid turbo hang)
+ env:
+ NODE_OPTIONS: "--experimental-sqlite --max-old-space-size=8192"
run: |
- curl -s -X POST "https://www.pushplus.plus/send" \
- -H "Content-Type: application/json" \
- -d '{"token":"${{ secrets.PUSHPLUS_TOKEN }}","title":"❌ 部署失败 admin.xpcool.com","content":"仓库: ${{ github.repository }}<br>分支: ${{ github.ref_name }}<br>提交: ${{ github.sha }}<br>触发人: ${{ github.actor }}<br>状态: 构建或部署失败<br>日志: https://git.xpcool.com/${{ github.repository }}/actions","template":"html"}'
+ export PATH="/opt/node-v22.22.2-linux-x64/bin:$PATH"
+ cd apps/web-tdesign
+ ./node_modules/.bin/vite build --mode production
+
+ - name: Deploy to /data/www/admin.xpcool.com
+ run: |
+ set -e
+ SRC=apps/web-tdesign/dist
+ DST=/data/www/admin.xpcool.com
+ if [ ! -d "$SRC" ]; then
+ echo "BUILD OUTPUT NOT FOUND: $SRC"
+ exit 1
+ fi
+ mkdir -p "$DST"
+ find "$DST" -mindepth 1 -delete
+ cp -r "$SRC"/. "$DST"/
+ chmod -R a+rX "$DST"
+ echo "Deployed admin.xpcool.com -> $DST"
diff --git a/.gitignore b/.gitignore
index 3d94e02..326c881 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,7 +57,11 @@ vite.config.ts.*
.agents
.claude
.codex
-.workbuddy
+# WorkBuddy 本地记忆仅放行变更记录CHANGELOG.md
+.workbuddy/*
+!.workbuddy/memory/
+.workbuddy/memory/*
+!.workbuddy/memory/CHANGELOG.md
skills-lock.json
.atomcode
datalog
diff --git a/.workbuddy/memory/CHANGELOG.md b/.workbuddy/memory/CHANGELOG.md
new file mode 100644
index 0000000..9f2c5d1
--- /dev/null
+++ b/.workbuddy/memory/CHANGELOG.md
@@ -0,0 +1,21 @@
+# admin.xpcool.com 变更记录
+> 倒序最新在上。格式YYYY-MM-DD | 类型 | 摘要
+
+2026-08-26 | CFG | 新增 .gitea/workflows/deploy.ymlGitea act_runner 自动部署push main/dev → 下载 node22 二进制npmmirror覆盖镜像 node20pnpm11 需 node:sqlite→ corepack pnpm@11.16.0 → pnpm install → 直接 vite build避开 turbo 卡死)→ cp dist 到 /data/www/admin.xpcool.com/YAML 已校验
+2026-08-26 | CHG | 看房 house 模块前端落地api/house.ts + views/house/{community,listing,dashboard,data}/index.vue小区 CRUD、房源多维筛选+多选批量标记笋盘/低可信、看板 echarts 概览卡片/区域均价柱状/挂牌vs成交趋势菜单走后端动态路由011 种子 component=house/xxx/index图表复用 @vben/plugins/echarts 的 EchartsUI/useEcharts
+2026-08-26 | DEP | 线上 dist 更新为「无下拉版」vite build 产物index-index-B-XlZ2uN.js并部署 /data/www/admin.xpcool.com/,修复登录 no rows根因=线上仍是 19:32 旧版(默认 admin/admin123admin 已删故报错;验证:线上 index 新版 + xxcool 登录成功 + js 无 admin123 webhook 自动部署未生效deploy-webhook.service disabled/inactive8/22 11:52 停止9000 未监听),提交代码不会自动部署,需 `sudo systemctl enable --now deploy-webhook` + Gitea 仓库 webhook 配置
+2026-08-26 | CHG | 登录页移除账号下拉与代码内置账号密码:删除 selectAccount 字段、MOCK_USER_OPTIONS 及自动填充逻辑BasicOption import 一并清理),前端不再存任何账号密码,改为手输 + 勾选「记住账号」AuthenticationLogin 内置 rememberMelocalStorage 仅记用户名不存密码);本地 dev(5173) 浏览器验证:无下拉、仅用户名/密码/滑块 + 记住账号复选框
+2026-08-26 | CHG | 登录页默认账号替换为 xxcool/xxCool@2026MOCK_USER_OPTIONS 仅留 Super(xxcool)selectAccount 默认值、密码自动填充同步;本地 dev(5173) 验证登录页下拉正常combobox Super、账号密码自动填充、展开有 Super 选项),无 admin123 残留;⚠️ 构建注意pnpm/turbo build 会卡死(两次 15min+ 无产出),需直接 `./node_modules/.bin/vite build --mode production`(约 20s完成线上 dist 仍为旧版,待部署
+2026-08-26 | DEP | 生产部署上线193.112.118.168pnpm build:tdesign 构建 web-tdesign 上传 /data/www/admin.xpcool.com/nginx HTTPS 站点(证书 /data/nginx/ssl/admin.xpcool.com/80→301静态托管 + /api/service 反代 127.0.0.1:10100https://admin.xpcool.com 首页 200、同源 API 登录通过
+2026-08-26 | CHG | .env.production 的 VITE_GLOB_API_URL 由 https://mock-napi.vben.pro/api 改为 /api/service同源相对路径由 nginx 反代到后端 10100
+
+2026-08-26 | REQ | RBAC 至按钮级细粒度全链路核查通过backend 动态路由menu/routes+ 23 权限码下发auth/codes+ 三个管理页admin/role/menu按钮级 hasAccessByCodes 与后端 seed 权限码逐一匹配dev server20104经 vite 代理→10100 登录/取码 200后端配套修复禁用角色权限隔离漏洞见 service CHANGELOG
+
+2026-08-26 | FIX | 登录接口 502 联调修复:根因为后端 10100 未启动vite 代理连接拒绝→502启动后端后 login/info/codes/menu-routes 全链路 200。另记本机 corepack/pnpm shim 路径转换损坏,需用 `npm exec --package=pnpm@11.16.0` 代替 pnpm 命令
+2026-08-26 | CFG | CHANGELOG 纳入 git 管理(.gitignore 放行 .workbuddy/memory/CHANGELOG.md中央工作空间迁移至 ../workbuddy.xpcool.com相对路径索引
+
+2026-08-26 | CHG | 后端 API 统一前缀 /api/service/ + 端口 10100vite 代理改为 '/api/service'→:10100合并原 /admin、/api 两条api 文件全部适配auth/menu/user/system/log去 v1、前缀 /api/service、全 POST、CRUD 改动作式路径)
+2026-08-26 | FIX | 修复依赖装不上pnpm 11.16.0 强依赖 node:sqlite需 `NODE_OPTIONS=--experimental-sqlite` 后 install 成功;同步更正 agents.md 主应用为 web-tdesigndev:tdesign5999/6000 端口)
+2026-08-26 | CHG | 修正登录页默认账号selectAccount 默认 admin密码映射改为种子账号 admin/admin123便于联调
+2026-08-26 | CHG | 同步三铁律(中文注释/做记录/中文优先)至 AGENTS.md「统一工作约定」小节
+2026-08-26 | CFG | 建立统一变更记录机制CHANGELOG接入 xpcool.com 中央索引
diff --git a/agents.md b/agents.md
index a81d389..29adb86 100644
--- a/agents.md
+++ b/agents.md
@@ -13,23 +13,18 @@
| 业务名 | admin.xpcool.com |
| 工作目录 | `E:\xxcool\project\admin.xpcool.com` |
| 基础框架 | Vue Vben Admin **5.7.0**(官方 monorepo 模板) |
-| 技术栈 | Vue 3 + TypeScript + Vite + pnpm 11 + turbomonorepo+ Ant Design Vue 等 |
+| 技术栈 | Vue 3 + TypeScript + Vite + pnpm 11 + turbomonorepo+ TDesign |
| 代码来源 | 官方仓库 `vbenjs/vue-vben-admin` 克隆remote 为 ghproxy 镜像:`https://ghproxy.net/https://github.com/vbenjs/vue-vben-admin.git` |
-| 当前基线 | 模板原样,**无业务定制**web-antd views 仅有 `_core/dashboard/demos` 示例页) |
+| 当前基线 | 已精简为单一应用 **web-tdesign**,并开始业务定制(`apps/web-tdesign/src/views/_core/authentication/login.vue` 已修改) |
| git 分支 | `main`(仅 origin/main |
## 2. 应用清单apps/
| 应用 | 包名 | UI 库 | dev 端口 | 启动命令 |
|---|---|---|---|---|
-| web-antd | `@vben/web-antd` | Ant Design Vue | **5666** | `pnpm dev:antd` |
-| web-antdv-next | `@vben/web-antdv-next` | Ant Design Vue Next | - | `pnpm dev:antdv-next` |
-| web-ele | `@vben/web-ele` | Element Plus | - | `pnpm dev:ele` |
-| web-naive | `@vben/web-naive` | Naive UI | - | `pnpm dev:naive` |
-| web-tdesign | `@vben/web-tdesign` | TDesign | - | `pnpm dev:tdesign` |
-| backend-mock | - | Nitro mock 后端 | **5320** | 随 dev 自动启动VITE_NITRO_MOCK=true |
+| web-tdesign | `@vben/web-tdesign` | TDesign | **5999**(被占用自动切 6000 | `pnpm dev:tdesign` |
-> 本业务主应用推测为 **web-antd**(端口 5666已确认 .env.development
+> 本业务**唯一主应用为 web-tdesign**`.env.development` 设 `VITE_PORT=5999`)。项目已从官方多应用模板精简,仅保留此应用。
## 3. 环境要求与本机踩坑记录(重要)
@@ -40,30 +35,36 @@
### 本机Windows已验证的运行方式 —— 直接复制可用
```bash
-# 前置:把 managed node 22.22.2 放到 PATH 最前(系统 node 23 会因 NODE_OPTIONS 报错)
+# 关键pnpm 11.16.0 用到 node:sqlite必须给 NODE_OPTIONS 加 --experimental-sqliteNode 22 需 flag
+export NODE_OPTIONS="--experimental-sqlite"
+# 建议:把 managed node 22.22.2 放到 PATH 最前(避免系统 node 23 引擎不匹配告警)
export PATH="/c/Users/ybtdevxxl/.workbuddy/binaries/node/versions/22.22.2:$PATH"
-# 关键:清空 NODE_OPTIONS否则 WorkBuddy 的 safe-delete shim 会拦截 pnpm 的删除操作导致安装失败)
-unset NODE_OPTIONS
-# 用 corepack 驱动 pnpmPATH 里的 pnpm 挂在系统 node 23 下不可用)
+# 用 managed node 的 corepack 驱动 pnpm
CORE="/c/Users/ybtdevxxl/.workbuddy/binaries/node/versions/22.22.2/corepack.cmd"
-"$CORE" pnpm install # 安装依赖
-"$CORE" pnpm dev:antd # 启动开发服务器
+"$CORE" pnpm install # 安装依赖
+"$CORE" pnpm dev:tdesign # 启动开发服务器
```
-### 坑 1NODE_OPTIONS 污染
-- 现象:`pnpm install` 报 `[ERROR] [safe-delete] 操作失败 ... Some operations were aborted`
-- 原因:环境变量 `NODE_OPTIONS=--require=...genie-safe-delete.cjs --use-system-ca`WorkBuddy 注入);且系统 Node 23 不支持 `--use-system-ca`,直接跑 PATH 里的 pnpm 会直接退出
-- 解法:`unset NODE_OPTIONS` + 用 managed node 22.22.2 的 corepack
+### 坑 1node:sqlite 模块缺失2026-08-26 实际遇到,本次修复根因)
+- 现象:`pnpm --version` / `pnpm install` 报 `ERR_UNKNOWN_BUILTIN_MODULE: No such built-in module: node:sqlite``at ../store/index/lib/index.js`
+- 原因:**pnpm 11.16.0 在解析包元数据时强依赖 `node:sqlite`**,而系统 Node 23.0 / managed Node 22 默认未启用该内置模块22.5+ 起在 `--experimental-sqlite` 标志后可用23.4 才默认开)
+- 解法:`NODE_OPTIONS=--experimental-sqlite` 后再跑 pnpm本次直接沿用该法装依赖、起服务均成功
-### 坑 2Windows 符号链接权限
-- 现象:`pnpm install` 报 `UNKNOWN: unknown error, symlink '.pnpm\postcss@8.5.26\...' -> ...`,下载完 1723 包后在 hoist 阶段失败
+### 坑 2NODE_OPTIONS 污染 / shim
+- 现象:`pnpm install` 报 `[ERROR] [safe-delete] 操作失败 ... Some operations were aborted`WorkBuddy 注入 `--require=...genie-safe-delete.cjs --use-system-ca`
+- 原因:该 shim 会拦截 pnpm 的删除/符号链接操作
+- 解法:在写死 `NODE_OPTIONS=--experimental-sqlite` 时已同时覆盖掉 shim如要保留 shim则先 `unset NODE_OPTIONS` 再补 flag
+
+### 坑 3Windows 符号链接权限
+- 现象:`pnpm install` 报 `UNKNOWN: unknown error, symlink ...`hoist 阶段失败
- 原因:本机未开「开发者模式/无管理员权限」pnpm 默认 symlink 创建失败
-- 解法:项目 `.npmrc` 已添加 `package-import-method=copy`(用拷贝替代符号链接,代价是磁盘占用/安装略慢)
+- 解法:项目 `.npmrc` 已改用 `node-linker=hoisted`(扁平化)方案规避,见下
-### 镜像配置(.npmrc
+### 镜像与链接配置(.npmrc
```ini
registry=https://registry.npmmirror.com
-package-import-method=copy
+node-linker=hoisted # 避免 symlink 权限问题,走扁平化安装
+store-dir=E:\.pnpm-store # store 与项目同盘E 盘),走同卷硬链接,快且无需管理员权限
```
## 4. 常用命令
@@ -74,11 +75,11 @@ pnpm install # 装依赖preinstall 会校验必须用 pnpmpostins
pnpm reinstall # 清 lock 重装(= clean --del-lock && install
# 开发
-pnpm dev:antd # 启动 web-antd默认 http://localhost:5666
+pnpm dev:tdesign # 启动 web-tdesign默认 http://localhost:5999被占用自动切 6000
pnpm dev # turbo 并行起所有 app
# 构建 / 检查
-pnpm build:antd # 构建 web-antd
+pnpm build:tdesign # 构建 web-tdesign
pnpm check:type # 类型检查turbo run typecheck
pnpm lint # 代码检查
pnpm test:unit # 单元测试vitest
@@ -87,19 +88,18 @@ pnpm test:unit # 单元测试vitest
## 5. 架构速览Vben Admin 5 monorepo
```
-apps/ 应用层web-antd、web-ele、web-naive、web-tdesign、web-antdv-next、backend-mock
+apps/ 应用层web-tdesign唯一主应用
internal/ 内部工具vite-config、tsconfig、eslint/stylelint/oxlint 配置、tailwind-config、turbo-run
packages/ 共享包:@core核心 UI/布局、effects请求/权限/hooks/插件、stores、locales、
preferences偏好设置、icons、constants、utils、styles、types
```
-- 主应用源码入口:`apps/web-antd/src/`
+- 主应用源码入口:`apps/web-tdesign/src/`
- 路由:`src/router/routes/modules/`dashboard.ts / demos.ts / vben.ts
- 页面:`src/views/`
- API`src/api/request.ts`(封装 `requestClient`)、`src/api/core/`
- 偏好:`src/preferences.ts``defineOverridesPreferences`,官方默认 + 少量扩展字段)
-- 开发代理:`vite.config.ts` 中 `/api` → `http://localhost:5320/api`backend-mockrewrite 去掉 `/api` 前缀
-- 环境变量:`apps/web-antd/.env.development``VITE_PORT=5666`、`VITE_NITRO_MOCK=true`、`VITE_GLOB_API_URL=/api`
+- 环境变量:`apps/web-tdesign/.env.development``VITE_PORT=5999`
- 路径别名:`#/*` → `./src/*`package.json imports
### 关键开发约定Vben 5 特有)
@@ -113,6 +113,14 @@ packages/ 共享包:@core核心 UI/布局、effects请求/权限
> 倒序(最新在上)。每条:日期 / 操作 / 结果 / 备注
+### 2026-08-26修复依赖安装
+1. **问题**`pnpm install` 装不上,报 `ERR_UNKNOWN_BUILTIN_MODULE: No such built-in module: node:sqlite`
+2. **根因**pnpm 11.16.0 强依赖 `node:sqlite`,但系统 Node 23.0 / managed Node 22 默认未启用该内置模块(需 `--experimental-sqlite` 标志)
+3. **修复**:设 `NODE_OPTIONS=--experimental-sqlite` 后用 managed node 22.22.2 + corepack 跑 `pnpm install` → 成功39 workspace 项目Already up to date
+4. **启动**`pnpm dev:tdesign` → Vite readyhttp://localhost:60005999 被占用自动切换)✅ HTTP 200标题「Vben Admin Tdesign」
+5. **澄清项目结构**:确认项目已精简为**唯一应用 web-tdesign**(非 agents.md 旧记录的 web-antd同步更新本档案
+6. **残留进程清理**:终止了此前多次失败重试遗留的 pnpm/tsdown/stub 后台进程
+
### 2026-08-24首次搭建
1. **梳理项目**:确认为 Vben Admin 5.7.0 官方模板克隆,无业务定制;主应用 web-antd端口 5666
2. **安装依赖**
@@ -129,6 +137,14 @@ packages/ 共享包:@core核心 UI/布局、effects请求/权限
2. 必拷文件:`agents.md`(本文件)+ `.workbuddy/memory/`(历史工作日志)
3. 本机环境要点(新机器):
- Node ≥ 22.18pnpm ≥ 11corepack
- - 跑 pnpm 前 `unset NODE_OPTIONS`
- - Windows 无开发者模式时保持 `.npmrc` 的 `package-import-method=copy`
-4. 装依赖后先 `pnpm dev:antd` 验证 5666 端口
+ - 跑 pnpm 前设 `NODE_OPTIONS=--experimental-sqlite`(否则报 node:sqlite 缺失)
+ - Windows 无开发者模式时保持 `.npmrc` 的 `node-linker=hoisted` 与 `store-dir=E:\.pnpm-store`
+4. 装依赖后先 `pnpm dev:tdesign` 验证 5999/6000 端口
+
+## 统一工作约定xpcool.com 中央规则)
+
+> 与中央 `../workbuddy.xpcool.com/.workbuddy/memory/MEMORY.md` 保持一致;本项目变更流水在 `.workbuddy/memory/CHANGELOG.md`。
+
+1. **中文注释**:写/改代码时,在应有处(函数、复杂逻辑、配置项、非显然分支)加中文注释。
+2. **做记录**:每次请求/变更/修复/文档动作,都在本项目 `.workbuddy/memory/CHANGELOG.md` 顶部追加一条,格式 `YYYY-MM-DD | 类型 | 一句话摘要`类型REQ/CHG/FIX/DOC/CFG/DEP
+3. **中文优先**:与用户的思考、输出、交流,能中文尽量中文。
diff --git a/apps/web-tdesign/.env.development b/apps/web-tdesign/.env.development
index 1d10218..08aa2ad 100644
--- a/apps/web-tdesign/.env.development
+++ b/apps/web-tdesign/.env.development
@@ -1,5 +1,5 @@
# 端口号
-VITE_PORT=5999
+VITE_PORT=20100
VITE_BASE=/
diff --git a/apps/web-tdesign/.env.production b/apps/web-tdesign/.env.production
index 5375847..f61880e 100644
--- a/apps/web-tdesign/.env.production
+++ b/apps/web-tdesign/.env.production
@@ -1,7 +1,7 @@
VITE_BASE=/
-# 接口地址
-VITE_GLOB_API_URL=https://mock-napi.vben.pro/api
+# 接口地址(同源相对路径,由 nginx 将 /api/service 反代到后端 10100
+VITE_GLOB_API_URL=/api/service
# 是否开启压缩,可以设置为 none, brotli, gzip
VITE_COMPRESS=none
diff --git a/apps/web-tdesign/src/api/core/auth.ts b/apps/web-tdesign/src/api/core/auth.ts
index 816875d..6983584 100644
--- a/apps/web-tdesign/src/api/core/auth.ts
+++ b/apps/web-tdesign/src/api/core/auth.ts
@@ -23,7 +23,7 @@ export namespace AuthApi {
*/
export async function loginApi(data: AuthApi.LoginParams) {
return requestClient.post<AuthApi.LoginResult>(
- '/admin/v1/system/auth/login',
+ '/api/service/admin/system/auth/login',
data,
);
}
@@ -33,7 +33,7 @@ export async function loginApi(data: AuthApi.LoginParams) {
*/
export async function refreshTokenApi() {
return baseRequestClient.post<AuthApi.RefreshTokenResult>(
- '/admin/v1/system/auth/refresh',
+ '/api/service/admin/system/auth/refresh',
{
withCredentials: true,
},
@@ -44,7 +44,7 @@ export async function refreshTokenApi() {
* 退出登录
*/
export async function logoutApi() {
- return baseRequestClient.post('/admin/v1/system/auth/logout', {
+ return baseRequestClient.post('/api/service/admin/system/auth/logout', {
withCredentials: true,
});
}
@@ -53,8 +53,8 @@ export async function logoutApi() {
* 获取用户权限码
*/
export async function getAccessCodesApi() {
- const data = await requestClient.get<{ codes: string[] }>(
- '/admin/v1/system/auth/codes',
+ const data = await requestClient.post<{ codes: string[] }>(
+ '/api/service/admin/system/auth/codes',
);
return data.codes ?? [];
}
diff --git a/apps/web-tdesign/src/api/core/menu.ts b/apps/web-tdesign/src/api/core/menu.ts
index 86f260c..cf1d688 100644
--- a/apps/web-tdesign/src/api/core/menu.ts
+++ b/apps/web-tdesign/src/api/core/menu.ts
@@ -3,7 +3,7 @@ import type { RouteRecordStringComponent } from '@vben/types';
import { requestClient } from '#/api/request';
/**
- * 后端返回的菜单路由结构(/admin/v1/system/menu/routes 的 data
+ * 后端返回的菜单路由结构(/api/service/admin/system/menu/routes 的 data
*/
interface MenuRoutesResp {
routes: RouteRecordStringComponent[];
@@ -13,8 +13,8 @@ interface MenuRoutesResp {
* 获取用户所有菜单vben backend 动态路由)
*/
export async function getAllMenusApi() {
- const data = await requestClient.get<MenuRoutesResp>(
- '/admin/v1/system/menu/routes',
+ const data = await requestClient.post<MenuRoutesResp>(
+ '/api/service/admin/system/menu/routes',
);
return data.routes ?? [];
}
diff --git a/apps/web-tdesign/src/api/core/user.ts b/apps/web-tdesign/src/api/core/user.ts
index 1d04cdf..1d1f88a 100644
--- a/apps/web-tdesign/src/api/core/user.ts
+++ b/apps/web-tdesign/src/api/core/user.ts
@@ -3,7 +3,7 @@ import type { UserInfo } from '@vben/types';
import { requestClient } from '#/api/request';
/**
- * 后端返回的当前管理员信息结构(/admin/v1/system/auth/info 的 data
+ * 后端返回的当前管理员信息结构(/api/service/admin/system/auth/info 的 data
*/
interface AdminInfoResp {
adminId: number;
@@ -17,13 +17,13 @@ interface AdminInfoResp {
* 将后端字段映射为 vben UserInfo 结构
*/
export async function getUserInfoApi(): Promise<UserInfo> {
- const data = await requestClient.get<AdminInfoResp>(
- '/admin/v1/system/auth/info',
+ const data = await requestClient.post<AdminInfoResp>(
+ '/api/service/admin/system/auth/info',
);
return {
avatar: '',
desc: '',
- homePath: '/system/admin',
+ homePath: '/system/role',
realName: data.nickname ?? data.username,
roles: data.roles ?? [],
token: '',
diff --git a/apps/web-tdesign/src/api/house.ts b/apps/web-tdesign/src/api/house.ts
new file mode 100644
index 0000000..e0f3af4
--- /dev/null
+++ b/apps/web-tdesign/src/api/house.ts
@@ -0,0 +1,214 @@
+import { requestClient } from '#/api/request';
+
+// ---------- 小区/楼盘(/api/service/admin/house/community ----------
+export interface CommunityItem {
+ id: number;
+ name: string;
+ region: string;
+ businessDistrict: string;
+ address: string;
+ lng: number;
+ lat: number;
+ buildYear: number;
+ households: number;
+ plotRatio: number;
+ greenRate: number;
+ propertyCompany: string;
+ propertyFee: number;
+ developer: string;
+ source: string;
+}
+
+export interface CommunityListResp {
+ list: CommunityItem[];
+ total: number;
+}
+
+export function getCommunityList(data: {
+ page: number;
+ size: number;
+ keyword?: string;
+ region?: string;
+}) {
+ return requestClient.post<CommunityListResp>(
+ '/api/service/admin/house/community/list',
+ data,
+ );
+}
+
+export function createCommunity(data: Partial<CommunityItem>) {
+ return requestClient.post<{ id: number }>(
+ '/api/service/admin/house/community/create',
+ data,
+ );
+}
+
+export function updateCommunity(id: number, data: Partial<CommunityItem>) {
+ return requestClient.post(
+ `/api/service/admin/house/community/update/${id}`,
+ data,
+ );
+}
+
+export function deleteCommunity(id: number) {
+ return requestClient.post(`/api/service/admin/house/community/delete/${id}`);
+}
+
+// ---------- 房源(/api/service/admin/house/listing ----------
+export interface ListingItem {
+ id: number;
+ communityId: number;
+ communityName: string;
+ buildingId: number;
+ houseNo: string;
+ layout: string;
+ area: number;
+ usableArea: number;
+ orientation: string;
+ floor: number;
+ totalFloors: number;
+ decoration: string;
+ totalPrice: number;
+ unitPrice: number;
+ listPrice: number;
+ source: string;
+ sourceHouseId: string;
+ sourceUrl: string;
+ matchGroupId: number;
+ onMarketDays: number;
+ priceChangeCount: number;
+ status: number;
+ confidence: number;
+ isBargain: number;
+ listingTime: string;
+ createdAt: string;
+}
+
+export interface ListingListResp {
+ list: ListingItem[];
+ total: number;
+}
+
+export interface ListingQuery {
+ page: number;
+ size: number;
+ communityId?: number;
+ keyword?: string;
+ layout?: string;
+ region?: string;
+ source?: string;
+ priceMin?: number;
+ priceMax?: number;
+ areaMin?: number;
+ areaMax?: number;
+ status?: number;
+ isBargain?: number;
+ confidence?: number;
+}
+
+export function getListingList(data: ListingQuery) {
+ return requestClient.post<ListingListResp>(
+ '/api/service/admin/house/listing/list',
+ data,
+ );
+}
+
+export function createListing(data: Partial<ListingItem>) {
+ return requestClient.post<{ id: number }>(
+ '/api/service/admin/house/listing/create',
+ data,
+ );
+}
+
+export function updateListing(id: number, data: Partial<ListingItem>) {
+ return requestClient.post(
+ `/api/service/admin/house/listing/update/${id}`,
+ data,
+ );
+}
+
+export function deleteListing(id: number) {
+ return requestClient.post(`/api/service/admin/house/listing/delete/${id}`);
+}
+
+export function batchMarkListing(data: {
+ ids: number[];
+ field: string;
+ value: number;
+}) {
+ return requestClient.post<{ affected: number }>(
+ '/api/service/admin/house/listing/batch-mark',
+ data,
+ );
+}
+
+// ---------- 看板(/api/service/admin/house/dashboard ----------
+export interface OverviewResp {
+ communityCount: number;
+ listingCount: number;
+ bargainCount: number;
+ lowConfidence: number;
+ avgUnitPrice: number;
+ avgTotalPrice: number;
+ avgListDays: number;
+}
+
+export interface MapPoint {
+ communityId: number;
+ name: string;
+ region: string;
+ lng: number;
+ lat: number;
+ avgUnitPrice: number;
+ listingCount: number;
+ bargainCount: number;
+}
+
+export interface TrendPoint {
+ date: string;
+ avgListPrice: number;
+ avgDealPrice: number;
+}
+
+export interface RegionAgg {
+ region: string;
+ avgUnitPrice: number;
+ listingCount: number;
+ bargainCount: number;
+}
+
+export function getDashboardOverview(data: { region?: string }) {
+ return requestClient.post<OverviewResp>(
+ '/api/service/admin/house/dashboard/overview',
+ data,
+ );
+}
+
+export function getMapPoints(data: {
+ region?: string;
+ priceMin?: number;
+ priceMax?: number;
+ status?: number;
+}) {
+ return requestClient.post<{ points: MapPoint[] }>(
+ '/api/service/admin/house/dashboard/map-points',
+ data,
+ );
+}
+
+export function getPriceTrend(data: {
+ communityId?: number;
+ region?: string;
+ limit?: number;
+}) {
+ return requestClient.post<{ trend: TrendPoint[] }>(
+ '/api/service/admin/house/dashboard/price-trend',
+ data,
+ );
+}
+
+export function getAggregateRegion() {
+ return requestClient.post<{ list: RegionAgg[] }>(
+ '/api/service/admin/house/dashboard/aggregate-region',
+ );
+}
diff --git a/apps/web-tdesign/src/api/log.ts b/apps/web-tdesign/src/api/log.ts
index 92f3ef5..f0b283a 100644
--- a/apps/web-tdesign/src/api/log.ts
+++ b/apps/web-tdesign/src/api/log.ts
@@ -8,17 +8,18 @@ export interface LogFile {
}
export function getLogFiles() {
- return requestClient.get<{ dir: string; files: LogFile[] }>(
- '/admin/v1/base/log/files',
+ return requestClient.post<{ dir: string; files: LogFile[] }>(
+ '/api/service/admin/base/log/files',
);
}
-export function getLogTail(params: {
+export function getLogTail(data: {
file: string;
lines: number;
keyword?: string;
}) {
- return requestClient.get<{ lines: string[] }>('/admin/v1/base/log/tail', {
- params,
- });
+ return requestClient.post<{ lines: string[] }>(
+ '/api/service/admin/base/log/tail',
+ data,
+ );
}
diff --git a/apps/web-tdesign/src/api/system.ts b/apps/web-tdesign/src/api/system.ts
index 185f27e..c80e71c 100644
--- a/apps/web-tdesign/src/api/system.ts
+++ b/apps/web-tdesign/src/api/system.ts
@@ -1,6 +1,6 @@
import { requestClient } from '#/api/request';
-// ---------- 管理员(/admin/v1/admin ----------
+// ---------- 管理员(/api/service/admin/admin ----------
export interface AdminItem {
id: number;
username: string;
@@ -16,12 +16,15 @@ export interface AdminListResp {
total: number;
}
-export function getAdminList(params: {
+export function getAdminList(data: {
page: number;
size: number;
keyword?: string;
}) {
- return requestClient.get<AdminListResp>('/admin/v1/admin', { params });
+ return requestClient.post<AdminListResp>(
+ '/api/service/admin/admin/list',
+ data,
+ );
}
export function createAdmin(data: {
@@ -30,25 +33,30 @@ export function createAdmin(data: {
nickname: string;
roleIds: number[];
}) {
- return requestClient.post<{ id: number }>('/admin/v1/admin', data);
+ return requestClient.post<{ id: number }>(
+ '/api/service/admin/admin/create',
+ data,
+ );
}
export function updateAdmin(
id: number,
data: { nickname: string; status: number; roleIds: number[] },
) {
- return requestClient.put(`/admin/v1/admin/${id}`, data);
+ return requestClient.post(`/api/service/admin/admin/update/${id}`, data);
}
export function resetAdminPassword(id: number, password: string) {
- return requestClient.put(`/admin/v1/admin/${id}/password`, { password });
+ return requestClient.post(`/api/service/admin/admin/resetPwd/${id}`, {
+ password,
+ });
}
export function deleteAdmin(id: number) {
- return requestClient.delete(`/admin/v1/admin/${id}`);
+ return requestClient.post(`/api/service/admin/admin/delete/${id}`);
}
-// ---------- 角色(/admin/v1/system/role ----------
+// ---------- 角色(/api/service/admin/system/role ----------
export interface RoleItem {
id: number;
code: string;
@@ -63,12 +71,15 @@ export interface RoleListResp {
total: number;
}
-export function getRoleList(params: {
+export function getRoleList(data: {
page: number;
size: number;
keyword?: string;
}) {
- return requestClient.get<RoleListResp>('/admin/v1/system/role', { params });
+ return requestClient.post<RoleListResp>(
+ '/api/service/admin/system/role/list',
+ data,
+ );
}
export function createRole(data: {
@@ -77,21 +88,24 @@ export function createRole(data: {
status: number;
menuIds: number[];
}) {
- return requestClient.post<{ id: number }>('/admin/v1/system/role', data);
+ return requestClient.post<{ id: number }>(
+ '/api/service/admin/system/role/create',
+ data,
+ );
}
export function updateRole(
id: number,
data: { name: string; status: number; menuIds: number[] },
) {
- return requestClient.put(`/admin/v1/system/role/${id}`, data);
+ return requestClient.post(`/api/service/admin/system/role/update/${id}`, data);
}
export function deleteRole(id: number) {
- return requestClient.delete(`/admin/v1/system/role/${id}`);
+ return requestClient.post(`/api/service/admin/system/role/delete/${id}`);
}
-// ---------- 菜单(/admin/v1/system/menu ----------
+// ---------- 菜单(/api/service/admin/system/menu ----------
export interface MenuNode {
id: number;
parentId: number;
@@ -108,17 +122,80 @@ export interface MenuNode {
}
export function getMenuTree() {
- return requestClient.get<{ tree: MenuNode[] }>('/admin/v1/system/menu/tree');
+ return requestClient.post<{ tree: MenuNode[] }>(
+ '/api/service/admin/system/menu/tree',
+ );
}
export function createMenu(data: Partial<MenuNode>) {
- return requestClient.post<{ id: number }>('/admin/v1/system/menu', data);
+ return requestClient.post<{ id: number }>(
+ '/api/service/admin/system/menu/create',
+ data,
+ );
}
export function updateMenu(id: number, data: Partial<MenuNode>) {
- return requestClient.put(`/admin/v1/system/menu/${id}`, data);
+ return requestClient.post(`/api/service/admin/system/menu/update/${id}`, data);
}
export function deleteMenu(id: number) {
- return requestClient.delete(`/admin/v1/system/menu/${id}`);
+ return requestClient.post(`/api/service/admin/system/menu/delete/${id}`);
+}
+
+// ---------- 操作日志(/api/service/admin/system/log ----------
+export interface LogItem {
+ id: number;
+ adminId: number;
+ permission: string;
+ method: string;
+ path: string;
+ ip: string;
+ param: string;
+ durationMs: number;
+ statusCode: number;
+ createdAt: string;
+}
+
+export interface LogListResp {
+ list: LogItem[];
+ total: number;
+}
+
+/** 操作日志分页查询keyword 匹配权限码/路径/IP */
+export function getSystemLogList(data: {
+ page: number;
+ size: number;
+ keyword?: string;
+ adminId?: number;
+}) {
+ return requestClient.post<LogListResp>('/api/service/admin/system/log', data);
+}
+
+// ---------- 登录日志(/api/service/admin/system/login-log ----------
+export interface LoginLogItem {
+ id: number;
+ username: string;
+ ip: string;
+ userAgent: string;
+ status: number; // 1 成功 0 失败
+ failReason: string;
+ createdAt: string;
+}
+
+export interface LoginLogListResp {
+ list: LoginLogItem[];
+ total: number;
+}
+
+/** 登录日志分页查询username 匹配账号status 按结果过滤) */
+export function getLoginLogList(data: {
+ page: number;
+ size: number;
+ username?: string;
+ status?: number;
+}) {
+ return requestClient.post<LoginLogListResp>(
+ '/api/service/admin/system/login-log',
+ data,
+ );
}
diff --git a/apps/web-tdesign/src/bootstrap.ts b/apps/web-tdesign/src/bootstrap.ts
index ad7fef6..9b24a7b 100644
--- a/apps/web-tdesign/src/bootstrap.ts
+++ b/apps/web-tdesign/src/bootstrap.ts
@@ -7,6 +7,7 @@ import { initStores } from '@vben/stores';
import '@vben/styles';
import { useTitle } from '@vueuse/core';
+import TDesign from 'tdesign-vue-next';
import { $t, setupI18n } from '#/locales';
@@ -36,6 +37,9 @@ async function bootstrap(namespace: string) {
const app = createApp(App);
+ // 全局注册 tdesign-vue-next 组件t-table/t-button/t-dialog 等业务页面直接使用)
+ app.use(TDesign);
+
// 注册v-loading指令
registerLoadingDirective(app, {
loading: 'loading', // 在这里可以自定义指令名称也可以明确提供false表示不注册这个指令
diff --git a/apps/web-tdesign/src/router/access.ts b/apps/web-tdesign/src/router/access.ts
index 08cb4b0..973332c 100644
--- a/apps/web-tdesign/src/router/access.ts
+++ b/apps/web-tdesign/src/router/access.ts
@@ -14,6 +14,8 @@ import { $t } from '#/locales';
const forbiddenComponent = () => import('#/views/_core/fallback/forbidden.vue');
async function generateAccess(options: GenerateMenuAndRoutesOptions) {
+ // 保持原始的 pageMapvben 内部 normalizeViewPath 会在 generate-routes-backend
+ // 中再次处理 keys 归一化。此处直接交给 vben 即可。
const pageMap: ComponentRecordType = import.meta.glob('../views/**/*.vue');
const layoutMap: ComponentRecordType = {
diff --git a/apps/web-tdesign/src/views/_core/authentication/login.vue b/apps/web-tdesign/src/views/_core/authentication/login.vue
index 89af0c2..62d04ae 100644
--- a/apps/web-tdesign/src/views/_core/authentication/login.vue
+++ b/apps/web-tdesign/src/views/_core/authentication/login.vue
@@ -1,6 +1,5 @@
<script lang="ts" setup>
import type { VbenFormSchema } from '@vben/common-ui';
-import type { BasicOption } from '@vben/types';
import { computed, markRaw } from 'vue';
@@ -13,58 +12,13 @@ defineOptions({ name: 'Login' });
const authStore = useAuthStore();
-const MOCK_USER_OPTIONS: BasicOption[] = [
- {
- label: 'Super',
- value: 'vben',
- },
- {
- label: 'Admin',
- value: 'admin',
- },
- {
- label: 'User',
- value: 'jack',
- },
-];
-
const formSchema = computed((): VbenFormSchema[] => {
return [
- {
- component: 'VbenSelect',
- componentProps: {
- options: MOCK_USER_OPTIONS,
- placeholder: $t('authentication.selectAccount'),
- },
- fieldName: 'selectAccount',
- label: $t('authentication.selectAccount'),
- rules: z
- .string()
- .min(1, { message: $t('authentication.selectAccount') })
- .optional()
- .default('vben'),
- },
{
component: 'VbenInput',
componentProps: {
placeholder: $t('authentication.usernameTip'),
},
- dependencies: {
- trigger(values, form) {
- if (values.selectAccount) {
- const findUser = MOCK_USER_OPTIONS.find(
- (item) => item.value === values.selectAccount,
- );
- if (findUser) {
- form.setValues({
- password: '123456',
- username: findUser.value,
- });
- }
- }
- },
- triggerFields: ['selectAccount'],
- },
fieldName: 'username',
label: $t('authentication.username'),
rules: z.string().min(1, { message: $t('authentication.usernameTip') }),
diff --git a/apps/web-tdesign/src/views/house/community/index.vue b/apps/web-tdesign/src/views/house/community/index.vue
new file mode 100644
index 0000000..5aae93a
--- /dev/null
+++ b/apps/web-tdesign/src/views/house/community/index.vue
@@ -0,0 +1,220 @@
+<script lang="ts" setup>
+import type { CommunityItem } from '#/api/house';
+
+import { onMounted, reactive, ref } from 'vue';
+
+import { useAccess } from '@vben/access';
+import { Page } from '@vben/common-ui';
+
+import { DialogPlugin, MessagePlugin } from 'tdesign-vue-next';
+
+import {
+ createCommunity,
+ deleteCommunity,
+ getCommunityList,
+ updateCommunity,
+} from '#/api/house';
+
+// 小区管理:列表 + 新增/编辑弹窗 + 删除(软删除)
+const { hasAccessByCodes } = useAccess();
+
+const loading = ref(false);
+const list = ref<CommunityItem[]>([]);
+const dialogOpen = ref(false);
+const editing = ref<null | CommunityItem>(null);
+
+const regionOptions = [
+ '云岩区', '南明区', '观山湖区', '花溪区', '乌当区', '白云区',
+ '清镇市', '修文县', '开阳县', '息烽县',
+].map((r) => ({ label: r, value: r }));
+
+const query = reactive({ page: 1, size: 10, keyword: '', region: '' });
+const pagination = reactive({ current: 1, pageSize: 10, total: 0 });
+
+const form = reactive({
+ name: '',
+ region: '',
+ businessDistrict: '',
+ address: '',
+ lng: 0,
+ lat: 0,
+ buildYear: 0,
+ households: 0,
+ plotRatio: 0,
+ greenRate: 0,
+ propertyCompany: '',
+ propertyFee: 0,
+ developer: '',
+});
+
+async function load() {
+ loading.value = true;
+ try {
+ const data = await getCommunityList(query);
+ list.value = data.list ?? [];
+ pagination.total = data.total ?? 0;
+ } finally {
+ loading.value = false;
+ }
+}
+
+function openCreate() {
+ editing.value = null;
+ Object.assign(form, {
+ name: '', region: '', businessDistrict: '', address: '', lng: 0, lat: 0,
+ buildYear: 0, households: 0, plotRatio: 0, greenRate: 0,
+ propertyCompany: '', propertyFee: 0, developer: '',
+ });
+ dialogOpen.value = true;
+}
+
+function openEdit(row: CommunityItem) {
+ editing.value = row;
+ Object.assign(form, { ...row });
+ dialogOpen.value = true;
+}
+
+async function submit() {
+ if (editing.value) {
+ await updateCommunity(editing.value.id, form);
+ } else {
+ await createCommunity(form);
+ }
+ MessagePlugin.success('保存成功');
+ dialogOpen.value = false;
+ load();
+}
+
+function onDelete(row: CommunityItem) {
+ const d = DialogPlugin.confirm({
+ header: `确认删除「${row.name}」?`,
+ onConfirm: async () => {
+ await deleteCommunity(row.id);
+ MessagePlugin.success('删除成功');
+ load();
+ d.destroy();
+ },
+ });
+}
+
+const columns = [
+ { colKey: 'id', title: 'ID', width: 70 },
+ { colKey: 'name', title: '小区名称', width: 180 },
+ { colKey: 'region', title: '区县', width: 100 },
+ { colKey: 'businessDistrict', title: '板块', width: 120 },
+ { colKey: 'address', title: '地址' },
+ { colKey: 'buildYear', title: '建成年份', width: 90 },
+ { colKey: 'propertyCompany', title: '物业', width: 140 },
+ { colKey: 'op', title: '操作', width: 160 },
+];
+
+function onPageChange(p: { current: number; pageSize: number }) {
+ query.page = p.current;
+ query.size = p.pageSize;
+ pagination.current = p.current;
+ pagination.pageSize = p.pageSize;
+ load();
+}
+
+onMounted(load);
+</script>
+
+<template>
+ <Page auto-content-height>
+ <div class="mb-3 flex items-center justify-between">
+ <div class="flex items-center gap-2">
+ <t-input
+ v-model="query.keyword"
+ clearable
+ placeholder="小区名称"
+ style="width: 200px"
+ @enter="load"
+ />
+ <t-select
+ v-model="query.region"
+ clearable
+ :options="regionOptions"
+ placeholder="区县"
+ style="width: 140px"
+ />
+ <t-button theme="primary" @click="load">查询</t-button>
+ </div>
+ <t-button
+ v-if="hasAccessByCodes(['house:community:create'])"
+ theme="primary"
+ @click="openCreate"
+ >
+ 新增小区
+ </t-button>
+ </div>
+
+ <t-table
+ row-key="id"
+ :data="list"
+ :columns="columns"
+ :loading="loading"
+ :pagination="pagination"
+ @page-change="onPageChange"
+ >
+ <template #op="{ row }">
+ <t-button
+ v-if="hasAccessByCodes(['house:community:update'])"
+ size="small"
+ theme="primary"
+ variant="text"
+ @click="openEdit(row)"
+ >
+ 编辑
+ </t-button>
+ <t-button
+ v-if="hasAccessByCodes(['house:community:delete'])"
+ size="small"
+ theme="danger"
+ variant="text"
+ @click="onDelete(row)"
+ >
+ 删除
+ </t-button>
+ </template>
+ </t-table>
+
+ <t-dialog
+ v-model:visible="dialogOpen"
+ :header="editing ? '编辑小区' : '新增小区'"
+ width="640px"
+ :on-confirm="submit"
+ >
+ <t-form label-align="right" label-width="90px">
+ <div class="grid grid-cols-2 gap-x-4">
+ <t-form-item label="小区名称" required>
+ <t-input v-model="form.name" placeholder="如:中天未来方舟" />
+ </t-form-item>
+ <t-form-item label="区县">
+ <t-select v-model="form.region" clearable :options="regionOptions" />
+ </t-form-item>
+ <t-form-item label="板块">
+ <t-input v-model="form.businessDistrict" placeholder="如:会展城" />
+ </t-form-item>
+ <t-form-item label="建成年份">
+ <t-input-number v-model="form.buildYear" theme="normal" :min="0" />
+ </t-form-item>
+ <t-form-item label="物业公司">
+ <t-input v-model="form.propertyCompany" />
+ </t-form-item>
+ <t-form-item label="开发商">
+ <t-input v-model="form.developer" />
+ </t-form-item>
+ <t-form-item label="地址" class="col-span-2">
+ <t-input v-model="form.address" />
+ </t-form-item>
+ <t-form-item label="经度">
+ <t-input-number v-model="form.lng" theme="normal" :decimal-places="6" />
+ </t-form-item>
+ <t-form-item label="纬度">
+ <t-input-number v-model="form.lat" theme="normal" :decimal-places="6" />
+ </t-form-item>
+ </div>
+ </t-form>
+ </t-dialog>
+ </Page>
+</template>
diff --git a/apps/web-tdesign/src/views/house/dashboard/index.vue b/apps/web-tdesign/src/views/house/dashboard/index.vue
new file mode 100644
index 0000000..bed114c
--- /dev/null
+++ b/apps/web-tdesign/src/views/house/dashboard/index.vue
@@ -0,0 +1,132 @@
+<script lang="ts" setup>
+import type { EchartsUIType } from '@vben/plugins/echarts';
+import type { OverviewResp, RegionAgg, TrendPoint } from '#/api/house';
+
+import { onMounted, ref } from 'vue';
+
+import { Page } from '@vben/common-ui';
+import { EchartsUI, useEcharts } from '@vben/plugins/echarts';
+
+import {
+ getAggregateRegion,
+ getDashboardOverview,
+ getPriceTrend,
+} from '#/api/house';
+
+// 数据看板:概览卡片 + 区域均价柱状图 + 价格趋势折线图
+const overview = ref<OverviewResp>({
+ communityCount: 0,
+ listingCount: 0,
+ bargainCount: 0,
+ lowConfidence: 0,
+ avgUnitPrice: 0,
+ avgTotalPrice: 0,
+ avgListDays: 0,
+});
+
+const regionChartRef = ref<EchartsUIType>();
+const trendChartRef = ref<EchartsUIType>();
+const { renderEcharts: renderRegion } = useEcharts(regionChartRef);
+const { renderEcharts: renderTrend } = useEcharts(trendChartRef);
+
+async function load() {
+ overview.value = await getDashboardOverview({});
+ const regionList: RegionAgg[] = (await getAggregateRegion()).list ?? [];
+ const trend: TrendPoint[] = (await getPriceTrend({ limit: 30 })).trend ?? [];
+
+ renderRegion({
+ tooltip: { trigger: 'axis' },
+ grid: { left: 60, right: 20, top: 30, bottom: 40 },
+ xAxis: {
+ type: 'category',
+ data: regionList.map((r) => r.region),
+ axisLabel: { rotate: 30 },
+ },
+ yAxis: { type: 'value', name: '元/㎡' },
+ series: [
+ {
+ type: 'bar',
+ data: regionList.map((r) => Math.round(r.avgUnitPrice)),
+ itemStyle: { color: '#5DCAA5' },
+ barMaxWidth: 40,
+ },
+ ],
+ });
+
+ renderTrend({
+ tooltip: { trigger: 'axis' },
+ legend: { data: ['挂牌均价', '成交均价'] },
+ grid: { left: 60, right: 20, top: 40, bottom: 30 },
+ xAxis: { type: 'category', data: trend.map((t) => t.date) },
+ yAxis: { type: 'value', name: '万元' },
+ series: [
+ {
+ name: '挂牌均价',
+ type: 'line',
+ data: trend.map((t) => t.avgListPrice),
+ itemStyle: { color: '#EF9F27' },
+ lineStyle: { type: 'dashed' },
+ smooth: true,
+ },
+ {
+ name: '成交均价',
+ type: 'line',
+ data: trend.map((t) => t.avgDealPrice),
+ itemStyle: { color: '#5DCAA5' },
+ smooth: true,
+ },
+ ],
+ });
+}
+
+onMounted(load);
+</script>
+
+<template>
+ <Page auto-content-height>
+ <div class="mb-4 grid grid-cols-2 gap-3 md:grid-cols-6">
+ <div class="rounded-lg border p-4">
+ <p class="text-xs opacity-70">小区数</p>
+ <p class="mt-1 text-2xl font-medium">{{ overview.communityCount }}</p>
+ </div>
+ <div class="rounded-lg border p-4">
+ <p class="text-xs opacity-70">在售房源</p>
+ <p class="mt-1 text-2xl font-medium">{{ overview.listingCount }}</p>
+ </div>
+ <div class="rounded-lg border p-4">
+ <p class="text-xs opacity-70">笋盘</p>
+ <p class="mt-1 text-2xl font-medium">{{ overview.bargainCount }}</p>
+ </div>
+ <div class="rounded-lg border p-4">
+ <p class="text-xs opacity-70">低可信房源</p>
+ <p class="mt-1 text-2xl font-medium">{{ overview.lowConfidence }}</p>
+ </div>
+ <div class="rounded-lg border p-4">
+ <p class="text-xs opacity-70">在售均价(元/㎡)</p>
+ <p class="mt-1 text-2xl font-medium">
+ {{ Math.round(overview.avgUnitPrice) }}
+ </p>
+ </div>
+ <div class="rounded-lg border p-4">
+ <p class="text-xs opacity-70">平均挂牌天数</p>
+ <p class="mt-1 text-2xl font-medium">
+ {{ Math.round(overview.avgListDays) }}
+ </p>
+ </div>
+ </div>
+
+ <div class="mb-4 rounded-lg border p-4">
+ <h3 class="mb-2 text-sm font-medium">区域在售均价</h3>
+ <div style="height: 300px">
+ <EchartsUI ref="regionChartRef" style="height: 100%" />
+ </div>
+ </div>
+
+ <div class="rounded-lg border p-4">
+ <h3 class="mb-2 text-sm font-medium">价格趋势(挂牌 vs 成交)</h3>
+ <div style="height: 320px">
+ <EchartsUI ref="trendChartRef" style="height: 100%" />
+ </div>
+ </div>
+ </Page>
+</template>
diff --git a/apps/web-tdesign/src/views/house/data/index.vue b/apps/web-tdesign/src/views/house/data/index.vue
new file mode 100644
index 0000000..9666fd8
--- /dev/null
+++ b/apps/web-tdesign/src/views/house/data/index.vue
@@ -0,0 +1,18 @@
+<script lang="ts" setup>
+import { Page } from '@vben/common-ui';
+
+// 数据明细:价格快照 / 成交记录 / 配套 / 学区划片。
+// 阶段 2 起接入采集器写入的数据后,此处按类别拆分为多个列表页。
+</script>
+
+<template>
+ <Page auto-content-height>
+ <div class="rounded-lg border border-dashed p-8 text-center text-muted-foreground">
+ <p class="text-base font-medium">数据明细</p>
+ <p class="mt-2 text-sm">
+ 价格快照、成交记录、配套 POI、学区划片将在采集器接入后于此展示。
+ </p>
+ <p class="mt-1 text-sm">当前阶段先完成小区 / 房源管理与数据看板。</p>
+ </div>
+ </Page>
+</template>
diff --git a/apps/web-tdesign/src/views/house/listing/index.vue b/apps/web-tdesign/src/views/house/listing/index.vue
new file mode 100644
index 0000000..fc352d5
--- /dev/null
+++ b/apps/web-tdesign/src/views/house/listing/index.vue
@@ -0,0 +1,291 @@
+<script lang="ts" setup>
+import type { ListingItem } from '#/api/house';
+
+import { onMounted, reactive, ref } from 'vue';
+
+import { useAccess } from '@vben/access';
+import { Page } from '@vben/common-ui';
+
+import { DialogPlugin, MessagePlugin } from 'tdesign-vue-next';
+
+import {
+ batchMarkListing,
+ deleteListing,
+ getListingList,
+ updateListing,
+} from '#/api/house';
+
+// 房源管理:多维筛选 + 多选批量标记(笋盘/低可信/状态)+ 编辑/删除
+const { hasAccessByCodes } = useAccess();
+
+const loading = ref(false);
+const list = ref<ListingItem[]>([]);
+const selectedKeys = ref<number[]>([]);
+const dialogOpen = ref(false);
+const editing = ref<null | ListingItem>(null);
+
+const regionOptions = [
+ '云岩区', '南明区', '观山湖区', '花溪区', '乌当区', '白云区',
+ '清镇市', '修文县', '开阳县', '息烽县',
+].map((r) => ({ label: r, value: r }));
+
+const query = reactive({
+ page: 1,
+ size: 10,
+ keyword: '',
+ region: '',
+ layout: '',
+ source: '',
+ priceMin: undefined as number | undefined,
+ priceMax: undefined as number | undefined,
+ status: 0,
+ isBargain: 0,
+ confidence: 0,
+});
+const pagination = reactive({ current: 1, pageSize: 10, total: 0 });
+
+async function load() {
+ loading.value = true;
+ try {
+ const data = await getListingList(query);
+ list.value = data.list ?? [];
+ pagination.total = data.total ?? 0;
+ } finally {
+ loading.value = false;
+ }
+}
+
+function reset() {
+ Object.assign(query, {
+ keyword: '', region: '', layout: '', source: '',
+ priceMin: undefined, priceMax: undefined, status: 0, isBargain: 0, confidence: 0,
+ });
+ query.page = 1;
+ pagination.current = 1;
+ load();
+}
+
+function onSelectChange(keys: Array<string | number>) {
+ selectedKeys.value = keys.map(Number);
+}
+
+/** 批量标记(笋盘/低可信/状态) */
+async function onBatchMark(field: string, value: number) {
+ if (selectedKeys.value.length === 0) {
+ MessagePlugin.warning('请先勾选房源');
+ return;
+ }
+ await batchMarkListing({ ids: selectedKeys.value, field, value });
+ MessagePlugin.success('标记成功');
+ load();
+}
+
+function openEdit(row: ListingItem) {
+ editing.value = row;
+ dialogOpen.value = true;
+}
+
+async function submit() {
+ if (editing.value) {
+ await updateListing(editing.value.id, {
+ status: editing.value.status,
+ confidence: editing.value.confidence,
+ isBargain: editing.value.isBargain,
+ listPrice: editing.value.listPrice,
+ unitPrice: editing.value.unitPrice,
+ totalPrice: editing.value.totalPrice,
+ });
+ }
+ MessagePlugin.success('保存成功');
+ dialogOpen.value = false;
+ load();
+}
+
+function onDelete(row: ListingItem) {
+ const d = DialogPlugin.confirm({
+ header: '确认删除该房源?',
+ onConfirm: async () => {
+ await deleteListing(row.id);
+ MessagePlugin.success('删除成功');
+ load();
+ d.destroy();
+ },
+ });
+}
+
+const columns = [
+ { colKey: 'row-select', type: 'multiple', width: 46 },
+ { colKey: 'id', title: 'ID', width: 70 },
+ { colKey: 'communityName', title: '小区', width: 160 },
+ { colKey: 'layout', title: '户型', width: 100 },
+ { colKey: 'area', title: '面积㎡', width: 90 },
+ { colKey: 'totalPrice', title: '总价(万)', width: 100 },
+ { colKey: 'unitPrice', title: '单价', width: 100 },
+ { colKey: 'source', title: '来源', width: 90 },
+ { colKey: 'onMarketDays', title: '挂牌天数', width: 90 },
+ { colKey: 'statusText', title: '状态', width: 80 },
+ { colKey: 'flagText', title: '标记', width: 140 },
+ { colKey: 'op', title: '操作', width: 140 },
+];
+
+function onPageChange(p: { current: number; pageSize: number }) {
+ query.page = p.current;
+ query.size = p.pageSize;
+ pagination.current = p.current;
+ pagination.pageSize = p.pageSize;
+ load();
+}
+
+onMounted(load);
+</script>
+
+<template>
+ <Page auto-content-height>
+ <div class="mb-3 flex flex-wrap items-center gap-2">
+ <t-input
+ v-model="query.keyword"
+ clearable
+ placeholder="房号/户型"
+ style="width: 160px"
+ @enter="load"
+ />
+ <t-select
+ v-model="query.region"
+ clearable
+ :options="regionOptions"
+ placeholder="区县"
+ style="width: 130px"
+ />
+ <t-input
+ v-model="query.layout"
+ clearable
+ placeholder="户型(如3室2厅)"
+ style="width: 140px"
+ />
+ <t-input-number
+ v-model="query.priceMin"
+ theme="normal"
+ placeholder="总价下限"
+ style="width: 120px"
+ />
+ <t-input-number
+ v-model="query.priceMax"
+ theme="normal"
+ placeholder="总价上限"
+ style="width: 120px"
+ />
+ <t-select
+ v-model="query.status"
+ :options="[
+ { label: '全部状态', value: 0 },
+ { label: '在售', value: 1 },
+ { label: '下架', value: 2 },
+ { label: '成交', value: 3 },
+ ]"
+ style="width: 110px"
+ />
+ <t-button theme="primary" @click="load">查询</t-button>
+ <t-button variant="outline" @click="reset">重置</t-button>
+ <span class="ml-auto flex items-center gap-2">
+ <t-button
+ v-if="hasAccessByCodes(['house:listing:batchMark'])"
+ variant="outline"
+ @click="onBatchMark('isBargain', 1)"
+ >
+ 标记笋盘
+ </t-button>
+ <t-button
+ v-if="hasAccessByCodes(['house:listing:batchMark'])"
+ variant="outline"
+ @click="onBatchMark('confidence', 1)"
+ >
+ 标记低可信
+ </t-button>
+ </span>
+ </div>
+
+ <t-table
+ row-key="id"
+ :data="list"
+ :columns="columns"
+ :loading="loading"
+ :pagination="pagination"
+ :selected-row-keys="selectedKeys"
+ @page-change="onPageChange"
+ @select-change="onSelectChange"
+ >
+ <template #statusText="{ row }">
+ <t-tag
+ :theme="row.status === 1 ? 'success' : row.status === 2 ? 'default' : 'primary'"
+ variant="light"
+ size="small"
+ >
+ {{ row.status === 1 ? '在售' : row.status === 2 ? '下架' : '成交' }}
+ </t-tag>
+ </template>
+ <template #flagText="{ row }">
+ <span class="flex items-center gap-1">
+ <t-tag v-if="row.isBargain === 1" theme="warning" variant="light" size="small">笋盘</t-tag>
+ <t-tag v-if="row.confidence === 1" theme="danger" variant="light" size="small">低可信</t-tag>
+ </span>
+ </template>
+ <template #op="{ row }">
+ <t-button
+ v-if="hasAccessByCodes(['house:listing:update'])"
+ size="small"
+ theme="primary"
+ variant="text"
+ @click="openEdit(row)"
+ >
+ 编辑
+ </t-button>
+ <t-button
+ v-if="hasAccessByCodes(['house:listing:delete'])"
+ size="small"
+ theme="danger"
+ variant="text"
+ @click="onDelete(row)"
+ >
+ 删除
+ </t-button>
+ </template>
+ </t-table>
+
+ <t-dialog
+ v-model:visible="dialogOpen"
+ header="编辑房源"
+ width="560px"
+ :on-confirm="submit"
+ >
+ <t-form v-if="editing" label-align="right" label-width="90px">
+ <div class="grid grid-cols-2 gap-x-4">
+ <t-form-item label="挂牌价(万)">
+ <t-input-number v-model="editing.listPrice" theme="normal" />
+ </t-form-item>
+ <t-form-item label="单价(元/㎡)">
+ <t-input-number v-model="editing.unitPrice" theme="normal" />
+ </t-form-item>
+ <t-form-item label="总价(万)">
+ <t-input-number v-model="editing.totalPrice" theme="normal" />
+ </t-form-item>
+ <t-form-item label="状态">
+ <t-select
+ v-model="editing.status"
+ :options="[
+ { label: '在售', value: 1 },
+ { label: '下架', value: 2 },
+ { label: '成交', value: 3 },
+ ]"
+ />
+ </t-form-item>
+ <t-form-item label="笋盘">
+ <t-switch v-model="editing.isBargain" :custom-value="[1, 0]" />
+ </t-form-item>
+ <t-form-item label="低可信">
+ <t-switch v-model="editing.confidence" :custom-value="[1, 0]" />
+ </t-form-item>
+ </div>
+ </t-form>
+ </t-dialog>
+ </Page>
+</template>
diff --git a/apps/web-tdesign/src/views/system/admin/index.vue b/apps/web-tdesign/src/views/system/admin/index.vue
index e9fdab7..28b8d74 100644
--- a/apps/web-tdesign/src/views/system/admin/index.vue
+++ b/apps/web-tdesign/src/views/system/admin/index.vue
@@ -94,7 +94,7 @@ async function submit() {
function onDelete(row: AdminItem) {
const d = DialogPlugin.confirm({
- header: '确认删除该管理员?',
+ header: '确认删除该人员?',
onConfirm: async () => {
await deleteAdmin(row.id);
MessagePlugin.success('删除成功');
@@ -159,11 +159,11 @@ onMounted(() => {
<t-button theme="primary" @click="load">查询</t-button>
</div>
<t-button
- v-if="hasAccessByCodes(['system:admin:create'])"
+ v-if="hasAccessByCodes(['system:personnel:create'])"
theme="primary"
@click="openCreate"
>
- 新增管理员
+ 新增人员
</t-button>
</div>
@@ -179,7 +179,7 @@ onMounted(() => {
<template #roleNamesText="{ row }">{{ (row.roleNames ?? []).join(', ') }}</template>
<template #op="{ row }">
<t-button
- v-if="hasAccessByCodes(['system:admin:update'])"
+ v-if="hasAccessByCodes(['system:personnel:update'])"
size="small"
theme="primary"
variant="text"
@@ -188,7 +188,7 @@ onMounted(() => {
编辑
</t-button>
<t-button
- v-if="hasAccessByCodes(['system:admin:resetPwd'])"
+ v-if="hasAccessByCodes(['system:personnel:resetPwd'])"
size="small"
theme="primary"
variant="text"
@@ -197,7 +197,7 @@ onMounted(() => {
重置密码
</t-button>
<t-button
- v-if="hasAccessByCodes(['system:admin:delete'])"
+ v-if="hasAccessByCodes(['system:personnel:delete'])"
size="small"
theme="danger"
variant="text"
@@ -210,7 +210,7 @@ onMounted(() => {
<t-dialog
v-model:visible="dialogOpen"
- :header="editing ? '编辑管理员' : '新增管理员'"
+ :header="editing ? '编辑人员' : '新增人员'"
:on-confirm="submit"
>
<t-form label-align="right" label-width="80px">
diff --git a/apps/web-tdesign/src/views/system/log/index.vue b/apps/web-tdesign/src/views/system/log/index.vue
new file mode 100644
index 0000000..e0f037e
--- /dev/null
+++ b/apps/web-tdesign/src/views/system/log/index.vue
@@ -0,0 +1,138 @@
+<script lang="ts" setup>
+import type { LogItem } from '#/api/system';
+
+import { onMounted, reactive, ref } from 'vue';
+
+import { useAccess } from '@vben/access';
+import { Page } from '@vben/common-ui';
+
+import { MessagePlugin } from 'tdesign-vue-next';
+
+import { getSystemLogList } from '#/api/system';
+
+// 操作日志页面:常规分页 + 关键字筛选 + 列表展示
+const { hasAccessByCodes } = useAccess();
+
+const loading = ref(false);
+const list = ref<LogItem[]>([]);
+
+// 查询条件keyword 匹配权限码/路径/IP
+const query = reactive({ page: 1, size: 10, keyword: '' });
+// t-table 分页状态
+const pagination = reactive({ current: 1, pageSize: 10, total: 0 });
+
+async function load() {
+ loading.value = true;
+ try {
+ const data = await getSystemLogList(query);
+ list.value = data.list ?? [];
+ pagination.total = data.total ?? 0;
+ } finally {
+ loading.value = false;
+ }
+}
+
+/** 重置筛选并回到第一页 */
+function reset() {
+ query.keyword = '';
+ query.page = 1;
+ pagination.current = 1;
+ load();
+}
+
+/** 分页变化回调 */
+function onPageChange(p: { current: number; pageSize: number }) {
+ query.page = p.current;
+ query.size = p.pageSize;
+ pagination.current = p.current;
+ pagination.pageSize = p.pageSize;
+ load();
+}
+
+/** 复制参数内容(调试用) */
+function onCopyParam(row: LogItem) {
+ navigator.clipboard
+ ?.writeText(row.param ?? '')
+ .then(() => MessagePlugin.success('参数已复制'));
+}
+
+// 表格列定义colKey 与行字段对应,插槽自定义渲染
+const columns = [
+ { colKey: 'id', title: 'ID', width: 70 },
+ { colKey: 'permission', title: '权限标识', width: 160 },
+ { colKey: 'method', title: '方法', width: 80 },
+ { colKey: 'path', title: '请求路径', width: 260 },
+ { colKey: 'adminId', title: '操作人', width: 80 },
+ { colKey: 'ip', title: 'IP', width: 130 },
+ { colKey: 'durationMs', title: '耗时(ms)', width: 90 },
+ { colKey: 'statusCode', title: '状态码', width: 90 },
+ { colKey: 'param', title: '参数', width: 180 },
+ { colKey: 'createdAt', title: '操作时间', width: 170 },
+];
+
+onMounted(load);
+</script>
+
+<template>
+ <Page auto-content-height>
+ <!-- 顶部筛选区:关键字 + 查询 / 重置 -->
+ <div class="mb-3 flex items-center justify-between">
+ <div class="flex items-center gap-2">
+ <t-input
+ v-model="query.keyword"
+ clearable
+ placeholder="权限标识 / 路径 / IP"
+ style="width: 260px"
+ @enter="load"
+ />
+ <t-button
+ v-if="hasAccessByCodes(['system:log:list'])"
+ theme="primary"
+ @click="load"
+ >
+ 查询
+ </t-button>
+ <t-button variant="outline" @click="reset">重置</t-button>
+ </div>
+ </div>
+
+ <!-- 操作日志列表 -->
+ <t-table
+ row-key="id"
+ :data="list"
+ :columns="columns"
+ :loading="loading"
+ :pagination="pagination"
+ @page-change="onPageChange"
+ >
+ <template #method="{ row }">
+ <t-tag
+ :theme="row.method === 'POST' ? 'primary' : 'success'"
+ variant="light"
+ size="small"
+ >
+ {{ row.method }}
+ </t-tag>
+ </template>
+ <template #statusCode="{ row }">
+ <t-tag
+ :theme="row.statusCode < 400 ? 'success' : 'danger'"
+ variant="light"
+ size="small"
+ >
+ {{ row.statusCode }}
+ </t-tag>
+ </template>
+ <template #param="{ row }">
+ <t-tooltip :content="row.param" placement="top">
+ <span
+ class="cursor-pointer text-gray-500"
+ @click="onCopyParam(row)"
+ >
+ {{ (row.param ?? '').slice(0, 30) || '-' }}
+ </span>
+ </t-tooltip>
+ </template>
+ </t-table>
+ </Page>
+</template>
diff --git a/apps/web-tdesign/src/views/system/login-log/index.vue b/apps/web-tdesign/src/views/system/login-log/index.vue
new file mode 100644
index 0000000..eb8622e
--- /dev/null
+++ b/apps/web-tdesign/src/views/system/login-log/index.vue
@@ -0,0 +1,124 @@
+<script lang="ts" setup>
+import type { LoginLogItem } from '#/api/system';
+
+import { onMounted, reactive, ref } from 'vue';
+
+import { useAccess } from '@vben/access';
+import { Page } from '@vben/common-ui';
+
+import { getLoginLogList } from '#/api/system';
+
+// 登录日志页面:账号 + 结果筛选、分页列表
+const { hasAccessByCodes } = useAccess();
+
+const loading = ref(false);
+const list = ref<LoginLogItem[]>([]);
+
+// 查询条件username 匹配账号status 按结果过滤(-1 全部)
+const query = reactive({ page: 1, size: 10, username: '', status: -1 });
+const pagination = reactive({ current: 1, pageSize: 10, total: 0 });
+
+async function load() {
+ loading.value = true;
+ try {
+ const data = await getLoginLogList({
+ page: query.page,
+ size: query.size,
+ username: query.username || undefined,
+ status: query.status >= 0 ? query.status : undefined,
+ });
+ list.value = data.list ?? [];
+ pagination.total = data.total ?? 0;
+ } finally {
+ loading.value = false;
+ }
+}
+
+/** 重置筛选并回到第一页 */
+function reset() {
+ query.username = '';
+ query.status = -1;
+ query.page = 1;
+ pagination.current = 1;
+ load();
+}
+
+/** 分页变化回调 */
+function onPageChange(p: { current: number; pageSize: number }) {
+ query.page = p.current;
+ query.size = p.pageSize;
+ pagination.current = p.current;
+ pagination.pageSize = p.pageSize;
+ load();
+}
+
+// 表格列定义
+const columns = [
+ { colKey: 'id', title: 'ID', width: 70 },
+ { colKey: 'username', title: '登录账号', width: 140 },
+ { colKey: 'ip', title: '来源 IP', width: 140 },
+ { colKey: 'userAgent', title: '浏览器 UA', width: 240 },
+ { colKey: 'status', title: '结果', width: 90 },
+ { colKey: 'failReason', title: '失败原因', width: 220 },
+ { colKey: 'createdAt', title: '登录时间', width: 170 },
+];
+
+onMounted(load);
+</script>
+
+<template>
+ <Page auto-content-height>
+ <!-- 顶部筛选区:账号 + 结果 + 查询 / 重置 -->
+ <div class="mb-3 flex items-center justify-between">
+ <div class="flex items-center gap-2">
+ <t-input
+ v-model="query.username"
+ clearable
+ placeholder="登录账号"
+ style="width: 180px"
+ @enter="load"
+ />
+ <t-select
+ v-model="query.status"
+ style="width: 120px"
+ :options="[
+ { label: '全部', value: -1 },
+ { label: '成功', value: 1 },
+ { label: '失败', value: 0 },
+ ]"
+ />
+ <t-button
+ v-if="hasAccessByCodes(['system:login-log:list'])"
+ theme="primary"
+ @click="load"
+ >
+ 查询
+ </t-button>
+ <t-button variant="outline" @click="reset">重置</t-button>
+ </div>
+ </div>
+
+ <!-- 登录日志列表 -->
+ <t-table
+ row-key="id"
+ :data="list"
+ :columns="columns"
+ :loading="loading"
+ :pagination="pagination"
+ @page-change="onPageChange"
+ >
+ <template #status="{ row }">
+ <t-tag
+ :theme="row.status === 1 ? 'success' : 'danger'"
+ variant="light"
+ size="small"
+ >
+ {{ row.status === 1 ? '成功' : '失败' }}
+ </t-tag>
+ </template>
+ <template #failReason="{ row }">
+ <span :title="row.failReason">{{ (row.failReason || '-').slice(0, 30) }}</span>
+ </template>
+ </t-table>
+ </Page>
+</template>
diff --git a/apps/web-tdesign/src/views/system/menu/index.vue b/apps/web-tdesign/src/views/system/menu/index.vue
index 160b297..e540273 100644
--- a/apps/web-tdesign/src/views/system/menu/index.vue
+++ b/apps/web-tdesign/src/views/system/menu/index.vue
@@ -1,7 +1,7 @@
<script lang="ts" setup>
import type { MenuNode } from '#/api/system';
-import { onMounted, reactive, ref } from 'vue';
+import { nextTick, onMounted, reactive, ref } from 'vue';
import { useAccess } from '@vben/access';
import { Page } from '@vben/common-ui';
@@ -18,10 +18,20 @@ import {
const { hasAccessByCodes } = useAccess();
const loading = ref(false);
-const tree = ref<MenuNode[]>([]);
+// 扁平化后的菜单列表(含 depth 用于缩进展示),避免依赖 t-table 的 tree 渲染
+const flatList = ref<(MenuNode & { depth: number })[]>([]);
const dialogOpen = ref(false);
const editing = ref<null | MenuNode>(null);
+/** 递归将树扁平化为数组,按层级加 depth 字段用于 UI 缩进 */
+function flatten(nodes: MenuNode[], depth: number, acc: (MenuNode & { depth: number })[] = []): (MenuNode & { depth: number })[] {
+ for (const n of nodes) {
+ acc.push({ ...n, depth });
+ if (n.children?.length) flatten(n.children, depth + 1, acc);
+ }
+ return acc;
+}
+
const form = reactive({
parentId: 0,
name: '',
@@ -39,7 +49,8 @@ async function load() {
loading.value = true;
try {
const data = await getMenuTree();
- tree.value = data.tree ?? [];
+ // 扁平化td-table 的 tree 模式在全量注册 TDesign 后渲染不稳定,改为按 depth 缩进的一维列表
+ flatList.value = flatten(data.tree ?? [], 0);
} finally {
loading.value = false;
}
@@ -129,12 +140,17 @@ onMounted(load);
<t-table
row-key="id"
- :data="tree"
+ :data="flatList"
:columns="columns"
:loading="loading"
:pagination="false"
- :tree="{ childrenKey: 'children', defaultExpandAll: true }"
>
+ <template #name="{ row }">
+ <span :style="{ paddingLeft: `${row.depth * 20}px` }">
+ <span v-if="row.depth > 0" class="mr-1 text-gray-400">└</span>
+ {{ row.name }}
+ </span>
+ </template>
<template #typeText="{ row }">{{ row.type === 1 ? '菜单' : '按钮' }}</template>
<template #op="{ row }">
<t-button
diff --git a/apps/web-tdesign/vite.config.ts b/apps/web-tdesign/vite.config.ts
index d39ab52..0951340 100644
--- a/apps/web-tdesign/vite.config.ts
+++ b/apps/web-tdesign/vite.config.ts
@@ -13,16 +13,10 @@ export default defineConfig(async () => {
],
server: {
proxy: {
- // 后台管理接口 → GoFrame 后端
- '/admin': {
+ // 统一后端前缀 → GoFrame 后端(端口 10100
+ '/api/service': {
changeOrigin: true,
- target: 'http://localhost:8000',
- ws: true,
- },
- // 开放接口 → GoFrame 后端
- '/api': {
- changeOrigin: true,
- target: 'http://localhost:8000',
+ target: 'http://localhost:10100',
ws: true,
},
},
diff --git a/dev_log.txt b/dev_log.txt
new file mode 100644
index 0000000..2d5f99c
--- /dev/null
+++ b/dev_log.txt
@@ -0,0 +1,42 @@
+$ pnpm -F @vben/web-tdesign run dev
+. | [WARN] Unsupported engine: wanted: {"node":"^22.18.0 || ^24.12.0"} (current: {"node":"v23.0.0","pnpm":"11.16.0"})
+$ pnpm vite --mode development
+[Vben Form] BREAKING CHANGE: Named field slot control bindings moved to `slotProps.componentProps`. Replace `v-bind="slotProps"` with `v-bind="slotProps.componentProps"`. See https://doc.vben.pro/components/common-ui/vben-form.html
+Port 5999 is in use, trying another one...
+
+ VITE v8.2.2 ready in 2781 ms
+
+ ➜ Local: http://localhost:6000/
+ ➜ Network: http://192.168.110.65:6000/ WLAN
+ ➜ Network: http://172.20.192.1:6000/ vEthernet (Default …
+ ➜ Vben Admin Docs: https://doc.vben.pro
+ ➜ press h + enter to show help
+17:20:13 [vite] .env.development changed, restarting server...
+[Vben Form] BREAKING CHANGE: Named field slot control bindings moved to `slotProps.componentProps`. Replace `v-bind="slotProps"` with `v-bind="slotProps.componentProps"`. See https://doc.vben.pro/components/common-ui/vben-form.html
+17:20:14 [vite] server restarted.
+
+ ➜ Local: http://localhost:20000/
+ ➜ Network: http://192.168.110.65:20000/ WLAN
+ ➜ Network: http://172.20.192.1:20000/ vEthernet (Default …
+ ➜ Vben Admin Docs: https://doc.vben.pro
+17:20:53 [vite] .env.development changed, restarting server...
+[Vben Form] BREAKING CHANGE: Named field slot control bindings moved to `slotProps.componentProps`. Replace `v-bind="slotProps"` with `v-bind="slotProps.componentProps"`. See https://doc.vben.pro/components/common-ui/vben-form.html
+Port 20100 is in use, trying another one...
+17:20:54 [vite] server restarted.
+
+ ➜ Local: http://localhost:20101/
+ ➜ Network: http://192.168.110.65:20101/ WLAN
+ ➜ Network: http://172.20.192.1:20101/ vEthernet (Default …
+ ➜ Vben Admin Docs: https://doc.vben.pro
+18:53:59 [vite] vite.config.ts changed, restarting server...
+[Vben Form] BREAKING CHANGE: Named field slot control bindings moved to `slotProps.componentProps`. Replace `v-bind="slotProps"` with `v-bind="slotProps.componentProps"`. See https://doc.vben.pro/components/common-ui/vben-form.html
+18:54:00 [vite] server restarted.
+18:54:09 [vite] (client) page reload src/api/core/auth.ts
+18:54:13 [vite] (client) page reload src/api/core/menu.ts
+18:54:16 [vite] (client) page reload src/api/core/user.ts
+18:54:22 [vite] (client) page reload src/api/system.ts
+18:54:25 [vite] (client) page reload src/api/log.ts
+E:\xxcool\project\admin.xpcool.com\apps\web-tdesign:
+[ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL] @vben/web-tdesign@5.7.0 dev: `pnpm vite --mode development`
+Exit status 4294967295
+[ELIFECYCLE] Command failed with exit code 4294967295.
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index f4340ac..ea355af 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -30,9 +30,6 @@ catalogs:
'@eslint/js':
specifier: ^10.0.1
version: 10.0.1
- '@faker-js/faker':
- specifier: ^10.5.0
- version: 10.6.0
'@iconify/json':
specifier: ^2.2.504
version: 2.2.519
@@ -57,12 +54,6 @@ catalogs:
'@manypkg/get-packages':
specifier: ^3.1.0
version: 3.1.0
- '@nolebase/vitepress-plugin-git-changelog':
- specifier: ^2.18.2
- version: 2.18.2
- '@playwright/test':
- specifier: ^1.61.1
- version: 1.62.1
'@pnpm/workspace.read-manifest':
specifier: ^1000.3.1
version: 1000.3.1
@@ -81,9 +72,6 @@ catalogs:
'@tanstack/vue-form':
specifier: ^1.33.2
version: 1.33.5
- '@tanstack/vue-query':
- specifier: ^5.101.4
- version: 5.102.0
'@tanstack/vue-store':
specifier: ^0.11.0
version: 0.11.1
@@ -135,9 +123,6 @@ catalogs:
'@types/json-bigint':
specifier: ^1.0.4
version: 1.0.4
- '@types/jsonwebtoken':
- specifier: ^9.0.10
- version: 9.0.10
'@types/lodash.clonedeep':
specifier: ^4.5.9
version: 4.5.9
@@ -159,9 +144,6 @@ catalogs:
'@typescript-eslint/parser':
specifier: ^8.65.0
version: 8.67.0
- '@vite-pwa/vitepress':
- specifier: ^1.1.0
- version: 1.1.0
'@vitejs/plugin-vue':
specifier: ^6.0.8
version: 6.0.8
@@ -183,12 +165,6 @@ catalogs:
'@vueuse/motion':
specifier: ^3.0.3
version: 3.0.3
- ant-design-vue:
- specifier: ^4.2.6
- version: 4.2.6
- antdv-next:
- specifier: ^1.4.5
- version: 1.5.2
archiver:
specifier: ^8.0.0
version: 8.0.0
@@ -243,9 +219,6 @@ catalogs:
echarts:
specifier: ^6.1.0
version: 6.1.0
- element-plus:
- specifier: ^2.14.3
- version: 2.14.5
es-toolkit:
specifier: ^1.49.0
version: 1.51.0
@@ -291,9 +264,6 @@ catalogs:
globals:
specifier: ^17.7.0
version: 17.11.0
- h3:
- specifier: ^1.15.11
- version: 1.15.11
happy-dom:
specifier: ^20.11.6
version: 20.11.6
@@ -306,9 +276,6 @@ catalogs:
json-bigint:
specifier: ^1.0.0
version: 1.0.0
- jsonwebtoken:
- specifier: ^9.0.3
- version: 9.0.3
knip:
specifier: ^6.29.0
version: 6.32.2
@@ -318,12 +285,6 @@ catalogs:
lodash.clonedeep:
specifier: ^4.5.0
version: 4.5.0
- medium-zoom:
- specifier: ^1.1.0
- version: 1.1.0
- naive-ui:
- specifier: ^2.44.1
- version: 2.45.2
nitropack:
specifier: ^2.13.4
version: 2.13.4
@@ -447,9 +408,6 @@ catalogs:
unplugin-dts:
specifier: ^1.0.3
version: 1.0.3
- unplugin-element-plus:
- specifier: ^0.11.2
- version: 0.11.2
unplugin-vue:
specifier: ^7.2.0
version: 7.2.0
@@ -468,12 +426,6 @@ catalogs:
vite-plugin-vue-devtools:
specifier: ^8.1.5
version: 8.2.1
- vitepress:
- specifier: ^2.0.0-alpha.18
- version: 2.0.0-alpha.19
- vitepress-plugin-group-icons:
- specifier: ^1.7.5
- version: 1.7.6
vitest:
specifier: ^4.1.11
version: 4.1.11
@@ -635,278 +587,6 @@ importers:
specifier: 'catalog:'
version: 3.3.11(typescript@6.0.3)
- apps/backend-mock:
- dependencies:
- '@faker-js/faker':
- specifier: 'catalog:'
- version: 10.6.0
- jsonwebtoken:
- specifier: 'catalog:'
- version: 9.0.3
- nitropack:
- specifier: 'catalog:'
- version: 2.13.4(@parcel/watcher@2.6.0)(oxc-parser@0.143.0)(rolldown@1.2.5)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))
- devDependencies:
- '@types/jsonwebtoken':
- specifier: 'catalog:'
- version: 9.0.10
- h3:
- specifier: 'catalog:'
- version: 1.15.11
-
- apps/web-antd:
- dependencies:
- '@vben/access':
- specifier: workspace:*
- version: link:../../packages/effects/access
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../../packages/effects/common-ui
- '@vben/constants':
- specifier: workspace:*
- version: link:../../packages/constants
- '@vben/hooks':
- specifier: workspace:*
- version: link:../../packages/effects/hooks
- '@vben/icons':
- specifier: workspace:*
- version: link:../../packages/icons
- '@vben/layouts':
- specifier: workspace:*
- version: link:../../packages/effects/layouts
- '@vben/locales':
- specifier: workspace:*
- version: link:../../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../../packages/effects/plugins
- '@vben/preferences':
- specifier: workspace:*
- version: link:../../packages/preferences
- '@vben/request':
- specifier: workspace:*
- version: link:../../packages/effects/request
- '@vben/stores':
- specifier: workspace:*
- version: link:../../packages/stores
- '@vben/styles':
- specifier: workspace:*
- version: link:../../packages/styles
- '@vben/types':
- specifier: workspace:*
- version: link:../../packages/types
- '@vben/utils':
- specifier: workspace:*
- version: link:../../packages/utils
- '@vueuse/core':
- specifier: 'catalog:'
- version: 14.4.0(vue@3.5.41(typescript@6.0.3))
- ant-design-vue:
- specifier: 'catalog:'
- version: 4.2.6(vue@3.5.41(typescript@6.0.3))
- dayjs:
- specifier: 'catalog:'
- version: 1.11.23
- pinia:
- specifier: ^4.0.2
- version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3))
- vue:
- specifier: ^3.5.40
- version: 3.5.41(typescript@6.0.3)
- vue-router:
- specifier: 'catalog:'
- version: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.5)(rollup@4.62.5)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
-
- apps/web-antdv-next:
- dependencies:
- '@vben/access':
- specifier: workspace:*
- version: link:../../packages/effects/access
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../../packages/effects/common-ui
- '@vben/constants':
- specifier: workspace:*
- version: link:../../packages/constants
- '@vben/hooks':
- specifier: workspace:*
- version: link:../../packages/effects/hooks
- '@vben/icons':
- specifier: workspace:*
- version: link:../../packages/icons
- '@vben/layouts':
- specifier: workspace:*
- version: link:../../packages/effects/layouts
- '@vben/locales':
- specifier: workspace:*
- version: link:../../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../../packages/effects/plugins
- '@vben/preferences':
- specifier: workspace:*
- version: link:../../packages/preferences
- '@vben/request':
- specifier: workspace:*
- version: link:../../packages/effects/request
- '@vben/stores':
- specifier: workspace:*
- version: link:../../packages/stores
- '@vben/styles':
- specifier: workspace:*
- version: link:../../packages/styles
- '@vben/types':
- specifier: workspace:*
- version: link:../../packages/types
- '@vben/utils':
- specifier: workspace:*
- version: link:../../packages/utils
- '@vueuse/core':
- specifier: 'catalog:'
- version: 14.4.0(vue@3.5.41(typescript@6.0.3))
- antdv-next:
- specifier: 'catalog:'
- version: 1.5.2(date-fns@4.4.0)(vue@3.5.41(typescript@6.0.3))
- dayjs:
- specifier: 'catalog:'
- version: 1.11.23
- pinia:
- specifier: ^4.0.2
- version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3))
- vue:
- specifier: ^3.5.40
- version: 3.5.41(typescript@6.0.3)
- vue-router:
- specifier: 'catalog:'
- version: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.5)(rollup@4.62.5)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
-
- apps/web-ele:
- dependencies:
- '@vben/access':
- specifier: workspace:*
- version: link:../../packages/effects/access
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../../packages/effects/common-ui
- '@vben/constants':
- specifier: workspace:*
- version: link:../../packages/constants
- '@vben/hooks':
- specifier: workspace:*
- version: link:../../packages/effects/hooks
- '@vben/icons':
- specifier: workspace:*
- version: link:../../packages/icons
- '@vben/layouts':
- specifier: workspace:*
- version: link:../../packages/effects/layouts
- '@vben/locales':
- specifier: workspace:*
- version: link:../../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../../packages/effects/plugins
- '@vben/preferences':
- specifier: workspace:*
- version: link:../../packages/preferences
- '@vben/request':
- specifier: workspace:*
- version: link:../../packages/effects/request
- '@vben/stores':
- specifier: workspace:*
- version: link:../../packages/stores
- '@vben/styles':
- specifier: workspace:*
- version: link:../../packages/styles
- '@vben/types':
- specifier: workspace:*
- version: link:../../packages/types
- '@vben/utils':
- specifier: workspace:*
- version: link:../../packages/utils
- '@vueuse/core':
- specifier: 'catalog:'
- version: 14.4.0(vue@3.5.41(typescript@6.0.3))
- dayjs:
- specifier: 'catalog:'
- version: 1.11.23
- element-plus:
- specifier: 'catalog:'
- version: 2.14.5(vue@3.5.41(typescript@6.0.3))
- pinia:
- specifier: ^4.0.2
- version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3))
- vue:
- specifier: ^3.5.40
- version: 3.5.41(typescript@6.0.3)
- vue-router:
- specifier: 'catalog:'
- version: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.5)(rollup@4.62.5)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
- devDependencies:
- unplugin-element-plus:
- specifier: 'catalog:'
- version: 0.11.2(magic-string@1.2.2)(magicast@0.5.4)(oxc-parser@0.143.0)(rolldown@1.2.5)
-
- apps/web-naive:
- dependencies:
- '@vben/access':
- specifier: workspace:*
- version: link:../../packages/effects/access
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../../packages/effects/common-ui
- '@vben/constants':
- specifier: workspace:*
- version: link:../../packages/constants
- '@vben/hooks':
- specifier: workspace:*
- version: link:../../packages/effects/hooks
- '@vben/icons':
- specifier: workspace:*
- version: link:../../packages/icons
- '@vben/layouts':
- specifier: workspace:*
- version: link:../../packages/effects/layouts
- '@vben/locales':
- specifier: workspace:*
- version: link:../../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../../packages/effects/plugins
- '@vben/preferences':
- specifier: workspace:*
- version: link:../../packages/preferences
- '@vben/request':
- specifier: workspace:*
- version: link:../../packages/effects/request
- '@vben/stores':
- specifier: workspace:*
- version: link:../../packages/stores
- '@vben/styles':
- specifier: workspace:*
- version: link:../../packages/styles
- '@vben/types':
- specifier: workspace:*
- version: link:../../packages/types
- '@vben/utils':
- specifier: workspace:*
- version: link:../../packages/utils
- '@vueuse/core':
- specifier: 'catalog:'
- version: 14.4.0(vue@3.5.41(typescript@6.0.3))
- naive-ui:
- specifier: 'catalog:'
- version: 2.45.2(vue@3.5.41(typescript@6.0.3))
- pinia:
- specifier: ^4.0.2
- version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3))
- vue:
- specifier: ^3.5.40
- version: 3.5.41(typescript@6.0.3)
- vue-router:
- specifier: 'catalog:'
- version: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.5)(rollup@4.62.5)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
-
apps/web-tdesign:
dependencies:
'@vben/access':
@@ -973,61 +653,6 @@ importers:
specifier: 'catalog:'
version: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.5)(rollup@4.62.5)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
- docs:
- dependencies:
- '@lucide/vue':
- specifier: 'catalog:'
- version: 1.33.0(vue@3.5.41(typescript@6.0.3))
- '@vben-core/shadcn-ui':
- specifier: workspace:*
- version: link:../packages/@core/ui-kit/shadcn-ui
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../packages/effects/common-ui
- '@vben/locales':
- specifier: workspace:*
- version: link:../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../packages/effects/plugins
- '@vben/styles':
- specifier: workspace:*
- version: link:../packages/styles
- antdv-next:
- specifier: 'catalog:'
- version: 1.5.2(date-fns@4.4.0)(vue@3.5.41(typescript@6.0.3))
- medium-zoom:
- specifier: 'catalog:'
- version: 1.1.0
- reka-ui:
- specifier: 'catalog:'
- version: 2.10.3(vue@3.5.41(typescript@6.0.3))
- vitepress-plugin-group-icons:
- specifier: 'catalog:'
- version: 1.7.6(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))
- devDependencies:
- '@nolebase/vitepress-plugin-git-changelog':
- specifier: 'catalog:'
- version: 2.18.2(supports-color@10.2.2)(vitepress@2.0.0-alpha.19(@types/node@26.2.0)(async-validator@4.2.5)(axios@1.19.0(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2))(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(nprogress@0.2.0)(postcss@8.5.26)(qrcode@1.5.4)(sass-embedded@1.103.1)(sass@1.103.1)(sortablejs@1.15.7)(terser@5.50.0)(typescript@6.0.3)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
- '@tailwindcss/vite':
- specifier: 'catalog:'
- version: 4.3.3(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))
- '@vben/tailwind-config':
- specifier: workspace:*
- version: link:../internal/tailwind-config
- '@vben/vite-config':
- specifier: workspace:*
- version: link:../internal/vite-config
- '@vite-pwa/vitepress':
- specifier: 'catalog:'
- version: 1.1.0(vite-plugin-pwa@1.3.0(supports-color@10.2.2)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(workbox-build@7.4.1(supports-color@10.2.2))(workbox-window@7.4.1))
- vitepress:
- specifier: 'catalog:'
- version: 2.0.0-alpha.19(@types/node@26.2.0)(async-validator@4.2.5)(axios@1.19.0(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2))(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(nprogress@0.2.0)(postcss@8.5.26)(qrcode@1.5.4)(sass-embedded@1.103.1)(sass@1.103.1)(sortablejs@1.15.7)(terser@5.50.0)(typescript@6.0.3)(yaml@2.9.0)
- vue:
- specifier: ^3.5.40
- version: 3.5.41(typescript@6.0.3)
-
internal/lint-configs/commitlint-config:
dependencies:
'@commitlint/cli':
@@ -1996,88 +1621,6 @@ importers:
specifier: 'catalog:'
version: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.5)(rollup@4.62.5)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
- playground:
- dependencies:
- '@tanstack/vue-query':
- specifier: 'catalog:'
- version: 5.102.0(vue@3.5.41(typescript@6.0.3))
- '@vben-core/design':
- specifier: workspace:*
- version: link:../packages/@core/base/design
- '@vben-core/menu-ui':
- specifier: workspace:*
- version: link:../packages/@core/ui-kit/menu-ui
- '@vben/access':
- specifier: workspace:*
- version: link:../packages/effects/access
- '@vben/common-ui':
- specifier: workspace:*
- version: link:../packages/effects/common-ui
- '@vben/constants':
- specifier: workspace:*
- version: link:../packages/constants
- '@vben/hooks':
- specifier: workspace:*
- version: link:../packages/effects/hooks
- '@vben/icons':
- specifier: workspace:*
- version: link:../packages/icons
- '@vben/layouts':
- specifier: workspace:*
- version: link:../packages/effects/layouts
- '@vben/locales':
- specifier: workspace:*
- version: link:../packages/locales
- '@vben/plugins':
- specifier: workspace:*
- version: link:../packages/effects/plugins
- '@vben/preferences':
- specifier: workspace:*
- version: link:../packages/preferences
- '@vben/request':
- specifier: workspace:*
- version: link:../packages/effects/request
- '@vben/stores':
- specifier: workspace:*
- version: link:../packages/stores
- '@vben/styles':
- specifier: workspace:*
- version: link:../packages/styles
- '@vben/types':
- specifier: workspace:*
- version: link:../packages/types
- '@vben/utils':
- specifier: workspace:*
- version: link:../packages/utils
- '@vueuse/core':
- specifier: 'catalog:'
- version: 14.4.0(vue@3.5.41(typescript@6.0.3))
- antdv-next:
- specifier: 'catalog:'
- version: 1.5.2(date-fns@4.4.0)(vue@3.5.41(typescript@6.0.3))
- dayjs:
- specifier: 'catalog:'
- version: 1.11.23
- json-bigint:
- specifier: 'catalog:'
- version: 1.0.0
- pinia:
- specifier: ^4.0.2
- version: 4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3))
- vue:
- specifier: ^3.5.40
- version: 3.5.41(typescript@6.0.3)
- vue-router:
- specifier: 'catalog:'
- version: 5.2.0(@vue/compiler-sfc@3.5.41)(esbuild@0.28.2)(pinia@4.0.3(@vue/devtools-api@8.2.1)(typescript@6.0.3)(vue@3.5.41(typescript@6.0.3)))(rolldown@1.2.5)(rollup@4.62.5)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
- devDependencies:
- '@playwright/test':
- specifier: 'catalog:'
- version: 1.62.1
- '@types/json-bigint':
- specifier: 'catalog:'
- version: 1.0.4
-
scripts/turbo-run:
dependencies:
'@clack/prompts':
@@ -2110,41 +1653,6 @@ importers:
packages:
- '@ant-design/colors@6.0.0':
- resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==}
-
- '@ant-design/colors@7.2.1':
- resolution: {integrity: sha512-lCHDcEzieu4GA3n8ELeZ5VQ8pKQAWcGGLRTQ50aQM2iqPpq2evTxER84jfdPvsPAtEcZ7m44NI45edFMo8oOYQ==}
-
- '@ant-design/colors@8.0.1':
- resolution: {integrity: sha512-foPVl0+SWIslGUtD/xBr1p9U4AKzPhNYEseXYRRo5QSzGACYZrQbe11AYJbYfAWnWSpGBx6JjBmSeugUsD9vqQ==}
-
- '@ant-design/fast-color@2.0.6':
- resolution: {integrity: sha512-y2217gk4NqL35giHl72o6Zzqji9O7vHh9YmhUVkPtAOpoTCH4uWxo/pr4VE8t0+ChEPs0qo4eJRC5Q1eXWo3vA==}
- engines: {node: '>=8.x'}
-
- '@ant-design/fast-color@3.0.1':
- resolution: {integrity: sha512-esKJegpW4nckh0o6kV3Tkb7NPIZYbPnnFxmQDUmL08ukXZAvV85TZBr70eGuke/CIArLaP6aw8lt9KILjnWuOw==}
- engines: {node: '>=8.x'}
-
- '@ant-design/icons-svg@4.5.0':
- resolution: {integrity: sha512-1BTUFyKPTBZ53MuTP8s0k5SFEXL7o3VHEOwLgzaoWKwnBeqIcqUtVshc4SKzhI6uACfqhJqBwBUE9FsWR3uULA==}
-
- '@ant-design/icons-vue@7.0.1':
- resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==}
- peerDependencies:
- vue: ^3.5.40
-
- '@antdv-next/cssinjs@1.0.6':
- resolution: {integrity: sha512-8NL+AzjFZVHfG9A2l+r4rNWdRfbS5FFFozGU9jVl7WNgd7y+wEYSzl+qvRjJuqd3IryacrDfsTxIgcSQkVlr5Q==}
- peerDependencies:
- vue: ^3.5.40
-
- '@antdv-next/icons@1.1.2':
- resolution: {integrity: sha512-Ul4me4fx72VqA9xPYf9JVjlHq1PXO4JWGJGDtr9vPZfZYowFWDMjd7NeME1APYrJosVTMbJsArRMURbEGwbliA==}
- peerDependencies:
- vue: ^3.5.40
-
'@antfu/install-pkg@1.1.0':
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
@@ -3180,16 +2688,6 @@ packages:
resolution: {integrity: sha512-MxQyFUYX+M2GJEuPuA0l1aXHmRh52Qd/hTA1aahjUgvgujSghv+rOFhIzqFiVtIa0w/r1RgdCKHF32wNKfGnFg==}
engines: {node: '>=22.18.0'}
- '@css-render/plugin-bem@0.15.14':
- resolution: {integrity: sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==}
- peerDependencies:
- css-render: ~0.15.14
-
- '@css-render/vue3-ssr@0.15.14':
- resolution: {integrity: sha512-//8027GSbxE9n3QlD73xFY6z4ZbHbvrOVB7AO6hsmrEzGbg+h2A09HboUyDgu+xsmj7JnvJD39Irt+2D0+iV8g==}
- peerDependencies:
- vue: ^3.5.40
-
'@csstools/css-calc@3.3.0':
resolution: {integrity: sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==}
engines: {node: '>=20.19.0'}
@@ -3241,20 +2739,6 @@ packages:
'@cyberalien/svg-utils@1.2.19':
resolution: {integrity: sha512-paDJoDu+LhuH5Ma1q0BDqBpg6d16Xk22cZZrlg/s/J9oB8KgnnpU/snaEETJu2G1pwYcWQINUz6WUqu0Wm9k6A==}
- '@docsearch/css@4.7.0':
- resolution: {integrity: sha512-Sk5xkdRFeE7PeWjG9l4AfTwdvMfr9wHiwNNCpHXT4v4SNyNMKdHGvEILc31BgaVFGDDNbv5u/a73tofRiwbEZw==}
-
- '@docsearch/js@4.7.0':
- resolution: {integrity: sha512-x5lCqu1tetgsJFkjQ6VSocbHldsRkGEgwg5N98Vx21sq/V5wcmj4u226PY9k+TEpIgQ772zlYbPLTPicWyGnpA==}
-
- '@docsearch/sidepanel-js@4.7.0':
- resolution: {integrity: sha512-A8r34jCU8kcIk2viECEn2msA28ojUF1BLi/3v5OWWc5G2N3jOuuumBXoeYjfr8dA0UxgFSy5R2bt12dnFJQSyA==}
-
- '@element-plus/icons-vue@2.3.2':
- resolution: {integrity: sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==}
- peerDependencies:
- vue: ^3.5.40
-
'@emnapi/core@1.11.2':
resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==}
@@ -3264,18 +2748,6 @@ packages:
'@emnapi/wasi-threads@1.2.2':
resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==}
- '@emotion/hash@0.8.0':
- resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
-
- '@emotion/hash@0.9.2':
- resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==}
-
- '@emotion/unitless@0.7.5':
- resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==}
-
- '@emotion/unitless@0.8.1':
- resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==}
-
'@epic-web/invariant@1.0.0':
resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==}
@@ -3644,10 +3116,6 @@ packages:
resolution: {integrity: sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- '@faker-js/faker@10.6.0':
- resolution: {integrity: sha512-3RQHgEtvL1Frl/d1cSreo7qhJ3Gk1OdNUai/CtZ8G+wYeRQnJih3s9xJ9/kgYekPQRdwgh0HXRPqMlzWGwivIQ==}
- engines: {node: ^20.19.0 || ^22.13.0 || ^23.5.0 || >=24.0.0, npm: '>=10'}
-
'@floating-ui/core@1.8.0':
resolution: {integrity: sha512-0CIZ5itps/8x7BG8dEIhs53BvCUH2PCoogtakwRTut+Arm58sJooJ0AuZhLw2HJYIR5cMLNPBSS728sPho2khQ==}
@@ -3680,18 +3148,6 @@ packages:
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
- '@iconify-json/logos@1.2.13':
- resolution: {integrity: sha512-Up54ZnIuiuBgGAsuzhR1nvKqwq8VE6YM3XLwVB6IgY+7NAasz6WKu9Ay5hGfAkfuOKowodfwDC8ozReEBYrWRg==}
-
- '@iconify-json/octicon@1.2.32':
- resolution: {integrity: sha512-gkb+HMhBxZzVvOQhs4NZg0AtMJ8uht6bc8fG757gDOpXjjAOcNe2KrJDd8ydGVmRZoNBIexJAovz8b+no4oTuA==}
-
- '@iconify-json/simple-icons@1.2.93':
- resolution: {integrity: sha512-/XhANjfGYOuqvSR3TmUnkQkINvQ4GVjVuukvymRbxtVFBvIq/yiXJqCDycKcQPT401OYT9H2vIY6ihAlz1QIAw==}
-
- '@iconify-json/vscode-icons@1.2.74':
- resolution: {integrity: sha512-ZVf1IM5sOvvY+0Gc6jtuD5okkd51mJe/BoVMhWJCu1WqZLSF6XgbSguxUOyuBmMjJXNPSw1OBvPwEVq1bXfiTw==}
-
'@iconify/json@2.2.519':
resolution: {integrity: sha512-zwjQIYYLnT8b2SUELffIDzsfftTjdYTUfE+iaZGUg8jEckx69CU/tWqt65GZt7B3D2pKk7f651lbY9QYWIKOYA==}
@@ -3834,9 +3290,6 @@ packages:
'@jspm/import-map@1.5.0':
resolution: {integrity: sha512-wvjrSEB2MCrpicc/tA0mYEsQ1Jgusnz+4ALwbp5IqGFcnxcTamU/VaVbodmEXFFg4GaPmC2LupUl7Bks6nWOhg==}
- '@juggle/resize-observer@3.4.0':
- resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
-
'@keyv/bigmap@1.3.1':
resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==}
engines: {node: '>= 18'}
@@ -3900,17 +3353,6 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
- '@nolebase/ui@2.18.2':
- resolution: {integrity: sha512-xxfRacF9cqQ5/umMhvhr0y2W4SkhzTmrrAHJ0UAAu/pIWfV/JPE9Hj0buH06bK7ZEUur+036gxkKlStI6UtDBw==}
- peerDependencies:
- vitepress: ^1.5.0 || ^2.0.0-alpha.1
- vue: ^3.5.40
-
- '@nolebase/vitepress-plugin-git-changelog@2.18.2':
- resolution: {integrity: sha512-TT1nxP+iS+5K8OLtkEr1EZ4bhCa4iqggly0JTD7TsO01hcwzMovr0lRaxPTo/4i/0bwMiPcaKxpKJ2zJIiu4Kw==}
- peerDependencies:
- vitepress: ^1.5.0 || ^2.0.0-alpha.1
-
'@nuxt/kit@3.21.11':
resolution: {integrity: sha512-0Xi3tgwN77w43Q8GCPIrvWmF1J7Peehkts44E0uKNIml9lB8WoUn8YxyUjxBv47XtVR86NWoWALAT+/IEMHJEA==}
engines: {node: '>=18.12.0'}
@@ -4309,6 +3751,12 @@ packages:
cpu: [x64]
os: [win32]
+ '@oxlint/binding-android-arm-eabi@1.79.0':
+ resolution: {integrity: sha512-TebFaaMklO/RXzTv7PucaCq9l3X6D1gA+C8H6K4njtjFOV+zWE9MKLpulcJZN9bzytbUbQIY0mZuz12nQ5Kv4Q==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [android]
+
'@oxlint/binding-android-arm64@1.79.0':
resolution: {integrity: sha512-KqqnOtAVgNsPPF0YSodkFZA1O80jcKoCZCTu3bgsszxA+MrMP9TLzfXitKjEj1FmrPprKDMdRDMmY3weESO9sg==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -4339,6 +3787,12 @@ packages:
cpu: [arm]
os: [linux]
+ '@oxlint/binding-linux-arm-musleabihf@1.79.0':
+ resolution: {integrity: sha512-ZOQUjkzDnvlhSE3+tWC3YXx94MMl+sYMlwH+u1+YGApGHOJP/YAc8ZBRFOXZ6eOBmxtXAWuS/fBcdZr8qqNO1A==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm]
+ os: [linux]
+
'@oxlint/binding-linux-arm64-gnu@1.79.0':
resolution: {integrity: sha512-lu158FR4nGqGeRS3BQvtG85wRgU/Fy4MD5Cxp1hzJXizGiLo6u2742wJSCDKh8cFcZntvX7fcxlq4mMmfryH1g==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -4346,6 +3800,41 @@ packages:
os: [linux]
libc: [glibc]
+ '@oxlint/binding-linux-arm64-musl@1.79.0':
+ resolution: {integrity: sha512-mbpKQeE2aflTjddaHK7MP8KP/OFbUM++lt5M635ENM8IyIdK0jm2t9pb+2v9mVVIvhF6TqA4l7F79Pll1mi+uw==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [arm64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxlint/binding-linux-ppc64-gnu@1.79.0':
+ resolution: {integrity: sha512-WpGNua7gaxaHnpSDeog2ji8IDHn/QLPl9LPzwkR/FvVv58vT5BcXjRXnU+wbu3N75cpeha8CdC7ho/U2OIsB4g==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ppc64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxlint/binding-linux-riscv64-gnu@1.79.0':
+ resolution: {integrity: sha512-tK1E93A5LVzISg4ngpKJnfTs7EqtIUceGI7MQ4GyDjJiLi8wPCkEyKlj2xkyKWZ1yzkDJyLHTBJ5/iFWRdnJvg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [glibc]
+
+ '@oxlint/binding-linux-riscv64-musl@1.79.0':
+ resolution: {integrity: sha512-qhQvUIrngXivA2A9pQ+xPCychztn/5qUv7yS3gDwXv3w7Rag+eTeeXWmRyx+t7XsW5x6LuY/8AsTq36UgFIblg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [riscv64]
+ os: [linux]
+ libc: [musl]
+
+ '@oxlint/binding-linux-s390x-gnu@1.79.0':
+ resolution: {integrity: sha512-sv6AaVgU/eE6u+6WFiQVDcPPwTxP6IJMSB9k701W2r/r6Tx465e8vPvVyRxquNH4Vy6KwRNu90mVbxXJN8+5gg==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [s390x]
+ os: [linux]
+ libc: [glibc]
+
'@oxlint/binding-linux-x64-gnu@1.79.0':
resolution: {integrity: sha512-iFZL02deziHslb3jEX9KdqlAkYoo4fGyotchKDzdfK1f5mxlIBeiQeHhvK3iFpuEJSB4ma/qeFn9oxPiwnhUPQ==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -4372,6 +3861,12 @@ packages:
cpu: [arm64]
os: [win32]
+ '@oxlint/binding-win32-ia32-msvc@1.79.0':
+ resolution: {integrity: sha512-+KyXjIvcpaXmWW/j9NNY5yWjrIVxaX18VyIheQy3jwc2GSYgpCr7MGI/HxIGQ/shAL5IWEKbhsqoMpAO5Stiog==}
+ engines: {node: ^20.19.0 || >=22.12.0}
+ cpu: [ia32]
+ os: [win32]
+
'@oxlint/binding-win32-x64-msvc@1.79.0':
resolution: {integrity: sha512-mEelcCMMBS57sIXh2veGMNy+pQwuGtcMxHxGIZWQ5Ba9pJ5jCCUFOZB9E2JhBaxGsURe+WGe0zJp4RVre52gpQ==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -4474,11 +3969,6 @@ packages:
resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==}
engines: {node: ^14.18.0 || >=16.0.0}
- '@playwright/test@1.62.1':
- resolution: {integrity: sha512-DTcUc8qii+cpHvtOwggMtBRMjKZHXYWdw8syRYu2vtzuq4Wxphqq4NfCs5Zt44L6mA8rfDfj+PHnxFc/FeK6mQ==}
- engines: {node: '>=20'}
- hasBin: true
-
'@pnpm/config.env-replace@1.1.0':
resolution: {integrity: sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==}
engines: {node: '>=12.22.0'}
@@ -4854,44 +4344,6 @@ packages:
'@sec-ant/readable-stream@0.4.1':
resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==}
- '@shikijs/core@4.4.3':
- resolution: {integrity: sha512-QCR4q2ZO/ILJEuwiBMel4wdcTDb1JGwfjKTxPDF6x8ixOaluPrVqIn06C99AcRPhmYlBR56d/Fb+GN58GzExpg==}
- engines: {node: '>=20'}
-
- '@shikijs/engine-javascript@4.4.3':
- resolution: {integrity: sha512-FbOjFJp9VLdo1Wevs10BBtVxiTWwNLqZh5Gkhjgda/ioL15YOgeSl9n+6XMa3qRlPQzfhFNe641SrynFHYG0nQ==}
- engines: {node: '>=20'}
-
- '@shikijs/engine-oniguruma@4.4.3':
- resolution: {integrity: sha512-EcOQkxdxGQrc1Row/cC2c96/v1dbZqGnEVu1qTuT/MJmp6+cXCvQussowVmCv5Tqr3KuY3c7IbM6HTW3LJ1k9w==}
- engines: {node: '>=20'}
-
- '@shikijs/langs@4.4.3':
- resolution: {integrity: sha512-ePic0yfAJGOF83D5wBHK/00EjK65oahBYxFk5epgq33WRv7X9UuxLEV8PtR0szC0z8dl7INIpIodB99JRFlR+A==}
- engines: {node: '>=20'}
-
- '@shikijs/primitive@4.4.3':
- resolution: {integrity: sha512-m0wBeLDQDeIxRdUmrCPdQqfuUamDwRL5isCfYbguKD6NiaKpVbsv+3J81DyIKgNW5h4WAIIr8T4EkgQrBBxvaQ==}
- engines: {node: '>=20'}
-
- '@shikijs/themes@4.4.3':
- resolution: {integrity: sha512-w8UHjeUnIR965KMWJHUPXOc2mNJUnK3vpVLYLvw5IYU2mnTTJ89E24OrJDBNiJDQ0qzb0tc4l7mrIXx5cFeIyw==}
- engines: {node: '>=20'}
-
- '@shikijs/transformers@4.4.3':
- resolution: {integrity: sha512-oJSARV6NaWd+rnNJbtnpAdj3Zg0ZVyzsnMgb3vi3HA+35y8lBWUCpOnWsmyiXZIikY+x1BDqrQUgmxfzWh7Jvw==}
- engines: {node: '>=20'}
-
- '@shikijs/types@4.4.3':
- resolution: {integrity: sha512-UEJxmRR++MAGR6hugn0vgVS2W/6lWAts84FFSrnlH9sP0LNol7E5+NQ792pH8liWUhyMyjhTgSUH3k7iD7tc5g==}
- engines: {node: '>=20'}
-
- '@shikijs/vscode-textmate@10.0.2':
- resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==}
-
- '@simonwep/pickr@1.8.2':
- resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==}
-
'@simple-libs/child-process-utils@2.0.0':
resolution: {integrity: sha512-dvNoRKLijXnD0XoJAz94pbNuB5GQgDr55UhpSPhffDkTT0Cmcqh9jSCOtwfT2d4H6MI9E7c4SgtMuJXZ6F3c6A==}
engines: {node: '>=22'}
@@ -4904,10 +4356,6 @@ packages:
resolution: {integrity: sha512-P1Cz1dWaFfR4IR+U13mqqiGsLFf1KbayybWwdd2vfctdV6hDpUkgCY0nKOLLTMSoRd/jJNjtbqzf13K8DCCXQw==}
engines: {node: '>=18'}
- '@sindresorhus/merge-streams@2.3.0':
- resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
- engines: {node: '>=18'}
-
'@sindresorhus/merge-streams@4.0.0':
resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==}
engines: {node: '>=18'}
@@ -4926,9 +4374,6 @@ packages:
'@swc/helpers@0.5.23':
resolution: {integrity: sha512-5lSsMOTXURePglDfvuAQUqkGek9Hg2kksOYay2m0+XR++b2NWYL/4sWyuvVBIs8oKnJaxkdi9whaL/sqN13afw==}
- '@sxzz/popperjs-es@2.11.8':
- resolution: {integrity: sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ==}
-
'@tailwindcss/node@4.3.3':
resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==}
@@ -5036,17 +4481,10 @@ packages:
'@tanstack/form-core@1.33.5':
resolution: {integrity: sha512-3dfx9MBP0aq5sXKteikG629X9oviptrQj0IFRk9YGcb+lB7Kv5x8S17oOSk1wUWgjQZ4xVJEMbKwOAODymocgA==}
- '@tanstack/match-sorter-utils@8.19.4':
- resolution: {integrity: sha512-Wo1iKt2b9OT7d+YGhvEPD3DXvPv2etTusIMhMUoG7fbhmxcXCtIjJDEygy91Y2JFlwGyjqiBPRozme7UD8hoqg==}
- engines: {node: '>=12'}
-
'@tanstack/pacer-lite@0.1.1':
resolution: {integrity: sha512-y/xtNPNt/YeyoVxE/JCx+T7yjEzpezmbb+toK8DDD1P4m7Kzs5YR956+7OKexG3f8aXgC3rLZl7b1V+yNUSy5w==}
engines: {node: '>=18'}
- '@tanstack/query-core@5.102.0':
- resolution: {integrity: sha512-tvBzr11Q7StuMCEsIJdqX8TAWt6WZIzfw/yrSAjObZDerwTTPeCxeLXN2R8ZSn4ZxFpQV819Xn8QmoO+vtnDvw==}
-
'@tanstack/store@0.11.1':
resolution: {integrity: sha512-mzTOBhypOuDJAy/D8n2MfUZ1HFkXnmSETviRyhqEC8LUE7/IZQExOTxMANj3KjTofYTkFNpBY67qaVrT41YccA==}
@@ -5058,15 +4496,6 @@ packages:
peerDependencies:
vue: ^3.5.40
- '@tanstack/vue-query@5.102.0':
- resolution: {integrity: sha512-etqK2+b1pvilfdmcKl5Be+A5vHe8OY2dQoBx1VbhGqN8bMZ4g1+prP91cYr92Q+0KGbPf3F7lTeBhhPMZfpXUQ==}
- peerDependencies:
- '@vue/composition-api': ^1.1.2
- vue: ^3.5.40
- peerDependenciesMeta:
- '@vue/composition-api':
- optional: true
-
'@tanstack/vue-store@0.11.1':
resolution: {integrity: sha512-0YmYwbiCQKhzfFTLpHybjoAVUh3GkQVYGguvGTzk/0wx0oWuni60huvRs1RqqRLJH6nig3PTYuLuQQ+X5s05gA==}
peerDependencies:
@@ -5328,9 +4757,6 @@ packages:
'@types/estree@1.0.9':
resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==}
- '@types/hast@3.0.5':
- resolution: {integrity: sha512-rp/ezSWaD1m44dPKICGhiskI13nVr7qTloFwDa/IYkhhf5nzwP+zIQcIJh3WIFSBOy/H1PzB40jPjMDksN4F+g==}
-
'@types/html-minifier-terser@7.0.2':
resolution: {integrity: sha512-mm2HqV22l8lFQh4r2oSsOEVea+m0qqxEmwpc9kC1p/XzmjLWrReR9D/GRs8Pex2NX/imyEH9c5IU/7tMBQCHOA==}
@@ -5343,12 +4769,6 @@ packages:
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
- '@types/jsonwebtoken@9.0.10':
- resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==}
-
- '@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==}
@@ -5358,18 +4778,6 @@ packages:
'@types/lodash@4.17.25':
resolution: {integrity: sha512-+K1NIO8I+F9/wNulfVvu23QYd0Pe9/OCqRrim4NoYIf1VoEDL90Ve4ClzpyqBLc7NpGGWRvYNCKZ1BE/Jpf8dQ==}
- '@types/markdown-it@14.2.0':
- resolution: {integrity: sha512-NoQ2yGlLWj4wpxMs+TYmRKk3thDrQ97agr7sFqfLsAlvoS8SNQuTrlObhFqG9iugdTtgOE9jpJ6FNM4ZGsa5xQ==}
-
- '@types/mdast@4.0.4':
- resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
-
- '@types/mdurl@2.0.0':
- resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
-
- '@types/ms@2.1.0':
- resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==}
-
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
@@ -5385,304 +4793,79 @@ packages:
'@types/qrcode@1.5.6':
resolution: {integrity: sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==}
- '@types/qs@6.15.1':
- resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==}
-
- '@types/readdir-glob@1.1.5':
- resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==}
-
- '@types/resolve@1.20.2':
- resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
-
- '@types/sortablejs@1.15.9':
- resolution: {integrity: sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==}
-
- '@types/tinycolor2@1.4.6':
- resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
-
- '@types/trusted-types@2.0.7':
- resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
-
- '@types/unist@3.0.3':
- resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
-
- '@types/validator@13.15.10':
- resolution: {integrity: sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==}
-
- '@types/web-bluetooth@0.0.21':
- resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
-
- '@types/whatwg-mimetype@3.0.2':
- resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==}
-
- '@types/ws@8.18.1':
- resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
-
- '@typescript-eslint/parser@8.67.0':
- resolution: {integrity: sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/project-service@8.67.0':
- resolution: {integrity: sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/scope-manager@8.67.0':
- resolution: {integrity: sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/tsconfig-utils@8.67.0':
- resolution: {integrity: sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/types@8.67.0':
- resolution: {integrity: sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@typescript-eslint/typescript-estree@8.67.0':
- resolution: {integrity: sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/utils@8.67.0':
- resolution: {integrity: sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
- typescript: '>=4.8.4 <6.1.0'
-
- '@typescript-eslint/visitor-keys@8.67.0':
- resolution: {integrity: sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
- '@ungap/structured-clone@1.3.3':
- resolution: {integrity: sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==}
-
- '@v-c/async-validator@1.0.1':
- resolution: {integrity: sha512-2WXdbTso13119ZLiwUv1JkmdL0K4ll69id4oE3ft3LQX+YAHOoJtfx080u26lLtypgZS32PguoohgB0BVo39rg==}
-
- '@v-c/cascader@1.1.2':
- resolution: {integrity: sha512-Aa0cXTo4J3d71NjSogjB1fG+yTBGIK5xt/oxqjy/jBcYo0mweOOLrtxSXl+86ZK7LIoWjEE+/MBxRwAR0R4l3w==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/checkbox@1.0.1':
- resolution: {integrity: sha512-+QsE/0VfU6oeglwuHWYxRNTn3+eV08iG0uN/upDmqSGznezInzfUClh+t4acd/OxyJVtuob0WKsg/vPlT6WRWw==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/collapse@1.0.1':
- resolution: {integrity: sha512-HL7Cec3HDVgefdx5AtAgWiibKHZJuKkB3l24eU5vLQ5quv+zswrPhJUr2Opx8LcTkfX9Yjwu1NcrZpf56z0Xhw==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/color-picker@1.0.6':
- resolution: {integrity: sha512-XiTlEMG5p5jkCdKP7nbeo9EJrpdXnoW4uBOA2us8pVgA6m0GxrwMoCg//X+1XsuOaebG/1Swo65mjRuMBM6rZg==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/dialog@1.2.0':
- resolution: {integrity: sha512-I+ODJyaWTp8/ePuPQUkay70J3wVwKrzG+Eo6k+cEuO7+J93v6tXjUVT//jeY6bhmiaeeGe8BSy9EK5RuBGxTpw==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/drawer@1.0.6':
- resolution: {integrity: sha512-nW8rCsf7viUsTo+8SAfqcNDO4B0GC4n2VidHV4kJzbERrMvMsHVpDz1LO+UFgLs8Mn9EjpQm40JtF6d/BNkW0g==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/dropdown@1.0.5':
- resolution: {integrity: sha512-VHtZJ5gyh+VQjJEscqDvCOwSlSXFUwToLfazWBDNSttvZokFr8lUdKgHXyzMve1/003lB6753XaQZcEHD+TLdw==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/image@1.1.0':
- resolution: {integrity: sha512-kPe+HC4ZarWDv/zCD5oegrP+Yw+Ee/25xsjWVI7nkRAZRKwgGyFYjiIR1P0qomMvxdNFTaCbCxTx4Lh5ah2dzQ==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/input-number@1.0.7':
- resolution: {integrity: sha512-OGLDBh9J29JP8SvOeoOdhB7J7Dk9TLl35wFrckZEA+8P56mspm0I6ssFAzjuXB1nLXNWrBB4d2LwzcicfMcdfw==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/input@1.1.1':
- resolution: {integrity: sha512-rEqhP6ULovlFCMaLYlMC3axjSU2hlyBJs/+Bw2N+403H2nreJKjS82n6vgvl/9vMAwTHrkm/jdFxk78WwWDRxw==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/listy@1.0.2':
- resolution: {integrity: sha512-hYC9cGtVeOSbqYDobNOd2BmL6TLMkjtVTVAbNvM3739L8p+2ZcKHKIIHKbofmzTh+aDZIg8646Y1EQfQIlPc7Q==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/mentions@1.2.0':
- resolution: {integrity: sha512-az3F0bN8anqQEgDtobBKKi0K2wYCu/Z8U51nKZuXacEOEj19hRWG4mkSxOScRW4btwE5k6Pto3R9/53vZ1SNGw==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/menu@1.3.0':
- resolution: {integrity: sha512-9TViwEIHEsZ2dly8eflVeQyFzpHeRU/5AnvR2eQWYXwH91b9pCrzPmFDIe2e6ixlpA5LZcamFNSsm+f42kDwGA==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/mini-decimal@1.0.1':
- resolution: {integrity: sha512-76wZLdlkI017iDlaZMNOWZyDCv29YVabUJn5urQgIKtW4dnI5AkNXWtmLyhl/mu/OS7ZGisRi5ai/558QhLQxQ==}
-
- '@v-c/mutate-observer@1.0.2':
- resolution: {integrity: sha512-btnmj0NezMcQ/vOlTlP9p47NBOa8q/CIYdDMrpM3W0JrmAHrkAUD7hiWypLXyBuiEko+SQc3U07rcm8StQ5qFA==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/notification@2.0.2':
- resolution: {integrity: sha512-SkvQfZRuWdNaSAZQOoB12a/kvicpZ4X5lsyDObWyzOmkv5hrZioAixk2QgNhJ7b5jPYfjyYT8JfjeubjEk4BMQ==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/overflow@1.1.1':
- resolution: {integrity: sha512-Q7EpThPBEa/+eIfacWhyZqfKQVPyDnAelswEXYsmFokXY/aeGkdFe8eUr3m3X5NKTNrFDWZiDDHyXEnInTpxQQ==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/pagination@1.1.1':
- resolution: {integrity: sha512-L6j7DatBvRT4a2RlzuN3q6WJK5jieWSaxiaUUWacj9lt1jd4Z5P592PuH1ECDILYey5Y1Jqz0RVG9JIsBvwN2Q==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/picker@1.3.2':
- resolution: {integrity: sha512-XY9+cXmHBqPtyf7ks4lvc7664/vM5XybbCyeVtIm1Ukrx+0hnVgjnsjdfDN7qJLmjsye6Q/G0pE9ROCPKw7oMw==}
- peerDependencies:
- date-fns: '>= 2.x'
- dayjs: '>= 1.x'
- luxon: '>= 3.x'
- moment: '>= 2.x'
- vue: ^3.5.40
- peerDependenciesMeta:
- date-fns:
- optional: true
- dayjs:
- optional: true
- luxon:
- optional: true
- moment:
- optional: true
-
- '@v-c/portal@1.0.8':
- resolution: {integrity: sha512-93elruWfHKrdtRkpFBNpi47YhQjA75tCuG8C/WvcQ9x/dp+H3i+y7h6t0iyyDjZu1w3d2U5+d43vtslmoQXBYg==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/progress@1.0.1':
- resolution: {integrity: sha512-ZTaXBYfAASPSk9MD/tu3eZUCnB1UhK6s0G/F0AkNwvzPiVcR2kiiDZO12YpfmdZwUjcrg8U7miAg89aSUZ/aPw==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/qrcode@1.0.1':
- resolution: {integrity: sha512-kPcpjgX5lEj6/vatJOqrUtqj5PGvcAYCs5CAu1kBO0B6FGnSuHM/JXlYQrmMNIOD1sI/GzgYIa9KL6mc8FCHJw==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/rate@1.0.1':
- resolution: {integrity: sha512-ZWWY01LeKu9S/JncdvSr2gz2Kwwum3bB/AxzzCsuhCyg+9P4BLwX7S2WZDMiJ92uYEpiYladVTCa9XdSCPaCaQ==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/resize-observer@1.1.3':
- resolution: {integrity: sha512-+b1VJCnUJzcbT/dthgo1GpiY98Y7QEDqI+BkZc/PquQx1cqVgRLEVU/n1vfDx8A6msgwjEAHPoBrPWSiNWZiQA==}
- peerDependencies:
- vue: ^3.5.40
-
- '@v-c/segmented@1.0.4':
- resolution: {integrity: sha512-QNEHEvT37gFlRaNuoO4IcHJvj2xwz+r8Nx/f7x+eLEoVectYn1cJN0b1uzpFeGWPNPUbz7u5TOLUR6VOWzr1qQ==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/qs@6.15.1':
+ resolution: {integrity: sha512-GZHUBZR9hckSUhrxmp1nG6NwdpM9fCunJwyThLW1X3AyHgd9IlHb6VANpQQqDr2o/qQp6McZ3y/IA2rVzKzSbw==}
- '@v-c/select@1.2.4':
- resolution: {integrity: sha512-Mnk/EOpmRPvdXhXXzswdK/OR7dNIcOIUnhuEvY9jz/F9cuPL/GkeKo0rcf2gbpGlA2rVqeJH02PyUkLv0s/euA==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/readdir-glob@1.1.5':
+ resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==}
- '@v-c/slick@1.0.2':
- resolution: {integrity: sha512-8BbPxJgYST+tio9jyeFQgJb/3XSFhfWZN8Am7YVYeqsYsvn3g8wu61UZNSjlkp9ArOEe+ujOgX4izfDHeXh4RA==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/resolve@1.20.2':
+ resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
- '@v-c/slider@1.1.0':
- resolution: {integrity: sha512-W11+HdY7JjpsZA+2x6ZcZLK/z/cwY+o3fbqzCgguWdKY8qwhA2CWQBd6SMidFa8F+L2HU/JupNx6Yu3cVw9piQ==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/sortablejs@1.15.9':
+ resolution: {integrity: sha512-7HP+rZGE2p886PKV9c9OJzLBI6BBJu1O7lJGYnPyG3fS4/duUCcngkNCjsLwIMV+WMqANe3tt4irrXHSIe68OQ==}
- '@v-c/steps@1.0.0':
- resolution: {integrity: sha512-DPL0OOb8pDLlTPZB93b8+Saxiz6V5zEpGXKaCnsbXUuOhimkc7089AuEKfpMw+8x1SrVe+gapWf5RRHWXUm2pg==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/tinycolor2@1.4.6':
+ resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
- '@v-c/switch@1.0.1':
- resolution: {integrity: sha512-dWMBfb5/8o3GFGvayyT576YWB6yPW8Aa2Ba5I9hXcYvuIH4JJ5NYI3WJqc8KpFMNA4Y4/MyVIY3NNsXyXa22bw==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/trusted-types@2.0.7':
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
- '@v-c/table@1.2.0':
- resolution: {integrity: sha512-oNGyeDdLgfCOb6/jXV1nrwGRQLF4ZZp+XxR7xzvhviIwSGBSsifMtxMGOX+7pXuNztZ7YFWc06+TBR76Yd6VUw==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/validator@13.15.10':
+ resolution: {integrity: sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==}
- '@v-c/tabs@1.3.0':
- resolution: {integrity: sha512-XUH+DD/akTfxCSIVKyxVOsIF2CQHXeXDfGplapRlNu4jDObJYRuP2V1srDyG4/P8ItvR6kopER1oCIDJrYVh1Q==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/web-bluetooth@0.0.21':
+ resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==}
- '@v-c/textarea@1.1.0':
- resolution: {integrity: sha512-+E2DZogCNHb/0Jf/DJLqX5BH22/HcdTcHo9dMjmS+X/NDRCGl1sQfeEa+7mGAWnYXAmL4RIS8PS6lwEn90inbA==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/whatwg-mimetype@3.0.2':
+ resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==}
- '@v-c/tooltip@1.1.0':
- resolution: {integrity: sha512-G2GcvbnvWG8nb0OaflDnAevV7v2xOsiGz33HmsOaeQTmqVq/a1apIwe4GvAAoguI5ifunzhbP4G3MUrjsZEVEQ==}
- peerDependencies:
- vue: ^3.5.40
+ '@types/ws@8.18.1':
+ resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
- '@v-c/tour@1.1.1':
- resolution: {integrity: sha512-q8OZjbRNR683xePlyG0Idn/PNWeMtz5MNr66ROnsBpVTY/eScjHUHqpNtJKbTvn2oj9iZf+SbJdpDWxxPh1ZiA==}
+ '@typescript-eslint/parser@8.67.0':
+ resolution: {integrity: sha512-fUBfTuuEulWqX6V8+O3PtScV01tzYYRUDTAirHFKoRAt7nOzoGiPt0M/bB47wWNy0coOOcgEwAMUtBpykMxl6w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- vue: ^3.5.40
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.1.0'
- '@v-c/tree-select@1.1.2':
- resolution: {integrity: sha512-CUQkYS4L29OwIYTbzEI7EHbE4UQAkKp2esYVcr7d0lUWl7B8xfEt9PxBJhAGzIjpUyyQ8Ly2O3gY44TOsvVkAA==}
+ '@typescript-eslint/project-service@8.67.0':
+ resolution: {integrity: sha512-cvE8c7ulYeXN9fYuszhCeCsbzyVEXuhrRCybnBre7TUmqb5nRmBfQAwCj0O3WJFDeyAZt4VYv51vMCC9LHSdYw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- vue: ^3.5.40
+ typescript: '>=4.8.4 <6.1.0'
- '@v-c/tree@1.2.0':
- resolution: {integrity: sha512-nhC9c/My/zgKXTAGgYdqLWjcklSlPpedO2brlbc80QvWNVAuAZvngOVdoF8eoP5hCgz8asXFUYvhNAJgQdTHdA==}
- peerDependencies:
- vue: ^3.5.40
+ '@typescript-eslint/scope-manager@8.67.0':
+ resolution: {integrity: sha512-EgvsleTwS4E+WzzSvem8fAUubLwatMNF1B5hHSLQxcvs7q2dtRhGyujHwLJSYlG41niJ7GP24Aha2+0mb1b2kg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@v-c/trigger@1.1.0':
- resolution: {integrity: sha512-rey3WPVipw18kfyM5RLMGiFmqdpWkv4nu97xOwe7OLZXti2A3Ns07ELozgU4Hhar5QoibNE4ldkkfFCc9ckWvA==}
+ '@typescript-eslint/tsconfig-utils@8.67.0':
+ resolution: {integrity: sha512-vV+LUSv5njUWsknE71fqKTlXUva+R76SaeORd6Zojcunk/6DvKFXONU3BrAs2H49mbygUXt6gbYunzwqNwlhdg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- vue: ^3.5.40
+ typescript: '>=4.8.4 <6.1.0'
- '@v-c/upload@1.0.0':
- resolution: {integrity: sha512-W92PNCD61aM/B5w8oUzHQSDHur1T8484726Ls0IoNMO5nPiF/15eEE3RuuI/t7xXQVP/fA06hNSwzXwGWdDg1w==}
- peerDependencies:
- vue: ^3.5.40
+ '@typescript-eslint/types@8.67.0':
+ resolution: {integrity: sha512-sBtgslww8nsMYUjhdPBiSyUqSzT8uR6g93A2QXnQC8+cGdjz0CyaOdqHDRJb1AtORbZCNUJBBeFA/tNR2uQmww==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@v-c/util@1.1.0':
- resolution: {integrity: sha512-TWIigrRbzWAN1pk+bufB5/dtDWsXYA8v5izcuSPuADaIicJnPqEY0V3NlUx9XVQ4gobqpX/HVpeEMg9ZwqlHiQ==}
+ '@typescript-eslint/typescript-estree@8.67.0':
+ resolution: {integrity: sha512-EKQBCE9yNlRJYm7jdTW5AhDacDUmSwQb0FAJAmK2EKYrNXIsa2vxcSZx6PvJ/dEdI6lS+Y9W+EXckLj0iPFGcw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- vue: ^3.5.40
+ typescript: '>=4.8.4 <6.1.0'
- '@v-c/virtual-list@1.1.1':
- resolution: {integrity: sha512-9884Bwt9oFW5dJGoBKUBA+xfd6GR+/lIzi4ScMEDciscL5PSEoRqMHZwiDnGhqwntmQGTbkEI43eCeFcvxxNuA==}
+ '@typescript-eslint/utils@8.67.0':
+ resolution: {integrity: sha512-U9D1FdwEWBwok3hxxSdhclMb0twvt9QnjIQ0VfQ1AiX2epnpSgv2ubVDsayOFyY8K6FX+AQ7E0FKWVG3iKsj1A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- vue: ^3.5.40
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.1.0'
+
+ '@typescript-eslint/visitor-keys@8.67.0':
+ resolution: {integrity: sha512-fkv8dHRDqfGtTHuJeebdrQ7cX6Ad4WAS00rgHh9UGvMycF1mjBfsxry1XsLIFhWZ6Judlh6UdzK+TYlbpCXgnA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@valibot/to-json-schema@1.7.1':
resolution: {integrity: sha512-3qkmU6KXWh8GIThEAW3kuRHPQBMjWkKy+Ppz3WkUucx53DTpOa6siMn4xDGSOhlVyMrDaJTCTMLYPZVAIk1P0A==}
@@ -5694,15 +4877,6 @@ packages:
engines: {node: '>=20'}
hasBin: true
- '@vite-pwa/vitepress@1.1.0':
- resolution: {integrity: sha512-enif5C2JmepS69Ak7PSr6K3Eimsg7VyryZo1Z6NiIPNDnjXFlOqxwBYaq8R/d0M7akArJsjos7KmQnEfNFf5nA==}
- peerDependencies:
- '@vite-pwa/assets-generator': ^1.0.0
- vite-plugin-pwa: ^1.2.0
- peerDependenciesMeta:
- '@vite-pwa/assets-generator':
- optional: true
-
'@vitejs/plugin-vue-jsx@5.1.6':
resolution: {integrity: sha512-YXvi4as2clxt6DFw5+a0tTA97ntiQXm/raR8ofNj3aNwwdlVGTiG2gp7EvfZW17P50acL/9bP0ccF4XnqNmlgA==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -6141,15 +5315,6 @@ packages:
resolution: {integrity: sha512-BJ8/l4R5LRE7hW9WdSuGYrLSHi2ynxeFpDFbH0K/CgNeY/tyhk+vO6TYxXC5r5CpUhNVX310xzPsN/H9lCdfOA==}
engines: {node: '>=14'}
- ant-design-vue@4.2.6:
- resolution: {integrity: sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==}
- engines: {node: '>=12.22.0'}
- peerDependencies:
- vue: ^3.5.40
-
- antdv-next@1.5.2:
- resolution: {integrity: sha512-IWhjaBteKcUuhtjchWPPcI7C5PngGUmiU++fJ8CEE+lKqisCgT4Yji6CHdTE2MKzIObarXI9FyhgQ+bN8SJEtQ==}
-
anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
@@ -6187,9 +5352,6 @@ packages:
array-timsort@1.0.3:
resolution: {integrity: sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==}
- array-tree-filter@2.1.0:
- resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==}
-
array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
@@ -6367,9 +5529,6 @@ packages:
resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==}
engines: {node: '>=8.0.0'}
- buffer-equal-constant-time@1.0.1:
- resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
-
buffer-from@1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -6429,9 +5588,6 @@ packages:
caniuse-lite@1.0.30001809:
resolution: {integrity: sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==}
- ccount@2.0.1:
- resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
-
chai@6.2.2:
resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==}
engines: {node: '>=18'}
@@ -6452,12 +5608,6 @@ packages:
resolution: {integrity: sha512-2uNTXIuTTxk7ciZgAU1BQcgnchcG0xXnrs6jzkQfj9SsRa9M2s5zE8WT96hS6KmG4MzWHSrvH43DF1m4XRkrFg==}
engines: {node: '>=22'}
- character-entities-html4@2.1.0:
- resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
-
- character-entities-legacy@3.0.0:
- resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
-
chardet@2.2.0:
resolution: {integrity: sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==}
@@ -6539,9 +5689,6 @@ packages:
colord@2.10.0:
resolution: {integrity: sha512-AidJptpBJmjTclAp9BkLwJi0T93fo5epJnbaZslpg6QVzpHjAiveF55mE9AcUJiGMqRHgMDY8soMsQtuNYMHfw==}
- colorette@2.0.20:
- resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
-
colorjs.io@0.7.1:
resolution: {integrity: sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==}
@@ -6549,9 +5696,6 @@ packages:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
- comma-separated-tokens@2.0.3:
- resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
-
commander@10.0.1:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
@@ -6602,12 +5746,6 @@ packages:
resolution: {integrity: sha512-g0S8KAD8qf4+V//pr3BfB1aBnARLXNz2Gx+jmHU0LEriUuoQUOPOulVquHKTJ8+EAIIO7fhseNDr9wK5Q9FKBQ==}
engines: {node: '>=18'}
- compute-scroll-into-view@1.0.20:
- resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
-
- compute-scroll-into-view@3.1.1:
- resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==}
-
confbox@0.1.8:
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
@@ -6658,9 +5796,6 @@ packages:
resolution: {integrity: sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==}
engines: {node: '>=6.4.0'}
- core-js@3.50.0:
- resolution: {integrity: sha512-BRWgOLKkFeCgRudR6zrs8p9XJZcE14grzKMMssoYrk6krtuEZ7MTKPIY5RzOnqsEKIR9kst7wNzphttraT+Yqw==}
-
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -6771,9 +5906,6 @@ packages:
resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==}
engines: {node: '>=12'}
- css-render@0.15.14:
- resolution: {integrity: sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==}
-
css-select@5.2.2:
resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==}
@@ -6798,9 +5930,6 @@ packages:
resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
- csstype@3.0.11:
- resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==}
-
csstype@3.2.3:
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
@@ -6828,14 +5957,6 @@ packages:
dataloader@1.4.0:
resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==}
- date-fns-tz@3.2.0:
- resolution: {integrity: sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==}
- peerDependencies:
- date-fns: ^3.0.0 || ^4.0.0
-
- date-fns@4.4.0:
- resolution: {integrity: sha512-+1UMbeh68lH1SegH83CGWwpb6OHHbpSgr3+s5Eww5M4CAgswBpoWS0AjTOfEJ33HiYKz1hdj/KTFprzXHmq/6w==}
-
dayjs@1.11.23:
resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==}
@@ -6937,10 +6058,6 @@ packages:
resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
engines: {node: '>= 0.8'}
- dequal@2.0.3:
- resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
- engines: {node: '>=6'}
-
destr@2.0.5:
resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
@@ -6952,9 +6069,6 @@ packages:
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
engines: {node: '>=8'}
- devlop@1.1.0:
- resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
-
diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -6966,12 +6080,6 @@ packages:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'}
- dom-align@1.12.4:
- resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
-
- dom-scroll-into-view@2.0.1:
- resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==}
-
dom-serializer@2.0.0:
resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
@@ -7026,9 +6134,6 @@ packages:
eastasianwidth@0.2.0:
resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
- ecdsa-sig-formatter@1.0.11:
- resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
-
echarts@6.1.0:
resolution: {integrity: sha512-q0yaFPggC9FUdsWH4blavRWFmxdrIodbkoKNAjJudAI6CA9gNPxHtV2RcZNEepZVlk4yvBYkOkbk6HIVpIyHZA==}
@@ -7048,11 +6153,6 @@ packages:
electron-to-chromium@1.5.412:
resolution: {integrity: sha512-z4rMe3esBzlzovKHj4gxJnsCGZRK5l4baUvm+gCGJBPE+gsyUMKsuU9tnEUtI1dOebXz1ytAPGjvXhmQ7rIPwA==}
- element-plus@2.14.5:
- resolution: {integrity: sha512-bghYy/S+qg87enHPXELirhEdDqsVAUGcGpbGIeG8dz0kwpIkGz7gYsifulBshXX74iRtHib85XWQj0uSH2A1Yg==}
- peerDependencies:
- vue: ^3.5.40
-
emoji-regex@10.6.0:
resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
@@ -7152,9 +6252,6 @@ packages:
resolution: {integrity: sha512-yPDz7wqpg1/mmHLmS3tcfTfbw5f1eryXvyghYBffGdERwe+mV7ZcWzTR8LR17Kvqt3qfPurjlonmnq3MKXIOXw==}
engines: {node: '>= 0.4'}
- es-toolkit@1.50.0:
- resolution: {integrity: sha512-OyZKhUVvEep9ITEiwHn8GKnMRQIVqoSIX7WnRbkWgJkllCujilqP2rD0u979tkl8wqyc8ICwlc1UBVv/Sl1G6w==}
-
es-toolkit@1.51.0:
resolution: {integrity: sha512-zC2lQGkM7QX+Gm6iM3+WIdZJzthsEd14LvRNJneSO2hzyz/zNBENR8+YXWo1cKxgPBtV6ksPYHELbcwBRzmdCw==}
@@ -7370,17 +6467,10 @@ packages:
resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
engines: {node: '>=0.8.x'}
- evtd@0.2.4:
- resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==}
-
execa@10.0.1:
resolution: {integrity: sha512-ge98qjkRK4IB7tL7Ju/6qmm5LHoH1eEMt5FNZrz3f4UIYhF28lggX20z3FaX1sgc67msLEn0N0BscOs29iuwyw==}
engines: {node: '>=22'}
- execa@9.6.1:
- resolution: {integrity: sha512-9Be3ZoN4LmYR90tUoVu2te2BsbzHfhJyfEiAVfz7N5/zv+jduIfLrV2xdQXOHbaD6KgpGdO9PRPM1Y4Q9QkPkA==}
- engines: {node: ^18.19.0 || >=20.5.0}
-
expect-type@1.4.0:
resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==}
engines: {node: '>=12.0.0'}
@@ -7388,10 +6478,6 @@ packages:
exsolve@1.1.1:
resolution: {integrity: sha512-9U/jZUgjnSGyntRr6y5Muu1MJcwFl6kPu7k8qLF0IMNfLqvw0NZ4nnVDq0RVoZ0RvCyumib4Ez3KYrVfilrw+g==}
- extend-shallow@2.0.1:
- resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
- engines: {node: '>=0.10.0'}
-
extendable-error@0.1.7:
resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
@@ -7677,10 +6763,6 @@ packages:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
- globby@14.1.0:
- resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==}
- engines: {node: '>=18'}
-
globby@16.2.4:
resolution: {integrity: sha512-c8B/VNLmxRcmqqenRA9t+9IyOjf9+V6lTxPaUJLqOCONdQkWZ0ETYgX0qbtJqPsgCNusT9MZ5Jeidw8Eb9tn2g==}
engines: {node: '>=20'}
@@ -7701,10 +6783,6 @@ packages:
graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- gray-matter@4.0.3:
- resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
- engines: {node: '>=6.0'}
-
gzip-size@7.0.0:
resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@@ -7751,19 +6829,9 @@ packages:
resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==}
engines: {node: '>= 0.4'}
- hast-util-to-html@9.0.5:
- resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==}
-
- hast-util-whitespace@3.0.0:
- resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
-
hey-listen@1.0.8:
resolution: {integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==}
- highlight.js@11.12.0:
- resolution: {integrity: sha512-nbfWpyRMcMrPMmDwJB+dhX/eiaPKtc2RB+0QZskqJ3WjRA/FDS0e9hZrx8EC/lbEv8gXy98FcDbNa/dspAaJMg==}
- engines: {node: '>=12.0.0'}
-
hookable@5.5.3:
resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
@@ -7785,9 +6853,6 @@ packages:
resolution: {integrity: sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==}
engines: {node: '>=20.10'}
- html-void-elements@3.0.0:
- resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
-
htmlparser2@10.1.0:
resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==}
@@ -7946,10 +7011,6 @@ packages:
resolution: {integrity: sha512-+XSoyS05OdBbhFuELhgTCpFNHkpBOJqtsZfUFFpe5QTw+9Sjbh8zitxhQkYAo6wV7e1Vb8cAPvpCk9jGam/82g==}
engines: {node: '>= 0.4'}
- is-extendable@0.1.1:
- resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
- engines: {node: '>=0.10.0'}
-
is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -8031,10 +7092,6 @@ packages:
resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
engines: {node: '>=12'}
- is-plain-object@3.0.1:
- resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==}
- engines: {node: '>=0.10.0'}
-
is-plain-object@5.1.0:
resolution: {integrity: sha512-bUi/yjmtKYcRVUtWRGr0UA6xEFh2I6zWUwMrUXB3s7bmYCaZ8a+0ZsTRkrawh/mzlSD1Y0Ph8bp/U+TvBpWDNw==}
engines: {node: '>=0.10.0'}
@@ -8221,16 +7278,6 @@ packages:
resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
engines: {node: '>=0.10.0'}
- jsonwebtoken@9.0.3:
- resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==}
- engines: {node: '>=12', npm: '>=6'}
-
- jwa@2.0.1:
- resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==}
-
- jws@4.0.1:
- resolution: {integrity: sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==}
-
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
@@ -8532,43 +7579,15 @@ packages:
lodash-es@4.18.1:
resolution: {integrity: sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==}
- lodash-unified@1.0.3:
- resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
- peerDependencies:
- '@types/lodash-es': '*'
- lodash: '*'
- lodash-es: '*'
-
lodash.clonedeep@4.5.0:
resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
lodash.debounce@4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
- lodash.includes@4.3.0:
- resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
-
- lodash.isboolean@3.0.3:
- resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
-
- lodash.isinteger@4.0.4:
- resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
-
- lodash.isnumber@3.0.3:
- resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
-
- lodash.isplainobject@4.0.6:
- resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
-
- lodash.isstring@4.0.1:
- resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
-
lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
- lodash.once@4.1.1:
- resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
-
lodash.startcase@4.4.0:
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
@@ -8586,10 +7605,6 @@ packages:
resolution: {integrity: sha512-lddSgOt3bPASrylL54ZSpy8nBHns+vBVSoILlVOx+dei300pnLRN958rj/EdlVLKuWlSESU3qdnDZdAI7FXYGg==}
engines: {node: '>=22'}
- loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
- hasBin: true
-
lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
@@ -8624,9 +7639,6 @@ packages:
resolution: {integrity: sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==}
engines: {node: '>=18'}
- mark.js@8.11.1:
- resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==}
-
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
@@ -8634,9 +7646,6 @@ packages:
mathml-tag-names@4.0.0:
resolution: {integrity: sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==}
- mdast-util-to-hast@13.2.1:
- resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==}
-
mdn-data@2.0.28:
resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
@@ -8646,12 +7655,6 @@ packages:
mdn-data@2.29.0:
resolution: {integrity: sha512-pVxQFCcaYUEAH853+v7yoI/qzhxXSq1bTb9obMYGYAN1c3Hen+XDCEvr296XhstrwlSTNgOR7mCSD4JPjbJe5A==}
- medium-zoom@1.1.0:
- resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==}
-
- memoize-one@6.0.0:
- resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
-
meow@14.1.0:
resolution: {integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==}
engines: {node: '>=20'}
@@ -8660,21 +7663,6 @@ packages:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
- micromark-util-character@2.1.1:
- resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
-
- micromark-util-encode@2.0.1:
- resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
-
- micromark-util-sanitize-uri@2.0.1:
- resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
-
- micromark-util-symbol@2.0.1:
- resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
-
- micromark-util-types@2.0.2:
- resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==}
-
micromatch@4.0.8:
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
engines: {node: '>=8.6'}
@@ -8728,9 +7716,6 @@ packages:
resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==}
engines: {node: '>=16 || 14 >=14.17'}
- minisearch@7.2.0:
- resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==}
-
minizlib@3.1.0:
resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
engines: {node: '>= 18'}
@@ -8762,20 +7747,11 @@ packages:
muggle-string@0.4.1:
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
- naive-ui@2.45.2:
- resolution: {integrity: sha512-KshetbFOX/uZ/Pe+60hJoUAo47x5QO1JpZaUVPQCQkNhFfJ7hKsX55A8oMFQHccEpLuQUMPkJ41cX94R4nWUjg==}
- engines: {node: '>=20'}
- peerDependencies:
- vue: ^3.5.40
-
nanoid@3.3.18:
resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- nanopop@2.4.2:
- resolution: {integrity: sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==}
-
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
@@ -8853,9 +7829,6 @@ packages:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
- normalize-wheel-es@1.2.0:
- resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
-
nostics@1.2.0:
resolution: {integrity: sha512-FGqEfhQjrvo1lL8KFifdTQiNwwQHJxC1jtYE1Rc54qF/jxONUNL+kC9gS1krX8Q65PgrQ5fCqH/I4NhWBvdSqg==}
@@ -8899,12 +7872,6 @@ packages:
resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
engines: {node: '>=18'}
- oniguruma-parser@0.12.2:
- resolution: {integrity: sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==}
-
- oniguruma-to-es@4.3.6:
- resolution: {integrity: sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==}
-
open@11.0.1:
resolution: {integrity: sha512-NzwMUB6C1D0+Kd+9iMS/H4k+Ck3cTX6Ckyfr/gAGlmvSE1LUQZnEZvWBi4PYmMwH/S5SMeTXnE+9uAz8uF+pWw==}
engines: {node: '>=20'}
@@ -9081,10 +8048,6 @@ packages:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
- path-type@6.0.0:
- resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==}
- engines: {node: '>=18'}
-
pathe@2.0.3:
resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
@@ -9269,9 +8232,6 @@ packages:
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
engines: {node: '>= 0.6.0'}
- property-information@7.2.0:
- resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==}
-
prosemirror-changeset@2.4.2:
resolution: {integrity: sha512-ViYrjMSg3YFiXwIhKaluu+/mi3Yrxt6AR8ri14ulTaGcZtXO1CThl7A2gv79qx5fQnOw8woKwyBU2u+9PVCm3w==}
@@ -9415,15 +8375,6 @@ packages:
regenerate@1.4.2:
resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
- regex-recursion@6.0.2:
- resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==}
-
- regex-utilities@2.3.0:
- resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
-
- regex@6.1.0:
- resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==}
-
regexp.prototype.flags@1.5.4:
resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==}
engines: {node: '>= 0.4'}
@@ -9456,9 +8407,6 @@ packages:
resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
engines: {node: '>= 0.10'}
- remove-accents@0.5.0:
- resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==}
-
require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
@@ -9470,9 +8418,6 @@ packages:
require-main-filename@2.0.0:
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
- resize-observer-polyfill@1.5.1:
- resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
-
resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
@@ -9525,10 +8470,6 @@ packages:
vue-tsc:
optional: true
- rolldown-string@0.2.1:
- resolution: {integrity: sha512-7H8oH5A8+L96pbBTPCt/rZrwayEhZY5/ejhdk9nRODH32H1v7+bfkaCr+kS15DcGQ7VC1HcWdQVNABFYgrMOzg==}
- engines: {node: '>=20.19.0'}
-
rolldown@1.2.5:
resolution: {integrity: sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -9716,26 +8657,13 @@ packages:
resolution: {integrity: sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==}
engines: {node: '>=11.0.0'}
- scroll-into-view-if-needed@2.2.31:
- resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
-
- scroll-into-view-if-needed@3.1.0:
- resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==}
-
scule@1.3.0:
resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
- section-matter@1.0.0:
- resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
- engines: {node: '>=4'}
-
secure-ls@2.0.0:
resolution: {integrity: sha512-Wgtnw0QSm0v7gVKv11nOoeyGS65EThGXnBB7jfd4IhZd2eq3B4AMPcXAL5qJ1h55+Qolun7TONTwX7H5m6e2pQ==}
engines: {node: '>=8.0'}
- seemly@0.3.10:
- resolution: {integrity: sha512-2+SMxtG1PcsL0uyhkumlOU6Qo9TAQ/WyH7tthnPIOQB05/12jz9naq6GZ6iZ6ApVsO3rr2gsnTf3++OV63kE1Q==}
-
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
@@ -9778,9 +8706,6 @@ packages:
setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
- shallow-equal@1.2.1:
- resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==}
-
shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -9789,10 +8714,6 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- shiki@4.4.3:
- resolution: {integrity: sha512-Mb/GvXPHBAXdgGIcnfU5L3ldpn1XcxrGkPHwqgRx17/I2XRfqlFKk2vGkHWINn1kdXvzJZeuO3is6I9KLPFm0g==}
- engines: {node: '>=20'}
-
side-channel-list@1.0.1:
resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==}
engines: {node: '>= 0.4'}
@@ -9869,9 +8790,6 @@ packages:
resolution: {integrity: sha512-d8EqvL+k/SOXCreS/SUzg2ciyHqBBLcN/yuRjFsbvVhHTE2pgei7oAhmPM7kWFbkX6OSMQfUq4KbkF3au9lhYQ==}
engines: {node: '>= 12'}
- space-separated-tokens@2.0.2:
- resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
-
spawndamnit@3.0.1:
resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==}
@@ -9943,9 +8861,6 @@ packages:
string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
- stringify-entities@4.0.4:
- resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
-
stringify-object@3.3.0:
resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==}
engines: {node: '>=4'}
@@ -9958,10 +8873,6 @@ packages:
resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
engines: {node: '>=12'}
- strip-bom-string@1.0.0:
- resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
- engines: {node: '>=0.10.0'}
-
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
@@ -10060,9 +8971,6 @@ packages:
engines: {node: '>=20.19.0'}
hasBin: true
- stylis@4.4.0:
- resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==}
-
supports-color@10.2.2:
resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
engines: {node: '>=18'}
@@ -10180,10 +9088,6 @@ packages:
theme-colors@0.1.0:
resolution: {integrity: sha512-6gTEHQqWlQNiOEGHCSSQmU//E5SnXHJ4H7oHQOD8x77CvNYNQAmt73dqR71mzw5ULV87zaHLxK5pIBnsToFuZw==}
- throttle-debounce@5.0.2:
- resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==}
- engines: {node: '>=12.22'}
-
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
@@ -10232,12 +9136,6 @@ packages:
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
hasBin: true
- treemate@0.3.11:
- resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==}
-
- trim-lines@3.0.1:
- resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
-
ts-api-utils@2.5.0:
resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==}
engines: {node: '>=18.12'}
@@ -10432,21 +9330,6 @@ packages:
resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==}
engines: {node: '>=8'}
- unist-util-is@6.0.1:
- resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==}
-
- unist-util-position@5.0.0:
- resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
-
- unist-util-stringify-position@4.0.0:
- resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
-
- unist-util-visit-parents@6.0.2:
- resolution: {integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==}
-
- unist-util-visit@5.1.0:
- resolution: {integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==}
-
universalify@0.1.2:
resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
engines: {node: '>= 4.0.0'}
@@ -10485,10 +9368,6 @@ packages:
webpack:
optional: true
- unplugin-element-plus@0.11.2:
- resolution: {integrity: sha512-jr88ePpv43h8cCmVW0SqM73sTD+g1n9Rmy4uMbTh+pSmceH9ZdKteWX9f+twC4aDlP3svdZuKMqLoUNBT2V6Tg==}
- engines: {node: '>=20.19.0'}
-
unplugin-utils@0.3.2:
resolution: {integrity: sha512-xVToRh2CTmLk2HnEG7ac4rl1MJTT3RFkpS8B++/SnB0kXvuaavD+n3m/vrzyWQOdJNSZQACnbz01pnppbwV5BA==}
engines: {node: '>=20.19.0'}
@@ -10647,21 +9526,10 @@ packages:
varint@6.0.0:
resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==}
- vdirs@0.1.8:
- resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==}
- peerDependencies:
- vue: ^3.5.40
-
verkit@0.3.2:
resolution: {integrity: sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==}
engines: {node: '>=18.12.0'}
- vfile-message@4.0.3:
- resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==}
-
- vfile@6.0.3:
- resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
-
vite-dev-rpc@2.0.0:
resolution: {integrity: sha512-yKwbTwdHKSD2k/aGqyWpPHepo45OQc8lH3/6IfT4ZqeKE26ooKvi4WIEKzqWav8v+9Is8u1k8q54hvOmqASazA==}
peerDependencies:
@@ -10756,26 +9624,6 @@ packages:
yaml:
optional: true
- vitepress-plugin-group-icons@1.7.6:
- resolution: {integrity: sha512-fXSpQAYHpFpEsZLKWQAwbRx/+0uRSHmY58YNAQcz0AVirGsM6w22jtSmQhOGLEj8ZKyeRtTJrpx6otUI6wvoaQ==}
- peerDependencies:
- vite: '>=3'
- peerDependenciesMeta:
- vite:
- optional: true
-
- vitepress@2.0.0-alpha.19:
- resolution: {integrity: sha512-WnBsb0Bwr43kXKyiis+lld/7ri3hnMbthS8N3hpFtjjwsdLO4IRmiAE08D7aud4q6oMDf9uwRowxzNqRFe/amw==}
- hasBin: true
- peerDependencies:
- markdown-it-mathjax3: ^4
- postcss: ^8
- peerDependenciesMeta:
- markdown-it-mathjax3:
- optional: true
- postcss:
- optional: true
-
vitest@4.1.11:
resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==}
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -10817,11 +9665,6 @@ packages:
jsdom:
optional: true
- vooks@0.2.12:
- resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==}
- peerDependencies:
- vue: ^3.5.40
-
vscode-languageserver-textdocument@1.0.12:
resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==}
@@ -10889,12 +9732,6 @@ packages:
peerDependencies:
typescript: '>=5.0.0'
- vue-types@3.0.2:
- resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==}
- engines: {node: '>=10.15.0'}
- peerDependencies:
- vue: ^3.5.40
-
vue@3.5.41:
resolution: {integrity: sha512-2laE0p+aK+/AOPG/XL/WepOs/GlK755LJ1XECi9kDUrz1FKNw8rb2Xzlw9JS1rqEV55nb0ttsKxVlTCcd+R5cg==}
peerDependencies:
@@ -10903,11 +9740,6 @@ packages:
typescript:
optional: true
- vueuc@0.4.66:
- resolution: {integrity: sha512-hHrZl+0AsrUvqYPBXSXQ2QaSrO3razjeUseLAhJWlOS/Hdfw/Y2MU05fOTP1qn1A3121gMxsHLaEz2V6CkWdTg==}
- peerDependencies:
- vue: ^3.5.40
-
vxe-pc-ui@4.17.13:
resolution: {integrity: sha512-gnTqRP1aHct5bswmCsCIOqlHvUaCnMFjV7kZFR5RxlArtO5NHQzuGfq1VPa/4oZ2Hiw8nU4B2SGrDhzUVgiMUQ==}
@@ -10921,9 +9753,6 @@ packages:
resolution: {integrity: sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==}
engines: {node: 20 || >=22}
- warning@4.0.3:
- resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
-
watermark-js-plus@1.6.6:
resolution: {integrity: sha512-TReFUESd36dq8KHLeWzw3NAJXTc3/h/Clip+VWE8SxGx6Digfwxy/NPrLYnFDddw/8kUv/7p0Ohgpperzpjjjw==}
@@ -11190,9 +10019,6 @@ packages:
zrender@6.1.0:
resolution: {integrity: sha512-oEGMDB6pOP2S6OwRR4PdVv610zrjnA3Bh+JnSG12fYJlBKjtNAoEb5fSUoCOOINlH96I2fU38/A2UpRKs67xYQ==}
- zwitch@2.0.4:
- resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
-
zx@8.8.5:
resolution: {integrity: sha512-SNgDF5L0gfN7FwVOdEFguY3orU5AkfFZm9B5YSHog/UDHv+lvmd82ZAsOenOkQixigwH2+yyH198AwNdKhj+RA==}
engines: {node: '>= 12.17.0'}
@@ -11200,48 +10026,6 @@ packages:
snapshots:
- '@ant-design/colors@6.0.0':
- dependencies:
- '@ctrl/tinycolor': 4.2.0
-
- '@ant-design/colors@7.2.1':
- dependencies:
- '@ant-design/fast-color': 2.0.6
-
- '@ant-design/colors@8.0.1':
- dependencies:
- '@ant-design/fast-color': 3.0.1
-
- '@ant-design/fast-color@2.0.6':
- dependencies:
- '@babel/runtime': 7.29.7
-
- '@ant-design/fast-color@3.0.1': {}
-
- '@ant-design/icons-svg@4.5.0': {}
-
- '@ant-design/icons-vue@7.0.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@ant-design/colors': 6.0.0
- '@ant-design/icons-svg': 4.5.0
- vue: 3.5.41(typescript@6.0.3)
-
- '@antdv-next/cssinjs@1.0.6(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@emotion/hash': 0.8.0
- '@emotion/unitless': 0.7.5
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- csstype: 3.2.3
- stylis: 4.4.0
- vue: 3.5.41(typescript@6.0.3)
-
- '@antdv-next/icons@1.1.2(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@ant-design/colors': 7.2.1
- '@ant-design/icons-svg': 4.5.0
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
'@antfu/install-pkg@1.1.0':
dependencies:
package-manager-detector: 1.8.0
@@ -12553,15 +11337,7 @@ snapshots:
'@cspell/strong-weak-map@10.1.0': {}
- '@cspell/url@10.1.0': {}
-
- '@css-render/plugin-bem@0.15.14(css-render@0.15.14)':
- dependencies:
- css-render: 0.15.14
-
- '@css-render/vue3-ssr@0.15.14(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- vue: 3.5.41(typescript@6.0.3)
+ '@cspell/url@10.1.0': {}
'@csstools/css-calc@3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)':
dependencies:
@@ -12597,16 +11373,6 @@ snapshots:
dependencies:
'@iconify/types': 2.0.0
- '@docsearch/css@4.7.0': {}
-
- '@docsearch/js@4.7.0': {}
-
- '@docsearch/sidepanel-js@4.7.0': {}
-
- '@element-plus/icons-vue@2.3.2(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- vue: 3.5.41(typescript@6.0.3)
-
'@emnapi/core@1.11.2':
dependencies:
'@emnapi/wasi-threads': 1.2.2
@@ -12623,14 +11389,6 @@ snapshots:
tslib: 2.8.1
optional: true
- '@emotion/hash@0.8.0': {}
-
- '@emotion/hash@0.9.2': {}
-
- '@emotion/unitless@0.7.5': {}
-
- '@emotion/unitless@0.8.1': {}
-
'@epic-web/invariant@1.0.0': {}
'@es-joy/jsdoccomment@0.88.0':
@@ -12842,8 +11600,6 @@ snapshots:
'@eslint/core': 1.2.1
levn: 0.4.1
- '@faker-js/faker@10.6.0': {}
-
'@floating-ui/core@1.8.0':
dependencies:
'@floating-ui/utils': 0.2.12
@@ -12880,22 +11636,6 @@ snapshots:
'@humanwhocodes/retry@0.4.3': {}
- '@iconify-json/logos@1.2.13':
- dependencies:
- '@iconify/types': 2.0.0
-
- '@iconify-json/octicon@1.2.32':
- dependencies:
- '@iconify/types': 2.0.0
-
- '@iconify-json/simple-icons@1.2.93':
- dependencies:
- '@iconify/types': 2.0.0
-
- '@iconify-json/vscode-icons@1.2.74':
- dependencies:
- '@iconify/types': 2.0.0
-
'@iconify/json@2.2.519':
dependencies:
'@iconify/types': 2.0.0
@@ -13075,8 +11815,6 @@ snapshots:
'@jspm/import-map@1.5.0': {}
- '@juggle/resize-observer@3.4.0': {}
-
'@keyv/bigmap@1.3.1(keyv@5.6.0)':
dependencies:
hashery: 1.5.1
@@ -13155,33 +11893,6 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.20.1
- '@nolebase/ui@2.18.2(supports-color@10.2.2)(vitepress@2.0.0-alpha.19(@types/node@26.2.0)(async-validator@4.2.5)(axios@1.19.0(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2))(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(nprogress@0.2.0)(postcss@8.5.26)(qrcode@1.5.4)(sass-embedded@1.103.1)(sass@1.103.1)(sortablejs@1.15.7)(terser@5.50.0)(typescript@6.0.3)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@iconify-json/octicon': 1.2.32
- less: 4.9.0(supports-color@10.2.2)
- vitepress: 2.0.0-alpha.19(@types/node@26.2.0)(async-validator@4.2.5)(axios@1.19.0(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2))(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(nprogress@0.2.0)(postcss@8.5.26)(qrcode@1.5.4)(sass-embedded@1.103.1)(sass@1.103.1)(sortablejs@1.15.7)(terser@5.50.0)(typescript@6.0.3)(yaml@2.9.0)
- vue: 3.5.41(typescript@6.0.3)
- transitivePeerDependencies:
- - supports-color
-
- '@nolebase/vitepress-plugin-git-changelog@2.18.2(supports-color@10.2.2)(vitepress@2.0.0-alpha.19(@types/node@26.2.0)(async-validator@4.2.5)(axios@1.19.0(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2))(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(nprogress@0.2.0)(postcss@8.5.26)(qrcode@1.5.4)(sass-embedded@1.103.1)(sass@1.103.1)(sortablejs@1.15.7)(terser@5.50.0)(typescript@6.0.3)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@iconify-json/octicon': 1.2.32
- '@nolebase/ui': 2.18.2(supports-color@10.2.2)(vitepress@2.0.0-alpha.19(@types/node@26.2.0)(async-validator@4.2.5)(axios@1.19.0(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2))(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(nprogress@0.2.0)(postcss@8.5.26)(qrcode@1.5.4)(sass-embedded@1.103.1)(sass@1.103.1)(sortablejs@1.15.7)(terser@5.50.0)(typescript@6.0.3)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
- colorette: 2.0.20
- date-fns: 4.4.0
- defu: 6.1.7
- es-toolkit: 1.51.0
- execa: 9.6.1
- globby: 14.1.0
- gray-matter: 4.0.3
- less: 4.9.0(supports-color@10.2.2)
- uncrypto: 0.1.3
- vitepress: 2.0.0-alpha.19(@types/node@26.2.0)(async-validator@4.2.5)(axios@1.19.0(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2))(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(nprogress@0.2.0)(postcss@8.5.26)(qrcode@1.5.4)(sass-embedded@1.103.1)(sass@1.103.1)(sortablejs@1.15.7)(terser@5.50.0)(typescript@6.0.3)(yaml@2.9.0)
- transitivePeerDependencies:
- - supports-color
- - vue
-
'@nuxt/kit@3.21.11(magicast@0.5.4)':
dependencies:
c12: 3.3.4(magicast@0.5.4)
@@ -13209,36 +11920,6 @@ snapshots:
- magicast
optional: true
- '@nuxt/kit@4.5.2(magic-string@1.2.2)(magicast@0.5.4)(oxc-parser@0.143.0)(rolldown@1.2.5)(unplugin@2.3.11)':
- dependencies:
- c12: 3.3.4(magicast@0.5.4)
- consola: 3.4.2
- defu: 6.1.7
- destr: 2.0.5
- errx: 0.1.2
- exsolve: 1.1.1
- ignore: 7.0.6
- jiti: 2.7.0
- klona: 2.0.6
- mlly: 1.8.2
- nostics: 1.2.0
- ohash: 2.0.12
- pathe: 2.0.3
- pkg-types: 2.3.1
- rc9: 3.0.1
- scule: 1.3.0
- tinyglobby: 0.2.17
- ufo: 1.6.4
- unctx: 3.0.1(magic-string@1.2.2)(oxc-parser@0.143.0)(rolldown@1.2.5)(unplugin@2.3.11)
- untyped: 2.0.0
- verkit: 0.3.2
- transitivePeerDependencies:
- - magic-string
- - magicast
- - oxc-parser
- - rolldown
- - unplugin
-
'@nuxt/kit@4.5.2(magic-string@1.2.2)(magicast@0.5.4)(oxc-parser@0.143.0)(rolldown@1.2.5)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.5)(rollup@4.62.5)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0)))':
dependencies:
c12: 3.3.4(magicast@0.5.4)
@@ -13471,6 +12152,9 @@ snapshots:
'@oxlint-tsgolint/win32-x64@0.25.0':
optional: true
+ '@oxlint/binding-android-arm-eabi@1.79.0':
+ optional: true
+
'@oxlint/binding-android-arm64@1.79.0':
optional: true
@@ -13486,9 +12170,27 @@ snapshots:
'@oxlint/binding-linux-arm-gnueabihf@1.79.0':
optional: true
+ '@oxlint/binding-linux-arm-musleabihf@1.79.0':
+ optional: true
+
'@oxlint/binding-linux-arm64-gnu@1.79.0':
optional: true
+ '@oxlint/binding-linux-arm64-musl@1.79.0':
+ optional: true
+
+ '@oxlint/binding-linux-ppc64-gnu@1.79.0':
+ optional: true
+
+ '@oxlint/binding-linux-riscv64-gnu@1.79.0':
+ optional: true
+
+ '@oxlint/binding-linux-riscv64-musl@1.79.0':
+ optional: true
+
+ '@oxlint/binding-linux-s390x-gnu@1.79.0':
+ optional: true
+
'@oxlint/binding-linux-x64-gnu@1.79.0':
optional: true
@@ -13501,6 +12203,9 @@ snapshots:
'@oxlint/binding-win32-arm64-msvc@1.79.0':
optional: true
+ '@oxlint/binding-win32-ia32-msvc@1.79.0':
+ optional: true
+
'@oxlint/binding-win32-x64-msvc@1.79.0':
optional: true
@@ -13571,10 +12276,6 @@ snapshots:
'@pkgr/core@0.3.6': {}
- '@playwright/test@1.62.1':
- dependencies:
- playwright: 1.62.1
-
'@pnpm/config.env-replace@1.1.0': {}
'@pnpm/constants@1001.3.1': {}
@@ -13823,56 +12524,6 @@ snapshots:
'@sec-ant/readable-stream@0.4.1': {}
- '@shikijs/core@4.4.3':
- dependencies:
- '@shikijs/primitive': 4.4.3
- '@shikijs/types': 4.4.3
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.5
- hast-util-to-html: 9.0.5
-
- '@shikijs/engine-javascript@4.4.3':
- dependencies:
- '@shikijs/types': 4.4.3
- '@shikijs/vscode-textmate': 10.0.2
- oniguruma-to-es: 4.3.6
-
- '@shikijs/engine-oniguruma@4.4.3':
- dependencies:
- '@shikijs/types': 4.4.3
- '@shikijs/vscode-textmate': 10.0.2
-
- '@shikijs/langs@4.4.3':
- dependencies:
- '@shikijs/types': 4.4.3
-
- '@shikijs/primitive@4.4.3':
- dependencies:
- '@shikijs/types': 4.4.3
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.5
-
- '@shikijs/themes@4.4.3':
- dependencies:
- '@shikijs/types': 4.4.3
-
- '@shikijs/transformers@4.4.3':
- dependencies:
- '@shikijs/core': 4.4.3
- '@shikijs/types': 4.4.3
-
- '@shikijs/types@4.4.3':
- dependencies:
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.5
-
- '@shikijs/vscode-textmate@10.0.2': {}
-
- '@simonwep/pickr@1.8.2':
- dependencies:
- core-js: 3.50.0
- nanopop: 2.4.2
-
'@simple-libs/child-process-utils@2.0.0':
dependencies:
'@simple-libs/stream-utils': 2.0.0
@@ -13881,8 +12532,6 @@ snapshots:
'@sindresorhus/is@7.2.0': {}
- '@sindresorhus/merge-streams@2.3.0': {}
-
'@sindresorhus/merge-streams@4.0.0': {}
'@speed-highlight/core@1.2.24': {}
@@ -13904,8 +12553,6 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@sxzz/popperjs-es@2.11.8': {}
-
'@tailwindcss/node@4.3.3':
dependencies:
'@jridgewell/remapping': 2.3.5
@@ -13987,14 +12634,8 @@ snapshots:
'@tanstack/pacer-lite': 0.1.1
'@tanstack/store': 0.11.1
- '@tanstack/match-sorter-utils@8.19.4':
- dependencies:
- remove-accents: 0.5.0
-
'@tanstack/pacer-lite@0.1.1': {}
- '@tanstack/query-core@5.102.0': {}
-
'@tanstack/store@0.11.1': {}
'@tanstack/virtual-core@3.17.8': {}
@@ -14007,14 +12648,6 @@ snapshots:
transitivePeerDependencies:
- '@vue/composition-api'
- '@tanstack/vue-query@5.102.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@tanstack/match-sorter-utils': 8.19.4
- '@tanstack/query-core': 5.102.0
- '@vue/devtools-api': 6.6.4
- vue: 3.5.41(typescript@6.0.3)
- vue-demi: 0.14.10(vue@3.5.41(typescript@6.0.3))
-
'@tanstack/vue-store@0.11.1(vue@3.5.41(typescript@6.0.3))':
dependencies:
'@tanstack/store': 0.11.1
@@ -14273,10 +12906,6 @@ snapshots:
'@types/estree@1.0.9': {}
- '@types/hast@3.0.5':
- dependencies:
- '@types/unist': 3.0.3
-
'@types/html-minifier-terser@7.0.2': {}
'@types/jsesc@2.5.1': {}
@@ -14285,13 +12914,6 @@ snapshots:
'@types/json-schema@7.0.15': {}
- '@types/jsonwebtoken@9.0.10':
- dependencies:
- '@types/ms': 2.1.0
- '@types/node': 26.2.0
-
- '@types/linkify-it@5.0.0': {}
-
'@types/lodash-es@4.17.12':
dependencies:
'@types/lodash': 4.17.25
@@ -14302,19 +12924,6 @@ snapshots:
'@types/lodash@4.17.25': {}
- '@types/markdown-it@14.2.0':
- dependencies:
- '@types/linkify-it': 5.0.0
- '@types/mdurl': 2.0.0
-
- '@types/mdast@4.0.4':
- dependencies:
- '@types/unist': 3.0.3
-
- '@types/mdurl@2.0.0': {}
-
- '@types/ms@2.1.0': {}
-
'@types/node@12.20.55': {}
'@types/node@25.9.5':
@@ -14345,8 +12954,6 @@ snapshots:
'@types/trusted-types@2.0.7': {}
- '@types/unist@3.0.3': {}
-
'@types/validator@13.15.10': {}
'@types/web-bluetooth@0.0.21': {}
@@ -14420,259 +13027,6 @@ snapshots:
'@typescript-eslint/types': 8.67.0
eslint-visitor-keys: 5.0.1
- '@ungap/structured-clone@1.3.3': {}
-
- '@v-c/async-validator@1.0.1': {}
-
- '@v-c/cascader@1.1.2(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/select': 1.2.4(vue@3.5.41(typescript@6.0.3))
- '@v-c/tree': 1.2.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/checkbox@1.0.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/collapse@1.0.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/color-picker@1.0.6(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@ant-design/fast-color': 3.0.1
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/dialog@1.2.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/portal': 1.0.8(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/drawer@1.0.6(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/portal': 1.0.8(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/dropdown@1.0.5(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/trigger': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/image@1.1.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/portal': 1.0.8(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/input-number@1.0.7(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/input': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/mini-decimal': 1.0.1
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/input@1.1.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/listy@1.0.2(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/portal': 1.0.8(vue@3.5.41(typescript@6.0.3))
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/virtual-list': 1.1.1(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/mentions@1.2.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/input': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/menu': 1.3.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/textarea': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/trigger': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/menu@1.3.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/overflow': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/trigger': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/mini-decimal@1.0.1': {}
-
- '@v-c/mutate-observer@1.0.2(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/notification@2.0.2(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/overflow@1.1.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/pagination@1.1.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/picker@1.3.2(date-fns@4.4.0)(dayjs@1.11.23)(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/overflow': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/trigger': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
- optionalDependencies:
- date-fns: 4.4.0
- dayjs: 1.11.23
-
- '@v-c/portal@1.0.8(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/progress@1.0.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/qrcode@1.0.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/rate@1.0.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/resize-observer@1.1.3(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- resize-observer-polyfill: 1.5.1
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/segmented@1.0.4(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/select@1.2.4(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/overflow': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/trigger': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/virtual-list': 1.1.1(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/slick@1.0.2(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- es-toolkit: 1.50.0
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/slider@1.1.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/steps@1.0.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/switch@1.0.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/table@1.2.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/virtual-list': 1.1.1(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/tabs@1.3.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/dropdown': 1.0.5(vue@3.5.41(typescript@6.0.3))
- '@v-c/menu': 1.3.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/overflow': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/textarea@1.1.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/input': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/tooltip@1.1.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/trigger': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/tour@1.1.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/portal': 1.0.8(vue@3.5.41(typescript@6.0.3))
- '@v-c/trigger': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/tree-select@1.1.2(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/select': 1.2.4(vue@3.5.41(typescript@6.0.3))
- '@v-c/tree': 1.2.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/tree@1.2.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/virtual-list': 1.1.1(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/trigger@1.1.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/portal': 1.0.8(vue@3.5.41(typescript@6.0.3))
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/upload@1.0.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/util@1.1.0(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- vue: 3.5.41(typescript@6.0.3)
-
- '@v-c/virtual-list@1.1.1(vue@3.5.41(typescript@6.0.3))':
- dependencies:
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
'@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3))':
dependencies:
valibot: 1.4.2(typescript@6.0.3)
@@ -14694,11 +13048,7 @@ snapshots:
transitivePeerDependencies:
- encoding
- rollup
- - supports-color
-
- '@vite-pwa/vitepress@1.1.0(vite-plugin-pwa@1.3.0(supports-color@10.2.2)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(workbox-build@7.4.1(supports-color@10.2.2))(workbox-window@7.4.1))':
- dependencies:
- vite-plugin-pwa: 1.3.0(supports-color@10.2.2)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(workbox-build@7.4.1(supports-color@10.2.2))(workbox-window@7.4.1)
+ - supports-color
'@vitejs/plugin-vue-jsx@5.1.6(supports-color@10.2.2)(vite@8.2.2(@types/node@25.9.5)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))':
dependencies:
@@ -15148,88 +13498,6 @@ snapshots:
ansis@4.3.1: {}
- ant-design-vue@4.2.6(vue@3.5.41(typescript@6.0.3)):
- dependencies:
- '@ant-design/colors': 6.0.0
- '@ant-design/icons-vue': 7.0.1(vue@3.5.41(typescript@6.0.3))
- '@babel/runtime': 7.29.7
- '@ctrl/tinycolor': 4.2.0
- '@emotion/hash': 0.9.2
- '@emotion/unitless': 0.8.1
- '@simonwep/pickr': 1.8.2
- array-tree-filter: 2.1.0
- async-validator: 4.2.5
- csstype: 3.2.3
- dayjs: 1.11.23
- dom-align: 1.12.4
- dom-scroll-into-view: 2.0.1
- lodash: 4.18.1
- lodash-es: 4.18.1
- resize-observer-polyfill: 1.5.1
- scroll-into-view-if-needed: 2.2.31
- shallow-equal: 1.2.1
- stylis: 4.4.0
- throttle-debounce: 5.0.2
- vue: 3.5.41(typescript@6.0.3)
- vue-types: 3.0.2(vue@3.5.41(typescript@6.0.3))
- warning: 4.0.3
-
- antdv-next@1.5.2(date-fns@4.4.0)(vue@3.5.41(typescript@6.0.3)):
- dependencies:
- '@ant-design/colors': 8.0.1
- '@ant-design/fast-color': 3.0.1
- '@antdv-next/cssinjs': 1.0.6(vue@3.5.41(typescript@6.0.3))
- '@antdv-next/icons': 1.1.2(vue@3.5.41(typescript@6.0.3))
- '@v-c/async-validator': 1.0.1
- '@v-c/cascader': 1.1.2(vue@3.5.41(typescript@6.0.3))
- '@v-c/checkbox': 1.0.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/collapse': 1.0.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/color-picker': 1.0.6(vue@3.5.41(typescript@6.0.3))
- '@v-c/dialog': 1.2.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/drawer': 1.0.6(vue@3.5.41(typescript@6.0.3))
- '@v-c/dropdown': 1.0.5(vue@3.5.41(typescript@6.0.3))
- '@v-c/image': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/input': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/input-number': 1.0.7(vue@3.5.41(typescript@6.0.3))
- '@v-c/listy': 1.0.2(vue@3.5.41(typescript@6.0.3))
- '@v-c/mentions': 1.2.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/menu': 1.3.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/mutate-observer': 1.0.2(vue@3.5.41(typescript@6.0.3))
- '@v-c/notification': 2.0.2(vue@3.5.41(typescript@6.0.3))
- '@v-c/pagination': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/picker': 1.3.2(date-fns@4.4.0)(dayjs@1.11.23)(vue@3.5.41(typescript@6.0.3))
- '@v-c/progress': 1.0.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/qrcode': 1.0.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/rate': 1.0.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/resize-observer': 1.1.3(vue@3.5.41(typescript@6.0.3))
- '@v-c/segmented': 1.0.4(vue@3.5.41(typescript@6.0.3))
- '@v-c/select': 1.2.4(vue@3.5.41(typescript@6.0.3))
- '@v-c/slick': 1.0.2(vue@3.5.41(typescript@6.0.3))
- '@v-c/slider': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/steps': 1.0.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/switch': 1.0.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/table': 1.2.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/tabs': 1.3.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/textarea': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/tooltip': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/tour': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@v-c/tree': 1.2.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/tree-select': 1.1.2(vue@3.5.41(typescript@6.0.3))
- '@v-c/trigger': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/upload': 1.0.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/util': 1.1.0(vue@3.5.41(typescript@6.0.3))
- '@v-c/virtual-list': 1.1.1(vue@3.5.41(typescript@6.0.3))
- '@vueuse/core': 14.4.0(vue@3.5.41(typescript@6.0.3))
- dayjs: 1.11.23
- es-toolkit: 1.50.0
- scroll-into-view-if-needed: 3.1.0
- throttle-debounce: 5.0.2
- transitivePeerDependencies:
- - date-fns
- - luxon
- - moment
- - vue
-
anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
@@ -15294,8 +13562,6 @@ snapshots:
array-timsort@1.0.3: {}
- array-tree-filter@2.1.0: {}
-
array-union@2.1.0: {}
arraybuffer.prototype.slice@1.0.4:
@@ -15327,7 +13593,8 @@ snapshots:
async-sema@3.1.1: {}
- async-validator@4.2.5: {}
+ async-validator@4.2.5:
+ optional: true
async@3.2.6: {}
@@ -15472,8 +13739,6 @@ snapshots:
buffer-crc32@1.0.0: {}
- buffer-equal-constant-time@1.0.1: {}
-
buffer-from@1.1.2: {}
buffer-image-size@0.6.4:
@@ -15546,8 +13811,6 @@ snapshots:
caniuse-lite@1.0.30001809: {}
- ccount@2.0.1: {}
-
chai@6.2.2: {}
chalk-template@1.1.2:
@@ -15563,10 +13826,6 @@ snapshots:
chalk@6.0.0: {}
- character-entities-html4@2.1.0: {}
-
- character-entities-legacy@3.0.0: {}
-
chardet@2.2.0: {}
cheerio-select@2.1.0:
@@ -15663,16 +13922,12 @@ snapshots:
colord@2.10.0: {}
- colorette@2.0.20: {}
-
colorjs.io@0.7.1: {}
combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0
- comma-separated-tokens@2.0.3: {}
-
commander@10.0.1: {}
commander@11.1.0: {}
@@ -15716,10 +13971,6 @@ snapshots:
normalize-path: 3.0.0
readable-stream: 4.7.0
- compute-scroll-into-view@1.0.20: {}
-
- compute-scroll-into-view@3.1.1: {}
-
confbox@0.1.8: {}
confbox@0.2.4: {}
@@ -15762,13 +14013,12 @@ snapshots:
copy-anything@3.0.5:
dependencies:
is-what: 4.1.16
+ optional: true
core-js-compat@3.50.0:
dependencies:
browserslist: 4.28.8
- core-js@3.50.0: {}
-
core-util-is@1.0.3: {}
cosmiconfig-typescript-loader@6.3.0(@types/node@25.9.5)(cosmiconfig@9.0.2(typescript@6.0.3))(typescript@6.0.3):
@@ -15914,11 +14164,6 @@ snapshots:
css-functions-list@3.3.3: {}
- css-render@0.15.14:
- dependencies:
- '@emotion/hash': 0.8.0
- csstype: 3.0.11
-
css-select@5.2.2:
dependencies:
boolbase: 1.0.0
@@ -15945,8 +14190,6 @@ snapshots:
dependencies:
css-tree: 2.2.1
- csstype@3.0.11: {}
-
csstype@3.2.3: {}
cz-git@1.14.0: {}
@@ -15973,12 +14216,6 @@ snapshots:
dataloader@1.4.0: {}
- date-fns-tz@3.2.0(date-fns@4.4.0):
- dependencies:
- date-fns: 4.4.0
-
- date-fns@4.4.0: {}
-
dayjs@1.11.23: {}
db0@0.3.4: {}
@@ -16040,18 +14277,12 @@ snapshots:
depd@2.0.0: {}
- dequal@2.0.3: {}
-
destr@2.0.5: {}
detect-indent@6.1.0: {}
detect-libc@2.1.2: {}
- devlop@1.1.0:
- dependencies:
- dequal: 2.0.3
-
diff-sequences@29.6.3: {}
dijkstrajs@1.0.3: {}
@@ -16060,10 +14291,6 @@ snapshots:
dependencies:
path-type: 4.0.0
- dom-align@1.12.4: {}
-
- dom-scroll-into-view@2.0.1: {}
-
dom-serializer@2.0.0:
dependencies:
domelementtype: 2.3.0
@@ -16115,10 +14342,6 @@ snapshots:
eastasianwidth@0.2.0: {}
- ecdsa-sig-formatter@1.0.11:
- dependencies:
- safe-buffer: 5.2.1
-
echarts@6.1.0:
dependencies:
tslib: 2.3.0
@@ -16139,25 +14362,6 @@ snapshots:
electron-to-chromium@1.5.412: {}
- element-plus@2.14.5(vue@3.5.41(typescript@6.0.3)):
- dependencies:
- '@ctrl/tinycolor': 4.2.0
- '@element-plus/icons-vue': 2.3.2(vue@3.5.41(typescript@6.0.3))
- '@floating-ui/dom': 1.8.0
- '@popperjs/core': '@sxzz/popperjs-es@2.11.8'
- '@types/lodash': 4.17.25
- '@types/lodash-es': 4.17.12
- '@vueuse/core': 14.4.0(vue@3.5.41(typescript@6.0.3))
- async-validator: 4.2.5
- dayjs: 1.11.23
- lodash: 4.18.1
- lodash-es: 4.18.1
- lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.18.1)(lodash@4.18.1)
- memoize-one: 6.0.0
- normalize-wheel-es: 1.2.0
- vue: 3.5.41(typescript@6.0.3)
- vue-component-type-helpers: 3.3.11
-
emoji-regex@10.6.0: {}
emoji-regex@8.0.0: {}
@@ -16208,7 +14412,8 @@ snapshots:
error-stack-parser-es@1.0.5: {}
- errx@0.1.2: {}
+ errx@0.1.2:
+ optional: true
es-abstract-get@1.0.0:
dependencies:
@@ -16302,8 +14507,6 @@ snapshots:
is-date-object: 1.1.0
is-symbol: 1.1.1
- es-toolkit@1.50.0: {}
-
es-toolkit@1.51.0: {}
esbuild@0.25.12:
@@ -16599,8 +14802,6 @@ snapshots:
events@3.3.0: {}
- evtd@0.2.4: {}
-
execa@10.0.1:
dependencies:
'@sindresorhus/merge-streams': 4.0.0
@@ -16616,29 +14817,10 @@ snapshots:
which-command: 0.1.0
yoctocolors: 2.2.0
- execa@9.6.1:
- dependencies:
- '@sindresorhus/merge-streams': 4.0.0
- cross-spawn: 7.0.6
- figures: 6.1.0
- get-stream: 9.0.1
- human-signals: 8.0.1
- is-plain-obj: 4.1.0
- is-stream: 4.0.1
- npm-run-path: 6.0.0
- pretty-ms: 9.3.0
- signal-exit: 4.1.0
- strip-final-newline: 4.0.0
- yoctocolors: 2.2.0
-
expect-type@1.4.0: {}
exsolve@1.1.1: {}
- extend-shallow@2.0.1:
- dependencies:
- is-extendable: 0.1.1
-
extendable-error@0.1.7: {}
fast-deep-equal@3.1.3: {}
@@ -16740,6 +14922,7 @@ snapshots:
focus-trap@8.2.2:
dependencies:
tabbable: 6.5.0
+ optional: true
follow-redirects@1.16.0(debug@4.4.3(supports-color@10.2.2)):
optionalDependencies:
@@ -16946,15 +15129,6 @@ snapshots:
merge2: 1.4.1
slash: 3.0.0
- globby@14.1.0:
- dependencies:
- '@sindresorhus/merge-streams': 2.3.0
- fast-glob: 3.3.3
- ignore: 7.0.6
- path-type: 6.0.0
- slash: 5.1.0
- unicorn-magic: 0.3.0
-
globby@16.2.4:
dependencies:
'@sindresorhus/merge-streams': 4.0.0
@@ -16975,13 +15149,6 @@ snapshots:
graceful-fs@4.2.11: {}
- gray-matter@4.0.3:
- dependencies:
- js-yaml: 3.15.1
- kind-of: 6.0.3
- section-matter: 1.0.0
- strip-bom-string: 1.0.0
-
gzip-size@7.0.0:
dependencies:
duplexer: 0.1.2
@@ -17039,28 +15206,8 @@ snapshots:
dependencies:
function-bind: 1.1.2
- hast-util-to-html@9.0.5:
- dependencies:
- '@types/hast': 3.0.5
- '@types/unist': 3.0.3
- ccount: 2.0.1
- comma-separated-tokens: 2.0.3
- hast-util-whitespace: 3.0.0
- html-void-elements: 3.0.0
- mdast-util-to-hast: 13.2.1
- property-information: 7.2.0
- space-separated-tokens: 2.0.2
- stringify-entities: 4.0.4
- zwitch: 2.0.4
-
- hast-util-whitespace@3.0.0:
- dependencies:
- '@types/hast': 3.0.5
-
hey-listen@1.0.8: {}
- highlight.js@11.12.0: {}
-
hookable@5.5.3: {}
hookable@6.1.1: {}
@@ -17081,8 +15228,6 @@ snapshots:
html-tags@5.1.0: {}
- html-void-elements@3.0.0: {}
-
htmlparser2@10.1.0:
dependencies:
domelementtype: 2.3.0
@@ -17245,8 +15390,6 @@ snapshots:
dependencies:
call-bound: 1.0.4
- is-extendable@0.1.1: {}
-
is-extglob@2.1.1: {}
is-finalizationregistry@1.1.1:
@@ -17307,8 +15450,6 @@ snapshots:
is-plain-obj@4.1.0: {}
- is-plain-object@3.0.1: {}
-
is-plain-object@5.1.0: {}
is-reference@1.2.1:
@@ -17368,7 +15509,8 @@ snapshots:
call-bound: 1.0.4
get-intrinsic: 1.3.0
- is-what@4.1.16: {}
+ is-what@4.1.16:
+ optional: true
is-windows@1.0.2: {}
@@ -17474,30 +15616,6 @@ snapshots:
jsonpointer@5.0.1: {}
- jsonwebtoken@9.0.3:
- dependencies:
- jws: 4.0.1
- lodash.includes: 4.3.0
- lodash.isboolean: 3.0.3
- lodash.isinteger: 4.0.4
- lodash.isnumber: 3.0.3
- lodash.isplainobject: 4.0.6
- lodash.isstring: 4.0.1
- lodash.once: 4.1.1
- ms: 2.1.3
- semver: 7.8.5
-
- jwa@2.0.1:
- dependencies:
- buffer-equal-constant-time: 1.0.1
- ecdsa-sig-formatter: 1.0.11
- safe-buffer: 5.2.1
-
- jws@4.0.1:
- dependencies:
- jwa: 2.0.1
- safe-buffer: 5.2.1
-
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
@@ -17601,6 +15719,7 @@ snapshots:
source-map: 0.6.1
transitivePeerDependencies:
- supports-color
+ optional: true
leven@3.1.0: {}
@@ -17762,33 +15881,13 @@ snapshots:
lodash-es@4.18.1: {}
- lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.18.1)(lodash@4.18.1):
- dependencies:
- '@types/lodash-es': 4.17.12
- lodash: 4.18.1
- lodash-es: 4.18.1
-
lodash.clonedeep@4.5.0: {}
lodash.debounce@4.0.8: {}
- lodash.includes@4.3.0: {}
-
- lodash.isboolean@3.0.3: {}
-
- lodash.isinteger@4.0.4: {}
-
- lodash.isnumber@3.0.3: {}
-
- lodash.isplainobject@4.0.6: {}
-
- lodash.isstring@4.0.1: {}
-
lodash.merge@4.6.2:
optional: true
- lodash.once@4.1.1: {}
-
lodash.startcase@4.4.0: {}
lodash.truncate@4.4.2: {}
@@ -17809,10 +15908,6 @@ snapshots:
strip-ansi: 7.2.0
wrap-ansi: 10.0.1
- loose-envify@1.4.0:
- dependencies:
- js-tokens: 4.0.0
-
lower-case@2.0.2:
dependencies:
tslib: 2.8.1
@@ -17848,55 +15943,20 @@ snapshots:
make-dir@5.1.0:
optional: true
- mark.js@8.11.1: {}
-
math-intrinsics@1.1.0: {}
mathml-tag-names@4.0.0: {}
- mdast-util-to-hast@13.2.1:
- dependencies:
- '@types/hast': 3.0.5
- '@types/mdast': 4.0.4
- '@ungap/structured-clone': 1.3.3
- devlop: 1.1.0
- micromark-util-sanitize-uri: 2.0.1
- trim-lines: 3.0.1
- unist-util-position: 5.0.0
- unist-util-visit: 5.1.0
- vfile: 6.0.3
-
mdn-data@2.0.28: {}
mdn-data@2.27.1: {}
mdn-data@2.29.0: {}
- medium-zoom@1.1.0: {}
-
- memoize-one@6.0.0: {}
-
meow@14.1.0: {}
merge2@1.4.1: {}
- micromark-util-character@2.1.1:
- dependencies:
- micromark-util-symbol: 2.0.1
- micromark-util-types: 2.0.2
-
- micromark-util-encode@2.0.1: {}
-
- micromark-util-sanitize-uri@2.0.1:
- dependencies:
- micromark-util-character: 2.1.1
- micromark-util-encode: 2.0.1
- micromark-util-symbol: 2.0.1
-
- micromark-util-symbol@2.0.1: {}
-
- micromark-util-types@2.0.2: {}
-
micromatch@4.0.8:
dependencies:
braces: 3.0.3
@@ -17937,8 +15997,6 @@ snapshots:
minipass@7.1.3: {}
- minisearch@7.2.0: {}
-
minizlib@3.1.0:
dependencies:
minipass: 7.1.3
@@ -17965,32 +16023,8 @@ snapshots:
muggle-string@0.4.1: {}
- naive-ui@2.45.2(vue@3.5.41(typescript@6.0.3)):
- dependencies:
- '@css-render/plugin-bem': 0.15.14(css-render@0.15.14)
- '@css-render/vue3-ssr': 0.15.14(vue@3.5.41(typescript@6.0.3))
- '@types/lodash': 4.17.25
- '@types/lodash-es': 4.17.12
- async-validator: 4.2.5
- css-render: 0.15.14
- csstype: 3.2.3
- date-fns: 4.4.0
- date-fns-tz: 3.2.0(date-fns@4.4.0)
- evtd: 0.2.4
- highlight.js: 11.12.0
- lodash: 4.18.1
- lodash-es: 4.18.1
- seemly: 0.3.10
- treemate: 0.3.11
- vdirs: 0.1.8(vue@3.5.41(typescript@6.0.3))
- vooks: 0.2.12(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
- vueuc: 0.4.66(vue@3.5.41(typescript@6.0.3))
-
nanoid@3.3.18: {}
- nanopop@2.4.2: {}
-
natural-compare@1.4.0: {}
natural-orderby@5.0.0: {}
@@ -18156,8 +16190,6 @@ snapshots:
normalize-path@3.0.0: {}
- normalize-wheel-es@1.2.0: {}
-
nostics@1.2.0: {}
npm-run-path@6.0.0:
@@ -18202,14 +16234,6 @@ snapshots:
dependencies:
mimic-function: 5.0.1
- oniguruma-parser@0.12.2: {}
-
- oniguruma-to-es@4.3.6:
- dependencies:
- oniguruma-parser: 0.12.2
- regex: 6.1.0
- regex-recursion: 6.0.2
-
open@11.0.1:
dependencies:
default-browser: 5.5.1
@@ -18331,16 +16355,24 @@ snapshots:
oxlint@1.79.0(oxlint-tsgolint@0.25.0):
optionalDependencies:
+ '@oxlint/binding-android-arm-eabi': 1.79.0
'@oxlint/binding-android-arm64': 1.79.0
'@oxlint/binding-darwin-arm64': 1.79.0
'@oxlint/binding-darwin-x64': 1.79.0
'@oxlint/binding-freebsd-x64': 1.79.0
'@oxlint/binding-linux-arm-gnueabihf': 1.79.0
+ '@oxlint/binding-linux-arm-musleabihf': 1.79.0
'@oxlint/binding-linux-arm64-gnu': 1.79.0
+ '@oxlint/binding-linux-arm64-musl': 1.79.0
+ '@oxlint/binding-linux-ppc64-gnu': 1.79.0
+ '@oxlint/binding-linux-riscv64-gnu': 1.79.0
+ '@oxlint/binding-linux-riscv64-musl': 1.79.0
+ '@oxlint/binding-linux-s390x-gnu': 1.79.0
'@oxlint/binding-linux-x64-gnu': 1.79.0
'@oxlint/binding-linux-x64-musl': 1.79.0
'@oxlint/binding-openharmony-arm64': 1.79.0
'@oxlint/binding-win32-arm64-msvc': 1.79.0
+ '@oxlint/binding-win32-ia32-msvc': 1.79.0
'@oxlint/binding-win32-x64-msvc': 1.79.0
oxlint-tsgolint: 0.25.0
@@ -18411,7 +16443,8 @@ snapshots:
parse-ms@4.0.0: {}
- parse-node-version@1.0.1: {}
+ parse-node-version@1.0.1:
+ optional: true
parse5-htmlparser2-tree-adapter@7.1.0:
dependencies:
@@ -18455,8 +16488,6 @@ snapshots:
path-type@4.0.0: {}
- path-type@6.0.0: {}
-
pathe@2.0.3: {}
perfect-debounce@2.1.0: {}
@@ -18603,8 +16634,6 @@ snapshots:
process@0.11.10: {}
- property-information@7.2.0: {}
-
prosemirror-changeset@2.4.2:
dependencies:
prosemirror-transform: 1.12.0
@@ -18799,16 +16828,6 @@ snapshots:
regenerate@1.4.2: {}
- regex-recursion@6.0.2:
- dependencies:
- regex-utilities: 2.3.0
-
- regex-utilities@2.3.0: {}
-
- regex@6.1.0:
- dependencies:
- regex-utilities: 2.3.0
-
regexp.prototype.flags@1.5.4:
dependencies:
call-bind: 1.0.9
@@ -18859,16 +16878,12 @@ snapshots:
relateurl@0.2.7: {}
- remove-accents@0.5.0: {}
-
require-directory@2.1.1: {}
require-from-string@2.0.2: {}
require-main-filename@2.0.0: {}
- resize-observer-polyfill@1.5.1: {}
-
resolve-from@4.0.0: {}
resolve-from@5.0.0: {}
@@ -18912,10 +16927,6 @@ snapshots:
transitivePeerDependencies:
- oxc-resolver
- rolldown-string@0.2.1:
- dependencies:
- magic-string: 0.30.21
-
rolldown@1.2.5:
dependencies:
'@oxc-project/types': 0.146.0
@@ -19117,28 +17128,13 @@ snapshots:
sax@1.6.1: {}
- scroll-into-view-if-needed@2.2.31:
- dependencies:
- compute-scroll-into-view: 1.0.20
-
- scroll-into-view-if-needed@3.1.0:
- dependencies:
- compute-scroll-into-view: 3.1.1
-
scule@1.3.0: {}
- section-matter@1.0.0:
- dependencies:
- extend-shallow: 2.0.1
- kind-of: 6.0.3
-
secure-ls@2.0.0:
dependencies:
crypto-js: 4.2.0
lz-string: 1.5.0
- seemly@0.3.10: {}
-
semver@6.3.1: {}
semver@7.8.5: {}
@@ -19200,25 +17196,12 @@ snapshots:
setprototypeof@1.2.0: {}
- shallow-equal@1.2.1: {}
-
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
shebang-regex@3.0.0: {}
- shiki@4.4.3:
- dependencies:
- '@shikijs/core': 4.4.3
- '@shikijs/engine-javascript': 4.4.3
- '@shikijs/engine-oniguruma': 4.4.3
- '@shikijs/langs': 4.4.3
- '@shikijs/themes': 4.4.3
- '@shikijs/types': 4.4.3
- '@shikijs/vscode-textmate': 10.0.2
- '@types/hast': 3.0.5
-
side-channel-list@1.0.1:
dependencies:
es-errors: 1.3.0
@@ -19293,8 +17276,6 @@ snapshots:
source-map@0.8.0: {}
- space-separated-tokens@2.0.2: {}
-
spawndamnit@3.0.1:
dependencies:
cross-spawn: 7.0.6
@@ -19404,11 +17385,6 @@ snapshots:
dependencies:
safe-buffer: 5.2.1
- stringify-entities@4.0.4:
- dependencies:
- character-entities-html4: 2.1.0
- character-entities-legacy: 3.0.0
-
stringify-object@3.3.0:
dependencies:
get-own-enumerable-property-symbols: 3.0.2
@@ -19423,8 +17399,6 @@ snapshots:
dependencies:
ansi-regex: 6.3.0
- strip-bom-string@1.0.0: {}
-
strip-bom@3.0.0: {}
strip-bom@4.0.0: {}
@@ -19552,8 +17526,6 @@ snapshots:
- supports-color
- typescript
- stylis@4.4.0: {}
-
supports-color@10.2.2: {}
supports-color@7.2.0:
@@ -19595,7 +17567,8 @@ snapshots:
dependencies:
'@pkgr/core': 0.3.6
- tabbable@6.5.0: {}
+ tabbable@6.5.0:
+ optional: true
table@6.9.0:
dependencies:
@@ -19689,8 +17662,6 @@ snapshots:
theme-colors@0.1.0: {}
- throttle-debounce@5.0.2: {}
-
tinybench@2.9.0: {}
tinyclip@0.1.15: {}
@@ -19724,10 +17695,6 @@ snapshots:
tree-kill@1.2.2: {}
- treemate@0.3.11: {}
-
- trim-lines@3.0.1: {}
-
ts-api-utils@2.5.0(typescript@6.0.3):
dependencies:
typescript: 6.0.3
@@ -19863,13 +17830,6 @@ snapshots:
magic-string: 0.30.21
unplugin: 2.3.11
- unctx@3.0.1(magic-string@1.2.2)(oxc-parser@0.143.0)(rolldown@1.2.5)(unplugin@2.3.11):
- optionalDependencies:
- magic-string: 1.2.2
- oxc-parser: 0.143.0
- rolldown: 1.2.5
- unplugin: 2.3.11
-
unctx@3.0.1(magic-string@1.2.2)(oxc-parser@0.143.0)(rolldown@1.2.5)(unplugin@3.3.0(esbuild@0.28.2)(rolldown@1.2.5)(rollup@4.62.5)(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))):
optionalDependencies:
magic-string: 1.2.2
@@ -19936,29 +17896,6 @@ snapshots:
dependencies:
crypto-random-string: 2.0.0
- unist-util-is@6.0.1:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-position@5.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-stringify-position@4.0.0:
- dependencies:
- '@types/unist': 3.0.3
-
- unist-util-visit-parents@6.0.2:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.1
-
- unist-util-visit@5.1.0:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-is: 6.0.1
- unist-util-visit-parents: 6.0.2
-
universalify@0.1.2: {}
universalify@2.0.1: {}
@@ -19983,19 +17920,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- unplugin-element-plus@0.11.2(magic-string@1.2.2)(magicast@0.5.4)(oxc-parser@0.143.0)(rolldown@1.2.5):
- dependencies:
- '@nuxt/kit': 4.5.2(magic-string@1.2.2)(magicast@0.5.4)(oxc-parser@0.143.0)(rolldown@1.2.5)(unplugin@2.3.11)
- es-module-lexer: 2.3.2
- escape-string-regexp: 5.0.0
- rolldown-string: 0.2.1
- unplugin: 2.3.11
- transitivePeerDependencies:
- - magic-string
- - magicast
- - oxc-parser
- - rolldown
-
unplugin-utils@0.3.2:
dependencies:
pathe: 2.0.3
@@ -20119,23 +18043,8 @@ snapshots:
varint@6.0.0: {}
- vdirs@0.1.8(vue@3.5.41(typescript@6.0.3)):
- dependencies:
- evtd: 0.2.4
- vue: 3.5.41(typescript@6.0.3)
-
verkit@0.3.2: {}
- vfile-message@4.0.3:
- dependencies:
- '@types/unist': 3.0.3
- unist-util-stringify-position: 4.0.0
-
- vfile@6.0.3:
- dependencies:
- '@types/unist': 3.0.3
- vfile-message: 4.0.3
-
vite-dev-rpc@2.0.0(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0)):
dependencies:
birpc: 4.2.0
@@ -20253,63 +18162,6 @@ snapshots:
terser: 5.50.0
yaml: 2.9.0
- vitepress-plugin-group-icons@1.7.6(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0)):
- dependencies:
- '@iconify-json/logos': 1.2.13
- '@iconify-json/vscode-icons': 1.2.74
- '@iconify/utils': 3.1.4
- optionalDependencies:
- vite: 8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0)
-
- vitepress@2.0.0-alpha.19(@types/node@26.2.0)(async-validator@4.2.5)(axios@1.19.0(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2))(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(nprogress@0.2.0)(postcss@8.5.26)(qrcode@1.5.4)(sass-embedded@1.103.1)(sass@1.103.1)(sortablejs@1.15.7)(terser@5.50.0)(typescript@6.0.3)(yaml@2.9.0):
- dependencies:
- '@docsearch/css': 4.7.0
- '@docsearch/js': 4.7.0
- '@docsearch/sidepanel-js': 4.7.0
- '@iconify-json/simple-icons': 1.2.93
- '@shikijs/core': 4.4.3
- '@shikijs/transformers': 4.4.3
- '@shikijs/types': 4.4.3
- '@types/markdown-it': 14.2.0
- '@vitejs/plugin-vue': 6.0.8(vite@8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0))(vue@3.5.41(typescript@6.0.3))
- '@vue/devtools-api': 8.2.1
- '@vue/shared': 3.5.41
- '@vueuse/core': 14.4.0(vue@3.5.41(typescript@6.0.3))
- '@vueuse/integrations': 14.4.0(async-validator@4.2.5)(axios@1.19.0(debug@4.4.3(supports-color@10.2.2))(supports-color@10.2.2))(focus-trap@8.2.2)(nprogress@0.2.0)(qrcode@1.5.4)(sortablejs@1.15.7)(vue@3.5.41(typescript@6.0.3))
- focus-trap: 8.2.2
- mark.js: 8.11.1
- minisearch: 7.2.0
- shiki: 4.4.3
- vite: 8.2.2(@types/node@26.2.0)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0)
- vue: 3.5.41(typescript@6.0.3)
- optionalDependencies:
- postcss: 8.5.26
- transitivePeerDependencies:
- - '@types/node'
- - '@vitejs/devtools'
- - async-validator
- - axios
- - change-case
- - drauu
- - esbuild
- - fuse.js
- - idb-keyval
- - jiti
- - jwt-decode
- - less
- - nprogress
- - qrcode
- - sass
- - sass-embedded
- - sortablejs
- - stylus
- - sugarss
- - terser
- - tsx
- - typescript
- - universal-cookie
- - yaml
-
vitest@4.1.11(@types/node@25.9.5)(happy-dom@20.11.6)(vite@8.2.2(@types/node@25.9.5)(esbuild@0.28.2)(jiti@2.7.0)(less@4.9.0(supports-color@10.2.2))(sass-embedded@1.103.1)(sass@1.103.1)(terser@5.50.0)(yaml@2.9.0)):
dependencies:
'@vitest/expect': 4.1.11
@@ -20338,11 +18190,6 @@ snapshots:
transitivePeerDependencies:
- msw
- vooks@0.2.12(vue@3.5.41(typescript@6.0.3)):
- dependencies:
- evtd: 0.2.4
- vue: 3.5.41(typescript@6.0.3)
-
vscode-languageserver-textdocument@1.0.12: {}
vscode-uri@3.1.0: {}
@@ -20423,11 +18270,6 @@ snapshots:
'@vue/language-core': 3.3.11
typescript: 6.0.3
- vue-types@3.0.2(vue@3.5.41(typescript@6.0.3)):
- dependencies:
- is-plain-object: 3.0.1
- vue: 3.5.41(typescript@6.0.3)
-
vue@3.5.41(typescript@6.0.3):
dependencies:
'@vue/compiler-dom': 3.5.41
@@ -20438,17 +18280,6 @@ snapshots:
optionalDependencies:
typescript: 6.0.3
- vueuc@0.4.66(vue@3.5.41(typescript@6.0.3)):
- dependencies:
- '@css-render/vue3-ssr': 0.15.14(vue@3.5.41(typescript@6.0.3))
- '@juggle/resize-observer': 3.4.0
- css-render: 0.15.14
- evtd: 0.2.4
- seemly: 0.3.10
- vdirs: 0.1.8(vue@3.5.41(typescript@6.0.3))
- vooks: 0.2.12(vue@3.5.41(typescript@6.0.3))
- vue: 3.5.41(typescript@6.0.3)
-
vxe-pc-ui@4.17.13(vue@3.5.41(typescript@6.0.3)):
dependencies:
'@vxe-ui/core': 4.4.20(vue@3.5.41(typescript@6.0.3))
@@ -20461,10 +18292,6 @@ snapshots:
walk-up-path@4.0.0: {}
- warning@4.0.3:
- dependencies:
- loose-envify: 1.4.0
-
watermark-js-plus@1.6.6: {}
webidl-conversions@3.0.1: {}
@@ -20841,6 +18668,4 @@ snapshots:
dependencies:
tslib: 2.3.0
- zwitch@2.0.4: {}
-
zx@8.8.5: {}
diff --git a/scripts/deploy/Dockerfile b/scripts/deploy/Dockerfile
index c4ea54b..33436a3 100644
--- a/scripts/deploy/Dockerfile
+++ b/scripts/deploy/Dockerfile
@@ -7,8 +7,7 @@ ENV NODE_OPTIONS=--max-old-space-size=8192
ENV TZ=Asia/Shanghai
ENV CI=true
-# 用 npm 直接装指定版本 pnpm走 .npmrc 的 npmmirror 镜像,版本明确)
-RUN npm i -g pnpm@11.16.0
+RUN npm i -g corepack
WORKDIR /app