From d7246c2c64e4ea39857a4e32bf4a7c31d856fbc2 Mon Sep 17 00:00:00 2001 From: liweijie <674416404@qq.com> Date: Tue, 8 Sep 2026 19:26:11 +0800 Subject: [PATCH 01/15] feat: add packages/mcp-server from tdesign-mcp-server source Bring in the MCP server source code from cnb.cool/tencent/tdesign/tdesign-mcp-server. Exclude script-generated files (packages/docs and __snapshots__). Update pnpm workspace to include nested mcp-server packages. Add mcp-server build scripts to root package.json. --- package.json | 7 +- packages/mcp-server/.env | 6 + packages/mcp-server/.gitignore | 30 +++ packages/mcp-server/DEVELOPMENT.md | 80 +++++++ packages/mcp-server/README.md | 35 +++ packages/mcp-server/common/config.ts | 18 ++ packages/mcp-server/common/framework.ts | 50 ++++ packages/mcp-server/common/index.ts | 4 + packages/mcp-server/common/package.json | 8 + packages/mcp-server/common/parser.ts | 216 ++++++++++++++++++ packages/mcp-server/common/toolkit.ts | 22 ++ packages/mcp-server/package.json | 13 ++ packages/mcp-server/prettier.config.js | 12 + packages/mcp-server/scripts/dom/index.ts | 122 ++++++++++ .../snapshots/miniprogram/babel.config.cjs | 7 + .../custom/action-sheet/demo/index.js | 28 +++ .../custom/action-sheet/demo/index.json | 6 + .../custom/action-sheet/demo/index.wxml | 8 + .../miniprogram/custom/dialog/demo/index.js | 6 + .../miniprogram/custom/dialog/demo/index.json | 6 + .../miniprogram/custom/dialog/demo/index.wxml | 6 + .../miniprogram/custom/drawer/demo/index.js | 33 +++ .../miniprogram/custom/drawer/demo/index.json | 6 + .../miniprogram/custom/drawer/demo/index.wxml | 5 + .../custom/dropdown-menu/demo/index.js | 25 ++ .../custom/dropdown-menu/demo/index.json | 7 + .../custom/dropdown-menu/demo/index.wxml | 13 ++ .../miniprogram/custom/guide/demo/index.js | 77 +++++++ .../miniprogram/custom/guide/demo/index.json | 8 + .../miniprogram/custom/guide/demo/index.wxml | 20 ++ .../miniprogram/custom/icon/demo/index.js | 1 + .../miniprogram/custom/icon/demo/index.json | 6 + .../miniprogram/custom/icon/demo/index.wxml | 1 + .../miniprogram/custom/indexes/demo/index.js | 126 ++++++++++ .../custom/indexes/demo/index.json | 9 + .../custom/indexes/demo/index.wxml | 14 ++ .../miniprogram/custom/message/demo/index.js | 5 + .../custom/message/demo/index.json | 6 + .../custom/message/demo/index.wxml | 6 + .../custom/message/demo/index.wxss | 0 .../miniprogram/custom/overlay/demo/index.js | 5 + .../custom/overlay/demo/index.json | 6 + .../custom/overlay/demo/index.wxml | 1 + .../miniprogram/custom/popover/demo/index.js | 5 + .../custom/popover/demo/index.json | 7 + .../custom/popover/demo/index.wxml | 9 + .../custom/popover/demo/index.wxss | 0 .../miniprogram/custom/popup/demo/index.js | 6 + .../miniprogram/custom/popup/demo/index.json | 7 + .../miniprogram/custom/popup/demo/index.wxml | 5 + .../custom/pull-down-refresh/demo/index.js | 23 ++ .../custom/pull-down-refresh/demo/index.json | 7 + .../custom/pull-down-refresh/demo/index.wxml | 26 +++ .../miniprogram/custom/side-bar/demo/index.js | 100 ++++++++ .../custom/side-bar/demo/index.json | 9 + .../custom/side-bar/demo/index.wxml | 27 +++ .../miniprogram/custom/toast/demo/index.js | 10 + .../miniprogram/custom/toast/demo/index.json | 6 + .../miniprogram/custom/toast/demo/index.wxml | 1 + .../dom/snapshots/miniprogram/globalSetup.cjs | 3 + .../dom/snapshots/miniprogram/index.test.js | 71 ++++++ .../dom/snapshots/miniprogram/jest.config.cjs | 31 +++ .../dom/snapshots/miniprogram/setup.js | 149 ++++++++++++ .../snapshots/mobile/custom/action-sheet.tsx | 14 ++ .../dom/snapshots/mobile/custom/dialog.tsx | 14 ++ .../dom/snapshots/mobile/custom/drawer.tsx | 14 ++ .../dom/snapshots/mobile/custom/guide.tsx | 21 ++ .../dom/snapshots/mobile/custom/indexes.tsx | 35 +++ .../dom/snapshots/mobile/custom/message.tsx | 14 ++ .../dom/snapshots/mobile/custom/overlay.tsx | 14 ++ .../dom/snapshots/mobile/custom/popover.tsx | 23 ++ .../dom/snapshots/mobile/custom/popup.tsx | 23 ++ .../dom/snapshots/mobile/custom/toast.tsx | 14 ++ .../dom/snapshots/mobile/setup.test.ts | 69 ++++++ .../snapshots/web-chat/custom/attachments.tsx | 16 ++ .../web-chat/custom/chat-actionbar.tsx | 17 ++ .../web-chat/custom/chat-loading.tsx | 12 + .../web-chat/custom/chat-markdown.tsx | 22 ++ .../web-chat/custom/chat-message.tsx | 18 ++ .../snapshots/web-chat/custom/chat-sender.tsx | 13 ++ .../web-chat/custom/chat-thinking.tsx | 16 ++ .../dom/snapshots/web-chat/setup.test.ts | 41 ++++ .../dom/snapshots/web/custom/date-picker.tsx | 9 + .../dom/snapshots/web/custom/dialog.tsx | 14 ++ .../dom/snapshots/web/custom/drawer.tsx | 14 ++ .../dom/snapshots/web/custom/dropdown.tsx | 44 ++++ .../dom/snapshots/web/custom/guide.tsx | 22 ++ .../scripts/dom/snapshots/web/custom/icon.tsx | 9 + .../dom/snapshots/web/custom/input.tsx | 32 +++ .../dom/snapshots/web/custom/layout.tsx | 23 ++ .../dom/snapshots/web/custom/popconfirm.tsx | 14 ++ .../dom/snapshots/web/custom/popup.tsx | 33 +++ .../dom/snapshots/web/custom/select.tsx | 20 ++ .../dom/snapshots/web/custom/tooltip.tsx | 32 +++ .../scripts/dom/snapshots/web/custom/tree.tsx | 15 ++ .../dom/snapshots/web/custom/typography.tsx | 24 ++ .../dom/snapshots/web/custom/upload.tsx | 14 ++ .../scripts/dom/snapshots/web/setup.test.ts | 66 ++++++ .../scripts/dom/utils/runWebComponentSnap.ts | 29 +++ .../scripts/dom/utils/serializeShadowDom.ts | 184 +++++++++++++++ packages/mcp-server/scripts/icon/index.ts | 30 +++ packages/mcp-server/scripts/index.ts | 63 +++++ packages/mcp-server/scripts/package.json | 48 ++++ packages/mcp-server/scripts/utils/path.ts | 117 ++++++++++ packages/mcp-server/scripts/vitest.config.ts | 42 ++++ packages/mcp-server/server/README.md | 29 +++ packages/mcp-server/server/package.json | 47 ++++ packages/mcp-server/server/rollup.config.js | 62 +++++ .../mcp-server/server/src/helpers/cache.ts | 102 +++++++++ .../server/src/helpers/component.ts | 39 ++++ .../mcp-server/server/src/helpers/format.ts | 27 +++ .../mcp-server/server/src/helpers/index.ts | 3 + packages/mcp-server/server/src/http.ts | 38 +++ packages/mcp-server/server/src/init.ts | 15 ++ .../server/src/prompts/assistant.ts | 43 ++++ .../mcp-server/server/src/prompts/index.ts | 2 + .../mcp-server/server/src/prompts/schema.ts | 32 +++ packages/mcp-server/server/src/stdio.ts | 14 ++ .../mcp-server/server/src/tools/changelog.ts | 73 ++++++ packages/mcp-server/server/src/tools/docs.ts | 71 ++++++ packages/mcp-server/server/src/tools/dom.ts | 62 +++++ packages/mcp-server/server/src/tools/icon.ts | 65 ++++++ packages/mcp-server/server/src/tools/index.ts | 15 ++ packages/mcp-server/server/src/tools/list.ts | 32 +++ packages/mcp-server/tsconfig.json | 19 ++ pnpm-workspace.yaml | 1 + 126 files changed, 3670 insertions(+), 1 deletion(-) create mode 100644 packages/mcp-server/.env create mode 100644 packages/mcp-server/.gitignore create mode 100644 packages/mcp-server/DEVELOPMENT.md create mode 100644 packages/mcp-server/README.md create mode 100644 packages/mcp-server/common/config.ts create mode 100644 packages/mcp-server/common/framework.ts create mode 100644 packages/mcp-server/common/index.ts create mode 100644 packages/mcp-server/common/package.json create mode 100644 packages/mcp-server/common/parser.ts create mode 100644 packages/mcp-server/common/toolkit.ts create mode 100644 packages/mcp-server/package.json create mode 100644 packages/mcp-server/prettier.config.js create mode 100644 packages/mcp-server/scripts/dom/index.ts create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/babel.config.cjs create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.wxss create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.wxss create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.json create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.wxml create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/globalSetup.cjs create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/index.test.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/jest.config.cjs create mode 100644 packages/mcp-server/scripts/dom/snapshots/miniprogram/setup.js create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/action-sheet.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/dialog.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/drawer.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/guide.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/indexes.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/message.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/overlay.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/popover.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/popup.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/custom/toast.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/mobile/setup.test.ts create mode 100644 packages/mcp-server/scripts/dom/snapshots/web-chat/custom/attachments.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-actionbar.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-loading.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-markdown.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-message.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-sender.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-thinking.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web-chat/setup.test.ts create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/date-picker.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/dialog.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/drawer.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/dropdown.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/guide.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/icon.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/input.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/layout.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/popconfirm.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/popup.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/select.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/tooltip.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/tree.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/typography.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/custom/upload.tsx create mode 100644 packages/mcp-server/scripts/dom/snapshots/web/setup.test.ts create mode 100644 packages/mcp-server/scripts/dom/utils/runWebComponentSnap.ts create mode 100644 packages/mcp-server/scripts/dom/utils/serializeShadowDom.ts create mode 100644 packages/mcp-server/scripts/icon/index.ts create mode 100644 packages/mcp-server/scripts/index.ts create mode 100644 packages/mcp-server/scripts/package.json create mode 100644 packages/mcp-server/scripts/utils/path.ts create mode 100644 packages/mcp-server/scripts/vitest.config.ts create mode 100644 packages/mcp-server/server/README.md create mode 100644 packages/mcp-server/server/package.json create mode 100644 packages/mcp-server/server/rollup.config.js create mode 100644 packages/mcp-server/server/src/helpers/cache.ts create mode 100644 packages/mcp-server/server/src/helpers/component.ts create mode 100644 packages/mcp-server/server/src/helpers/format.ts create mode 100644 packages/mcp-server/server/src/helpers/index.ts create mode 100644 packages/mcp-server/server/src/http.ts create mode 100644 packages/mcp-server/server/src/init.ts create mode 100644 packages/mcp-server/server/src/prompts/assistant.ts create mode 100644 packages/mcp-server/server/src/prompts/index.ts create mode 100644 packages/mcp-server/server/src/prompts/schema.ts create mode 100644 packages/mcp-server/server/src/stdio.ts create mode 100644 packages/mcp-server/server/src/tools/changelog.ts create mode 100644 packages/mcp-server/server/src/tools/docs.ts create mode 100644 packages/mcp-server/server/src/tools/dom.ts create mode 100644 packages/mcp-server/server/src/tools/icon.ts create mode 100644 packages/mcp-server/server/src/tools/index.ts create mode 100644 packages/mcp-server/server/src/tools/list.ts create mode 100644 packages/mcp-server/tsconfig.json diff --git a/package.json b/package.json index 23f78dde1..7c48cb6b5 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,12 @@ "site": "pnpm run build:components && pnpm run --filter tdesign-site build", "site:preview": "pnpm run build:components && pnpm run --filter tdesign-site site:preview", "auto-release-collection": "pnpm run --filter auto-release-collection start", - "prepare": "husky install" + "prepare": "husky install", + "build:mcp": "pnpm run --filter tdesign-mcp-server-mono build:mcp", + "build:mcp-stdio": "pnpm run --filter tdesign-mcp-server-mono build:mcp-stdio", + "build:mcp-http": "pnpm run --filter tdesign-mcp-server-mono build:mcp-http", + "start:mcp-http": "pnpm run --filter tdesign-mcp-server-mono start:mcp-http", + "build:docs+dom": "pnpm run --filter tdesign-mcp-server-mono build:docs+dom" }, "license": "MIT", "dependencies": { diff --git a/packages/mcp-server/.env b/packages/mcp-server/.env new file mode 100644 index 000000000..f9ab63b01 --- /dev/null +++ b/packages/mcp-server/.env @@ -0,0 +1,6 @@ +# ============================================= +# 设为 local,从项目的 docs 文件夹读取 +# 设为 online,从 CDN 上获取文档 +# ============================================= + +DOCS_SOURCE_MODE = 'online' diff --git a/packages/mcp-server/.gitignore b/packages/mcp-server/.gitignore new file mode 100644 index 000000000..492edf4f4 --- /dev/null +++ b/packages/mcp-server/.gitignore @@ -0,0 +1,30 @@ +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +.vscode +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +pnpm-lock.yaml + +.npmrc + +# Script-generated files (do not commit) +docs/ +scripts/dom/snapshots/*/__snapshots__/ diff --git a/packages/mcp-server/DEVELOPMENT.md b/packages/mcp-server/DEVELOPMENT.md new file mode 100644 index 000000000..f418e8d22 --- /dev/null +++ b/packages/mcp-server/DEVELOPMENT.md @@ -0,0 +1,80 @@ +# 开发指南 + +## 🏠 项目架构 + +```bash +# 安装依赖 +npm install + +#(可选)更新文档 +npm run build:docs+dom +``` + +- 由于该项目在提取文档时,如果找不到本地仓库的话,会自动启动 clone 其它组件库的流程。 +- 如果你本地已经有 TDesign 的其它组件库项目,可以把该仓库 clone 到相同的目录下;如果没有,建议新建一个额外的空目录,再把该仓库 clone 进去。 + +```bash +📄 .env # 环境变量(仅用于本地调试) +📁 packages/mcp-server +├── 📁 common # 通用工具函数 +├── 📁 docs # 已整理的文档(脚本生成,不入库) +├── 📁 scripts # 自动化脚本 +└── 📁 server # 核心业务逻辑 + ├── 📁 tools + └── 📁 prompts +``` + +### ⚠️ Apple Silicon 环境说明 + +如果你使用 Apple Silicon(M系列)Mac,需要额外安装 Rosetta 才能运行小程序快照构建脚本(`build:snap:mini`)。 + +- 因为底层依赖的 `miniprogram-simulate` → `miniprogram-compiler` 仅提供了 `x86_64` 架构的二进制文件,需要进行转译。 + +```bash +softwareupdate --install-rosetta --agree-to-license +``` + +## 🕹️ 本地启动 + +| 环境变量 | 说明 | 可选值 | 默认值 | +|:---|:---|:---|:---| +| `DOCS_SOURCE_MODE` | 文档数据来源 | `online`(CDN)
`local`(docs 文件夹) | `online` | + +### Stdio + +```bash +npm run build:mcp-stdio +``` + +```json +{ + "mcpServers": { + "tdesign-mcp-server": { + "command": "node", + "args": ["your_path_to/tdesign/packages/mcp-server/server/dist/stdio.js"], + "env": { + "DOCS_SOURCE_MODE": "local" + } + } + } +} +``` +### StreamableHttp + +```bash +npm run build:mcp-http +npm run start:mcp-http +``` + +```json +{ + "mcpServers": { + "tdesign-mcp-server": { + "url": "localhost:9000/mcp", + "env": { + "DOCS_SOURCE_MODE": "local" + } + } + } +} +``` diff --git a/packages/mcp-server/README.md b/packages/mcp-server/README.md new file mode 100644 index 000000000..f15084a82 --- /dev/null +++ b/packages/mcp-server/README.md @@ -0,0 +1,35 @@ +# TDesign MCP Server + +## 🎉 功能介绍 + +### 🔨 支持框架 +- 桌面端:`react` / `vue-next` / `vue` +- 移动端:`mobile-react` / `mobile-vue` / `miniprogram` / `uniapp` +- AI 对话:`react-chat` / `vue-next-chat` / `miniprogram-chat` / `uniapp-chat` + +### 🔨 支持工具 +- [x] `search-icons`:搜索可用的图标列表,适用场景:图标查找与名称确认 +- [x] `get-component-docs`:获取组件的文档,适用场景:代码生成和代码转换 +- [x] `get-component-dom`:获取组件的 DOM 结构,适用场景:转换自定义的 CSS 样式 +- [x] `get-component-list`:获取所有可用的组件列表,适用场景:选择合适组件进行组合实现不存在的功能 +- [x] `get-component-changelog`:获取组件的变更日志,适用场景:组件库版本升级 + +## 📦 使用说明 +```json +{ + "mcpServers": { // 或 servers(根据不同的 MCP 客户端决定) + "tdesign-mcp-server": { + "command": "npx", + "args": ["-y", "tdesign-mcp-server@latest"] + } + } +} +``` + +> 💡 如果在 MCP 客户端中连接失败,可以在终端手动输入 `npx tdesign-mcp-server`,并反馈对应的报错信息在 issue。 + +## 🔮 开发指南 + +![Node.js >=18](https://img.shields.io/badge/node-%3E%3D18-brightgree) + +详见[文档](DEVELOPMENT.md) \ No newline at end of file diff --git a/packages/mcp-server/common/config.ts b/packages/mcp-server/common/config.ts new file mode 100644 index 000000000..435969408 --- /dev/null +++ b/packages/mcp-server/common/config.ts @@ -0,0 +1,18 @@ +import { createRequire } from "module"; +import path from "path"; +import { getDirname } from "./toolkit"; + +const __dirname = getDirname(import.meta.url); + +export const isProduction = process.env.NODE_ENV === "production"; + +if (!isProduction) { + // 避免打包时把 dotenv 也打入产物 + const require = createRequire(import.meta.url); // 兼容 cjs + const dotenv = require("dotenv"); + dotenv.config({ path: path.join(__dirname, "../../.env"), quiet: true }); +} + +export const DOCS_SOURCE_MODE = process.env.DOCS_SOURCE_MODE as "online" | "local"; + +export const isLocalMode = DOCS_SOURCE_MODE === "local"; diff --git a/packages/mcp-server/common/framework.ts b/packages/mcp-server/common/framework.ts new file mode 100644 index 000000000..444e35489 --- /dev/null +++ b/packages/mcp-server/common/framework.ts @@ -0,0 +1,50 @@ +export const addTdPrefix = (suffix: string) => `tdesign-${suffix}`; + +export const PLATFORMS = { + web: "web", + mobile: "mobile" +} as const; +export type Platform = (typeof PLATFORMS)[keyof typeof PLATFORMS]; + +export const WEB_FRAMEWORKS = ["react", "react-chat", "vue", "vue-next", "vue-next-chat"] as const; + +export const MOBILE_FRAMEWORKS = [ + "mobile-react", + "mobile-vue", + "miniprogram", + "miniprogram-chat", + "uniapp", + "uniapp-chat" +] as const; + +export const FRAMEWORKS = [...WEB_FRAMEWORKS, ...MOBILE_FRAMEWORKS] as const; +export type Framework = (typeof FRAMEWORKS)[number]; + +// wxss 内容置空,聚焦组件本身 +export const MINIPROGRAM_DEMO_EXTS = [".wxml", ".js", ".json"] as const; + +/* 组件库是否为大仓结构 */ +const MONOREPO: Framework[] = ["react", "vue-next", "miniprogram"] as const; +export const isMonorepo = (fw: Framework) => MONOREPO.includes(fw); + +export const isMiniProgram = (fw: Framework) => ["miniprogram", "miniprogram-chat"].includes(fw); + +export const isUniapp = (fw: Framework) => ["uniapp", "uniapp-chat"].includes(fw); + +export const isChatFramework = (fw: Framework) => fw.includes("chat") || fw === "uniapp-chat"; + +const SPECIAL_CHAT_COMPONENTS = ["attachments"]; +export const isChatComponent = (name: string) => name.startsWith("chat-") || SPECIAL_CHAT_COMPONENTS.includes(name); + +export const getSuffixByFramework = (fw: Framework) => (fw.includes("react") ? "tsx" : "vue"); + +/** uniapp 相关框架的源仓库映射 */ +export const getUniappSourceFramework = (fw: Framework): Framework => (fw === "uniapp-chat" ? "uniapp" : "uniapp"); + +export const getPlatformByFramework = (fw: Framework): Platform => { + if ((MOBILE_FRAMEWORKS as readonly Framework[]).includes(fw)) { + return PLATFORMS.mobile; + } + + return PLATFORMS.web; +}; diff --git a/packages/mcp-server/common/index.ts b/packages/mcp-server/common/index.ts new file mode 100644 index 000000000..a40dc92c5 --- /dev/null +++ b/packages/mcp-server/common/index.ts @@ -0,0 +1,4 @@ +export * from "./framework"; +export * from "./parser"; +export * from "./toolkit"; +export * from "./config"; \ No newline at end of file diff --git a/packages/mcp-server/common/package.json b/packages/mcp-server/common/package.json new file mode 100644 index 000000000..c774d2cdb --- /dev/null +++ b/packages/mcp-server/common/package.json @@ -0,0 +1,8 @@ +{ + "name": "@tdesign-mcp-server/common", + "main": "index.ts", + "type": "module", + "dependencies": { + "dotenv": "^17.2.1" + } +} diff --git a/packages/mcp-server/common/parser.ts b/packages/mcp-server/common/parser.ts new file mode 100644 index 000000000..f0625481e --- /dev/null +++ b/packages/mcp-server/common/parser.ts @@ -0,0 +1,216 @@ +type Rule = [RegExp, string]; +export type RuleMap = Record; + +const MD_LINK_RULE: Rule = [/[,,。.]?\s*\[([^\]]+)\]\([^\)]+\)/g, ""]; +const DANGLING_PUNCT_RULE: Rule = [/[,,]\s*[。.](?!\.)/g, "。"]; +const ATTR_INLINE_STYLE_RULE: Rule = [/\s*:?style="([^"]*)"/g, ""]; +const LINK_RULE: Rule = [/https?[^"]*/g, ""]; +const SPACE_RULE: Rule = [/\s+/g, " "]; +const SPACE_BETWEEN_TAG: Rule = [/\s*(<|>)\s*/g, "$1"]; + +const COMMON_RULE_MAP: RuleMap = { + extraLine: [/^\s*\n\s*\n/gm, "\n"], + blankHeadTail: [/^(\s*\n)+|(\s*\n)+$/g, ""] +}; + +export const API_RULE_MAP: RuleMap = { + // 只提取 ## API 后面的段落 + base: [/^[\s\S]*?^## API\s*\n?/m, ""], + mdLink: MD_LINK_RULE, + danglingPunct: DANGLING_PUNCT_RULE, + ...COMMON_RULE_MAP +}; + +export const DEMO_RULE_MAP: RuleMap = { + meta: [/---\n([\s\S]*?)\n---/, ""], + style: [/\s]*>[\s\S]*?<\/style>/gi, ""], + jsxInlineStyle: [/\s*style={{([^}]*)*}}/g, ""], + attrInlineStyle: ATTR_INLINE_STYLE_RULE, + selfClosingDiv: [/^\s*|>\s*<\/div>)[\n]?/gm, ""], + comment: [//g, ""], + log: [/^\s*console\.log\([\s\S]*?\);\s*$/gm, ""], + ...COMMON_RULE_MAP +}; + +export const MOBILE_DEMO_RULE_MAP: RuleMap = { + styleImport: [/^\s*import\s+['"][^'"]*\.(less|css|scss|sass)['"]\s*;?\s*\n?/gm, ""], + demoBlockImport: [/^\s*import\s+TDemoBlock\s+from\s+['"][^'"]*['"]\s*;?\s*\n?/gm, ""], + demoBlockTag: [/\s*<\/?TDemoBlock[^>]*>\s*\n?/g, ""] +}; + +export const DOM_RULE_MAP: RuleMap = { + outerDiv: [/^
\s*([\s\S]*?)\s*<\/div>$/gm, "$1"], + emptyDiv: [/\n?\s*/g, ""], + shadowRoot: [/#shadow-root \(open\)/g, ""], + attrInlineStyle: ATTR_INLINE_STYLE_RULE, + link: LINK_RULE, + linkTag: [/]*\/?>/g, ""], + svgPathData: [/]*)\sd="[^"]*"([^>]*)>/g, ''], + allNewLines: [/\n/g, ""], + space: SPACE_RULE, + spaceBetweenTag: [/\s*(<|>)\s*/g, "$1"] +}; + +export const MINIPROGRAM_DOM_RULE_MAP: RuleMap = { + // 移除事件绑定属性:bind:tap="xxx"、catch:tap="xxx"、mut-bind:tap="xxx"、bind:collapsed-item-click="xxx" + eventBinding: [/\s*(?:bind|catch|mut-bind|capture-bind|capture-catch):[\w-]+="[^"]*"/g, ""], + attrInlineStyle: ATTR_INLINE_STYLE_RULE, + // 移除无障碍相关属性:ariaRole、ariaLabel、ariaHidden、ariaDescribedby、ariaLabelledby 等 + ariaAttr: [/\s*aria[A-Za-z]*="[^"]*"/g, ""], + // 移除 id 属性:id="xxx" + idAttr: [/\s*id="[^"]*"/g, ""], + // 移除值为空的属性:xxx="" + emptyAttr: [/\s*[\w-]+=""/g, ""], + allNewLines: [/\n/g, ""], + link: LINK_RULE, + space: SPACE_RULE, + spaceBetweenTag: SPACE_BETWEEN_TAG +}; +/** + * UniApp DOM 清洗规则 + * 基于小程序 DOM 产物进行标签替换和属性清洗,生成接近 uniapp H5 的 DOM 结构 + */ +export const UNIAPP_DOM_RULE_MAP: RuleMap = { + // ---- 第一步:替换小程序标签为 HTML 标签 ---- + // wx-view → div(开标签和闭标签都替换) + wxView: [/<(\/?)wx-view(?=[\s>])/g, "<$1div"], + // wx-text → span + wxText: [/<(\/?)wx-text(?=[\s>])/g, "<$1span"], + // wx-label → label + wxLabel: [/<(\/?)wx-label(?=[\s>])/g, "<$1label"], + // wx-button → button + wxButton: [/<(\/?)wx-button(?=[\s>])/g, "<$1button"], + // wx-input → input + wxInput: [/<(\/?)wx-input(?=[\s>])/g, "<$1input"], + // wx-textarea → textarea + wxTextarea: [/<(\/?)wx-textarea(?=[\s>])/g, "<$1textarea"], + // wx-form → form + wxForm: [/<(\/?)wx-form(?=[\s>])/g, "<$1form"], + // wx-image → img + wxImage: [/<(\/?)wx-image(?=[\s>])/g, "<$1img"], + // wx-canvas → canvas + wxCanvas: [/<(\/?)wx-canvas(?=[\s>])/g, "<$1canvas"], + // wx-navigator → a + wxNavigator: [/<(\/?)wx-navigator(?=[\s>])/g, "<$1a"], + // wx-scroll-view → div + wxScrollView: [/<(\/?)wx-scroll-view(?=[\s>])/g, "<$1div"], + // wx-swiper-item → div(先替换 swiper-item,防止被 swiper 规则覆盖) + wxSwiperItem: [/<(\/?)wx-swiper-item(?=[\s>])/g, "<$1div"], + // wx-swiper → div + wxSwiper: [/<(\/?)wx-swiper(?=[\s>])/g, "<$1div"], + // wx-rich-text → div + wxRichText: [/<(\/?)wx-rich-text(?=[\s>])/g, "<$1div"], + // 其他 wx-* 标签兜底替换为 div + wxFallback: [/<(\/?)wx-[\w-]+(?=[\s>])/g, "<$1div"], + + // ---- 第二步:移除小程序特有属性 ---- + // 移除 hover 相关属性:hoverClass、hoverStartTime、hoverStayTime、hoverStopPropagation + hoverAttr: [/\s*hover(?:Class|StartTime|StayTime|StopPropagation)="[^"]*"/g, ""], + // 移除微信小程序特有属性:sendMessage*、showMessageCard、needShowEntrance、openType、sessionFrom、appParameter + wxSpecialAttr: [ + /\s*(?:sendMessage\w*|showMessageCard|needShowEntrance|openType|sessionFrom|appParameter)="[^"]*"/g, + "" + ], + // 移除 data-* 属性(含模板语法) + dataAttr: [/\s*data-[\w-]+="[^"]*"/g, ""], + // 移除 tClass 及其所有变体属性(tClassLoad、tClassText、tClassImage、tClassContent 等外部样式类传递) + tClassAttr: [/\s*tClass\w*="[^"]*"/g, ""], + // 移除 wx-image 相关属性:lazyLoad、mode、showMenuByLongpress、webp、src + wxImageAttr: [/\s*(?:lazyLoad|mode|showMenuByLongpress|webp|src)="[^"]*"/g, ""], + // 移除 wx-input/wx-textarea 相关属性 + wxInputAttr: [ + /\s*(?:placeholderClass|placeholderStyle|cursorSpacing|adjustPosition|confirmType|confirmHold|disableDefaultPadding|enhanced)="[^"]*"/g, + "" + ], + // 移除 wx-scroll-view 相关属性 + wxScrollAttr: [ + /\s*(?:scrollTop|scrollLeft|scrollIntoView|scrollWithAnimation|scrollAnchoring|enablePassive|scrollX|scrollY|enableFlex|refresher\w*)="[^"]*"/g, + "" + ], + // 移除 wx-swiper 相关属性 + wxSwiperAttr: [ + /\s*(?:current|autoplay|circular|vertical|interval|duration|easingFunction|displayMultipleItems|previousMargin|nextMargin|snapToEdge|indicatorDots|indicatorColor|indicatorActiveColor)="[^"]*"/g, + "" + ], + // 移除 nodes 属性(wx-rich-text) + wxNodesAttr: [/\s*nodes="[^"]*"/g, ""], + // 移除 reportSubmit 属性(wx-form) + wxFormAttr: [/\s*reportSubmit="[^"]*"/g, ""], + // 移除 $gdc="xxx"、$wxs:change:xxx="xxx" 等 WXS 相关属性(含有值和无值两种格式) + wxsAttr: [/\s*\$(?:gdc|wxs:[\w:]*)(?:="[^"]*")?/g, ""], + // 移除 tabindex 属性 + tabindexAttr: [/\s*tabindex="[^"]*"/g, ""], + + // ---- 第三步(前置):先移除换行符,确保后续 class 值清洗的 lookbehind 正则能正确匹配 ---- + preAllNewLines: [/\n/g, ""], + + // ---- 第三步:清洗 class 值中的小程序占位 class ---- + // 移除 class 值中独立的 "class" 和 "t-class" / "t-class-*" 占位词(支持开头、中间、末尾位置) + classPlaceholder: [ + /(?<=class=")\s*\bclass\b\s*|\s+\bclass\b(?=\s|")|\s+\bt-class(?:-[\w-]+)?\b(?=\s|")|(?<=class=")\s*\bt-class(?:-[\w-]+)?\b\s*/g, + "" + ], + // 清理 class 值中开头和结尾的多余空格 + classTrailingSpace: [/\s+(?=")/g, ""], + classLeadingSpace: [/class="\s+/g, 'class="'], + // 清理 class 值中多余的连续空格 + classInnerSpace: [/\s{2,}/g, " "], + + // ---- 第四步:复用 MINIPROGRAM_DOM_RULE_MAP 的通用清洗 ---- + eventBinding: MINIPROGRAM_DOM_RULE_MAP.eventBinding, + attrInlineStyle: MINIPROGRAM_DOM_RULE_MAP.attrInlineStyle, + ariaAttr: MINIPROGRAM_DOM_RULE_MAP.ariaAttr, + idAttr: MINIPROGRAM_DOM_RULE_MAP.idAttr, + emptyAttr: MINIPROGRAM_DOM_RULE_MAP.emptyAttr, + allNewLines: MINIPROGRAM_DOM_RULE_MAP.allNewLines, + link: MINIPROGRAM_DOM_RULE_MAP.link, + space: MINIPROGRAM_DOM_RULE_MAP.space, + spaceBetweenTag: MINIPROGRAM_DOM_RULE_MAP.spaceBetweenTag +}; + +export const CHANGELOG_RULE_MAP: RuleMap = { + mdLink: MD_LINK_RULE, + danglingPunct: DANGLING_PUNCT_RULE, + user: [/(? { + return Object.values(cleaningRules).reduce((acc, [regex, replacement]) => { + return acc.replace(regex, replacement); + }, text); +}; + +/** + * 只保留 HTML 标签中的特定属性,移除其他所有属性 + * @param html HTML 字符串 + * @param attrs 要保留的属性名列表 + */ +export const keepOnlyAttrs = (html: string, attrs: string[]) => { + // 匹配开始标签: + return html.replace(/<([a-zA-Z][\w-]*)((?:\s+[^>]*)?)\/?>/g, (match, tagName, attrsStr) => { + if (!attrsStr || !attrsStr.trim()) { + return match; + } + + // Extract all attributes, supporting template syntax with nested quotes like: + // class="{{ Array ["t-chat-actionbar","start", ] }}" + // For double-quoted values: match {{ ... }} blocks (which may contain inner quotes) or non-quote chars + const attrRegex = /\s+([\w:-]+)(?:="((?:\{\{[\s\S]*?\}\}|[^"])*)"|='([^']*)'|=([^\s>]+)|(?=\s|\/?>))/g; + const keptAttrs: string[] = []; + let attrMatch; + + while ((attrMatch = attrRegex.exec(attrsStr)) !== null) { + const attrName = attrMatch[1]; + const attrValue = attrMatch[2] ?? attrMatch[3] ?? attrMatch[4] ?? ""; + + if (attrs.includes(attrName)) { + keptAttrs.push(`${attrName}="${attrValue}"`); + } + } + + const isSelfClosing = match.endsWith("/>"); + const attrsOutput = keptAttrs.length > 0 ? " " + keptAttrs.join(" ") : ""; + return `<${tagName}${attrsOutput}${isSelfClosing ? "/>" : ">"}`; + }); +}; diff --git a/packages/mcp-server/common/toolkit.ts b/packages/mcp-server/common/toolkit.ts new file mode 100644 index 000000000..837621108 --- /dev/null +++ b/packages/mcp-server/common/toolkit.ts @@ -0,0 +1,22 @@ +import path from "path"; +import { fileURLToPath } from "url"; + +/** + * 获取当前文件的绝对路径 + * - 调用格式:`getDirname(import.meta.url)` + */ +export const getDirname = (importMetaUrl: string) => { + return path.dirname(fileURLToPath(importMetaUrl)); +}; + +export const compareVersion = (a: string, b: string) => { + const aArr = a.split("."); + const bArr = b.split("."); + for (let i = 0; i < Math.max(aArr.length, bArr.length); i++) { + const aNum = Number(aArr[i] || 0); + const bNum = Number(bArr[i] || 0); + if (aNum > bNum) return 1; + if (aNum < bNum) return -1; + } + return 0; +}; diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json new file mode 100644 index 000000000..2100cdc02 --- /dev/null +++ b/packages/mcp-server/package.json @@ -0,0 +1,13 @@ +{ + "name": "tdesign-mcp-server-mono", + "version": "0.2.4", + "private": true, + "description": "TDesign MCP Server packages", + "scripts": { + "build:docs+dom": "pnpm -C scripts build:docs+dom", + "build:mcp": "pnpm -C server build:mcp", + "build:mcp-stdio": "pnpm -C server build:mcp-stdio", + "build:mcp-http": "pnpm -C server build:mcp-http", + "start:mcp-http": "pnpm -C server start:mcp-http" + } +} diff --git a/packages/mcp-server/prettier.config.js b/packages/mcp-server/prettier.config.js new file mode 100644 index 000000000..d7b66bb79 --- /dev/null +++ b/packages/mcp-server/prettier.config.js @@ -0,0 +1,12 @@ +/** + * @type {import("prettier").Config} + */ +export default { + semi: true, + singleAttributePerLine: true, + singleQuote: false, + jsxBracketSameLine: false, + printWidth: 120, + arrowParens: "always", + trailingComma: "none" +}; diff --git a/packages/mcp-server/scripts/dom/index.ts b/packages/mcp-server/scripts/dom/index.ts new file mode 100644 index 000000000..8354a97be --- /dev/null +++ b/packages/mcp-server/scripts/dom/index.ts @@ -0,0 +1,122 @@ +import { existsSync, promises as fs } from "fs"; +import path from "path"; + +import { + addTdPrefix, + cleanText, + DOM_RULE_MAP, + getDirname, + isChatComponent, + keepOnlyAttrs, + MINIPROGRAM_DOM_RULE_MAP, + UNIAPP_DOM_RULE_MAP, + type RuleMap +} from "@tdesign-mcp-server/common"; +import { TD_DOCS_OUTPUT_DIR } from "../utils/path"; + +const __dirname = getDirname(import.meta.url); + +interface DomConfig { + /** 平台标识,用于日志输出 */ + platform: string; + /** 快照文件路径 */ + snapshotPath: string; + /** 从快照中提取组件名和 DOM 的正则,需包含两个捕获组 */ + regex: RegExp; + /** DOM 清洗规则 */ + ruleMap: RuleMap; + /** 输出目录前缀,可以是字符串或根据组件名动态计算的函数 */ + outputPrefix: string | ((compName: string) => string); + /** 清洗前的预处理 */ + preprocess?: (dom: string) => string; + /** 只保留指定属性,默认不过滤 */ + keepAttrs?: string[]; +} + +const configs: DomConfig[] = [ + { + platform: "web", + snapshotPath: path.join(__dirname, "./snapshots/web/__snapshots__/setup.test.ts.snap"), + regex: /exports\[`[^`]+ \[([^\]]+)\] [^\]]+`] = `([\s\S]+?)`;/g, + ruleMap: DOM_RULE_MAP, + outputPrefix: "web-dom" + }, + { + platform: "web-chat", + snapshotPath: path.join(__dirname, "./snapshots/web-chat/__snapshots__/setup.test.ts.snap"), + regex: /exports\[`[^`]+ \[([^\]]+)\] [^\]]+`] = `([\s\S]+?)`;/g, + ruleMap: DOM_RULE_MAP, + outputPrefix: "web-chat-dom", + preprocess: (dom) => { + let result = dom.trim(); + // 去掉外层引号 + if (result.startsWith('"') && result.endsWith('"')) { + result = result.slice(1, -1); + } + // 去掉外层
包裹 + result = result.replace(/^\s*
\s*([\s\S]*?)\s*<\/div>\s*$/, "$1"); + return result; + } + }, + { + platform: "mobile", + snapshotPath: path.join(__dirname, "./snapshots/mobile/__snapshots__/setup.test.ts.snap"), + regex: /exports\[`[^`]+ \[([^\]]+)\] [^\]]+`] = `([\s\S]+?)`;/g, + ruleMap: DOM_RULE_MAP, + outputPrefix: "mobile-dom" + }, + { + platform: "miniprogram", + snapshotPath: path.join(__dirname, "./snapshots/miniprogram/__snapshots__/index.test.js.snap"), + regex: /exports\[`(\S+) demo snapshot 1`] = `([\s\S]+?)`;/g, + ruleMap: MINIPROGRAM_DOM_RULE_MAP, + outputPrefix: (compName) => (isChatComponent(compName) ? "miniprogram-chat-dom" : "miniprogram-dom"), + // 去除最外一层标签 + preprocess: (dom) => dom.replace(/^\s*<[^>]+>\s*([\s\S]*?)\s*<\/[^>]+>\s*$/, "$1") + }, + { + platform: "uniapp", + // 复用小程序的快照文件,通过标签替换和属性清洗生成 uniapp H5 DOM + snapshotPath: path.join(__dirname, "./snapshots/miniprogram/__snapshots__/index.test.js.snap"), + regex: /exports\[`(\S+) demo snapshot 1`] = `([\s\S]+?)`;/g, + ruleMap: UNIAPP_DOM_RULE_MAP, + outputPrefix: (compName) => (isChatComponent(compName) ? "uniapp-chat-dom" : "uniapp-dom"), + // 去除最外一层标签(与小程序一致) + preprocess: (dom) => dom.replace(/^\s*<[^>]+>\s*([\s\S]*?)\s*<\/[^>]+>\s*$/, "$1") + } +]; + +(async function main() { + for (const config of configs) { + console.log(`--------(${config.platform})--------`); + if (!existsSync(config.snapshotPath)) { + console.warn(`✗ Snapshot file not found.`); + continue; + } + await extractAllDom(config); + console.log(`✓ Extract DOM successfully`); + } +})(); + +async function extractAllDom(config: DomConfig) { + const snapshotContent = await fs.readFile(config.snapshotPath, "utf-8"); + const { regex, ruleMap, outputPrefix, preprocess, keepAttrs } = config; + + let match; + while ((match = regex.exec(snapshotContent)) !== null) { + const compName = match[1]; + let compDom = match[2]; + if (preprocess) { + compDom = preprocess(compDom); + } + compDom = cleanText(compDom, ruleMap); + compDom = keepOnlyAttrs(compDom, ["class", "tClass"]); + + const prefix = typeof outputPrefix === "function" ? outputPrefix(compName) : outputPrefix; + const compDomPath = path.join(TD_DOCS_OUTPUT_DIR, addTdPrefix(prefix), `${compName}.html`); + if (!existsSync(compDomPath)) { + await fs.mkdir(path.dirname(compDomPath), { recursive: true }); + } + await fs.writeFile(compDomPath, compDom); + } +} diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/babel.config.cjs b/packages/mcp-server/scripts/dom/snapshots/miniprogram/babel.config.cjs new file mode 100644 index 000000000..d561e1d9c --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/babel.config.cjs @@ -0,0 +1,7 @@ +module.exports = { + presets: [['@babel/preset-env', { targets: { node: 'current' } }], '@babel/preset-typescript'], + plugins: [ + ['@babel/plugin-proposal-decorators', { legacy: true }], + ['@babel/plugin-transform-class-properties', { loose: true }], + ], +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.js new file mode 100644 index 000000000..6ee112fd4 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.js @@ -0,0 +1,28 @@ +Component({ + data: { + visible: true, + cancelText: 'cancel', + description: 'Email Settings', + items: [ + { + label: 'Move', + icon: 'enter', + }, + { + label: 'Mark as important', + icon: 'bookmark', + }, + { + label: 'Unsubscribe', + icon: 'pin', + }, + { + label: 'Add to Tasks', + icon: 'cloud-upload', + }, + ], + }, + methods: { + + }, +}); \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.json new file mode 100644 index 000000000..50509b1c3 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "t-action-sheet": "tdesign-miniprogram/action-sheet/action-sheet" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.wxml new file mode 100644 index 000000000..cf3514971 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/action-sheet/demo/index.wxml @@ -0,0 +1,8 @@ + diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.js new file mode 100644 index 000000000..09f28659f --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.js @@ -0,0 +1,6 @@ +Component({ + data: { + visible: true, + confirmBtn: { content: '知道了', variant: 'base' }, + }, +}); \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.json new file mode 100644 index 000000000..e3f512b88 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "t-dialog": "tdesign-miniprogram/dialog/dialog" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.wxml new file mode 100644 index 000000000..aec7240d0 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dialog/demo/index.wxml @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.js new file mode 100644 index 000000000..2ab6e4656 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.js @@ -0,0 +1,33 @@ +Component({ + data: { + visible: true, + placement: 'left', + sidebar: [], + baseSidebar: [ + { + title: '菜单一', + }, + { + title: '菜单二', + }, + { + title: '菜单三', + }, + { + title: '菜单四', + }, + { + title: '菜单五', + }, + { + title: '菜单六', + }, + { + title: '菜单七', + }, + { + title: '菜单八', + }, + ], + }, +}); \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.json new file mode 100644 index 000000000..c1692047b --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "t-drawer": "tdesign-miniprogram/drawer/drawer" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.wxml new file mode 100644 index 000000000..dfea79f56 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/drawer/demo/index.wxml @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.js new file mode 100644 index 000000000..c9a3e0612 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.js @@ -0,0 +1,25 @@ +Component({ + data: { + value: 'option_1', + options: [ + { label: '选项一', value: 'option_1', disabled: false }, + { label: '选项二', value: 'option_2', disabled: false }, + { label: '选项三', value: 'option_3', disabled: false }, + ], + }, + lifetimes: { + ready() { + // 直接设置 dropdown-item 的展开状态 + // 在 miniprogram-simulate 中 getRect 无法正常工作,所以绕过 show observer 的异步链 + const $item = this.selectComponent('#dropdown-item'); + if ($item) { + $item.setData({ + wrapperVisible: true, + show: true, + top: 0, + maskHeight: 0, + }); + } + }, + }, +}); diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.json new file mode 100644 index 000000000..ecc6c416f --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "t-dropdown-menu": "tdesign-miniprogram/dropdown-menu/dropdown-menu", + "t-dropdown-item": "tdesign-miniprogram/dropdown-item/dropdown-item" + } +} diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.wxml new file mode 100644 index 000000000..59ee98717 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/dropdown-menu/demo/index.wxml @@ -0,0 +1,13 @@ + + + + diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.js new file mode 100644 index 000000000..c553477f5 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.js @@ -0,0 +1,77 @@ +Component({ + data: { + current: 0, + steps: [ + { + element: () => Promise.resolve({ top: 0, left: 0, right: 375, width: 375, height: 80 }), + title: '用户引导标题', + body: '用户引导的说明文案', + placement: 'center', + }, + { + element: () => Promise.resolve({ top: 100, left: 0, right: 375, width: 375, height: 56 }), + title: '用户引导标题', + body: '用户引导的说明文案', + placement: 'bottom', + highlightPadding: 0, + }, + { + element: () => Promise.resolve({ top: 200, left: 0, right: 375, width: 375, height: 48 }), + title: '用户引导标题', + placement: 'bottom-right', + }, + ], + }, + lifetimes: { + ready() { + const $guide = this.selectComponent('#t-guide'); + if ($guide) { + // 直接设置 guide 组件的内部渲染数据,绕过 element() 的异步 createSelectorQuery 调用 + $guide.setData({ + visible: true, + modeType: 'popover', + nonOverlay: false, + title: '用户引导标题', + body: '用户引导的说明文案', + referenceStyle: 'top:0px;right:0px;left:0px;width:375px;height:80px;', + popoverStyle: 'position:absolute;top:96px;left:1px;', + buttonProps: { + skipButton: { + theme: 'light', + content: '跳过', + size: 'extra-small', + tClass: 't-class-skip t-guide__button', + type: 'skip', + }, + nextButton: { + theme: 'primary', + content: '下一步 (1/3)', + size: 'extra-small', + tClass: 't-class-next t-guide__button', + type: 'next', + }, + backButton: { + theme: 'light', + content: '返回', + size: 'extra-small', + tClass: 't-class-back t-guide__button', + type: 'back', + }, + finishButton: { + theme: 'primary', + content: '完成 (1/3)', + size: 'extra-small', + tClass: 't-class-finish t-guide__button', + type: 'finish', + }, + }, + }); + } + }, + }, + methods: { + close() { + this.triggerEvent('close'); + }, + }, +}); diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.json new file mode 100644 index 000000000..829fda203 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "t-guide": "tdesign-miniprogram/guide/guide", + "t-input": "tdesign-miniprogram/input/input", + "t-button": "tdesign-miniprogram/button/button" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.wxml new file mode 100644 index 000000000..349c80e6b --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/guide/demo/index.wxml @@ -0,0 +1,20 @@ + + + 用户引导标题 + 按钮用于开启一个闭环的操作任务,如"删除"对象、"购买"商品等。 + + + + + + + + + 重置 + 确定 + + + + + slot展示 用户引导的说明文案 + diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.js new file mode 100644 index 000000000..b79c5124b --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.js @@ -0,0 +1 @@ +Component({}); diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.json new file mode 100644 index 000000000..3fb984899 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "t-icon": "tdesign-miniprogram/icon/icon" + } +} diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.wxml new file mode 100644 index 000000000..b455fc312 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/icon/demo/index.wxml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.js new file mode 100644 index 000000000..c1c5fe6a0 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.js @@ -0,0 +1,126 @@ +Page({ + data: { + current: 'B', + indexList: [], + list: [ + { + index: 'A', + children: ['阿坝', '阿拉善', '阿里', '安康', '安庆', '鞍山', '安顺', '安阳', '澳门'], + }, + { + index: 'B', + children: [ + '北京', + '白银', + '保定', + '宝鸡', + '保山', + '包头', + '巴中', + '北海', + '蚌埠', + '本溪', + '毕节', + '滨州', + '百色', + '亳州', + ], + }, + { + index: 'C', + children: [ + '重庆', + '成都', + '长沙', + '长春', + '沧州', + '常德', + '昌都', + '长治', + '常州', + '巢湖', + '潮州', + '承德', + '郴州', + '赤峰', + '池州', + '崇左', + '楚雄', + '滁州', + '朝阳', + ], + }, + { + index: 'D', + children: [ + '大连', + '东莞', + '大理', + '丹东', + '大庆', + '大同', + '大兴安岭', + '德宏', + '德阳', + '德州', + '定西', + '迪庆', + '东营', + ], + }, + { + index: 'E', + children: ['鄂尔多斯', '恩施', '鄂州'], + }, + { + index: 'F', + children: ['福州', '防城港', '佛山', '抚顺', '抚州', '阜新', '阜阳'], + }, + { + index: 'G', + children: ['广州', '桂林', '贵阳', '甘南', '赣州', '甘孜', '广安', '广元', '贵港', '果洛'], + }, + { + index: 'J', + children: ['揭阳', '吉林', '晋江', '吉安', '胶州', '嘉兴', '济南', '鸡西', '荆州', '江门', '基隆'], + }, + { + index: 'K', + children: ['昆明', '开封', '康定', '喀什'], + }, + ], + stickyOffset: 0, + }, + + onLoad() { + this.getCustomNavbarHeight(); + }, + + onReady() { + this.setData({ + indexList: this.data.list.map((item) => item.index), + }); + }, + + onChange(e) { + const { index } = e.detail; + this.setData({ + current: index, + }); + + }, + + onSelect(e) { + const { index } = e.detail; + + }, + + getCustomNavbarHeight() { + const query = wx.createSelectorQuery(); + query.select('.custom-navbar').boundingClientRect(); + query.exec((res) => { + const { height = 0 } = res[0] || {}; + this.setData({ stickyOffset: height }); + }); + }, +}); \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.json new file mode 100644 index 000000000..11d5cd17a --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.json @@ -0,0 +1,9 @@ +{ + "component": true, + "usingComponents": { + "t-indexes": "tdesign-miniprogram/indexes/indexes", + "t-indexes-anchor": "tdesign-miniprogram/indexes-anchor/indexes-anchor", + "t-cell-group": "tdesign-miniprogram/cell-group/cell-group", + "t-cell": "tdesign-miniprogram/cell/cell" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.wxml new file mode 100644 index 000000000..79d06bddd --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/indexes/demo/index.wxml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.js new file mode 100644 index 000000000..8a3cef246 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.js @@ -0,0 +1,5 @@ +Component({ + data: { + visible: true, + }, +}); diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.json new file mode 100644 index 000000000..ff517d671 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "t-message": "tdesign-miniprogram/message-item/message-item" + } +} diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.wxml new file mode 100644 index 000000000..2b18e0e4b --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.wxml @@ -0,0 +1,6 @@ + diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.wxss b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/message/demo/index.wxss new file mode 100644 index 000000000..e69de29bb diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.js new file mode 100644 index 000000000..a40105359 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.js @@ -0,0 +1,5 @@ +Component({ + data: { + visible: true, + }, +}); \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.json new file mode 100644 index 000000000..53094b237 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "t-overlay": "tdesign-miniprogram/overlay/overlay" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.wxml new file mode 100644 index 000000000..c8ab58b6b --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/overlay/demo/index.wxml @@ -0,0 +1 @@ + diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.js new file mode 100644 index 000000000..5284b6ec5 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.js @@ -0,0 +1,5 @@ +Component({ + data: { + visible:true, + }, +}); \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.json new file mode 100644 index 000000000..5b2ce04cc --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "styleIsolation": "apply-shared", + "usingComponents": { + "t-popover": "tdesign-miniprogram/popover/popover" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.wxml new file mode 100644 index 000000000..a99811dac --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.wxml @@ -0,0 +1,9 @@ + + 弹出气泡内容 + \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.wxss b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popover/demo/index.wxss new file mode 100644 index 000000000..e69de29bb diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.js new file mode 100644 index 000000000..8e3bd8148 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.js @@ -0,0 +1,6 @@ +Component({ + data: { + visible: true, + }, + +}); \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.json new file mode 100644 index 000000000..9de50b398 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "t-popup": "tdesign-miniprogram/popup/popup", + "t-button": "tdesign-miniprogram/button/button" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.wxml new file mode 100644 index 000000000..a6f3b544f --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/popup/demo/index.wxml @@ -0,0 +1,5 @@ + + Popup Content + diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.js new file mode 100644 index 000000000..957c792b5 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.js @@ -0,0 +1,23 @@ +Component({ + data: { + enable: false, + rowCol1: [{ width: '100%', height: '342rpx', borderRadius: '24rpx' }], + rowCol2: [[{ width: '327rpx' }], [{ width: '200rpx' }], [{ size: '327rpx', borderRadius: '24rpx' }]], + }, + + ready() { + this.setData({ enable: true }); + setTimeout(() => { + this.setData({ enable: false }); + }, 1000); + }, + + methods: { + onRefresh() { + this.setData({ enable: true }); + setTimeout(() => { + this.setData({ enable: false }); + }, 1500); + }, + }, +}); \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.json new file mode 100644 index 000000000..a68e7f073 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", + "t-skeleton": "tdesign-miniprogram/skeleton/skeleton" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.wxml new file mode 100644 index 000000000..650fa8c58 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/pull-down-refresh/demo/index.wxml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + 拖拽该区域演示 顶部下拉刷新 + + + \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.js new file mode 100644 index 000000000..3de6d1b65 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.js @@ -0,0 +1,100 @@ +const image = 'https://tdesign.gtimg.com/mobile/demos/example2.png'; +const items = new Array(12).fill().map((_, index) => ({ + label: index % 3 === 2 ? '最多六个文字' : '标题文字', + image: image, +})); + +Page({ + offsetTopList: [], + lastScrollTop: 0, + data: { + sideBarIndex: 1, + scrollTop: 0, + categories: [ + { + label: '选项一', + title: '标题一', + badgeProps: {}, + items, + }, + { + label: '选项二', + title: '标题二', + badgeProps: { + dot: true, + }, + items: items.slice(0, 9), + }, + { + label: '选项三', + title: '标题三', + badgeProps: {}, + items: items.slice(0, 9), + }, + { + label: '选项四', + title: '标题四', + badgeProps: { + count: 6, + }, + items: items.slice(0, 6), + }, + { + label: '选项五', + title: '标题五', + badgeProps: {}, + items: items.slice(0, 3), + }, + ], + navbarHeight: 0, + }, + onLoad() { + const query = wx.createSelectorQuery().in(this); + const { sideBarIndex } = this.data; + query.selectAll('.title').boundingClientRect(); + query.select('.custom-navbar').boundingClientRect(); + query.exec((res) => { + const [rects, { height: navbarHeight }] = res; + this.offsetTopList = rects.map((item) => item.top - navbarHeight); + this.setData({ navbarHeight, scrollTop: this.offsetTopList[sideBarIndex] }); + }); + }, + + onSideBarChange(e) { + const { value } = e.detail; + + this.setData({ sideBarIndex: value, scrollTop: this.offsetTopList[value] }); + }, + onScroll(e) { + const { scrollTop } = e.detail; + const threshold = 50; // 下一个标题与顶部的距离 + const direction = scrollTop > this.lastScrollTop ? 'down' : 'up'; + this.lastScrollTop = scrollTop; + + // 动态调整阈值:向下滚动时增大阈值,向上时减小 + const dynamicThreshold = direction === 'down' ? threshold * 1.5 : threshold * 0.8; + + // 使用二分查找优化查找效率 + const findNearestIndex = (arr, target) => { + let left = 0; + let right = arr.length - 1; + let result = 0; + while (left <= right) { + const mid = Math.floor((left + right) / 2); + if (arr[mid] <= target + dynamicThreshold) { + result = mid; + left = mid + 1; + } else { + right = mid - 1; + } + } + return result; + }; + + const newIndex = findNearestIndex(this.offsetTopList, scrollTop); + + if (newIndex !== this.data.sideBarIndex) { + this.setData({ sideBarIndex: newIndex }); + } + }, +}); \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.json new file mode 100644 index 000000000..e99fc128b --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.json @@ -0,0 +1,9 @@ +{ + "navigationBarBackgroundColor": "#fff", + "usingComponents": { + "t-side-bar": "tdesign-miniprogram/side-bar/side-bar", + "t-side-bar-item": "tdesign-miniprogram/side-bar-item/side-bar-item", + "t-grid": "tdesign-miniprogram/grid/grid", + "t-grid-item": "tdesign-miniprogram/grid-item/grid-item" + } +} \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.wxml new file mode 100644 index 000000000..a6d78e4df --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/side-bar/demo/index.wxml @@ -0,0 +1,27 @@ + + + + + + + {{item.title || item.label}} + + + + + + + + + \ No newline at end of file diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.js new file mode 100644 index 000000000..f9a778282 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.js @@ -0,0 +1,10 @@ +Component({ + lifetimes: { + ready() { + const $toast = this.selectComponent('#t-toast'); + if ($toast) { + $toast.show({ message: '轻提示文字内容', duration: 0 }); + } + }, + }, +}); diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.json b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.json new file mode 100644 index 000000000..1237a617a --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "t-toast": "tdesign-miniprogram/toast/toast" + } +} diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.wxml b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.wxml new file mode 100644 index 000000000..d58458f9f --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/custom/toast/demo/index.wxml @@ -0,0 +1 @@ + diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/globalSetup.cjs b/packages/mcp-server/scripts/dom/snapshots/miniprogram/globalSetup.cjs new file mode 100644 index 000000000..281116891 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/globalSetup.cjs @@ -0,0 +1,3 @@ +module.exports = async () => { + process.env.TZ = 'Asia/Shanghai'; +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/index.test.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/index.test.js new file mode 100644 index 000000000..ac52b7c7b --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/index.test.js @@ -0,0 +1,71 @@ +import fs from "fs"; +import path from "path"; + +import simulate from "miniprogram-simulate"; + +const DEMOS_DIR = path.resolve(__dirname, "../../../../docs/tdesign-miniprogram"); +const CHAT_DEMOS_DIR = path.resolve(__dirname, "../../../../docs/tdesign-miniprogram-chat"); +const CUSTOM_DIR = path.resolve(__dirname, "custom"); + +const EXCLUDE_COMPS = ["watermark", "config-provider"]; + +// 获取所有拥有 demo 目录的组件(合并默认目录、chat 目录与 custom 目录) +const defaultComps = fs.readdirSync(DEMOS_DIR).filter((name) => { + const demoDir = path.join(DEMOS_DIR, name, "demo"); + return fs.existsSync(demoDir) && fs.statSync(path.join(DEMOS_DIR, name)).isDirectory(); +}); +const chatComps = fs.existsSync(CHAT_DEMOS_DIR) + ? fs.readdirSync(CHAT_DEMOS_DIR).filter((name) => { + const demoDir = path.join(CHAT_DEMOS_DIR, name, "demo"); + return fs.existsSync(demoDir) && fs.statSync(path.join(CHAT_DEMOS_DIR, name)).isDirectory(); + }) + : []; +const customComps = fs.existsSync(CUSTOM_DIR) + ? fs.readdirSync(CUSTOM_DIR).filter((name) => { + const demoDir = path.join(CUSTOM_DIR, name, "demo"); + return fs.existsSync(demoDir) && fs.statSync(path.join(CUSTOM_DIR, name)).isDirectory(); + }) + : []; +const compNames = [...new Set([...defaultComps, ...chatComps, ...customComps])].filter( + (name) => !EXCLUDE_COMPS.includes(name) +); + +// 静默 exparser 内部 safeCallback 输出的 RangeError(组件 relations 处理中的栈溢出,不影响快照生成) +// exparser 的 safeCallback 捕获异常后调用 console.error(e.stack),传入的是栈信息字符串 +const originalConsoleError = console.error; +beforeAll(() => { + console.error = (...args) => { + if (typeof args[0] === "string" && args[0].includes("Maximum call stack size exceeded")) return; + originalConsoleError.apply(console, args); + }; +}); +afterAll(() => { + console.error = originalConsoleError; +}); + +compNames.forEach((compName) => { + describe(`${compName}`, () => { + afterAll(() => jest.resetModules()); + + it(`demo snapshot`, async () => { + const customDemoDir = path.join(CUSTOM_DIR, compName, "demo"); + const chatDemoDir = path.join(CHAT_DEMOS_DIR, compName, "demo"); + let baseDir; + if (fs.existsSync(customDemoDir)) { + baseDir = CUSTOM_DIR; + } else if (fs.existsSync(chatDemoDir)) { + baseDir = CHAT_DEMOS_DIR; + } else { + baseDir = DEMOS_DIR; + } + const demoPath = path.join(baseDir, compName, "demo", "index"); + const id = load(demoPath, compName); + const container = simulate.render(id); + const wrapper = document.createElement("parent-wrapper"); + container.attach(wrapper); + + expect(container.toJSON()).toMatchSnapshot(); + container.detach(); + }); + }); +}); diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/jest.config.cjs b/packages/mcp-server/scripts/dom/snapshots/miniprogram/jest.config.cjs new file mode 100644 index 000000000..1684e1339 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/jest.config.cjs @@ -0,0 +1,31 @@ +const path = require('path'); + +const PACKAGES_ROOT = path.resolve(__dirname, '../../../../../../../tdesign-miniprogram/packages'); +const COMPONENTS_ROOT = path.join(PACKAGES_ROOT, 'components'); +const PRO_COMPONENTS_CHAT_ROOT = path.join(PACKAGES_ROOT, 'pro-components/chat'); + +module.exports = { + rootDir: __dirname, + verbose: true, + testEnvironment: 'jsdom', + testURL: 'http://localhost/', + moduleFileExtensions: ['js', 'ts'], + testMatch: ['/**/*.test.{js,ts}'], + transform: { + '\\.[jt]sx?$': ['babel-jest', { configFile: path.resolve(__dirname, './babel.config.cjs') }], + }, + transformIgnorePatterns: [], + moduleNameMapper: { + '^tdesign-miniprogram/(chat-.*)': path.join(PRO_COMPONENTS_CHAT_ROOT, '$1'), + '^tdesign-miniprogram/(attachments.*)': path.join(PRO_COMPONENTS_CHAT_ROOT, '$1'), + '^tdesign-miniprogram/(.*)': path.join(COMPONENTS_ROOT, '$1'), + '^tdesign-miniprogram$': path.join(COMPONENTS_ROOT, 'index'), + '^@behaviors/(.*)': path.resolve(__dirname, '../../../../../../../tdesign-miniprogram/packages/tdesign-miniprogram/example/behaviors/$1'), + }, + setupFiles: ['/setup.js'], + globals: { + CONFIG_PREFIX: 't', + }, + globalSetup: '/globalSetup.cjs', + snapshotSerializers: ['miniprogram-simulate/jest-snapshot-plugin'], +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/miniprogram/setup.js b/packages/mcp-server/scripts/dom/snapshots/miniprogram/setup.js new file mode 100644 index 000000000..475fa2443 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/miniprogram/setup.js @@ -0,0 +1,149 @@ +import simulate from "miniprogram-simulate"; +import similateApi from "miniprogram-simulate/src/api"; +import { mockAsyncAndPromise, mockSync } from "miniprogram-simulate/src/api/utils"; +import simulateCompile from "miniprogram-simulate/src/compile"; +import simulateUtils from "miniprogram-simulate/src/utils"; +import Path from "path"; + +// 防止组件 JS 中的 Promise rejection / 异步异常导致进程崩溃 +process.on("unhandledRejection", () => {}); +process.on("uncaughtException", () => {}); + +const PACKAGES_ROOT = Path.resolve(__dirname, "../../../../../../../tdesign-miniprogram/packages"); +const COMPONENTS_ROOT = Path.join(PACKAGES_ROOT, "components"); +const PRO_COMPONENTS_ROOT = Path.join(PACKAGES_ROOT, "pro-components/chat"); +const DEMOS_DIR = Path.resolve(__dirname, "../../../../docs/tdesign-miniprogram"); +const CHAT_DEMOS_DIR = Path.resolve(__dirname, "../../../../docs/tdesign-miniprogram-chat"); +const CUSTOM_DIR = Path.resolve(__dirname, "custom"); + +/** chat 系列组件(含 attachments)位于 pro-components/chat/ 下 */ +const isChatComponent = (name) => name.startsWith("chat-") || name === "attachments"; + +/** + * 将 npm 包路径 (tdesign-miniprogram/xxx) 解析为组件源码的绝对路径 + * chat 系列组件从 PRO_COMPONENTS_ROOT 解析,其余从 COMPONENTS_ROOT 解析 + */ +function resolveComponentPath(npmPath) { + const compPath = npmPath.replace("tdesign-miniprogram/", ""); + const compName = compPath.split("/")[0]; + const root = isChatComponent(compName) ? PRO_COMPONENTS_ROOT : COMPONENTS_ROOT; + return Path.resolve(root, compPath); +} + +/** + * 拦截 miniprogram-simulate 的 readJson,将 usingComponents 中的 + * npm 包路径 (tdesign-miniprogram/xxx) 替换为相对于组件所在目录的相对路径 + */ +const originalReadJson = simulateUtils.readJson; +simulateUtils.readJson = function (filePath) { + const json = originalReadJson.call(this, filePath); + if (json && json.usingComponents) { + const componentDir = Path.dirname(filePath); + const usingComponents = json.usingComponents; + for (const [key, value] of Object.entries(usingComponents)) { + if (typeof value === "string" && value.startsWith("tdesign-miniprogram/")) { + const absolutePath = resolveComponentPath(value); + usingComponents[key] = Path.relative(componentDir, absolutePath); + } + } + } + return json; +}; + +/** + * 拦截 simulateCompile.getWxml: + * - demo wxml 结构简单,使用 simulate 纯 JS 编译器(直接读取文件内容) + * - 组件源码可能含 WXS\template 等复杂语法糖,simulate 编译器会报 "invalid template",改用 official 编译器 + */ +const originalGetWxml = simulateCompile.getWxml; +simulateCompile.getWxml = function (componentPath, config) { + if ( + componentPath.startsWith(DEMOS_DIR) || + componentPath.startsWith(CUSTOM_DIR) || + componentPath.startsWith(CHAT_DEMOS_DIR) + ) { + return simulateUtils.readFile(`${componentPath}.wxml`); + } + return originalGetWxml.call(this, componentPath, config); +}; + +global.getApp = () => null; +global.Page = (options) => Component(options); +global.getCurrentPages = jest.fn(() => { + return [ + { + pageScroller: [jest.fn()] + } + ]; +}); +/** + * 加载小程序组件 + * @param {string} componentPath - 组件路径(不含扩展名) + * @param {string} [tagName] - 标签名 + */ +global.load = (componentPath, tagName) => { + const rootPath = isChatComponent(tagName) ? PACKAGES_ROOT : COMPONENTS_ROOT; + return simulate.load(componentPath, tagName, { + compiler: "official", + less: false, + rootPath, + compilerOptions: { + maxBuffer: 1024 * 1024 * 64 + } + }); +}; + +// 测试环境配置:iPhone 6/7/8 机型 +const systemInfo = { + SDKVersion: "2.19.1", + batteryLevel: 100, + benchmarkLevel: 1, + brand: "devtools", + fontSizeSetting: 16, + language: "zh_CN", + model: "iPhone 6/7/8", + pixelRatio: 2, + platform: "devtools", + screenHeight: 667, + screenTop: 0, + screenWidth: 375, + statusBarHeight: 20, + system: "iOS 10.0.1", + theme: "light", + version: "8.0.5", + windowHeight: 667, + windowWidth: 375 +}; + +const menuButtonBoundingClientRect = { + bottom: 56, + height: 32, + left: 281, + right: 368, + top: 24, + width: 87 +}; + +const appBaseInfo = { + SDKVersion: "2.19.1", + version: "8.0.5" +}; + +const windowInfo = { + pixelRatio: 2, + screenWidth: 375, + screenHeight: 667, + windowWidth: 375, + windowHeight: 667, + statusBarHeight: 20, + screenTop: 0 +}; + +global.wx = { + ...similateApi, + getSystemInfo: mockAsyncAndPromise("getSystemInfo", systemInfo), + getSystemInfoSync: mockSync(systemInfo), + getMenuButtonBoundingClientRect: mockSync(menuButtonBoundingClientRect), + getAppBaseInfo: mockSync(appBaseInfo), + getWindowInfo: mockSync(windowInfo) +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/action-sheet.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/action-sheet.tsx new file mode 100644 index 000000000..0866ee282 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/action-sheet.tsx @@ -0,0 +1,14 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import ActionSheetDemo from "@tdesign-mcp-server/docs-mobile-react/action-sheet/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + const actionSheet = document.querySelector(".t-action-sheet"); + expect(actionSheet).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/dialog.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/dialog.tsx new file mode 100644 index 000000000..ed32aa791 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/dialog.tsx @@ -0,0 +1,14 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import DialogDemo from "@tdesign-mcp-server/docs-mobile-react/dialog/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + const dialog = document.querySelector(".t-dialog"); + expect(dialog).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/drawer.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/drawer.tsx new file mode 100644 index 000000000..f559cd23a --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/drawer.tsx @@ -0,0 +1,14 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import DrawerDemo from "@tdesign-mcp-server/docs-mobile-react/drawer/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + const drawer = document.querySelector(".t-drawer"); + expect(drawer).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/guide.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/guide.tsx new file mode 100644 index 000000000..1d3c19132 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/guide.tsx @@ -0,0 +1,21 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import GuideDemo from "@tdesign-mcp-server/docs-mobile-react/guide/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + await new Promise((resolve) => setTimeout(resolve, 1000)); + + const guideSelectors = [".t-guide__overlay", ".t-guide__highlight", ".t-guide__wrapper", ".t-guide__popup"]; + const targetDomWrapper = document.createElement("div"); + const guideEls = Array.from(document.querySelectorAll(guideSelectors.join(","))); + guideEls.forEach((guide) => { + targetDomWrapper.innerHTML += guide.outerHTML; + }); + expect(targetDomWrapper).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/indexes.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/indexes.tsx new file mode 100644 index 000000000..326c9b871 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/indexes.tsx @@ -0,0 +1,35 @@ +import { Fragment } from "react"; +import { render } from "@testing-library/react"; +import { expect } from "vitest"; +import { Indexes, IndexesAnchor, CellGroup, Cell } from "tdesign-mobile-react"; + +const list = [ + { index: "A", children: ["阿坝", "阿拉善", "安康"] }, + { index: "B", children: ["北京", "白银", "保定"] }, + { index: "C", children: ["重庆", "成都", "长沙"] }, +]; + +function IndexesDemo() { + const indexList = list.map((item) => item.index); + return ( + + {list.map((item) => ( + + + + {item.children.map((val, i) => ( + + ))} + + + ))} + + ); +} + +export default async () => { + render(); + const indexes = document.querySelector(".t-indexes"); + expect(indexes).toMatchSnapshot(); + +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/message.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/message.tsx new file mode 100644 index 000000000..e092cdcd1 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/message.tsx @@ -0,0 +1,14 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import MessageDemo from "@tdesign-mcp-server/docs-mobile-react/message/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + const message = document.querySelector(".t-message"); + expect(message).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/overlay.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/overlay.tsx new file mode 100644 index 000000000..284b53ad4 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/overlay.tsx @@ -0,0 +1,14 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import OverlayDemo from "@tdesign-mcp-server/docs-mobile-react/overlay/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + const overlay = document.querySelector(".t-overlay"); + expect(overlay).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/popover.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/popover.tsx new file mode 100644 index 000000000..46a77e53f --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/popover.tsx @@ -0,0 +1,23 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; +import { Popover, Button } from "tdesign-mobile-react"; + +function PopoverDemo() { + return ( + + 顶部中 + + } + /> + ); +} + +export default async () => { + const { container } = render(); + expect(container).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/popup.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/popup.tsx new file mode 100644 index 000000000..808541c96 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/popup.tsx @@ -0,0 +1,23 @@ +import { render } from "@testing-library/react"; +import { expect } from "vitest"; +import { Popup } from "tdesign-mobile-react"; + +function PopupDemo() { + return ( + +
弹出层内容
+
+ ); +} + +export default async () => { + render(); + + const popupSelectors = [".t-overlay", ".t-popup"]; + const targetDomWrapper = document.createElement("div"); + const popupEls = Array.from(document.querySelectorAll(popupSelectors.join(","))); + popupEls.forEach((el) => { + targetDomWrapper.innerHTML += el.outerHTML; + }); + expect(targetDomWrapper).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/custom/toast.tsx b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/toast.tsx new file mode 100644 index 000000000..25424cba2 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/custom/toast.tsx @@ -0,0 +1,14 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import ToastDemo from "@tdesign-mcp-server/docs-mobile-react/toast/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + const toast = document.querySelector(".t-toast"); + expect(toast).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/setup.test.ts b/packages/mcp-server/scripts/dom/snapshots/mobile/setup.test.ts new file mode 100644 index 000000000..356516fd2 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/setup.test.ts @@ -0,0 +1,69 @@ +import { readdirSync } from "fs"; +import path from "path"; + +import { cleanup, render } from "@testing-library/react"; +import React from "react"; +import { expect, test, vi } from "vitest"; + +import { getDirname } from "@tdesign-mcp-server/common"; +import { getDocsOutputDir } from "../../../utils/path"; + +// jsdom 不支持 canvas,mock getContext 避免报错 +HTMLCanvasElement.prototype.getContext = vi.fn(() => null) as any; + +const __dirname = getDirname(import.meta.url); +const CUSTOM_TEST_DIR = path.join(__dirname, "./custom"); + +const EXCLUDE_COMPS = ["config-provider", "watermark"]; + +console.log(`--------(mobile)--------`); + +function getCompsWithCustomTest() { + const testFiles = readdirSync(CUSTOM_TEST_DIR).filter((file) => file.endsWith(".tsx")); + const compNames = testFiles.map((file) => file.replace(".tsx", "")); + return compNames; +} + + +const compsWithCustomTest = getCompsWithCustomTest(); +for (const compName of compsWithCustomTest) { + const demoPath = path.join(CUSTOM_TEST_DIR, `${compName}.tsx`); + test( + `Custom Test [${compName}]`, + async () => { + const module = await import(demoPath); + await module.default(); + cleanup(); + }, + 30000 + ); +} + +// 使用默认测试的组件 +const mobileReactDocs = await getDocsOutputDir("mobile-react"); +const compDirs = readdirSync(mobileReactDocs).filter( + (file) => !file.startsWith(".") && !file.endsWith(".json") && !EXCLUDE_COMPS.includes(file) +); +const compsWithDefaultTest = compDirs.filter((compName) => { + return !compsWithCustomTest.includes(compName); +}); + +for (const compName of compsWithDefaultTest) { + const demoPath = path.join(mobileReactDocs, compName, "Demo.tsx"); + test(`Default Test [${compName}]`, async () => { + const module = await import(demoPath); + const Component = module?.default; + if (!Component) { + console.error(`Component not found in ${demoPath}`); + return; + } + defaultTest(Component); + }); +} + +function defaultTest(Component: React.ElementType) { + // @ts-ignore + const { container } = render(React.createElement(Component)); + expect(container).toMatchSnapshot(); + cleanup(); +} diff --git a/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/attachments.tsx b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/attachments.tsx new file mode 100644 index 000000000..21461a1f1 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/attachments.tsx @@ -0,0 +1,16 @@ +import "tdesign-web-components/lib/attachments"; + +import { runWebComponentSnap } from "../../../utils/runWebComponentSnap"; + +export default async () => { + const el = document.createElement("t-attachments") as any; + + el.items = [ + { name: "excel-file.xlsx", size: 111111 }, + { name: "image-file.png", size: 333333, url: "https://tdesign.gtimg.com/site/avatar.jpg" }, + { name: "pdf-file.pdf", size: 444444 } + ]; + el.overflow = "wrap"; + + await runWebComponentSnap(el); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-actionbar.tsx b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-actionbar.tsx new file mode 100644 index 000000000..3a8796176 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-actionbar.tsx @@ -0,0 +1,17 @@ +import "tdesign-web-components/lib/chat-action"; + +import { runWebComponentSnap } from "../../../utils/runWebComponentSnap"; + +export default async () => { + const el = document.createElement("t-chat-action") as any; + + // 设置操作项 + el.operations = [ + { name: "copy", icon: "file-copy" }, + { name: "redo", icon: "refresh" }, + { name: "like", icon: "thumb-up" }, + { name: "dislike", icon: "thumb-down" } + ]; + + await runWebComponentSnap(el); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-loading.tsx b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-loading.tsx new file mode 100644 index 000000000..6583d9f9f --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-loading.tsx @@ -0,0 +1,12 @@ +import "tdesign-web-components/lib/chat-loading"; + +import { runWebComponentSnap } from "../../../utils/runWebComponentSnap"; + +export default async () => { + const el = document.createElement("t-chat-loading") as any; + + el.text = "AI 正在思考中..."; + el.animation = "moving"; + + await runWebComponentSnap(el); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-markdown.tsx b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-markdown.tsx new file mode 100644 index 000000000..15089a19b --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-markdown.tsx @@ -0,0 +1,22 @@ +import "tdesign-web-components/lib/chat-message/content/markdown-content"; + +import { runWebComponentSnap } from "../../../utils/runWebComponentSnap"; + +export default async () => { + const el = document.createElement("t-chat-md-content") as any; + + // 设置 markdown 内容 + el.text = `# 标题 + +这是一段 **Markdown** 内容。 + +- 列表项 1 +- 列表项 2 + +\`\`\`javascript +console.log('Hello World'); +\`\`\` +`; + + await runWebComponentSnap(el, { delay: 500 }); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-message.tsx b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-message.tsx new file mode 100644 index 000000000..b96250935 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-message.tsx @@ -0,0 +1,18 @@ +import "tdesign-web-components/lib/chat-message"; + +import { runWebComponentSnap } from "../../../utils/runWebComponentSnap"; + +export default async () => { + const el = document.createElement("t-chat-item") as any; + + el.role = "assistant"; + el.content = [ + { + type: "text", + data: "这是一条 AI 回复消息,测试文本内容。" + } + ]; + el.status = "complete"; + + await runWebComponentSnap(el); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-sender.tsx b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-sender.tsx new file mode 100644 index 000000000..c9de83e2c --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-sender.tsx @@ -0,0 +1,13 @@ +import "tdesign-web-components/lib/chat-sender"; + +import { runWebComponentSnap } from "../../../utils/runWebComponentSnap"; + +export default async () => { + const el = document.createElement("t-chat-sender") as any; + + // 设置属性 + el.placeholder = "请输入消息..."; + el.value = ""; + + await runWebComponentSnap(el); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-thinking.tsx b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-thinking.tsx new file mode 100644 index 000000000..af5d07b2d --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web-chat/custom/chat-thinking.tsx @@ -0,0 +1,16 @@ +import "tdesign-web-components/lib/chat-message/content/thinking-content"; +import "tdesign-web-components/lib/collapse"; + +import { runWebComponentSnap } from "../../../utils/runWebComponentSnap"; + +export default async () => { + const el = document.createElement("t-chat-thinking-content") as any; + + el.text = "这是 AI 的思考内容,正在分析问题..."; + el.title = "思考过程"; + el.status = "complete"; + el.collapsed = false; + el.layout = "block"; + + await runWebComponentSnap(el, { delay: 500 }); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web-chat/setup.test.ts b/packages/mcp-server/scripts/dom/snapshots/web-chat/setup.test.ts new file mode 100644 index 000000000..5d370e413 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web-chat/setup.test.ts @@ -0,0 +1,41 @@ +import { readdirSync } from "fs"; +import path from "path"; + +import { cleanup } from "@testing-library/react"; +import { test } from "vitest"; + +import { getDirname } from "@tdesign-mcp-server/common"; + +const __dirname = getDirname(import.meta.url); +const CUSTOM_TEST_DIR = path.join(__dirname, "./custom"); + +// 排除不需要测试的组件 +const EXCLUDE_COMPS = ["chatbot", "chat-engine", "chat-markdown"]; + +console.log(`--------(web-chat)--------`); + +function getCompsWithCustomTest() { + try { + const testFiles = readdirSync(CUSTOM_TEST_DIR).filter((file) => file.endsWith(".tsx")); + const compNames = testFiles.map((file) => file.replace(".tsx", "")); + return compNames; + } catch { + return []; + } +} + +const compsWithCustomTest = getCompsWithCustomTest(); +const filtered = compsWithCustomTest.filter((compName) => !EXCLUDE_COMPS.includes(compName)); + +for (const compName of filtered) { + const demoPath = path.join(CUSTOM_TEST_DIR, `${compName}.tsx`); + test( + `Custom Test [${compName}]`, + async () => { + const module = await import(demoPath); + await module.default(); + cleanup(); + }, + 30000 + ); +} diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/date-picker.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/date-picker.tsx new file mode 100644 index 000000000..54ff4a781 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/date-picker.tsx @@ -0,0 +1,9 @@ +import { render } from "@testing-library/react"; +import { expect } from "vitest"; + +import { DatePickerPanel } from "tdesign-react"; + +export default async () => { + const { container } = render(); + expect(container).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/dialog.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/dialog.tsx new file mode 100644 index 000000000..d39be86f6 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/dialog.tsx @@ -0,0 +1,14 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import DialogDemo from "@tdesign-mcp-server/docs-react/dialog/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + const dialog = document.querySelector(".t-dialog"); + expect(dialog).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/drawer.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/drawer.tsx new file mode 100644 index 000000000..1b52ba92d --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/drawer.tsx @@ -0,0 +1,14 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import DrawerDemo from "@tdesign-mcp-server/docs-react/drawer/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + const drawer = document.querySelector(".t-drawer"); + expect(drawer).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/dropdown.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/dropdown.tsx new file mode 100644 index 000000000..ea4ec5a86 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/dropdown.tsx @@ -0,0 +1,44 @@ +import { render, waitFor } from "@testing-library/react"; +import { expect } from "vitest"; + +import { ChevronDownIcon } from "tdesign-icons-react"; +import { Button, Dropdown } from "tdesign-react"; + +const options = [ + { content: "操作一", value: 1 }, + { content: "操作二", value: 2 }, + { content: "操作三", value: 3 }, + { content: "操作四", value: 4 } +]; + +function DropdownDemo() { + return ( + + + + ); +} + +export default async () => { + render(); + + await waitFor(() => { + expect(document.querySelector(".t-dropdown")).toBeTruthy(); + }); + + const dropdownSelectors = [".t-dropdown"]; + const targetDomWrapper = document.createElement("div"); + const dropdownEls = Array.from(document.querySelectorAll(dropdownSelectors.join(","))); + dropdownEls.forEach((el) => { + targetDomWrapper.innerHTML += el.outerHTML; + }); + expect(targetDomWrapper).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/guide.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/guide.tsx new file mode 100644 index 000000000..73f3c6350 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/guide.tsx @@ -0,0 +1,22 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import GuideDemo from "@tdesign-mcp-server/docs-react/guide/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + + await new Promise((resolve) => setTimeout(resolve, 1000)); + + const guideSelectors = [".t-guide__overlay", ".t-guide__highlight", ".t-guide__reference", ".t-guide__popup"]; + const targetDomWrapper = document.createElement("div"); + const guideEls = Array.from(document.querySelectorAll(guideSelectors.join(","))); + guideEls.forEach((guide) => { + targetDomWrapper.innerHTML += guide.outerHTML; + }); + expect(targetDomWrapper).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/icon.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/icon.tsx new file mode 100644 index 000000000..a023b81f2 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/icon.tsx @@ -0,0 +1,9 @@ +import { render } from "@testing-library/react"; +import { expect } from "vitest"; + +import { AddIcon } from "tdesign-icons-react"; + +export default async () => { + const { container: basicContainer } = render(); + expect(basicContainer).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/input.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/input.tsx new file mode 100644 index 000000000..e4f05054e --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/input.tsx @@ -0,0 +1,32 @@ +import { render } from "@testing-library/react"; +import { expect } from "vitest"; + +import { LockOnIcon } from "tdesign-icons-react"; +import { Input } from "tdesign-react"; + +export default async () => { + const { container } = render( + <> +
+ 基础输入框 + +
+
+ 密码输入框 + } + type="password" + /> +
+
+ 错误状态输入框 + +
+ + ); + + expect(container).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/layout.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/layout.tsx new file mode 100644 index 000000000..eab3b93b0 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/layout.tsx @@ -0,0 +1,23 @@ +import { render } from "@testing-library/react"; +import { expect } from "vitest"; + +import { Layout } from "tdesign-react"; + +const { Header, Content, Footer, Aside } = Layout; + +export default async () => { + const { container } = render( + +
Header
+ + + + Content +
Footer
+
+
+
+ ); + + expect(container).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/popconfirm.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/popconfirm.tsx new file mode 100644 index 000000000..a53c82cb5 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/popconfirm.tsx @@ -0,0 +1,14 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import PopconfirmDemo from "@tdesign-mcp-server/docs-react/popconfirm/Demo"; + +export default async () => { + const { container } = render(); + const button = container.querySelector(".t-button"); + if (button) { + fireEvent.click(button); + } + const popconfirm = document.querySelector(".t-popconfirm"); + expect(popconfirm).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/popup.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/popup.tsx new file mode 100644 index 000000000..afa4fc099 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/popup.tsx @@ -0,0 +1,33 @@ +import { render, waitFor } from "@testing-library/react"; +import { expect } from "vitest"; + +import { Button, Popup } from "tdesign-react"; + +function PopupDemo() { + return ( + + + + ); +} + +export default async () => { + render(); + + // 等待 Popup 渲染完成(Portal 组件是异步挂载的) + await waitFor(() => { + expect(document.querySelector(".t-popup")).toBeTruthy(); + }); + + const popupSelectors = [".t-popup"]; + const targetDomWrapper = document.createElement("div"); + const popupEls = Array.from(document.querySelectorAll(popupSelectors.join(","))); + popupEls.forEach((el) => { + targetDomWrapper.innerHTML += el.outerHTML; + }); + expect(targetDomWrapper).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/select.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/select.tsx new file mode 100644 index 000000000..4d602e8ec --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/select.tsx @@ -0,0 +1,20 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import SelectDemo from "@tdesign-mcp-server/docs-react/select/Demo"; + +export default async () => { + const { container } = render(); + const input = container.querySelector("input"); + if (input) { + fireEvent.click(input); + } + + const selectSelectors = [".t-select__wrap", ".t-select__dropdown"]; + const targetDomWrapper = document.createElement("div"); + const selectEls = Array.from(document.querySelectorAll(selectSelectors.join(","))); + selectEls.forEach((guide) => { + targetDomWrapper.innerHTML += guide.outerHTML; + }); + expect(targetDomWrapper).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/tooltip.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/tooltip.tsx new file mode 100644 index 000000000..5d11b3faa --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/tooltip.tsx @@ -0,0 +1,32 @@ +import { render, waitFor } from "@testing-library/react"; +import { expect } from "vitest"; + +import { Button, Tooltip } from "tdesign-react"; + +function TooltipDemo() { + return ( + + + + ); +} + +export default async () => { + render(); + + await waitFor(() => { + expect(document.querySelector(".t-popup")).toBeTruthy(); + }); + + const tooltipSelectors = [".t-popup", ".t-tooltip"]; + const targetDomWrapper = document.createElement("div"); + const tooltipEls = Array.from(document.querySelectorAll(tooltipSelectors.join(","))); + tooltipEls.forEach((el) => { + targetDomWrapper.innerHTML += el.outerHTML; + }); + expect(targetDomWrapper).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/tree.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/tree.tsx new file mode 100644 index 000000000..5c786efd2 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/tree.tsx @@ -0,0 +1,15 @@ +import { fireEvent, render } from "@testing-library/react"; +import { expect } from "vitest"; + +import TreeDemo from "@tdesign-mcp-server/docs-react/tree/Demo"; + +export default async () => { + const { container } = render(); + await new Promise((resolve) => setTimeout(resolve, 0)); + const firstTreeIcon = container.querySelector(".t-tree__icon"); + if (firstTreeIcon) { + fireEvent.click(firstTreeIcon); + await new Promise((resolve) => setTimeout(resolve, 0)); + } + expect(container).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/typography.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/typography.tsx new file mode 100644 index 000000000..df5946c42 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/typography.tsx @@ -0,0 +1,24 @@ +import { render } from "@testing-library/react"; +import { expect } from "vitest"; + +import { Typography } from "tdesign-react"; + +const { Title, Text, Paragraph } = Typography; + +export default async () => { + const { container } = render( + <> + What is TDesign + TDesign is an enterprise-level design system. + + Consistent design language and visual style. + + Comprehensive + + TDesign supports Vue 2, Vue 3, React. + + + ); + + expect(container).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/custom/upload.tsx b/packages/mcp-server/scripts/dom/snapshots/web/custom/upload.tsx new file mode 100644 index 000000000..e34350de2 --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/custom/upload.tsx @@ -0,0 +1,14 @@ +import { render } from "@testing-library/react"; +import { expect } from "vitest"; + +import { Upload } from "tdesign-react"; + +export default async () => { + const { container } = render( + <> + + + ); + + expect(container).toMatchSnapshot(); +}; diff --git a/packages/mcp-server/scripts/dom/snapshots/web/setup.test.ts b/packages/mcp-server/scripts/dom/snapshots/web/setup.test.ts new file mode 100644 index 000000000..bb79253bd --- /dev/null +++ b/packages/mcp-server/scripts/dom/snapshots/web/setup.test.ts @@ -0,0 +1,66 @@ +import { readdirSync } from "fs"; +import path from "path"; + +import { cleanup, render } from "@testing-library/react"; +import React from "react"; +import { expect, test } from "vitest"; + +import { getDirname, isChatComponent } from "@tdesign-mcp-server/common"; +import { getDocsOutputDir } from "../../../utils/path"; + +const __dirname = getDirname(import.meta.url); +const CUSTOM_TEST_DIR = path.join(__dirname, "./custom"); + +const EXCLUDE_COMPS = ["config-provider", "watermark"]; + +console.log(`--------(web)--------`); + +function getCompsWithCustomTest() { + const testFiles = readdirSync(CUSTOM_TEST_DIR).filter((file) => file.endsWith(".tsx")); + const compNames = testFiles.map((file) => file.replace(".tsx", "")); + return compNames; +} + +const compsWithCustomTest = getCompsWithCustomTest(); +for (const compName of compsWithCustomTest) { + const demoPath = path.join(CUSTOM_TEST_DIR, `${compName}.tsx`); + test( + `Custom Test [${compName}]`, + async () => { + const module = await import(demoPath); + await module.default(); + cleanup(); + }, + 30000 + ); +} + +// 使用默认测试的组件 +const reactDocs = await getDocsOutputDir("react"); +const compDirs = readdirSync(reactDocs).filter( + (file) => + !file.startsWith(".") && !file.endsWith(".json") && !EXCLUDE_COMPS.includes(file) && !isChatComponent(file) +); +const compsWithDefaultTest = compDirs.filter((compName) => { + return !compsWithCustomTest.includes(compName); +}); + +for (const compName of compsWithDefaultTest) { + const demoPath = path.join(reactDocs, compName, "Demo.tsx"); + test(`Default Test [${compName}]`, async () => { + const module = await import(demoPath); + const Component = module?.default; + if (!Component) { + console.error(`Component not found in ${demoPath}`); + return; + } + defaultTest(Component); + }); +} + +function defaultTest(Component: React.ElementType) { + // @ts-ignore + const { container } = render(React.createElement(Component)); + expect(container).toMatchSnapshot(); + cleanup(); +} diff --git a/packages/mcp-server/scripts/dom/utils/runWebComponentSnap.ts b/packages/mcp-server/scripts/dom/utils/runWebComponentSnap.ts new file mode 100644 index 000000000..d03c1b71e --- /dev/null +++ b/packages/mcp-server/scripts/dom/utils/runWebComponentSnap.ts @@ -0,0 +1,29 @@ +import { cleanup } from "@testing-library/react"; +import { expect } from "vitest"; + +import { serializeWithShadowDom } from "./serializeShadowDom"; + +export interface RunSnapshotOptions { + delay?: number; +} + +export async function runWebComponentSnap(el: HTMLElement, options: RunSnapshotOptions = {}) { + const { delay } = options; + + const container = document.createElement("div"); + document.body.appendChild(container); + container.appendChild(el); + + if (delay) { + await new Promise((resolve) => setTimeout(resolve, delay)); + } + + const html = serializeWithShadowDom(container, { + ignoreAttributes: [], + includeShadowRootMarker: true + }); + expect(html).toMatchSnapshot(); + + document.body.removeChild(container); + cleanup(); +} diff --git a/packages/mcp-server/scripts/dom/utils/serializeShadowDom.ts b/packages/mcp-server/scripts/dom/utils/serializeShadowDom.ts new file mode 100644 index 000000000..2dc9b7292 --- /dev/null +++ b/packages/mcp-server/scripts/dom/utils/serializeShadowDom.ts @@ -0,0 +1,184 @@ +/** + * 递归序列化 DOM 结构,包含 Shadow DOM 内容 + * 用于在 happy-dom 等环境中获取 Web Components 的完整 DOM 结构 + */ + +export interface SerializeOptions { + /** + * 缩进字符 + * @default " " + */ + indent?: string; + /** + * 是否包含注释标记 shadow-root + * @default true + */ + includeShadowRootMarker?: boolean; + /** + * 忽略的属性列表 + * @default ["class", "style"] + */ + ignoreAttributes?: string[]; + /** + * 是否格式化输出 + * @default true + */ + pretty?: boolean; +} + +const SELF_CLOSING_TAGS = new Set([ + "area", + "base", + "br", + "col", + "embed", + "hr", + "img", + "input", + "link", + "meta", + "param", + "source", + "track", + "wbr" +]); + +const DEFAULT_IGNORE_ATTRIBUTES = ["class", "style"]; + +/** + * 序列化元素的属性 + */ +function serializeAttributes(element: Element, ignoreAttributes: string[]): string { + const attrs = Array.from(element.attributes) + .filter((attr) => !ignoreAttributes.includes(attr.name)) + .map((attr) => { + // 处理布尔属性 + if (attr.value === "" || attr.value === attr.name) { + return attr.name; + } + // 转义属性值中的特殊字符 + const escapedValue = attr.value.replace(/"/g, """); + return `${attr.name}="${escapedValue}"`; + }); + return attrs.length > 0 ? " " + attrs.join(" ") : ""; +} + +/** + * 递归序列化 DOM 节点,包括 Shadow DOM + */ +function serializeNode(node: Node, depth: number, options: Required): string { + const { indent, includeShadowRootMarker, ignoreAttributes, pretty } = options; + const indentStr = pretty ? indent.repeat(depth) : ""; + const newline = pretty ? "\n" : ""; + + // 处理文本节点 + if (node.nodeType === Node.TEXT_NODE) { + const text = node.textContent?.trim(); + if (!text) return ""; + return `${indentStr}${text}${newline}`; + } + + // 处理注释节点 + if (node.nodeType === Node.COMMENT_NODE) { + return `${indentStr}${newline}`; + } + + // 只处理元素节点 + if (node.nodeType !== Node.ELEMENT_NODE) { + return ""; + } + + const element = node as Element; + const tagName = element.tagName.toLowerCase(); + const attrs = serializeAttributes(element, ignoreAttributes); + + // 自闭合标签 + if (SELF_CLOSING_TAGS.has(tagName) && !element.shadowRoot && element.childNodes.length === 0) { + return `${indentStr}<${tagName}${attrs} />${newline}`; + } + + let result = `${indentStr}<${tagName}${attrs}>${newline}`; + + // 处理 Shadow Root + const shadowRoot = element.shadowRoot; + if (shadowRoot) { + if (includeShadowRootMarker) { + result += `${indent.repeat(depth + 1)}#shadow-root (${shadowRoot.mode})${newline}`; + } + // 序列化 Shadow DOM 的子节点 + for (const child of shadowRoot.childNodes) { + result += serializeNode(child, depth + 2, options); + } + } + + // 处理 Light DOM 子节点 + for (const child of element.childNodes) { + result += serializeNode(child, depth + 1, options); + } + + result += `${indentStr}${newline}`; + return result; +} + +/** + * Resolve user options with defaults + */ +function resolveDefaultOptions( + options: SerializeOptions, + overrides?: Partial +): Required { + return { + indent: options.indent ?? " ", + includeShadowRootMarker: options.includeShadowRootMarker ?? overrides?.includeShadowRootMarker ?? true, + ignoreAttributes: options.ignoreAttributes ?? DEFAULT_IGNORE_ATTRIBUTES, + pretty: options.pretty ?? true + }; +} + +/** + * 序列化 DOM 元素,包含 Shadow DOM 内容 + */ +export function serializeWithShadowDom(element: Element, options: SerializeOptions = {}): string { + return serializeNode(element, 0, resolveDefaultOptions(options)).trim(); +} + +/** + * 仅序列化 Shadow DOM 的内部内容(不包括宿主元素) + */ +export function serializeShadowDomContent(element: Element, options: SerializeOptions = {}): string { + const shadowRoot = element.shadowRoot; + if (!shadowRoot) { + return element.innerHTML; + } + + const resolved = resolveDefaultOptions(options, { includeShadowRootMarker: false }); + + let result = ""; + for (const child of shadowRoot.childNodes) { + result += serializeNode(child, 0, resolved); + } + return result.trim(); +} + +/** + * 获取第一个 Web Component 的 Shadow DOM 内容 + * 适用于测试场景,直接从 container 中找到第一个带 shadowRoot 的元素 + */ +export function getFirstShadowContent(container: Element): string { + // 递归查找第一个有 shadowRoot 的元素 + function findShadowHost(el: Element): Element | null { + if (el.shadowRoot) return el; + for (const child of el.children) { + const found = findShadowHost(child); + if (found) return found; + } + return null; + } + + const shadowHost = findShadowHost(container); + if (!shadowHost) { + return container.innerHTML; + } + + return serializeShadowDomContent(shadowHost); +} diff --git a/packages/mcp-server/scripts/icon/index.ts b/packages/mcp-server/scripts/icon/index.ts new file mode 100644 index 000000000..145f67a80 --- /dev/null +++ b/packages/mcp-server/scripts/icon/index.ts @@ -0,0 +1,30 @@ +import { existsSync, promises as fs } from "fs"; +import path from "path"; + +import { TD_DOCS_OUTPUT_DIR, TD_REPOS_ROOT } from "../utils/path"; + +const TD_ICONS_SVG_DIR = path.join(TD_REPOS_ROOT, "tdesign-icons", "svg"); + +const ICON_OUTPUT_PATH = path.join(TD_DOCS_OUTPUT_DIR, "icons.json"); + +(async function main() { + await extractIcons(); +})(); + +async function extractIcons() { + if (!existsSync(TD_ICONS_SVG_DIR)) { + console.warn(`✗ Icon SVG dir not found: ${TD_ICONS_SVG_DIR}`); + return; + } + + const entries = await fs.readdir(TD_ICONS_SVG_DIR, { withFileTypes: true }); + const icons = entries + .filter((entry) => entry.isFile() && entry.name.endsWith(".svg")) + .map((entry) => entry.name.replace(/\.svg$/, "")) + .sort(); + + await fs.mkdir(TD_DOCS_OUTPUT_DIR, { recursive: true }); + await fs.writeFile(ICON_OUTPUT_PATH, JSON.stringify(icons, null, 2), "utf-8"); + + console.log(`✓ Extract ${icons.length} icons successfully`); +} diff --git a/packages/mcp-server/scripts/index.ts b/packages/mcp-server/scripts/index.ts new file mode 100644 index 000000000..fd8bfddb5 --- /dev/null +++ b/packages/mcp-server/scripts/index.ts @@ -0,0 +1,63 @@ +import { exec } from "child_process"; +import { existsSync } from "fs"; +import path from "path"; + +import { promisify } from "util"; +const execPromise = promisify(exec); + +import { addTdPrefix, FRAMEWORKS, getDirname, isChatFramework, isUniapp } from "@tdesign-mcp-server/common"; +import { TD_REPOS_ROOT } from "./utils/path"; + +const __dirname = getDirname(import.meta.url); + +const TENCENT_GITHUB_URL = "https://github.com/Tencent/"; + +// Chat 组件和基本组件在同一个仓库;uniapp 组件源码在 tdesign-miniprogram 仓库中 +const TD_REQUIRED_REPOS = ["common", ...FRAMEWORKS, "icons"].filter( + // @ts-ignore + (repo) => !isChatFramework(repo) && !isUniapp(repo) +); + +(async function main() { + await prepareTDesignRepos(); + await extractDocs(); +})(); + +async function gitClone(repoUrl: string) { + console.log(`Cloning repository from ${repoUrl}...`); + await execPromise(`cd ${TD_REPOS_ROOT} && git clone ${repoUrl} --depth=1`); + console.log("Repository cloned successfully!\n"); +} + +async function gitPull(repoPath: string) { + console.log(`Pulling repository from ${repoPath}...`); + await execPromise(`cd ${repoPath} && git switch develop && git pull`); + console.log("Repository pulled successfully!\n"); +} + +async function prepareTDesignRepos() { + for (const repo of TD_REQUIRED_REPOS) { + const localRepoPath = path.join(TD_REPOS_ROOT, addTdPrefix(repo)); + const repoUrl = `${TENCENT_GITHUB_URL}${addTdPrefix(repo)}`; + if (existsSync(localRepoPath)) { + await gitPull(localRepoPath); + } else { + await gitClone(repoUrl); + } + } +} + +async function executeTypeScript(scriptPath: string) { + const { stdout, stderr } = await execPromise(`tsx ${scriptPath}`); + if (stdout) console.log(stdout); + if (stderr) console.error(stderr); +} + +async function extractDocs() { + await executeTypeScript(path.join(__dirname, "docs/index.ts")); + const { stdout, stderr } = await execPromise("npm run build:snap", { cwd: __dirname }); + if (stdout) console.log(stdout); + if (stderr) console.error(stderr); + await executeTypeScript(path.join(__dirname, "dom/index.ts")); + await executeTypeScript(path.join(__dirname, "icon/index.ts")); +} diff --git a/packages/mcp-server/scripts/package.json b/packages/mcp-server/scripts/package.json new file mode 100644 index 000000000..84f83218e --- /dev/null +++ b/packages/mcp-server/scripts/package.json @@ -0,0 +1,48 @@ +{ + "name": "@tdesign-mcp-server/scripts", + "main": "index.ts", + "type": "module", + "scripts": { + "build:docs+dom": "tsx ./index.ts", + "build:docs": "tsx docs/index.ts", + "build:dom": "npm run build:snap && tsx dom/index.ts", + "build:icon": "tsx icon/index.ts", + "build:snap": "npm run build:snap:web && npm run build:snap:web-chat && npm run build:snap:mobile && npm run build:snap:mini", + "build:snap:web": "vitest run -u dom/snapshots/web", + "build:snap:web-chat": "vitest run -u dom/snapshots/web-chat", + "build:snap:mobile": "vitest run -u dom/snapshots/mobile", + "build:snap:mini": "jest --config dom/snapshots/miniprogram/jest.config.cjs -u" + }, + "dependencies": { + "@tdesign-mcp-server/common": "workspace:*", + "@tdesign-react/chat": "latest", + "lodash-es": "^4.17.21", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "tdesign-icons-react": "latest", + "tdesign-mobile-react": "latest", + "tdesign-react": "latest", + "tdesign-web-components": "latest" + }, + "devDependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-proposal-decorators": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/preset-env": "^7.26.0", + "@babel/preset-typescript": "^7.26.0", + "@testing-library/react": "^16.3.0", + "@types/jest": "^27.0.3", + "@types/node": "^22.14.1", + "@types/react": "^18.3.10", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.5.1", + "babel-jest": "^26.6.3", + "happy-dom": "^20.8.4", + "jest": "^26.6.3", + "jsdom": "^26.1.0", + "miniprogram-simulate": "^1.6.0", + "tsx": "^4.21.0", + "typescript": "^5.8.3", + "vitest": "^3.2.2" + } +} diff --git a/packages/mcp-server/scripts/utils/path.ts b/packages/mcp-server/scripts/utils/path.ts new file mode 100644 index 000000000..6d8788ca8 --- /dev/null +++ b/packages/mcp-server/scripts/utils/path.ts @@ -0,0 +1,117 @@ +import { existsSync, promises as fs } from "fs"; +import path from "path"; + +import { + addTdPrefix, + FRAMEWORKS, + getDirname, + getPlatformByFramework, + isChatComponent, + isChatFramework, + isMiniProgram, + isMonorepo, + isUniapp, + type Framework +} from "@tdesign-mcp-server/common"; + +const __dirname = getDirname(import.meta.url); + +/* 所有 tdesign-* 系列仓库的公共父目录(默认各端框架与当前项目在同一目录) */ +export const TD_REPOS_ROOT = path.join(__dirname, "../../../../../"); + +export const TD_DOCS_OUTPUT_DIR = path.join(__dirname, "../../docs"); + +const joinTdDir = (...args: string[]) => path.join(TD_REPOS_ROOT, ...args); + +export const TD_COMMON_DIR = joinTdDir(addTdPrefix("common")); + +export const TD_COMP_MAP_PATH = `${TD_COMMON_DIR}/js/components.ts`; + +/** 获取 miniprogram 框架的输出目录名:AI 组件使用 miniprogram-chat,基础组件使用 miniprogram */ +export const getMiniprogramOutputDirName = (compName?: string) => + compName && isChatComponent(compName) ? "miniprogram-chat" : "miniprogram"; + +/** 获取 uniapp 框架的输出目录名:AI 组件使用 uniapp-chat,基础组件使用 uniapp */ +export const getUniappOutputDirName = (compName?: string) => + compName && isChatComponent(compName) ? "uniapp-chat" : "uniapp"; + +export const getDocsOutputDir = async (framework: Framework, compName?: string, subDir?: string) => { + // miniprogram 的 AI 组件输出到 tdesign-miniprogram-chat + // uniapp 的 AI 组件输出到 tdesign-uniapp-chat + let dirName: string; + if (isMiniProgram(framework)) { + dirName = addTdPrefix(getMiniprogramOutputDirName(compName)); + } else if (isUniapp(framework)) { + dirName = addTdPrefix(getUniappOutputDirName(compName)); + } else { + dirName = addTdPrefix(framework); + } + const parts = [TD_DOCS_OUTPUT_DIR, dirName]; + if (compName) parts.push(compName); + if (subDir) parts.push(subDir); + const outputDir = path.join(...parts); + if (!existsSync(outputDir)) { + await fs.mkdir(outputDir, { recursive: true }); + } + return outputDir; +}; + +export const getDemoTemplateDir = (framework: Framework) => { + const platform = getPlatformByFramework(framework); + return `${TD_COMMON_DIR}/docs/${platform}/api`; +}; + +const generateDirMap = (subPathCallback: (fw: Framework) => string[]) => { + return Object.fromEntries(FRAMEWORKS.map((fw) => [fw, joinTdDir(addTdPrefix(fw), ...subPathCallback(fw))])); +}; + +const COMPONENT_DIR_PATH = generateDirMap((fw) => (isMonorepo(fw) ? ["packages", "components"] : ["src"])); + +const CHAT_COMPONENT_DIR_PATH = Object.fromEntries( + FRAMEWORKS.map((fw) => { + // chat 框架的 pro-components 在对应的基础框架仓库中 + const repoFramework = isChatFramework(fw) ? fw.replace(/-chat$/, "") : fw; + return [fw, joinTdDir(addTdPrefix(repoFramework), "packages", "pro-components", "chat")]; + }) +); + +/** uniapp 组件路径映射(组件源码在 tdesign-miniprogram 大仓中) */ +const UNIAPP_COMPONENT_DIR = joinTdDir(addTdPrefix("miniprogram"), "packages", "uniapp-components"); +const UNIAPP_CHAT_COMPONENT_DIR = joinTdDir(addTdPrefix("miniprogram"), "packages", "uniapp-pro-components", "chat"); + +/** 组件名 → [基础路径映射, ...子路径段] 的特殊映射(miniprogram 专用) */ +const MINIPROGRAM_COMP_ALIAS: Record, ...subPaths: string[]]> = { + layout: [COMPONENT_DIR_PATH, "col"] +}; + +export const getComponentDir = (framework: Framework, componentName: string) => { + if (isMiniProgram(framework)) { + if (isChatComponent(componentName)) { + return path.join(CHAT_COMPONENT_DIR_PATH[framework], componentName); + } + const alias = MINIPROGRAM_COMP_ALIAS[componentName]; + if (alias) { + const [basePath, ...subPaths] = alias; + return path.join(basePath[framework], ...subPaths); + } + } + if (isUniapp(framework)) { + if (isChatComponent(componentName)) { + return path.join(UNIAPP_CHAT_COMPONENT_DIR, componentName); + } + return path.join(UNIAPP_COMPONENT_DIR, componentName); + } + + if (isChatFramework(framework)) { + return path.join(CHAT_COMPONENT_DIR_PATH[framework], componentName); + } + return path.join(COMPONENT_DIR_PATH[framework], componentName); +}; + +const PACKAGE_JSON_PATH = generateDirMap((fw) => + isMonorepo(fw) ? ["packages", addTdPrefix(fw), "package.json"] : ["package.json"] +); + +export const getPackageJsonPath = (framework: Framework) => { + return path.join(PACKAGE_JSON_PATH[framework]); +}; diff --git a/packages/mcp-server/scripts/vitest.config.ts b/packages/mcp-server/scripts/vitest.config.ts new file mode 100644 index 000000000..09614b6dd --- /dev/null +++ b/packages/mcp-server/scripts/vitest.config.ts @@ -0,0 +1,42 @@ +import path from "path"; +import { fileURLToPath } from "url"; + +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vitest/config"; + +// Vitest 暂时不支持加载外部(common)的 TS 文件,所以重复维护一份 getDirName 写法 +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +export default defineConfig({ + plugins: [react()], + resolve: { + preserveSymlinks: false, + alias: { + "@tdesign-mcp-server/docs-react": path.resolve(__dirname, "../docs/tdesign-react"), + "@tdesign-mcp-server/docs-react-chat": path.resolve(__dirname, "../docs/tdesign-react-chat"), + "@tdesign-mcp-server/docs-mobile-react": path.resolve(__dirname, "../docs/tdesign-mobile-react"), + // 省得 Docs 目录下也安装依赖 + "lodash-es": path.resolve(__dirname, "./node_modules/lodash-es"), + "tdesign-mobile-react": path.resolve(__dirname, "./node_modules/tdesign-mobile-react"), + "tdesign-react": path.resolve(__dirname, "./node_modules/tdesign-react"), + "tdesign-icons-react": path.resolve(__dirname, "./node_modules/tdesign-icons-react"), + "tdesign-web-components": path.resolve(__dirname, "./node_modules/tdesign-web-components"), + "tdesign-web-components/lib": path.resolve(__dirname, "./node_modules/tdesign-web-components/lib") + } + }, + test: { + environment: "happy-dom", + exclude: ["**/dom/snapshots/miniprogram/**", "**/node_modules/**"], + testTimeout: 10000, + server: { + deps: { + // 将 CJS 模块转换为 ESM,解决 named export 问题 + inline: ["tdesign-web-components"] + } + }, + snapshotFormat: { + printBasicPrototype: false, + maxDepth: 10 + } + } +}); diff --git a/packages/mcp-server/server/README.md b/packages/mcp-server/server/README.md new file mode 100644 index 000000000..10f9f2ee1 --- /dev/null +++ b/packages/mcp-server/server/README.md @@ -0,0 +1,29 @@ +# TDesign MCP Server + +## 🎉 功能介绍 + +### 🔨 支持框架 +- 桌面端:`react` / `vue-next` / `vue` +- 移动端:`mobile-react` / `mobile-vue` / `miniprogram` / `uniapp` +- AI 对话:`react-chat` / `vue-next-chat` / `miniprogram-chat` / `uniapp-chat` + +### 🔨 支持工具 +- [x] `search-icons`:搜索可用的图标列表,适用场景:图标查找与名称确认 +- [x] `get-component-docs`:获取组件的文档,适用场景:代码生成和代码转换 +- [x] `get-component-dom`:获取组件的 DOM 结构,适用场景:转换自定义的 CSS 样式 +- [x] `get-component-list`:获取所有可用的组件列表,适用场景:选择合适组件进行组合实现不存在的功能 +- [x] `get-component-changelog`:获取组件的变更日志,适用场景:组件库版本升级 + +## 📦 使用说明 +```json +{ + "mcpServers": { // 或 servers(根据不同的 MCP 客户端决定) + "tdesign-mcp-server": { + "command": "npx", + "args": ["-y", "tdesign-mcp-server@latest"] + } + } +} +``` + +> 💡 如果在 MCP 客户端中连接失败,可以在终端手动输入 `npx tdesign-mcp-server`,并反馈对应的报错信息在 issue。 diff --git a/packages/mcp-server/server/package.json b/packages/mcp-server/server/package.json new file mode 100644 index 000000000..46fcb7257 --- /dev/null +++ b/packages/mcp-server/server/package.json @@ -0,0 +1,47 @@ +{ + "name": "tdesign-mcp-server", + "description": "MCP server for TDesign, providing component knowledge across multiple frameworks.", + "version": "0.2.4", + "main": "index.ts", + "type": "module", + "repository": { + "type": "git", + "url": "https://cnb.cool/tencent/tdesign/tdesign.git", + "directory": "packages/mcp-server/server" + }, + "scripts": { + "build:mcp": "rollup -c --environment NODE_ENV:production", + "build:mcp-http": "rollup -c --environment NODE_ENV:production,BUILD_TARGET:http", + "build:mcp-stdio": "rollup -c --environment NODE_ENV:production,BUILD_TARGET:stdio", + "start:mcp-http": "node dist/http.cjs" + }, + "bin": { + "tdesign-mcp-server": "dist/stdio.js" + }, + "files": [ + "dist", + "README.md" + ], + "dependencies": { + "@modelcontextprotocol/sdk": "^1.23.0", + "@tdesign-mcp-server/common": "workspace:*", + "express": "^5.2.1", + "zod": "^4.1.13" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "^28.0.3", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.1", + "@rollup/plugin-replace": "^6.0.2", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^12.3.0", + "@types/express": "^5.0.6", + "@types/node": "^22.14.1", + "dotenv": "^17.2.1", + "prettier": "^3.5.3", + "rollup": "^4.40.1", + "rollup-plugin-inject-process-env": "^1.3.1", + "tsx": "^4.21.0", + "typescript": "^5.8.3" + } +} diff --git a/packages/mcp-server/server/rollup.config.js b/packages/mcp-server/server/rollup.config.js new file mode 100644 index 000000000..fc4bf9829 --- /dev/null +++ b/packages/mcp-server/server/rollup.config.js @@ -0,0 +1,62 @@ +import commonjs from "@rollup/plugin-commonjs"; +import json from "@rollup/plugin-json"; +import resolve from "@rollup/plugin-node-resolve"; +import replace from "@rollup/plugin-replace"; +import terser from "@rollup/plugin-terser"; +import typescript from "@rollup/plugin-typescript"; + +const plugins = [ + replace({ + preventAssignment: true, + "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV) + }), + resolve({ + extensions: [".ts", ".js", ".json"] + }), + commonjs(), + json(), + typescript({ + include: ["src/**/*.ts", "../common/**/*.ts"], + compilerOptions: { + target: "ES2020", + removeComments: true, + importHelpers: false, + allowSyntheticDefaultImports: true + } + }), + terser() +]; + +const configs = [ + { + input: "./src/stdio.ts", + output: [ + { + dir: "dist", + format: "esm", + entryFileNames: "stdio.js", + banner: "#!/usr/bin/env node", + sourcemap: false, + inlineDynamicImports: true + } + ], + plugins + }, + { + input: "./src/http.ts", + output: [ + { + dir: "dist", + format: "cjs", // for tencent cloud node v18 compatibility + entryFileNames: "http.cjs", + sourcemap: false, + inlineDynamicImports: true + } + ], + plugins + } +]; + +const targetInput = process.env.BUILD_TARGET; + +export default targetInput ? configs.filter((config) => config.input.includes(targetInput)) : configs; diff --git a/packages/mcp-server/server/src/helpers/cache.ts b/packages/mcp-server/server/src/helpers/cache.ts new file mode 100644 index 000000000..4539b66e8 --- /dev/null +++ b/packages/mcp-server/server/src/helpers/cache.ts @@ -0,0 +1,102 @@ +import { promises as fs } from "fs"; +import path from "path"; + +import { DOCS_SOURCE_MODE, getDirname, isLocalMode, isProduction } from "@tdesign-mcp-server/common"; + +const __dirname = getDirname(import.meta.url); + +const DOCS_ONLINE_URL = "https://tdesign.gtimg.com/mcp/"; + +const docsDir = isProduction && isLocalMode ? "../../docs/" : "../../../docs/"; +const DOCS_LOCAL_PATH = path.join(__dirname, docsDir); + +class MemoryCache { + private ttl: number; + private cache: Map = new Map(); + + constructor(ttl: number) { + this.ttl = ttl; + } + + get(url: string) { + const cacheEntry = this.cache.get(url); + if (!cacheEntry) return null; + + const isExpired = Date.now() - cacheEntry.timestamp > this.ttl; + if (isExpired) { + this.cache.delete(url); + return null; + } + return cacheEntry.value; + } + + set(url: string, value: any) { + this.cache.set(url, { value, timestamp: Date.now() }); + } + + clear() { + this.cache.clear(); + } +} + +const cache = new MemoryCache(1 * 60 * 60 * 1000); // 1 小时 + +/** + * 获取文档内容 + * @param path 文件路径,使用斜杠分隔,内部会自动转换为完整的 URL 或本地地址;如果 HTTP 开头,则直接请求对应文件 + */ +export const loadFileContent = async (path: string) => { + const cachedContent = cache.get(path); + if (cachedContent) return cachedContent; + + try { + if (path.startsWith("http")) { + return await fetchRemoteContent(path); + } + + if (DOCS_SOURCE_MODE === "local") { + return await readLocalContent(path); + } + + return await fetchRemoteContent(`${DOCS_ONLINE_URL}${path}`); + } catch (error) { + if (error instanceof Error && error.message) { + return error.message; + } else { + return error; + } + } +}; + +const fetchRemoteContent = async (url: string) => { + const response = await fetch(url); + if (!response.ok) { + if (response.status === 404) { + throw new Error("数据不存在,请更新 TDesign MCP 的版本"); + } + throw new Error(`HTTP error! status: ${response.status}`); + } + + const contentType = response.headers.get("content-type"); + + let content; + if (contentType?.includes("application/json")) { + content = await response.json(); + } else { + content = await response.text(); + } + + cache.set(url, content); + return content; +}; + +const readLocalContent = async (filePath: string) => { + const docsPath = path.join(DOCS_LOCAL_PATH, filePath); + const content = await fs.readFile(docsPath, "utf8"); + let result = content; + if (filePath.endsWith(".json")) { + result = JSON.parse(content); + } + cache.set(filePath, result); + return result; +}; diff --git a/packages/mcp-server/server/src/helpers/component.ts b/packages/mcp-server/server/src/helpers/component.ts new file mode 100644 index 000000000..ad428afb7 --- /dev/null +++ b/packages/mcp-server/server/src/helpers/component.ts @@ -0,0 +1,39 @@ +import { getPlatformByFramework, isChatFramework, type Framework } from "@tdesign-mcp-server/common"; + +import { loadFileContent } from "./cache"; +import { convert2PascalCase } from "./format"; + +export const checkCompsExistence = async (names: string[], fw: Framework) => { + const platform = isChatFramework(fw) ? "chat" : getPlatformByFramework(fw); + const mapUrl = `${platform}-components.json`; + + const mapData = await loadFileContent(mapUrl); + + const aliasMap = mapData?.alias; + const originalMap = mapData?.components; + + // 相当于返回报错信息 + if (!originalMap) return mapData; + + // 存储父组件与原始组件的映射关系 + const exist: Record = {}; + // 存储不存在的组件结果 + const nonExist: Record = {}; + + const findParentComponent = (name: string) => { + const found = Object.entries(originalMap).find(([_, values]) => Array.isArray(values) && values.includes(name)); + if (found) return found[0]; + }; + + for (const name of names) { + const normalizedName = aliasMap?.[name] || convert2PascalCase(name); + const parentComponent = findParentComponent(normalizedName); + if (!parentComponent) { + nonExist[name] = "组件不存在"; + } else { + // "输入的组件名": "父组件名" + exist[name] = parentComponent; + } + } + return { exist, nonExist }; +}; diff --git a/packages/mcp-server/server/src/helpers/format.ts b/packages/mcp-server/server/src/helpers/format.ts new file mode 100644 index 000000000..686856064 --- /dev/null +++ b/packages/mcp-server/server/src/helpers/format.ts @@ -0,0 +1,27 @@ +import { promises as fs } from "fs"; +import path from "path"; + +import { getDirname, isProduction } from "@tdesign-mcp-server/common"; + +const __dirname = getDirname(import.meta.url); + +export async function getPackageVersion() { + const packageJsonPath = isProduction + ? path.join(__dirname, "../package.json") + : path.join(__dirname, "../../package.json"); + const content = await fs.readFile(packageJsonPath, "utf-8"); + const { version } = JSON.parse(content); + return version as string; +} + +export const convert2PascalCase = (name: string) => { + // 已经是帕斯卡命名的情况,直接返回 + if (/^[A-Z][a-zA-Z]*$/.test(name)) { + return name; + } + + return name + .split("-") + .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()) + .join(""); +}; diff --git a/packages/mcp-server/server/src/helpers/index.ts b/packages/mcp-server/server/src/helpers/index.ts new file mode 100644 index 000000000..ab27847b5 --- /dev/null +++ b/packages/mcp-server/server/src/helpers/index.ts @@ -0,0 +1,3 @@ +export * from "./cache"; +export * from "./component"; +export * from "./format"; diff --git a/packages/mcp-server/server/src/http.ts b/packages/mcp-server/server/src/http.ts new file mode 100644 index 000000000..16a88374c --- /dev/null +++ b/packages/mcp-server/server/src/http.ts @@ -0,0 +1,38 @@ +import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js"; +import express from "express"; +import { createMcpServer } from "./init"; + +const PORT = 9000; + +(async function main() { + const { server, version } = await createMcpServer("http"); + + const app = express(); + app.use(express.json()); + + app.post("/mcp", async (req, res) => { + const transport = new StreamableHTTPServerTransport({ + sessionIdGenerator: undefined, + enableJsonResponse: true + }); + + res.on("close", () => { + transport.close(); + }); + + await server.connect(transport); + await transport.handleRequest(req, res, req.body); + }); + + app + .listen(PORT, () => { + console.error( + `\x1b[36m%s\x1b[0m`, + `🚀 TDesign MCP HTTP Server is running (v${version}) at http://localhost:${PORT}/mcp` + ); + }) + .on("error", (error) => { + console.error(error); + process.exit(1); + }); +})(); diff --git a/packages/mcp-server/server/src/init.ts b/packages/mcp-server/server/src/init.ts new file mode 100644 index 000000000..f521bb005 --- /dev/null +++ b/packages/mcp-server/server/src/init.ts @@ -0,0 +1,15 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; +import { getPackageVersion } from "./helpers"; +import registryPrompts from "./prompts"; +import registryTools from "./tools"; + +export const createMcpServer = async (type: "http" | "stdio") => { + const version = await getPackageVersion(); + const server = new McpServer({ + name: `TDesign MCP [${type}]`, + version + }); + registryPrompts(server); + registryTools(server); + return { server, version }; +}; diff --git a/packages/mcp-server/server/src/prompts/assistant.ts b/packages/mcp-server/server/src/prompts/assistant.ts new file mode 100644 index 000000000..8660dccc9 --- /dev/null +++ b/packages/mcp-server/server/src/prompts/assistant.ts @@ -0,0 +1,43 @@ +import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; + +export default function registerPrompt(server: McpServer) { + server.registerPrompt( + "tdesign-assistant", + { + description: "专业的 TDesign 组件库开发助手" + }, + async ({}) => ({ + messages: [ + { + role: "assistant", + content: { + type: "text", + text: ` + # 基本要求 + 1. 涉及 TDesign 的相关询问,生成前必须查询相关组件的文档,代码中禁止创造不存在的属性 + 2. 如果用户没有告知项目框架,主动根据 package.json,判断使用的依赖 + + # 功能 + ## 代码生成 + - 能力:生成基于 TDesign 组件构建的页面 + - 示例 1:当用户询问 “生成一个使用 TDesign 组件的个人名片”,先考虑需要使用的组件(包括且不限于 Card / Avatar 等),再查询对应的文档 + + ## 代码升级 + - 能力:将旧版本的 TDesign 组件升级为最新版本 + - 示例 1:当用户询问 “升级该项目依赖的 TDesign 版本”,列出所有涉及的组件,并查询变更日志 + + ## 代码转换 + - 能力:将其他组件库的逻辑转为 TDesign 的写法 + - 示例 1:当用户询问 “将该页面转换为 TDesign 的写法”,列出所有涉及的组件,并查询对应的文档 + + ### 额外规则 + 1. 如果原有组件中存在某些 TDesign 中没有的 API,先保留原有的写法 + 2. 如果原代码引入了外部的 style 文件,且属于用户自定义用于覆盖组件库的样式,转换时需要将其转换为 TDesign 的样式写法(参考 DOM 结构文档),否则保留原有的写法 + 3. 对于与组件库无关的业务库(例如网络请求等),不需要转换,确保原有的 import 语句和相关逻辑不变 + ` + } + } + ] + }) + ); +} diff --git a/packages/mcp-server/server/src/prompts/index.ts b/packages/mcp-server/server/src/prompts/index.ts new file mode 100644 index 000000000..196ba3c3f --- /dev/null +++ b/packages/mcp-server/server/src/prompts/index.ts @@ -0,0 +1,2 @@ +export { default } from "./assistant"; +export * from "./schema"; diff --git a/packages/mcp-server/server/src/prompts/schema.ts b/packages/mcp-server/server/src/prompts/schema.ts new file mode 100644 index 000000000..f42a1ea59 --- /dev/null +++ b/packages/mcp-server/server/src/prompts/schema.ts @@ -0,0 +1,32 @@ +import { z } from "zod"; +import { FRAMEWORKS } from "@tdesign-mcp-server/common"; + +export const FrameworkSchema = z.object({ + framework: z.enum(FRAMEWORKS).describe("如果用户没有指定,根据 package.json 中的依赖判断") +}); + +export const ComponentsSchema = FrameworkSchema.extend({ + names: z.array(z.string()).describe("可用的组件名称,支持批量查询") +}); + +export const ChangelogsSchema = ComponentsSchema.extend({ + framework: z.enum(FRAMEWORKS).describe("如果用户没有指定,根据 package.json 中的依赖判断;"), + version: z + .string() + .optional() + .describe("返回大于等于该版本号的日志,如果用户没有指定,根据 package.json 中的依赖判断") +}); + +export const IconSchema = z.object({ + keywords: z + .array(z.string()) + .min(1) + .describe("用于匹配图标名的关键词列表(仅支持英文)"), + limit: z + .number() + .int() + .positive() + .optional() + .default(20) + .describe("返回结果数量上限,避免返回数据过多") +}); diff --git a/packages/mcp-server/server/src/stdio.ts b/packages/mcp-server/server/src/stdio.ts new file mode 100644 index 000000000..e8b2d51b5 --- /dev/null +++ b/packages/mcp-server/server/src/stdio.ts @@ -0,0 +1,14 @@ +import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; +import { createMcpServer } from "./init"; + +(async function main() { + try { + const { server, version } = await createMcpServer("stdio"); + const transport = new StdioServerTransport(); + await server.connect(transport); + // https://modelcontextprotocol.io/docs/develop/build-server#quick-examples + console.error(`\x1b[36m%s\x1b[0m`, `🚀 TDesign MCP Stdio Server is running (v${version})`); + } catch (e) { + console.error(e); + } +})(); diff --git a/packages/mcp-server/server/src/tools/changelog.ts b/packages/mcp-server/server/src/tools/changelog.ts new file mode 100644 index 000000000..a9972f1c1 --- /dev/null +++ b/packages/mcp-server/server/src/tools/changelog.ts @@ -0,0 +1,73 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; + +import { + CHANGELOG_RULE_MAP, + cleanText, + compareVersion, + type Framework +} from "@tdesign-mcp-server/common"; + +import { checkCompsExistence, loadFileContent } from "../helpers"; +import { ChangelogsSchema } from "../prompts"; + +export default function getCompChangelog(server: McpServer) { + server.registerTool( + "get-component-changelog", + { + description: "获取 TDesign 组件的变更日志,适用场景:组件库版本升级,支持多个组件同时查询", + inputSchema: ChangelogsSchema.shape + }, + async ({ names, framework, version }) => { + const compChangelog = await loadCompChangelog(names, framework as Framework, version); + + return { + content: [ + { + type: "text", + text: JSON.stringify(compChangelog) + } + ] + }; + } + ); +} + +async function loadCompChangelog(names: string[], framework: Framework, version?: string) { + const changelogUrl = `https://static.tdesign.tencent.com/${framework}/changelog.json`; + const changelog = await loadFileContent(changelogUrl); + + const { exist, nonExist } = await checkCompsExistence(names, framework); + const existResults: Record = {}; + + const normalizeKey = (str: string) => str.replace(/-/g, "").toLowerCase(); + + const normalizedMap: Record = {}; + for (const key of Object.keys(changelog)) { + normalizedMap[normalizeKey(key)] = key; + } + + for (const name of Object.keys(exist)) { + const parentComponent = exist[name]; + const normalizedName = normalizeKey(parentComponent); + const matchedKey = normalizedMap[normalizedName]; + + const logs = changelog[matchedKey] + ?.filter((item: any) => !version || compareVersion(item.version, version) >= 0) + .map((item: any) => { + const cleanedLog: any = {}; + for (const key in item) { + if (Array.isArray(item[key])) { + const typeWithoutEmoji = key.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "").trim(); + cleanedLog[typeWithoutEmoji] = item[key].map((str: string) => cleanText(str, CHANGELOG_RULE_MAP).trim()); + } else if (key === "version") { + cleanedLog[key] = item[key]; + } + } + return cleanedLog; + }); + + existResults[name] = logs.length > 0 ? logs : "日志不存在"; + } + + return { ...nonExist, ...existResults }; +} diff --git a/packages/mcp-server/server/src/tools/docs.ts b/packages/mcp-server/server/src/tools/docs.ts new file mode 100644 index 000000000..eb42bdaee --- /dev/null +++ b/packages/mcp-server/server/src/tools/docs.ts @@ -0,0 +1,71 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; + +import { + addTdPrefix, + getSuffixByFramework, + isMiniProgram, + MINIPROGRAM_DEMO_EXTS, + type Framework +} from "@tdesign-mcp-server/common"; + +import { checkCompsExistence, loadFileContent } from "../helpers"; +import { ComponentsSchema } from "../prompts"; + +export default function getCompDocs(server: McpServer) { + server.registerTool( + "get-component-docs", + { + description: "获取 TDesign 组件的文档,适用场景:代码生成和代码转换,支持多个组件同时查询", + inputSchema: ComponentsSchema.shape + }, + async ({ names, framework }) => { + const compDocs = await loadCompDocs(names, framework); + + return { + content: [ + { + type: "text", + text: JSON.stringify(compDocs) + } + ] + }; + } + ); +} + +async function loadCompDocs(names: string[], framework: Framework) { + const { exist, nonExist } = await checkCompsExistence(names, framework); + const docsUrl = `${addTdPrefix(framework)}`; + const existResults: Record = {}; + + for (const name of Object.keys(exist)) { + const parentComponent = exist[name]; + const apiUrl = `${docsUrl}/${parentComponent}/api.md`; + const apiContent = await loadFileContent(apiUrl); + + let demo: Record | string; + + if (isMiniProgram(framework)) { + const demoDir = `${docsUrl}/${parentComponent}/demo`; + const demoFiles: Record = {}; + for (const ext of MINIPROGRAM_DEMO_EXTS) { + const fileName = `index${ext}`; + const content = await loadFileContent(`${demoDir}/${fileName}`); + demoFiles[fileName] = + typeof content === "string" ? content.replace(/\s*\n\s*/g, "").replace(/"/g, "'") : JSON.stringify(content); + } + demo = demoFiles; + } else { + const demoUrl = `${docsUrl}/${parentComponent}/Demo.${getSuffixByFramework(framework)}`; + const demoContent = await loadFileContent(demoUrl); + demo = demoContent.replace(/\s*\n\s*/g, "").replace(/"/g, "'"); + } + + existResults[name] = { + api: apiContent, + demo + }; + } + + return { ...nonExist, ...existResults }; +} diff --git a/packages/mcp-server/server/src/tools/dom.ts b/packages/mcp-server/server/src/tools/dom.ts new file mode 100644 index 000000000..0e9cebb5b --- /dev/null +++ b/packages/mcp-server/server/src/tools/dom.ts @@ -0,0 +1,62 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; + +import { + addTdPrefix, + Framework, + getPlatformByFramework, + isChatFramework, + isMiniProgram, + isUniapp +} from "@tdesign-mcp-server/common"; + +import { checkCompsExistence, loadFileContent } from "../helpers"; +import { ComponentsSchema } from "../prompts"; + +export default function getCompDom(server: McpServer) { + server.registerTool( + "get-component-dom", + { + description: "获取 TDesign 组件的 DOM 结构,适用场景:转换用户自定义的 CSS 样式, 支持多个组件同时查询", + inputSchema: ComponentsSchema.shape + }, + async ({ names, framework }) => { + const compDom = await loadCompDom(names, framework); + return { + content: [ + { + type: "text", + text: JSON.stringify(compDom) + } + ] + }; + } + ); +} + +/** 获取组件 DOM 的目录前缀 */ +function getDomPrefix(fw: Framework) { + if (isMiniProgram(fw) || isUniapp(fw)) { + return `${fw}-dom`; + } + if (isChatFramework(fw)) { + return `${getPlatformByFramework(fw)}-chat-dom`; + } + return `${getPlatformByFramework(fw)}-dom`; +} + +async function loadCompDom(names: string[], framework: Framework) { + const { exist, nonExist } = await checkCompsExistence(names, framework); + const existResults: Record = {}; + + for (const name of Object.keys(exist)) { + const parentComponent = exist[name]; + const domUrl = addTdPrefix(getDomPrefix(framework)); + const domFileUrl = `${domUrl}/${parentComponent}.html`; + + const domContent = await loadFileContent(domFileUrl); + + existResults[name] = domContent; + } + + return { ...nonExist, ...existResults }; +} diff --git a/packages/mcp-server/server/src/tools/icon.ts b/packages/mcp-server/server/src/tools/icon.ts new file mode 100644 index 000000000..79e1d31e5 --- /dev/null +++ b/packages/mcp-server/server/src/tools/icon.ts @@ -0,0 +1,65 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; + +import { loadFileContent } from "../helpers"; +import { IconSchema } from "../prompts"; + +export default function searchIcon(server: McpServer) { + server.registerTool( + "search-icon", + { + description: + "根据英文关键词查询 TDesign 图标库的完整图标名。" + + "支持一次传入多个关键词:优先返回同时命中所有关键词的图标(AND)," + + "若无结果则降级为命中任一关键词(OR),并按命中数量评分排序。" + + "适用场景:图标查找与名称确认", + inputSchema: IconSchema.shape + }, + async ({ keywords, limit }) => { + const icons = await findMatchingIcons(keywords, limit); + return { + content: [ + { + type: "text", + text: JSON.stringify(icons) + } + ] + }; + } + ); +} + +async function findMatchingIcons(keywords: string[], limit = 20) { + const icons = (await loadFileContent("icons.json")) as string[]; + + const queryTokens = keywords.map((s) => s.toLowerCase()).filter(Boolean); + if (queryTokens.length === 0) return []; + + // 计算命中的关键词数量 + const scored = icons + .map((name) => { + const lower = name.toLowerCase(); + const score = queryTokens.reduce((acc, kw) => (lower.includes(kw) ? acc + 1 : acc), 0); + return { name, score }; + }) + .filter((item) => item.score > 0); + + // 优先 AND 匹配:命中全部关键词的图标 + const andMatched = scored.filter((item) => item.score === queryTokens.length); + if (andMatched.length > 0) { + return rankMatches(andMatched, limit); + } + + // 降级 OR 匹配:命中任一关键词 + return rankMatches(scored, limit); +} + +function rankMatches(list: { name: string; score: number }[], limit: number) { + return list + .sort((a, b) => { + if (b.score !== a.score) return b.score - a.score; + if (a.name.length !== b.name.length) return a.name.length - b.name.length; + return a.name.localeCompare(b.name); + }) + .slice(0, limit) + .map((item) => item.name); +} diff --git a/packages/mcp-server/server/src/tools/index.ts b/packages/mcp-server/server/src/tools/index.ts new file mode 100644 index 000000000..192c7985b --- /dev/null +++ b/packages/mcp-server/server/src/tools/index.ts @@ -0,0 +1,15 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; + +import getCompChangelog from "./changelog"; +import getCompDocs from "./docs"; +import getCompDom from "./dom"; +import searchIcons from "./icon"; +import getCompList from "./list"; + +const allTools = [getCompList, getCompDocs, getCompDom, getCompChangelog, searchIcons]; + +export default function registryTools(server: McpServer) { + allTools.forEach((register) => { + register(server); + }); +} diff --git a/packages/mcp-server/server/src/tools/list.ts b/packages/mcp-server/server/src/tools/list.ts new file mode 100644 index 000000000..5bf592bd9 --- /dev/null +++ b/packages/mcp-server/server/src/tools/list.ts @@ -0,0 +1,32 @@ +import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; + +import { addTdPrefix, type Framework } from "@tdesign-mcp-server/common"; + +import { loadFileContent } from "../helpers"; +import { FrameworkSchema } from "../prompts"; + +export default function getCompList(server: McpServer) { + server.registerTool( + "get-component-list", + { + description: "获取 TDesign 所有可用的组件列表,适用场景:选择合适组件进行组合实现不存在的功能", + inputSchema: FrameworkSchema.shape + }, + async ({ framework }) => { + const compList = await loadCompList(framework); + return { + content: [ + { + type: "text", + text: JSON.stringify(compList) + } + ] + }; + } + ); +} + +async function loadCompList(framework: Framework) { + const listUrl = `${addTdPrefix(framework)}/index.json`; + return await loadFileContent(listUrl); +} diff --git a/packages/mcp-server/tsconfig.json b/packages/mcp-server/tsconfig.json new file mode 100644 index 000000000..c1eed2dce --- /dev/null +++ b/packages/mcp-server/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ES2022", + "moduleResolution": "bundler", + "strict": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "esModuleInterop": true, + "resolveJsonModule": true, + "jsx": "react-jsx", + "paths": { + "@tdesign-mcp-server/docs-react/*": ["./docs/tdesign-react/*"], + "@tdesign-mcp-server/docs-mobile-react/*": ["./docs/tdesign-mobile-react/*"] + } + }, + "include": ["common/**/*", "scripts/**/*", "server/**/*"], + "exclude": ["docs/**/*"] +} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 470e88009..3559a947b 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ packages: - "packages/*" + - "packages/mcp-server/*" - "site" From ed659214a60a5b2dfa91f14c72e5ec0ffdc93dd4 Mon Sep 17 00:00:00 2001 From: liweijie <674416404@qq.com> Date: Tue, 8 Sep 2026 21:10:17 +0800 Subject: [PATCH 02/15] =?UTF-8?q?ci(workflow):=20=E5=8F=91=E5=B8=83=20mcp-?= =?UTF-8?q?server=20=E5=8C=85=E5=88=B0=20pkg-pr-new?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pkg-pr-new.yml | 3 +- pnpm-lock.yaml | 7271 ++++++++++++++++++++++++++++-- 2 files changed, 6875 insertions(+), 399 deletions(-) diff --git a/.github/workflows/pkg-pr-new.yml b/.github/workflows/pkg-pr-new.yml index daa9984d5..96ab9f31f 100644 --- a/.github/workflows/pkg-pr-new.yml +++ b/.github/workflows/pkg-pr-new.yml @@ -29,8 +29,9 @@ jobs: - run: pnpm install - run: pnpm --filter '@tdesign/site-components' --filter '@tdesign/theme-generator' run build + - run: pnpm --filter tdesign-mcp-server run build:mcp - - run: pnpm dlx pkg-pr-new publish './packages/site-components' './packages/theme-generator' + - run: pnpm dlx pkg-pr-new publish './packages/site-components' './packages/theme-generator' 'packages/mcp-server/server' build-tdesign-vue-site: if: github.repository == 'Tencent/tdesign' && github.event_name == 'pull_request' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f8bfba55..d7813ca9c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,7 +20,7 @@ importers: version: 8.3.6 cz-conventional-changelog: specifier: ^3.0.2 - version: 3.3.0(@types/node@22.9.0)(typescript@4.9.5) + version: 3.3.0(@types/node@22.20.1)(typescript@5.9.3) eslint: specifier: ^7.32.0 version: 7.32.0 @@ -50,13 +50,13 @@ importers: version: 3.0.2 stylelint: specifier: ^15.10.3 - version: 15.11.0(typescript@4.9.5) + version: 15.11.0(typescript@5.9.3) stylelint-config-standard: specifier: ^34.0.0 - version: 34.0.0(stylelint@15.11.0(typescript@4.9.5)) + version: 34.0.0(stylelint@15.11.0(typescript@5.9.3)) stylelint-config-standard-less: specifier: ^2.0.0 - version: 2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@4.9.5)) + version: 2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@5.9.3)) packages/auto-release-collection: dependencies: @@ -80,6 +80,160 @@ importers: specifier: ^4.9.5 version: 4.9.5 + packages/mcp-server: {} + + packages/mcp-server/common: + dependencies: + dotenv: + specifier: ^17.2.1 + version: 17.4.2 + + packages/mcp-server/scripts: + dependencies: + '@tdesign-mcp-server/common': + specifier: workspace:* + version: link:../common + '@tdesign-react/chat': + specifier: latest + version: 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + lodash-es: + specifier: ^4.17.21 + version: 4.18.1 + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + tdesign-icons-react: + specifier: latest + version: 0.6.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tdesign-mobile-react: + specifier: latest + version: 0.23.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tdesign-react: + specifier: latest + version: 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tdesign-web-components: + specifier: latest + version: 1.2.10 + devDependencies: + '@babel/core': + specifier: ^7.26.0 + version: 7.29.7 + '@babel/plugin-proposal-decorators': + specifier: ^7.25.9 + version: 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-class-properties': + specifier: ^7.25.9 + version: 7.29.7(@babel/core@7.29.7) + '@babel/preset-env': + specifier: ^7.26.0 + version: 7.29.7(@babel/core@7.29.7) + '@babel/preset-typescript': + specifier: ^7.26.0 + version: 7.29.7(@babel/core@7.29.7) + '@testing-library/react': + specifier: ^16.3.0 + version: 16.3.3(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@types/jest': + specifier: ^27.0.3 + version: 27.5.2 + '@types/node': + specifier: ^22.14.1 + version: 22.20.1 + '@types/react': + specifier: ^18.3.10 + version: 18.3.31 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.7(@types/react@18.3.31) + '@vitejs/plugin-react': + specifier: ^4.5.1 + version: 4.7.0(vite@6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13)) + babel-jest: + specifier: ^26.6.3 + version: 26.6.3(@babel/core@7.29.7) + happy-dom: + specifier: ^20.8.4 + version: 20.14.0 + jest: + specifier: ^26.6.3 + version: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jsdom: + specifier: ^26.1.0 + version: 26.1.0 + miniprogram-simulate: + specifier: ^1.6.0 + version: 1.6.2 + tsx: + specifier: ^4.21.0 + version: 4.23.13 + typescript: + specifier: ^5.8.3 + version: 5.9.3 + vitest: + specifier: ^3.2.2 + version: 3.2.7(@types/node@22.20.1)(happy-dom@20.14.0)(jiti@1.21.6)(jsdom@26.1.0)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) + + packages/mcp-server/server: + dependencies: + '@modelcontextprotocol/sdk': + specifier: ^1.23.0 + version: 1.30.0(zod@4.5.4) + '@tdesign-mcp-server/common': + specifier: workspace:* + version: link:../common + express: + specifier: ^5.2.1 + version: 5.2.1 + zod: + specifier: ^4.1.13 + version: 4.5.4 + devDependencies: + '@rollup/plugin-commonjs': + specifier: ^28.0.3 + version: 28.0.9(rollup@4.63.1) + '@rollup/plugin-json': + specifier: ^6.1.0 + version: 6.1.0(rollup@4.63.1) + '@rollup/plugin-node-resolve': + specifier: ^16.0.1 + version: 16.0.3(rollup@4.63.1) + '@rollup/plugin-replace': + specifier: ^6.0.2 + version: 6.0.3(rollup@4.63.1) + '@rollup/plugin-terser': + specifier: ^0.4.4 + version: 0.4.4(rollup@4.63.1) + '@rollup/plugin-typescript': + specifier: ^12.3.0 + version: 12.3.0(rollup@4.63.1)(tslib@2.7.0)(typescript@5.9.3) + '@types/express': + specifier: ^5.0.6 + version: 5.0.6 + '@types/node': + specifier: ^22.14.1 + version: 22.20.1 + dotenv: + specifier: ^17.2.1 + version: 17.4.2 + prettier: + specifier: ^3.5.3 + version: 3.9.6 + rollup: + specifier: ^4.40.1 + version: 4.63.1 + rollup-plugin-inject-process-env: + specifier: ^1.3.1 + version: 1.3.1 + tsx: + specifier: ^4.21.0 + version: 4.23.13 + typescript: + specifier: ^5.8.3 + version: 5.9.3 + packages/site-components: dependencies: '@popperjs/core': @@ -115,13 +269,13 @@ importers: version: 10.1.0 jest: specifier: ^27.4.3 - version: 27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5)) + version: 27.5.1(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) less: specifier: ^4.1.1 version: 4.2.0 vite: specifier: ^6.3.1 - version: 6.3.1(@types/node@22.9.0)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.19.3) + version: 6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) packages/theme-generator: dependencies: @@ -240,7 +394,7 @@ importers: version: 5.62.0(eslint@7.32.0)(typescript@4.9.5) '@vitejs/plugin-vue2': specifier: ^2.3.3 - version: 2.3.3(vite@6.3.1(@types/node@22.9.0)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.19.3))(vue@2.7.14) + version: 2.3.3(vite@6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13))(vue@2.7.14) autoprefixer: specifier: ^10.4.0 version: 10.4.20(postcss@8.4.47) @@ -252,7 +406,7 @@ importers: version: 5.1.15(postcss@8.4.47) cz-conventional-changelog: specifier: ^3.0.2 - version: 3.3.0(@types/node@22.9.0)(typescript@4.9.5) + version: 3.3.0(@types/node@22.20.1)(typescript@4.9.5) eslint: specifier: ^7.32.0 version: 7.32.0 @@ -300,7 +454,7 @@ importers: version: 4.9.5 vite: specifier: ^6.3.1 - version: 6.3.1(@types/node@22.9.0)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.19.3) + version: 6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) vite-plugin-tdoc: specifier: ^2.0.0 version: 2.0.4(@types/markdown-it@12.2.3) @@ -324,6 +478,12 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@antfu/install-pkg@2.0.1': + resolution: {integrity: sha512-iCKVQcIC0e3oDxEfs3SHQGW+ovhBMZmS1TE+bTk50rVyMCBmCfClv7Qi3HQKlumYwvjb/iIMeWCW2i67q6kFfQ==} + + '@asamuzakjp/css-color@3.2.0': + resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} + '@babel/code-frame@7.12.11': resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} @@ -331,14 +491,26 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.25.4': resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.25.2': resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + engines: {node: '>=6.9.0'} + '@babel/eslint-parser@7.25.1': resolution: {integrity: sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} @@ -350,10 +522,18 @@ packages: resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.24.7': resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.29.7': + resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} + engines: {node: '>=6.9.0'} + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': resolution: {integrity: sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==} engines: {node: '>=6.9.0'} @@ -362,57 +542,116 @@ packages: resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.25.4': resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.29.7': + resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.25.2': resolution: {integrity: sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.29.7': + resolution: {integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-define-polyfill-provider@0.6.2': resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-define-polyfill-provider@0.6.8': + resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.24.8': resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.29.7': + resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.24.7': resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.25.2': resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.24.7': resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} engines: {node: '>=6.9.0'} + '@babel/helper-optimise-call-expression@7.29.7': + resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==} + engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.24.8': resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.25.0': resolution: {integrity: sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-remap-async-to-generator@7.29.7': + resolution: {integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.25.0': resolution: {integrity: sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.29.7': + resolution: {integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-simple-access@7.24.7': resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} @@ -421,12 +660,12 @@ packages: resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.29.7': - resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.29.7': @@ -437,14 +676,26 @@ packages: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.25.0': resolution: {integrity: sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==} engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.29.7': + resolution: {integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.25.6': resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + engines: {node: '>=6.9.0'} + '@babel/highlight@7.24.7': resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} @@ -465,30 +716,66 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7': + resolution: {integrity: sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0': resolution: {integrity: sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7': + resolution: {integrity: sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0': resolution: {integrity: sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7': + resolution: {integrity: sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7': + resolution: {integrity: sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7': resolution: {integrity: sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7': + resolution: {integrity: sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0': resolution: {integrity: sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7': + resolution: {integrity: sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-proposal-class-properties@7.18.6': resolution: {integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==} engines: {node: '>=6.9.0'} @@ -496,8 +783,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-proposal-decorators@7.24.7': - resolution: {integrity: sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==} + '@babel/plugin-proposal-decorators@7.29.7': + resolution: {integrity: sha512-EtU0Hi3GvrTqD56xKmZvV/uCXK2ZbwVNPNLAquVItcAZpUhkXwWlo3Fmj0c2LxgSf2I8IDULeAepwNP1OefLXg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -529,8 +816,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-decorators@7.24.7': - resolution: {integrity: sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==} + '@babel/plugin-syntax-decorators@7.29.7': + resolution: {integrity: sha512-9MTTLbF39X6sqM92JPEsoI7++26hjZvzkxKZy64aMhWLH2mPkJ/Q3AV4QLmls3R14FpSpkOwQQfUh962JGQxxg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -551,12 +838,24 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-assertions@7.29.7': + resolution: {integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.25.6': resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.29.7': + resolution: {integrity: sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -573,6 +872,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.29.7': + resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -621,6 +926,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.29.7': + resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -633,32 +944,62 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-arrow-functions@7.29.7': + resolution: {integrity: sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-generator-functions@7.25.4': resolution: {integrity: sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-generator-functions@7.29.7': + resolution: {integrity: sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-to-generator@7.24.7': resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-async-to-generator@7.29.7': + resolution: {integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoped-functions@7.24.7': resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoped-functions@7.29.7': + resolution: {integrity: sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-block-scoping@7.25.0': resolution: {integrity: sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.4': - resolution: {integrity: sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==} + '@babel/plugin-transform-block-scoping@7.29.7': + resolution: {integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.29.7': + resolution: {integrity: sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -669,204 +1010,432 @@ packages: peerDependencies: '@babel/core': ^7.12.0 + '@babel/plugin-transform-class-static-block@7.29.7': + resolution: {integrity: sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + '@babel/plugin-transform-classes@7.25.4': resolution: {integrity: sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-classes@7.29.7': + resolution: {integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-computed-properties@7.24.7': resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-computed-properties@7.29.7': + resolution: {integrity: sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-destructuring@7.24.8': resolution: {integrity: sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-destructuring@7.29.7': + resolution: {integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dotall-regex@7.24.7': resolution: {integrity: sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dotall-regex@7.29.7': + resolution: {integrity: sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-keys@7.24.7': resolution: {integrity: sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-keys@7.29.7': + resolution: {integrity: sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0': resolution: {integrity: sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7': + resolution: {integrity: sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-transform-dynamic-import@7.24.7': resolution: {integrity: sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-dynamic-import@7.29.7': + resolution: {integrity: sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-explicit-resource-management@7.29.7': + resolution: {integrity: sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-exponentiation-operator@7.24.7': resolution: {integrity: sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-exponentiation-operator@7.29.7': + resolution: {integrity: sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-export-namespace-from@7.24.7': resolution: {integrity: sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-export-namespace-from@7.29.7': + resolution: {integrity: sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-for-of@7.24.7': resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-for-of@7.29.7': + resolution: {integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-function-name@7.25.1': resolution: {integrity: sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-function-name@7.29.7': + resolution: {integrity: sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-json-strings@7.24.7': resolution: {integrity: sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-json-strings@7.29.7': + resolution: {integrity: sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-literals@7.25.2': resolution: {integrity: sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-literals@7.29.7': + resolution: {integrity: sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-logical-assignment-operators@7.24.7': resolution: {integrity: sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-logical-assignment-operators@7.29.7': + resolution: {integrity: sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-member-expression-literals@7.24.7': resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-member-expression-literals@7.29.7': + resolution: {integrity: sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-amd@7.24.7': resolution: {integrity: sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-amd@7.29.7': + resolution: {integrity: sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.24.8': resolution: {integrity: sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-commonjs@7.29.7': + resolution: {integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-systemjs@7.25.0': resolution: {integrity: sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-systemjs@7.29.8': + resolution: {integrity: sha512-6iSnEK0zlkLKU4heofK/AdmRD4e2SHVpJMtrwnTCzhnaM98ria4rTrOXBBi45BTTYnJtO8txnPsX4fChYXkmeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-umd@7.24.7': resolution: {integrity: sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-modules-umd@7.29.7': + resolution: {integrity: sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7': resolution: {integrity: sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7': + resolution: {integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-transform-new-target@7.24.7': resolution: {integrity: sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-new-target@7.29.7': + resolution: {integrity: sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7': resolution: {integrity: sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-nullish-coalescing-operator@7.29.7': + resolution: {integrity: sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-numeric-separator@7.24.7': resolution: {integrity: sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-numeric-separator@7.29.7': + resolution: {integrity: sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-rest-spread@7.24.7': resolution: {integrity: sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-rest-spread@7.29.7': + resolution: {integrity: sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-super@7.24.7': resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-object-super@7.29.7': + resolution: {integrity: sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-optional-catch-binding@7.24.7': resolution: {integrity: sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-optional-catch-binding@7.29.7': + resolution: {integrity: sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-optional-chaining@7.24.8': resolution: {integrity: sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.7': - resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + '@babel/plugin-transform-optional-chaining@7.29.7': + resolution: {integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-private-methods@7.25.4': + '@babel/plugin-transform-parameters@7.24.7': + resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.29.7': + resolution: {integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.25.4': resolution: {integrity: sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-methods@7.29.7': + resolution: {integrity: sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-property-in-object@7.24.7': resolution: {integrity: sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-property-in-object@7.29.7': + resolution: {integrity: sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-property-literals@7.24.7': resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-property-literals@7.29.7': + resolution: {integrity: sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-self@7.29.7': + resolution: {integrity: sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.29.7': + resolution: {integrity: sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.24.7': resolution: {integrity: sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-regenerator@7.29.8': + resolution: {integrity: sha512-0UpIXPtdDtMXfnV2OJAVMLpj3H/92vmkA6lpSRakmycJvj3VUy6Xs1dM8tXRugupykr5WB+LpiVl0J8LMVg2mg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regexp-modifiers@7.29.7': + resolution: {integrity: sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/plugin-transform-reserved-words@7.24.7': resolution: {integrity: sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-reserved-words@7.29.7': + resolution: {integrity: sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-runtime@7.25.4': resolution: {integrity: sha512-8hsyG+KUYGY0coX6KUCDancA0Vw225KJ2HJO0yCNr1vq5r+lJTleDaJf0K7iOhjw4SWhu03TMBzYTJ9krmzULQ==} engines: {node: '>=6.9.0'} @@ -879,65 +1448,137 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.29.7': + resolution: {integrity: sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.24.7': resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.29.8': + resolution: {integrity: sha512-4S9ksMGVWUshvgK0mKfvZky7leuG5/uoFVwMpAomJ8bMoDJiNHRVmc1EglwW/CmGVSqqWpEbXm9FmbRit22qoA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.24.7': resolution: {integrity: sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.29.7': + resolution: {integrity: sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-template-literals@7.24.7': resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-template-literals@7.29.7': + resolution: {integrity: sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typeof-symbol@7.24.8': resolution: {integrity: sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-typeof-symbol@7.29.7': + resolution: {integrity: sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.29.7': + resolution: {integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.24.7': resolution: {integrity: sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-escapes@7.29.7': + resolution: {integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-property-regex@7.24.7': resolution: {integrity: sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-property-regex@7.29.7': + resolution: {integrity: sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-regex@7.24.7': resolution: {integrity: sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-regex@7.29.7': + resolution: {integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-unicode-sets-regex@7.25.4': resolution: {integrity: sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/plugin-transform-unicode-sets-regex@7.29.7': + resolution: {integrity: sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/preset-env@7.25.4': resolution: {integrity: sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/preset-env@7.29.7': + resolution: {integrity: sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/preset-modules@0.1.6-no-external-plugins': resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + '@babel/preset-typescript@7.29.7': + resolution: {integrity: sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/regjsgen@0.8.0': resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} @@ -952,6 +1593,10 @@ packages: resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.26.10': + resolution: {integrity: sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==} + engines: {node: '>=6.9.0'} + '@babel/runtime@7.29.7': resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} engines: {node: '>=6.9.0'} @@ -960,10 +1605,18 @@ packages: resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.25.6': resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.8': + resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} + engines: {node: '>=6.9.0'} + '@babel/types@7.25.6': resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} @@ -975,6 +1628,32 @@ packages: '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@braintree/sanitize-url@6.0.4': + resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==} + + '@braintree/sanitize-url@7.1.2': + resolution: {integrity: sha512-jigsZK+sMF/cuiB7sERuo9V7N9jx+dhmHHnQyDSVdpZwVutaBu7WvNYqMDLSgFgfB30n452TP3vjDAvFC973mA==} + + '@chevrotain/cst-dts-gen@11.0.3': + resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} + + '@chevrotain/gast@11.0.3': + resolution: {integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==} + + '@chevrotain/regexp-to-ast@11.0.3': + resolution: {integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==} + + '@chevrotain/types@11.0.3': + resolution: {integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==} + + '@chevrotain/utils@11.0.3': + resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} + + '@cnakazawa/watch@1.0.4': + resolution: {integrity: sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==} + engines: {node: '>=0.1.95'} + hasBin: true + '@commitlint/cli@8.3.6': resolution: {integrity: sha512-fg8p9/ZrzhUPIXBGrpzwKu50WT13jYS5OffYlkStPuemuv0GjXu37B8J/zNgu6UhrdBVHbmBR0LriKAzRLG/4g==} engines: {node: '>=4'} @@ -1059,16 +1738,44 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@csstools/color-helpers@5.1.0': + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} + engines: {node: '>=18'} + + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-color-parser@3.1.0': + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-parser-algorithms@2.7.1': resolution: {integrity: sha512-2SJS42gxmACHgikc1WGesXLIT8d/q2l0UFM7TaEeIzdFCE/FPMtTiizcPGGJtlPo2xuQzY09OhrLTzRxqJqwGw==} engines: {node: ^14 || ^16 || >=18} peerDependencies: '@csstools/css-tokenizer': ^2.4.1 + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-tokenizer@2.4.1': resolution: {integrity: sha512-eQ9DIktFJBhGjioABJRtUucoWR2mwllurfnM8LuNGAqX3ViZXaUchqk+1s7jjtkFiT9ySdACsFEA3etErkALUg==} engines: {node: ^14 || ^16 || >=18} + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + engines: {node: '>=18'} + '@csstools/media-query-list-parser@2.1.13': resolution: {integrity: sha512-XaHr+16KRU9Gf8XLi3q8kDlI18d5vzKSKCY510Vrtc9iNR0NJzbY9hhTmwhzYZj/ZwGL4VmB3TA9hJW0Um2qFA==} engines: {node: ^14 || ^16 || >=18} @@ -1092,150 +1799,306 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.28.2': + resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.25.2': resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} engines: {node: '>=18'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.28.2': + resolution: {integrity: sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.25.2': resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} engines: {node: '>=18'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.28.2': + resolution: {integrity: sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.25.2': resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} engines: {node: '>=18'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.28.2': + resolution: {integrity: sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.25.2': resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.28.2': + resolution: {integrity: sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.25.2': resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} engines: {node: '>=18'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.28.2': + resolution: {integrity: sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.25.2': resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.28.2': + resolution: {integrity: sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.2': resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.28.2': + resolution: {integrity: sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.25.2': resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} engines: {node: '>=18'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.28.2': + resolution: {integrity: sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.25.2': resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} engines: {node: '>=18'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.28.2': + resolution: {integrity: sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.25.2': resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.28.2': + resolution: {integrity: sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.25.2': resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} engines: {node: '>=18'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.28.2': + resolution: {integrity: sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.25.2': resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.28.2': + resolution: {integrity: sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.25.2': resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.28.2': + resolution: {integrity: sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.25.2': resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.28.2': + resolution: {integrity: sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.25.2': resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} engines: {node: '>=18'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.28.2': + resolution: {integrity: sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.25.2': resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} engines: {node: '>=18'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.28.2': + resolution: {integrity: sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.2': resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.28.2': + resolution: {integrity: sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.2': resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.28.2': + resolution: {integrity: sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.2': resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.28.2': + resolution: {integrity: sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.2': resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.28.2': + resolution: {integrity: sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.28.2': + resolution: {integrity: sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.25.2': resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} engines: {node: '>=18'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.28.2': + resolution: {integrity: sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.25.2': resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} engines: {node: '>=18'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.28.2': + resolution: {integrity: sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.25.2': resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} engines: {node: '>=18'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.28.2': + resolution: {integrity: sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.25.2': resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} engines: {node: '>=18'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.28.2': + resolution: {integrity: sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1260,6 +2123,12 @@ packages: '@hapi/topo@5.1.0': resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + '@hono/node-server@2.1.1': + resolution: {integrity: sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==} + engines: {node: '>=20'} + peerDependencies: + hono: ^4 + '@humanwhocodes/config-array@0.5.0': resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} engines: {node: '>=10.10.0'} @@ -1273,6 +2142,12 @@ packages: resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@3.1.7': + resolution: {integrity: sha512-JZHlwdID+dy+lTgbYC8NEC4zeugqeYsc6jewvzb4c58kHauJn+X7rNwQjxz5p2qSjqaEeQoLkCIQ9v/H4PK0/w==} + '@istanbuljs/load-nyc-config@1.1.0': resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} engines: {node: '>=8'} @@ -1281,10 +2156,18 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} + '@jest/console@26.6.2': + resolution: {integrity: sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==} + engines: {node: '>= 10.14.2'} + '@jest/console@27.5.1': resolution: {integrity: sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jest/core@26.6.3': + resolution: {integrity: sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==} + engines: {node: '>= 10.14.2'} + '@jest/core@27.5.1': resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -1294,18 +2177,34 @@ packages: node-notifier: optional: true + '@jest/environment@26.6.2': + resolution: {integrity: sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==} + engines: {node: '>= 10.14.2'} + '@jest/environment@27.5.1': resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jest/fake-timers@26.6.2': + resolution: {integrity: sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==} + engines: {node: '>= 10.14.2'} + '@jest/fake-timers@27.5.1': resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jest/globals@26.6.2': + resolution: {integrity: sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==} + engines: {node: '>= 10.14.2'} + '@jest/globals@27.5.1': resolution: {integrity: sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jest/reporters@26.6.2': + resolution: {integrity: sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==} + engines: {node: '>= 10.14.2'} + '@jest/reporters@27.5.1': resolution: {integrity: sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -1315,30 +2214,56 @@ packages: node-notifier: optional: true + '@jest/source-map@26.6.2': + resolution: {integrity: sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==} + engines: {node: '>= 10.14.2'} + '@jest/source-map@27.5.1': resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jest/test-result@26.6.2': + resolution: {integrity: sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==} + engines: {node: '>= 10.14.2'} + '@jest/test-result@27.5.1': resolution: {integrity: sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jest/test-sequencer@26.6.3': + resolution: {integrity: sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==} + engines: {node: '>= 10.14.2'} + '@jest/test-sequencer@27.5.1': resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jest/transform@26.6.2': + resolution: {integrity: sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==} + engines: {node: '>= 10.14.2'} + '@jest/transform@27.5.1': resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jest/types@26.6.2': + resolution: {integrity: sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==} + engines: {node: '>= 10.14.2'} + '@jest/types@27.5.1': resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -1356,6 +2281,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -1368,6 +2296,25 @@ packages: '@material/material-color-utilities@0.1.2': resolution: {integrity: sha512-uKkkx7Xo1AZJR0eMjH902rAb0vEjDbb3tgXt0cC3SHbpDGkPNhkuDKtxnw147axOM6uKuI7vywHRQlDrjDGhCA==} + '@mermaid-js/parser@0.6.3': + resolution: {integrity: sha512-lnjOhe7zyHjc+If7yT4zoedx2vo4sHaTmtkl1+or8BRTnCtDmcTpAjpzDSfCZrshM5bCoz0GyidzadJAH1xobA==} + + '@modelcontextprotocol/sdk@1.30.0': + resolution: {integrity: sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==} + engines: {node: '>=18'} + peerDependencies: + '@cfworker/json-schema': ^4.1.1 + zod: ^3.25 || ^4.0 + peerDependenciesMeta: + '@cfworker/json-schema': + optional: true + + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + resolution: {integrity: sha512-oTXEIha4SsuXdTA4Iyskj0kpdx2yVXdhd75c2v3xGrHFfVMsbhTPZU/nMPL4sWKo4pBHm3aucLaqGlF696dTyQ==} + engines: {node: ^22.20 || ^24.12 || >=25} + cpu: [x64] + os: [linux] + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} @@ -1441,103 +2388,198 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@rollup/rollup-android-arm-eabi@4.40.0': - resolution: {integrity: sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==} - cpu: [arm] - os: [android] + '@rolldown/pluginutils@1.0.0-beta.27': + resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} - '@rollup/rollup-android-arm64@4.40.0': - resolution: {integrity: sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==} - cpu: [arm64] - os: [android] + '@rollup/plugin-commonjs@28.0.9': + resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true - '@rollup/rollup-darwin-arm64@4.40.0': - resolution: {integrity: sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==} + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-node-resolve@16.0.3': + resolution: {integrity: sha512-lUYM3UBGuM93CnMPG1YocWu7X802BrNF3jW2zny5gQyLQgRFJhV1Sq0Zi74+dh/6NBx1DxFC4b4GXg9wUCG5Qg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@6.0.3': + resolution: {integrity: sha512-J4RZarRvQAm5IF0/LwUUg+obsm+xZhYnbMXmXROyoSE1ATJe3oXSb9L5MMppdxP2ylNSjv6zFBwKYjcKMucVfA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-terser@0.4.4': + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-typescript@12.3.0': + resolution: {integrity: sha512-7DP0/p7y3t67+NabT9f8oTBFE6gGkto4SA6Np2oudYmZE/m1dt8RB0SjL1msMxFpLo631qjRCcBlAbq1ml/Big==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.14.0||^3.0.0||^4.0.0 + tslib: '*' + typescript: '>=3.7.0' + peerDependenciesMeta: + rollup: + optional: true + tslib: + optional: true + + '@rollup/pluginutils@5.4.0': + resolution: {integrity: sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.63.1': + resolution: {integrity: sha512-UZ8sUxPTiHWYX9QNdJedb1kDZSpS1t/VPWBWGSgqHNi9w3Cu6IXvu2mzbhiTiPvtrqgTQJ+zqiAq2iPIPilpaQ==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.63.1': + resolution: {integrity: sha512-cQ4nFQABN5cDvDpbvJ7bMStCpnaVxynZrRMfUJYgxcIk9Sh54FIO1vtfkg0B69REjER77ioZ/ov+eAApx/KmLQ==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.63.1': + resolution: {integrity: sha512-FQNqd1lRy/0QhDk3xeRIkSBiCpXCiDnZO3YLVdcDKN1UBiKToNftCzcXYNLshmPDUMlu2TdeS8tGcsU6f3YF1Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.40.0': - resolution: {integrity: sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==} + '@rollup/rollup-darwin-x64@4.63.1': + resolution: {integrity: sha512-pvD16V939D3CloK0+qikpGaxiPrDUXTe7Y5cWOMkMSy7m1cawa8EGy/kXYi/G/cKAC4HDAbSnzCIk1WmsoOKXg==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.40.0': - resolution: {integrity: sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==} + '@rollup/rollup-freebsd-arm64@4.63.1': + resolution: {integrity: sha512-pcFGeL2345VwdTnJhA6zLbew+YgWB0qBG2+dMtXjCicf6+rm6kO6cOoh5VnTe0ZMrMRgRyuHmCJxZWrIdzYuOw==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.40.0': - resolution: {integrity: sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==} + '@rollup/rollup-freebsd-x64@4.63.1': + resolution: {integrity: sha512-mRJlqSRulVzcKq/LKA6ICSIc3K/l4fzlVn/gePn2nXIHy8seRi5z/eeRE0d/XMBxcMldiXtQTSpRj0tkkC3g8Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.40.0': - resolution: {integrity: sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==} + '@rollup/rollup-linux-arm-gnueabihf@4.63.1': + resolution: {integrity: sha512-YDUNvVM85TI3g/1OpnqKP1h4NeW/j64DfWMf+G3M809xNk1bJSnpFp4sh83NpmVE5DXnkh8ULor4LTVZKoYLHw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.40.0': - resolution: {integrity: sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==} + '@rollup/rollup-linux-arm-musleabihf@4.63.1': + resolution: {integrity: sha512-7Mcn71p9ZuQFAj+h+dhQXy/yeLePRS2yKRnmW1DijA9thKO5qap0GNOIQK4yQ6iP3SU0Mrb/yWo8h8vgRba8lw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.40.0': - resolution: {integrity: sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==} + '@rollup/rollup-linux-arm64-gnu@4.63.1': + resolution: {integrity: sha512-4YiLQTX6U4CSl0L9cluep9A9W6UmTfqBDc2/CH6wlu54pl4E7Jn3cOD8oxzvBDEGk/JMKgJ47C8g+radF7mwvg==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.40.0': - resolution: {integrity: sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==} + '@rollup/rollup-linux-arm64-musl@4.63.1': + resolution: {integrity: sha512-2ra8F7w8OquwZN9z2/fKFnli69wa8PLwaVzRMIPGb13ByMJwC28Fbp8YcVGoUhlYMTt7j5j9bNgpysrN2UM+vw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.40.0': - resolution: {integrity: sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==} + '@rollup/rollup-linux-loong64-gnu@4.63.1': + resolution: {integrity: sha512-Sy20ncyhjmBP0Ml+UvQbimjlk6VFgjW5uNP+qqwHB00mTE8Bl2C1TuHTlRwK2YoXeZbee5lP2XevBWVkAQAtSQ==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.63.1': + resolution: {integrity: sha512-noITLp8oNjYliPnGWmLyelIHwULGqbHloQHGw1rtxbWhTuWooRpnZarZQJ1y9EUC4szuCusCc+HEpUtxpIwYvA==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': - resolution: {integrity: sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==} + '@rollup/rollup-linux-ppc64-gnu@4.63.1': + resolution: {integrity: sha512-hlxxXd+F1mWiAcaFR7Sv9ZQT6m6UfI8+Vy/kFJzztq2pDMU/0wZ9sish0iszNZvsQDo8Gc0i5yuFEOz5dDf6fA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.63.1': + resolution: {integrity: sha512-EF7OpqQTQ/BvGqLzUi4rEHuagCV9MugAUXSHemwPW5vxZ75RR+jxO/2j95Ph2dalMpFHSVECjRoioHZgA9zOYA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.40.0': - resolution: {integrity: sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==} + '@rollup/rollup-linux-riscv64-gnu@4.63.1': + resolution: {integrity: sha512-wQO3JesW9PRkwlabQ27y7sPfVOOTLRG73I4F2UYHG5PXun3J9U3y+b7ezVKSYbsvSKGQ1k1cq8Qlun4C9kLt3w==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.40.0': - resolution: {integrity: sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==} + '@rollup/rollup-linux-riscv64-musl@4.63.1': + resolution: {integrity: sha512-ouAGwhO6wHRXdnOVCOsB0tRFkA7nhNB2Nwax6oECXN0YiN8EYUTBAOudADOB1PI+yDL61TeNx/u7MVCzksNbkQ==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.40.0': - resolution: {integrity: sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==} + '@rollup/rollup-linux-s390x-gnu@4.63.1': + resolution: {integrity: sha512-q2R38Sn+1J8RxhfJ+T54wSWmyKXWec+9jgDfqO2AtArEqHO5R2aeayp5H5OYLr5UYDVGsVaZPEFUooMhYCdz5A==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.40.0': - resolution: {integrity: sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==} + '@rollup/rollup-linux-x64-gnu@4.63.1': + resolution: {integrity: sha512-gfI5T24WLLuFfSKw7Go/zDXjAAV0fny0swTaDv+WjK7vqcw4cRhFfdsyKL1n+ukI+ooBxn3bVQnyrn06WpI50w==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.40.0': - resolution: {integrity: sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==} + '@rollup/rollup-linux-x64-musl@4.63.1': + resolution: {integrity: sha512-4h6XqthmB4Hspji84wvgk+ElodTsGj+dbZqHJHHtKxj4mYq0ANSEEPX9ys3moJueqsRjwpaJYH7874Itwnj2ow==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.40.0': - resolution: {integrity: sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==} + '@rollup/rollup-openbsd-x64@4.63.1': + resolution: {integrity: sha512-dlfCOa87o1VAYegLQ9EKilx2JCeRofiyPGhTCmqnuXZ6bMPiycO1rq1+sKoulAp7pGLIsTIw+1x5R+zgh5LhhA==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.63.1': + resolution: {integrity: sha512-cjkLbOlfcm3QGhMM1J5zaZjsw1GggbN6rw9UTSSRrPrR1KkcXnN7Uq9rPw34xImQ9VOY9GN+6u2Zj80B9ptkcw==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.63.1': + resolution: {integrity: sha512-Li1KdUnWGE4N3e1F/B4RTB1ms+nG4WBgjByO46pkeBVX/2UBsY53xf5vK9WygVmnH3RwncIST7lkSdLSY6P9lg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.40.0': - resolution: {integrity: sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==} + '@rollup/rollup-win32-ia32-msvc@4.63.1': + resolution: {integrity: sha512-t4ZYOSoLTgwhuFMrmTMLx/+i1DQVK7HYqMc6kY46EApwi8X0nIVphzdNoThU3xt6n+N5urG1/gxBdCaKDLavfg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.40.0': - resolution: {integrity: sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==} + '@rollup/rollup-win32-x64-gnu@4.63.1': + resolution: {integrity: sha512-RgroPfMmKlD1RzSDxvwgcPiy2HNQKoYV7OmwIXDsk73uKW5t6B/V8KIy27SMv/FNXFo/oSBtWc9J0X7t91ezZg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.63.1': + resolution: {integrity: sha512-at8QVep6S3h5Y6gSbdGU06bRY5WJkf6WUduM9YtvYMbYhB1MOFfUgc6kehitQXzOtMSaT70q7f9ydPhpqu821w==} cpu: [x64] os: [win32] @@ -1568,6 +2610,9 @@ packages: '@sinonjs/commons@1.8.6': resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} + '@sinonjs/fake-timers@6.0.1': + resolution: {integrity: sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==} + '@sinonjs/fake-timers@8.1.0': resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} @@ -1580,13 +2625,42 @@ packages: '@soda/get-current-script@1.0.2': resolution: {integrity: sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==} + '@tdesign-react/chat@1.0.2': + resolution: {integrity: sha512-qiN/i1J10PRy+Vy2r9NsBiKZgMe0gC0fVztRycIab8cSvnyrdySoPLZ/EyzyxlhsNFhGi3lXR4MjdSCOzBJ3tg==} + peerDependencies: + react: '>=16.13.1' + react-dom: '>=16.13.1' + '@tdesign/site-components@0.19.3': resolution: {integrity: sha512-eFZNqFpBVFeokN/6wHfPtkUNzmrVjyg0BVyW1pOOHbWIehm1tSbXWlMg9sf2oXzO7dlMdDGYdx6BrQN2H8tbpg==} + '@testing-library/dom@10.4.1': + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} + engines: {node: '>=18'} + + '@testing-library/react@16.3.3': + resolution: {integrity: sha512-Uo193NgQbPMz6lrrhtRQQFcMC6Re/ELLFbbuVL30WDlZxlpZf9/lMHTAVxPRLw1q1iu9OJmR1c2BLiENRstdBg==} + engines: {node: '>=18'} + peerDependencies: + '@testing-library/dom': ^10.0.0 + '@types/react': ^18.0.0 || ^19.0.0 + '@types/react-dom': ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@tootallnate/once@1.1.2': resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} + '@tootallnate/once@2.0.1': + resolution: {integrity: sha512-HqmEUIGRJ5fSXchkVgR5F7qn48bDBzv0kWj/Kfu5e6uci4UlEeng4331LnBkWffb++Ei3FOVLxo8JJWMFBDMeQ==} + engines: {node: '>= 10'} + '@trysound/sax@0.2.0': resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} @@ -1603,6 +2677,9 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + '@types/aria-query@5.0.4': + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -1621,10 +2698,16 @@ packages: '@types/bonjour@3.5.13': resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/clipboard@2.0.7': resolution: {integrity: sha512-VwVFUHlneOsWfv/GaaY7Kwk4XasDqkAlyFQtsHxnOw0yyBYWTrlEXtmb9RtC+VFBCdtuOeIXECmELNd5RrKp/g==} deprecated: This is a stub types definition. clipboard provides its own type definitions, so you do not need this installed. + '@types/codemirror@0.0.108': + resolution: {integrity: sha512-3FGFcus0P7C2UOGCNUVENqObEb4SFk+S8Dnxq7K6aIsLVs/vDtlangl3PEO0ykaKXyK56swVF6Nho7VsA44uhw==} + '@types/connect-history-api-fallback@1.5.4': resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -1634,6 +2717,102 @@ packages: '@types/conventional-commits-parser@5.0.0': resolution: {integrity: sha512-loB369iXNmAZglwWATL+WRe+CRMmmBPtpolYzIebFaX4YA3x+BEfLqhUAV9WanycKI3TG1IMr5bMJDajDKLlUQ==} + '@types/d3-array@3.2.2': + resolution: {integrity: sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==} + + '@types/d3-axis@3.0.6': + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + + '@types/d3-brush@3.0.6': + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + + '@types/d3-chord@3.0.6': + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + + '@types/d3-color@3.1.3': + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + + '@types/d3-contour@3.0.6': + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + + '@types/d3-delaunay@6.0.4': + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + + '@types/d3-dispatch@3.0.7': + resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} + + '@types/d3-drag@3.0.7': + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + + '@types/d3-dsv@3.0.7': + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + + '@types/d3-ease@3.0.2': + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + + '@types/d3-fetch@3.0.7': + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + + '@types/d3-force@3.0.10': + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + + '@types/d3-format@3.0.4': + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + + '@types/d3-geo@3.1.1': + resolution: {integrity: sha512-65Emv9fQiQQqphLlRkuQ5ypPsOmWPhtBGCMv61JDPEPMvsx+gzhGf74yw1a78xFKPj6zw4AgQICJoQv0vK9M2w==} + + '@types/d3-hierarchy@3.1.7': + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + + '@types/d3-interpolate@3.0.4': + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + + '@types/d3-path@3.1.1': + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + + '@types/d3-polygon@3.0.2': + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + + '@types/d3-quadtree@3.0.6': + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + + '@types/d3-random@3.0.4': + resolution: {integrity: sha512-UHYId5WTCx4L4YNel7NU00XUXXgvgpgZOvp10PuvsQENjMDXhh2RyFc0KBjO7B45ne4Ha1yVH7ii0vnzKkuzWA==} + + '@types/d3-scale-chromatic@3.1.0': + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + + '@types/d3-scale@4.0.9': + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + + '@types/d3-selection@3.0.11': + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + + '@types/d3-shape@3.2.0': + resolution: {integrity: sha512-kVd74ta9eof3eJOvbNd1vGKS/XERRyQbT26Og63hIsvDO84cjD5gEOhsXf26w3FSoNlPVz84DOFcKv/oou+fMw==} + + '@types/d3-time-format@4.0.3': + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + + '@types/d3-time@3.0.4': + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + + '@types/d3-timer@3.0.2': + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + + '@types/d3-transition@3.0.9': + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + + '@types/d3-zoom@3.0.8': + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + + '@types/d3@7.4.3': + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/eslint@8.56.12': resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} @@ -1643,12 +2822,24 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + '@types/estree@1.0.9': + resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} + '@types/express-serve-static-core@4.19.5': resolution: {integrity: sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==} + '@types/express-serve-static-core@5.1.3': + resolution: {integrity: sha512-dPfW8NFiOF4wOHc7+N/QSxlY9cfSsenewGbAz8C8U/MULPd/YZ27LvJUIlzaXie7e6Ove9YunJGgC9tbHD2cKw==} + '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + '@types/express@5.0.6': + resolution: {integrity: sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA==} + + '@types/geojson@7946.0.16': + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -1670,6 +2861,9 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + '@types/jest@27.5.2': + resolution: {integrity: sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} @@ -1703,11 +2897,8 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@22.5.5': - resolution: {integrity: sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==} - - '@types/node@22.9.0': - resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} + '@types/node@22.20.1': + resolution: {integrity: sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -1718,6 +2909,9 @@ packages: '@types/prettier@2.7.3': resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} + '@types/prop-types@15.7.15': + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + '@types/q@1.5.8': resolution: {integrity: sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==} @@ -1730,6 +2924,17 @@ packages: '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + '@types/react-dom@18.3.7': + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react@18.3.31': + resolution: {integrity: sha512-vfEqpXTvwT91yhmwdfouStN2hSKwTvyRs8qpLfADyrq/kxDw0hZM7Wk9Ug1FELj8hIby+S/+kQCSRFF32nv2Qw==} + + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/retry@0.12.0': resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} @@ -1745,6 +2950,9 @@ packages: '@types/serve-static@1.15.7': resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + '@types/serve-static@2.2.0': + resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==} + '@types/sockjs@0.3.36': resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} @@ -1757,21 +2965,36 @@ packages: '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} + '@types/tern@0.23.9': + resolution: {integrity: sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==} + '@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/validator@13.12.2': resolution: {integrity: sha512-6SlHBzUW8Jhf3liqrGGXyTJSIFe4nqlJ5A5KaMZ2l/vbM3Wh3KSybots/wfWVzNLK4D1NZluDlSQIbIEPx6oyA==} '@types/validator@13.15.10': resolution: {integrity: sha512-T8L6i7wCuyoK8A/ZeLYt1+q0ty3Zb9+qbSSvrIVitzT3YjZqkTZ40IbRsPanlB4h1QB3JVL1SYCdR6ngtFYcuA==} + '@types/whatwg-mimetype@3.0.2': + resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} + + '@types/ws@8.18.1': + resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} + '@types/ws@8.5.12': resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + '@types/yargs@15.0.20': + resolution: {integrity: sha512-KIkX+/GgfFitlASYCGoSF+T4XRXhOubJLhkLVtSfsRTe9jWMmuM2g28zQ41BtPTG7TRBb2xHW+LCNVE9QR/vsg==} + '@types/yargs@16.0.9': resolution: {integrity: sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==} @@ -1833,6 +3056,20 @@ packages: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@use-gesture/core@10.3.1': + resolution: {integrity: sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==} + + '@use-gesture/react@10.3.1': + resolution: {integrity: sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==} + peerDependencies: + react: '>= 16.8.0' + + '@vitejs/plugin-react@4.7.0': + resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + '@vitejs/plugin-vue2@2.3.3': resolution: {integrity: sha512-qexY6+bbwY8h0AZerzUuGywNTi0cLOkbiSbggr0R3WEW95iB2hblQFyv4MAkkc2vm4gZN1cO5kzT1Kp6xlVzZw==} engines: {node: ^14.18.0 || >= 16.0.0} @@ -1840,6 +3077,35 @@ packages: vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 vue: ^2.7.0-0 + '@vitest/expect@3.2.7': + resolution: {integrity: sha512-E8eBXaKibuvH2pSZErOjdVb5vF4PbKYcrnluBTYxEk1l/VhhwZg1kZQsdtjq+CsF5CFydf2Rdkz7jDHKSisi3w==} + + '@vitest/mocker@3.2.7': + resolution: {integrity: sha512-Trr0hYO9CM3Wj6ksWHRhK9IZpIY6wTMO5u/MqXurMxT57sWBaOPEtP3Oq60ihZuh5JsiagKfz95OcxdEP6dBrA==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.2.7': + resolution: {integrity: sha512-KUHlwqVu0sRlhCdyPdQ/wBoTfRahjUky1MubOmYw9fWfIZy1gNoHpuaaQBPAaMaVYdQYHJLurzj8ECCj5OwTqA==} + + '@vitest/runner@3.2.7': + resolution: {integrity: sha512-sB9y4ovltoQP+WaUPwmSxO9WIg9Ig694Di5PalVPsYHklAdE027mehpWF2SQSVq+k6sFgaivbTjTJwZLSHbedA==} + + '@vitest/snapshot@3.2.7': + resolution: {integrity: sha512-7C+MwShwtBSI5Buwoyg3s/iY1eHL9PKAf+O1wVh/TdnjXUtkoL/9YQtre90i4MtNXM6edP1wJ2zOBpfCyhIS7g==} + + '@vitest/spy@3.2.7': + resolution: {integrity: sha512-Q2eQGI6d2L/hBtZ0qNuKcAGid68XK6cv1xsoaIma6PaJhHPoqcEJhYpXZ/5myCMqkNgtP6UKuBhbc0nHKnrkuQ==} + + '@vitest/utils@3.2.7': + resolution: {integrity: sha512-x6BDOd7dyo3PFLY3I9/HJ25X/6OurhGXk2/B9gOZNPF7XDVjeBK4k01lQE5uvDpbuheErh91qYuE1E2OEjK3Rw==} + '@vue/babel-helper-vue-jsx-merge-props@1.4.0': resolution: {integrity: sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==} @@ -2072,6 +3338,10 @@ packages: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} + accepts@2.0.0: + resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} + engines: {node: '>= 0.6'} + acorn-globals@6.0.0: resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} @@ -2107,11 +3377,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.18.0: resolution: {integrity: sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==} engines: {node: '>=0.4.0'} @@ -2128,6 +3393,16 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + + ahooks@3.10.0: + resolution: {integrity: sha512-gwlBIjvG6x9UDOxZJeJ9l4x/nlrfrHBEqmau0b2mqchwWKOwAGAMXVE7rJXy883y9hzUTn+xlHgJHcJrf98Haw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + ajv-formats@2.1.1: resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: @@ -2136,6 +3411,14 @@ packages: ajv: optional: true + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + ajv-keywords@3.5.2: resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: @@ -2212,6 +3495,9 @@ packages: any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@2.0.0: + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -2228,6 +3514,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-query@5.3.0: + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + arr-diff@4.0.0: resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} engines: {node: '>=0.10.0'} @@ -2306,6 +3595,10 @@ packages: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + assign-symbols@1.0.0: resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} engines: {node: '>=0.10.0'} @@ -2347,6 +3640,12 @@ packages: peerDependencies: eslint: '>= 4.12.1' + babel-jest@26.6.3: + resolution: {integrity: sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==} + engines: {node: '>= 10.14.2'} + peerDependencies: + '@babel/core': ^7.0.0 + babel-jest@27.5.1: resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -2367,6 +3666,10 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} + babel-plugin-jest-hoist@26.6.2: + resolution: {integrity: sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==} + engines: {node: '>= 10.14.2'} + babel-plugin-jest-hoist@27.5.1: resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -2376,16 +3679,31 @@ packages: peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs2@0.4.17: + resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.10.6: resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.14.2: + resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.6.2: resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.6.8: + resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-polyfill@6.26.0: resolution: {integrity: sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==} @@ -2394,6 +3712,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-preset-jest@26.6.2: + resolution: {integrity: sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==} + engines: {node: '>= 10.14.2'} + peerDependencies: + '@babel/core': ^7.0.0 + babel-preset-jest@27.5.1: resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -2416,6 +3740,11 @@ packages: resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} engines: {node: '>=0.10.0'} + baseline-browser-mapping@2.11.21: + resolution: {integrity: sha512-uh8vpY/1/YyFkunIDFH/12p7/7VdPKA1hejMVEbdkEaWnUz0Hesvx5EbiU6XxjyHZIOju+ZMbQJkRh+es3/spQ==} + engines: {node: '>=6.0.0'} + hasBin: true + batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -2442,6 +3771,10 @@ packages: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@2.3.0: + resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} + engines: {node: '>=18'} + bonjour-service@1.2.1: resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} @@ -2467,12 +3800,21 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.28.9: + resolution: {integrity: sha512-EWazOblFYUvlGZcfGhPUPmYh3nikUxBVb+y9MJun5f3hBi812X+8MSQTujLBtgK3cf51fJWbWfOjyeO954d+Eg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer-image-size@0.6.4: + resolution: {integrity: sha512-nEh+kZOPY1w+gcCMobZ6ETUp9WfibndnosbpwB1iJk/8Gt5ZF2bhS6+B6bPYz424KtwsR6Rflc3tCz1/ghX2dQ==} + engines: {node: '>=4.0'} + buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} @@ -2484,6 +3826,10 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + cache-base@1.0.1: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} engines: {node: '>=0.10.0'} @@ -2492,10 +3838,18 @@ packages: resolution: {integrity: sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==} engines: {node: '>=6'} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + caller-callsite@2.0.0: resolution: {integrity: sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==} engines: {node: '>=4'} @@ -2545,13 +3899,24 @@ packages: caniuse-lite@1.0.30001662: resolution: {integrity: sha512-sgMUVwLmGseH8ZIrm1d51UbrhqMCH3jvS7gF/M6byuHOnKyLOBL7W8yz5V02OHwgLGA36o/AFhWzzh4uc5aqTA==} + caniuse-lite@1.0.30001810: + resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} + canvas-3d@1.0.14: resolution: {integrity: sha512-KO13B7YR0jzPwWhG4TOCEw8kHe/drVMCbRACkpxtejKneLR5yE8iTm2JpmiWwfQWkAHL9uYXc6dU8QBXTbLcRA==} + capture-exit@2.0.0: + resolution: {integrity: sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==} + engines: {node: 6.* || 8.* || >= 10.*} + case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} engines: {node: '>=4'} + chai@5.3.3: + resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} + engines: {node: '>=18'} + chalk@1.1.3: resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==} engines: {node: '>=0.10.0'} @@ -2579,6 +3944,24 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + check-error@2.1.3: + resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==} + engines: {node: '>= 16'} + + cherry-markdown@0.10.3: + resolution: {integrity: sha512-lyrEO6QFhyBYDKSG7uoYLncqnszsm1zJFnxXh1j8D7FKB/7u0jft08sEzfoZ0OkcxaP8+aOUL8Ji9SpA75djVA==} + + cherry-markdown@0.11.0-alpha-2: + resolution: {integrity: sha512-yx2jFkr8nFZbfB27Y3EWan8E0xdRnLvKes1LUuTJeY/lu9NYKxjFJN/w88QhV1DvyOxBBBcI2rLPb9oRjKOIDQ==} + + chevrotain-allstar@0.3.1: + resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} + peerDependencies: + chevrotain: ^11.0.0 + + chevrotain@11.0.3: + resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} + chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -2600,6 +3983,9 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + cjs-module-lexer@0.6.0: + resolution: {integrity: sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==} + cjs-module-lexer@1.4.1: resolution: {integrity: sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==} @@ -2607,6 +3993,9 @@ packages: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} engines: {node: '>=0.10.0'} + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + classnames@2.5.1: resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} @@ -2660,6 +4049,10 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -2915,14 +4308,26 @@ packages: whiskers: optional: true + construct-style-sheets-polyfill@3.0.1: + resolution: {integrity: sha512-vyAiTcS3i29IxjzJ12K2MGUUBYgrF69p6fKD+8ZPRLFhwTtuaxXLpazl4Yw4FITsQXwUMrh8juI1bOHWYjzkwA==} + engines: {npm: '>=7'} + content-disposition@0.5.4: resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} engines: {node: '>= 0.6'} + content-disposition@1.1.0: + resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} + engines: {node: '>=18'} + content-type@1.0.5: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + content-type@2.1.0: + resolution: {integrity: sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==} + engines: {node: '>=18'} + conventional-changelog-angular@1.6.6: resolution: {integrity: sha512-suQnFSqCxRwyBxY68pYTsFkG0taIdinHLNEAX5ivtw8bCRnIgnpvcHmlR/yjUyZIrNPYAoXlY1WiEKWgSE4BNg==} @@ -3020,10 +4425,18 @@ packages: cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + cookie-signature@1.2.2: + resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} + engines: {node: '>=6.6.0'} + cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + copy-anything@2.0.6: resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} @@ -3031,6 +4444,9 @@ packages: resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} engines: {node: '>=0.10.0'} + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + copy-webpack-plugin@9.1.0: resolution: {integrity: sha512-rxnR7PaGigJzhqETHGmAcxKnLZSR5u1Y3/bcIv/1FnqXedcL/E2ewK7ZCNrArJKCiSv8yVXhTqetJh8inDvfsA==} engines: {node: '>= 12.13.0'} @@ -3040,6 +4456,10 @@ packages: core-js-compat@3.38.1: resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} + core-js-compat@3.50.0: + resolution: {integrity: sha512-XGpFGbMLHwSt74YLTKho7Ib242qi6O8MSX+sRokV4oz7iKXvQWGYZthjIhjRGMxjzVkAubBO512dKGYcefmX3Q==} + engines: {node: '>=6.4.0'} + core-js-pure@3.38.1: resolution: {integrity: sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==} @@ -3053,6 +4473,16 @@ packages: core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cors@2.8.6: + resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} + engines: {node: '>= 0.10'} + + cose-base@1.0.3: + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + + cose-base@2.2.0: + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + cosmiconfig-typescript-loader@5.0.0: resolution: {integrity: sha512-+8cK7jRAReYkMwMiG+bxhcNKiHJDM6bR9FD/nGBXOWdMLuYawjF5cGrtLilJ+LGd3ZjCXnJjR5DkfWPoIVlqJA==} engines: {node: '>=v16'} @@ -3106,6 +4536,14 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + deprecated: Active development of CryptoJS has been discontinued. This library is no longer maintained. + css-declaration-sorter@6.4.1: resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} @@ -3156,6 +4594,10 @@ packages: css-select@4.3.0: resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} + css-tree@1.0.0-alpha.29: + resolution: {integrity: sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==} + engines: {node: '>=0.10.0'} + css-tree@1.0.0-alpha.37: resolution: {integrity: sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==} engines: {node: '>=8.0.0'} @@ -3203,6 +4645,10 @@ packages: peerDependencies: postcss: ^8.2.15 + csso@3.5.1: + resolution: {integrity: sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==} + engines: {node: '>=0.10.0'} + csso@4.2.0: resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} engines: {node: '>=8.0.0'} @@ -3213,10 +4659,17 @@ packages: cssom@0.4.4: resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} + cssom@0.5.0: + resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} + cssstyle@2.3.0: resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} engines: {node: '>=8'} + cssstyle@4.6.0: + resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} + engines: {node: '>=18'} + csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -3227,45 +4680,212 @@ packages: resolution: {integrity: sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==} engines: {node: '>=0.10.0'} + cytoscape-cose-bilkent@4.1.0: + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape-fcose@2.2.0: + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + peerDependencies: + cytoscape: ^3.2.0 + + cytoscape@3.34.3: + resolution: {integrity: sha512-yfYGhRcGAntq6YBD583j4n0Eg3jIxvWmZtz/5uz9UYkeIStSlMxuUja+ec5j3iBD8nv1rwaOAYMW09tBdkSeaQ==} + engines: {node: '>=0.10'} + cz-conventional-changelog@3.3.0: resolution: {integrity: sha512-U466fIzU5U22eES5lTNiNbZ+d8dfcHcssH4o7QsdWaCcRs/feIPCxKYSWkYBNs5mny7MvEfwpTLWjvbm94hecw==} engines: {node: '>= 10'} - dargs@4.1.0: - resolution: {integrity: sha512-jyweV/k0rbv2WK4r9KLayuBrSh2Py0tNmV7LBoSMH4hMQyrG8OPyIOWB2VEx4DJKXWmK4lopYMVvORlDt2S8Aw==} - engines: {node: '>=0.10.0'} + d3-array@2.12.1: + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} - dargs@7.0.0: - resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} - engines: {node: '>=8'} + d3-array@3.2.4: + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} - data-urls@2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} + d3-axis@3.0.0: + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} + d3-brush@3.0.0: + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} + d3-chord@3.0.1: + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} + d3-color@3.1.0: + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} - date-fns@1.30.1: - resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} + d3-contour@4.0.2: + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} - dateformat@3.0.3: - resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + d3-delaunay@6.0.4: + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} - dayjs@1.11.10: - resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + d3-dispatch@3.0.1: + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} - dayjs@1.11.23: - resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==} + d3-drag@3.0.0: + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} + + d3-dsv@3.0.1: + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} + hasBin: true + + d3-ease@3.0.1: + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} + + d3-fetch@3.0.1: + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} + + d3-force@3.0.0: + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} + + d3-format@3.1.2: + resolution: {integrity: sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==} + engines: {node: '>=12'} + + d3-geo@3.1.1: + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} + + d3-hierarchy@3.1.2: + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} + + d3-interpolate@3.0.1: + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} + + d3-path@1.0.9: + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + + d3-path@3.1.0: + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} + + d3-polygon@3.0.1: + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} + + d3-quadtree@3.0.1: + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} + + d3-random@3.0.1: + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} + + d3-sankey@0.12.3: + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + + d3-scale-chromatic@3.1.0: + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} + + d3-scale@4.0.2: + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} + + d3-selection@3.0.0: + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} + + d3-shape@1.3.7: + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + + d3-shape@3.2.0: + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} + + d3-time-format@4.1.0: + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} + + d3-time@3.1.0: + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} + + d3-timer@3.0.1: + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} + + d3-transition@3.0.1: + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} + peerDependencies: + d3-selection: 2 - 3 + + d3-zoom@3.0.0: + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} + + d3@7.9.0: + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} + + dagre-d3-es@7.0.11: + resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} + + dagre-d3-es@7.0.9: + resolution: {integrity: sha512-rYR4QfVmy+sR44IBDvVtcAmOReGBvRCWDpO2QjYwqgh9yijw6eSHBqaPG/LIOEy7aBsniLvtMW6pg19qJhq60w==} + + dargs@4.1.0: + resolution: {integrity: sha512-jyweV/k0rbv2WK4r9KLayuBrSh2Py0tNmV7LBoSMH4hMQyrG8OPyIOWB2VEx4DJKXWmK4lopYMVvORlDt2S8Aw==} + engines: {node: '>=0.10.0'} + + dargs@7.0.0: + resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} + engines: {node: '>=8'} + + data-urls@2.0.0: + resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} + engines: {node: '>=10'} + + data-urls@3.0.2: + resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} + engines: {node: '>=12'} + + data-urls@5.0.0: + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} + + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + + date-fns@1.30.1: + resolution: {integrity: sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==} + + dateformat@3.0.3: + resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} + + dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} + + dayjs@1.11.23: + resolution: {integrity: sha512-QDTCU0M0MxR3hQfnlDJfwekQiaanm1ubOD231u73WBckQ/fsamwRLiE2GBz6D3a/xF1NgfiDLJjXBa1hYOYTtQ==} de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} @@ -3298,6 +4918,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -3313,6 +4942,9 @@ packages: decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + decimal.js@10.6.0: + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -3320,6 +4952,10 @@ packages: dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -3366,6 +5002,9 @@ packages: resolution: {integrity: sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A==} engines: {node: '>=4'} + delaunator@5.1.0: + resolution: {integrity: sha512-AGrQ4QSgssa1NGmWmLPqN5NY2KajF5MqxetNEO+o0n3ZwZZeTmt7bBnvzHWrmkZFxGgr4HdyFgelzgi06otLuQ==} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -3384,6 +5023,10 @@ packages: deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -3410,6 +5053,10 @@ packages: diacritics@1.3.0: resolution: {integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==} + diff-sequences@26.6.2: + resolution: {integrity: sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==} + engines: {node: '>= 10.14.2'} + diff-sequences@27.5.1: resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -3437,9 +5084,15 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + dom-accessibility-api@0.5.16: + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + dom-converter@0.2.0: resolution: {integrity: sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==} + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + dom-serializer@0.2.2: resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==} @@ -3460,6 +5113,11 @@ packages: engines: {node: '>=8'} deprecated: Use your platform's native DOMException instead + domexception@4.0.0: + resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} + engines: {node: '>=12'} + deprecated: Use your platform's native DOMException instead + domhandler@4.3.1: resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} engines: {node: '>= 4'} @@ -3468,6 +5126,12 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} + dompurify@2.4.3: + resolution: {integrity: sha512-q6QaLcakcRjebxjg8/+NP+h0rPfatOgOzc46Fst9VAA3jF2ApfKBNKMzdP4DYTqtUMXSCd5pRS/8Po/OmoCHZQ==} + + dompurify@3.4.15: + resolution: {integrity: sha512-EUBjM+B+lkDE41iE82DDSCfkoPGfXx8IxFxPMjNzm/Uk4xDet77rTN9wqlxlVg71kK7XGuUMv6wUxJUwwv+Xyw==} + domutils@1.7.0: resolution: {integrity: sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==} @@ -3477,6 +5141,9 @@ packages: domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} @@ -3495,10 +5162,18 @@ packages: resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} engines: {node: '>=10'} + dotenv@17.4.2: + resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==} + engines: {node: '>=12'} + dotgitignore@2.1.0: resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==} engines: {node: '>=6'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} @@ -3512,10 +5187,20 @@ packages: electron-to-chromium@1.5.27: resolution: {integrity: sha512-o37j1vZqCoEgBuWWXLHQgTN/KDKe7zwpiY5CPeq2RvUqOyJw9xnrULzZAEVQ5p4h+zjMk7hgtOoPdnLxr7m/jw==} + electron-to-chromium@1.5.423: + resolution: {integrity: sha512-rRZfTSY8ptHYMQxa+uIycJMFKmY1T0GIApNMXJYGehguTZa56TEEl19pKPCoBqk5Gpf7QizZn/jt7xur+DYxag==} + elegant-spinner@1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} engines: {node: '>=0.10.0'} + elkjs@0.8.2: + resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==} + + emittery@0.7.2: + resolution: {integrity: sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==} + engines: {node: '>=10'} + emittery@0.8.1: resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} engines: {node: '>=10'} @@ -3556,6 +5241,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + entities@7.0.1: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} @@ -3585,6 +5274,10 @@ packages: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} @@ -3596,14 +5289,25 @@ packages: es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} @@ -3616,6 +5320,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.28.2: + resolution: {integrity: sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -3845,6 +5554,9 @@ packages: estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} @@ -3864,6 +5576,17 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + eventsource-parser@3.1.1: + resolution: {integrity: sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==} + engines: {node: '>=18.0.0'} + + eventsource@3.0.7: + resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} + engines: {node: '>=18.0.0'} + + exec-sh@0.3.6: + resolution: {integrity: sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==} + execa@0.8.0: resolution: {integrity: sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==} engines: {node: '>=4'} @@ -3872,6 +5595,10 @@ packages: resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==} engines: {node: '>=6'} + execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -3888,14 +5615,35 @@ packages: resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} engines: {node: '>=0.10.0'} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} + engines: {node: '>=12.0.0'} + + expect@26.6.2: + resolution: {integrity: sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==} + engines: {node: '>= 10.14.2'} + expect@27.5.1: resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + expr-parser@1.0.0: + resolution: {integrity: sha512-ncuWTCWH0M5KbaYikXxZ3FG3Q+FTYIEXeXAbxYscdZLFNnR5Le5gRU2r/a/JUZHnxwBDZcxWEWzCoPQlW9Engg==} + + express-rate-limit@8.7.0: + resolution: {integrity: sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==} + engines: {node: '>= 16'} + peerDependencies: + express: '>= 4.11' + express@4.21.0: resolution: {integrity: sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==} engines: {node: '>= 0.10.0'} + express@5.2.1: + resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} + engines: {node: '>= 18'} + extend-shallow@2.0.1: resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} engines: {node: '>=0.10.0'} @@ -3922,6 +5670,9 @@ packages: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} + fast-json-patch@3.1.1: + resolution: {integrity: sha512-vf6IHUX2SBcA+5/+4883dsIjpBTqmfBjmYiWK1savxQmFk4JfBMLa7ynTYOs1Rolp/T1betJxHiGD3g1Mn8lUQ==} + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -3953,6 +5704,15 @@ packages: picomatch: optional: true + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + figures@1.7.0: resolution: {integrity: sha512-UxKlfCRuCBxSXU4C6t9scbDyWZ4VlaFFdojKtzJuSkuOBQ5CNFum+zZXFwHjo+CxBC1t6zlYPgHIgFjL8ggoEQ==} engines: {node: '>=0.10.0'} @@ -3989,6 +5749,10 @@ packages: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} + finalhandler@2.1.1: + resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} + engines: {node: '>= 18.0.0'} + find-cache-dir@3.3.2: resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} engines: {node: '>=8'} @@ -4057,6 +5821,10 @@ packages: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} + engines: {node: '>= 6'} + forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -4072,6 +5840,10 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + fs-access@1.0.1: resolution: {integrity: sha512-05cXDIwNbFaoFWaz5gNHlUTbH5whiss/hr/ibzPd4MH3cR4w0ZKeIPiVdbyJurg3O5r/Bjpvn9KOb1/rPMf3nA==} engines: {node: '>=0.10.0'} @@ -4124,6 +5896,10 @@ packages: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} @@ -4136,6 +5912,10 @@ packages: engines: {node: '>=6.9.0'} hasBin: true + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-stdin@7.0.0: resolution: {integrity: sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==} engines: {node: '>=8'} @@ -4148,6 +5928,10 @@ packages: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -4262,6 +6046,10 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -4272,6 +6060,9 @@ packages: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} + growly@1.3.0: + resolution: {integrity: sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==} + gsap@3.8.0: resolution: {integrity: sha512-cvpzKkWFePDZCycwXwJnDSpTR3j+a4QLQF/t0c+pXqzRESgAYx5hieaoshzZFjbwsARqr0+5c3GKE7wI273w/g==} @@ -4279,6 +6070,9 @@ packages: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} + hachure-fill@0.5.2: + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + handle-thing@2.0.1: resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} @@ -4287,6 +6081,10 @@ packages: engines: {node: '>=0.4.7'} hasBin: true + happy-dom@20.14.0: + resolution: {integrity: sha512-4bRh1KzRvKDnFNTlLhzT1RZTpkKhQbQDl9j+7GXszWsvuspYdo29k6OHRf4PwiM6oLb8r/pMWeYiJjkfod5AvQ==} + engines: {node: '>=20.0.0'} + hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} @@ -4317,6 +6115,10 @@ packages: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -4347,6 +6149,10 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} + engines: {node: '>= 0.4'} + he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -4354,10 +6160,17 @@ packages: highlight.js@10.7.3: resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + homedir-polyfill@1.0.3: resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} engines: {node: '>=0.10.0'} + hono@4.13.7: + resolution: {integrity: sha512-c8/gF9ac8Y78/agExVocyLevgR+JlpNB444Py0FSX8pJoPdYUfUzRcXtYEYGwt6l19qIlVZPN5Mfsw9jFShmQQ==} + engines: {node: '>=16.9.0'} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -4368,10 +6181,21 @@ packages: hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + htm@3.1.1: + resolution: {integrity: sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==} + html-encoding-sniffer@2.0.1: resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} engines: {node: '>=10'} + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + + html-encoding-sniffer@4.0.0: + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} + html-entities@2.5.2: resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} @@ -4403,6 +6227,9 @@ packages: webpack: optional: true + htmlparser2@10.1.0: + resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} + htmlparser2@6.1.0: resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} @@ -4420,6 +6247,10 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-errors@2.0.1: + resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} + engines: {node: '>= 0.8'} + http-parser-js@0.5.8: resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} @@ -4427,6 +6258,14 @@ packages: resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} engines: {node: '>= 6'} + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + http-proxy-middleware@2.0.6: resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} engines: {node: '>=12.0.0'} @@ -4444,6 +6283,14 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + + human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -4476,6 +6323,10 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.3: + resolution: {integrity: sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==} + engines: {node: '>=0.10.0'} + icss-utils@5.1.0: resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} engines: {node: ^10 || ^12 || >= 14} @@ -4501,6 +6352,9 @@ packages: engines: {node: '>=0.10.0'} hasBin: true + immer@10.2.0: + resolution: {integrity: sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==} + import-fresh@2.0.0: resolution: {integrity: sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==} engines: {node: '>=4'} @@ -4521,6 +6375,9 @@ packages: import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -4562,6 +6419,17 @@ packages: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} + internmap@1.0.1: + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + + internmap@2.0.3: + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} + + ip-address@10.7.0: + resolution: {integrity: sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==} + engines: {node: '>= 12'} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -4607,10 +6475,18 @@ packages: resolution: {integrity: sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==} hasBin: true + is-ci@2.0.0: + resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} + hasBin: true + is-core-module@2.15.1: resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} + is-core-module@2.16.2: + resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} + engines: {node: '>= 0.4'} + is-data-descriptor@1.0.1: resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} engines: {node: '>= 0.4'} @@ -4690,6 +6566,9 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} @@ -4752,6 +6631,12 @@ packages: is-promise@2.2.2: resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} + is-promise@4.0.0: + resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} + + is-reference@1.2.1: + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -4845,6 +6730,10 @@ packages: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} + istanbul-lib-instrument@4.0.3: + resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} + engines: {node: '>=8'} + istanbul-lib-instrument@5.2.1: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} @@ -4864,9 +6753,16 @@ packages: iterator.prototype@1.1.2: resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + j-component@1.4.10: + resolution: {integrity: sha512-6EQEk4vbR3iQX7QiW26T0I8UA9KApMLJkFBxEmJ+xHa73qH+kQEa+IYLgy9p/V6UhUv46W6VqSJvwhsWMRx+mA==} + javascript-stringify@2.1.0: resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} + jest-changed-files@26.6.2: + resolution: {integrity: sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==} + engines: {node: '>= 10.14.2'} + jest-changed-files@27.5.1: resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4875,6 +6771,11 @@ packages: resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-cli@26.6.3: + resolution: {integrity: sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==} + engines: {node: '>= 10.14.2'} + hasBin: true + jest-cli@27.5.1: resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4885,6 +6786,15 @@ packages: node-notifier: optional: true + jest-config@26.6.3: + resolution: {integrity: sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==} + engines: {node: '>= 10.14.2'} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + jest-config@27.5.1: resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4894,50 +6804,98 @@ packages: ts-node: optional: true + jest-diff@26.6.2: + resolution: {integrity: sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==} + engines: {node: '>= 10.14.2'} + jest-diff@27.5.1: resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-docblock@26.0.0: + resolution: {integrity: sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==} + engines: {node: '>= 10.14.2'} + jest-docblock@27.5.1: resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-each@26.6.2: + resolution: {integrity: sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==} + engines: {node: '>= 10.14.2'} + jest-each@27.5.1: resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-environment-jsdom@26.6.2: + resolution: {integrity: sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==} + engines: {node: '>= 10.14.2'} + jest-environment-jsdom@27.5.1: resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-environment-node@26.6.2: + resolution: {integrity: sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==} + engines: {node: '>= 10.14.2'} + jest-environment-node@27.5.1: resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-get-type@26.3.0: + resolution: {integrity: sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==} + engines: {node: '>= 10.14.2'} + jest-get-type@27.5.1: resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-haste-map@26.6.2: + resolution: {integrity: sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==} + engines: {node: '>= 10.14.2'} + jest-haste-map@27.5.1: resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-jasmine2@26.6.3: + resolution: {integrity: sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==} + engines: {node: '>= 10.14.2'} + jest-jasmine2@27.5.1: resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-leak-detector@26.6.2: + resolution: {integrity: sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==} + engines: {node: '>= 10.14.2'} + jest-leak-detector@27.5.1: resolution: {integrity: sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-matcher-utils@26.6.2: + resolution: {integrity: sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==} + engines: {node: '>= 10.14.2'} + jest-matcher-utils@27.5.1: resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-message-util@26.6.2: + resolution: {integrity: sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==} + engines: {node: '>= 10.14.2'} + jest-message-util@27.5.1: resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-mock@26.6.2: + resolution: {integrity: sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==} + engines: {node: '>= 10.14.2'} + jest-mock@27.5.1: resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -4951,46 +6909,91 @@ packages: jest-resolve: optional: true + jest-regex-util@26.0.0: + resolution: {integrity: sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==} + engines: {node: '>= 10.14.2'} + jest-regex-util@27.5.1: resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-resolve-dependencies@26.6.3: + resolution: {integrity: sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==} + engines: {node: '>= 10.14.2'} + jest-resolve-dependencies@27.5.1: resolution: {integrity: sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-resolve@26.6.2: + resolution: {integrity: sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==} + engines: {node: '>= 10.14.2'} + jest-resolve@27.5.1: resolution: {integrity: sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-runner@26.6.3: + resolution: {integrity: sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==} + engines: {node: '>= 10.14.2'} + jest-runner@27.5.1: resolution: {integrity: sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-runtime@26.6.3: + resolution: {integrity: sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==} + engines: {node: '>= 10.14.2'} + hasBin: true + jest-runtime@27.5.1: resolution: {integrity: sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-serializer@26.6.2: + resolution: {integrity: sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==} + engines: {node: '>= 10.14.2'} + jest-serializer@27.5.1: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-snapshot@26.6.2: + resolution: {integrity: sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==} + engines: {node: '>= 10.14.2'} + jest-snapshot@27.5.1: resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-util@26.6.2: + resolution: {integrity: sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==} + engines: {node: '>= 10.14.2'} + jest-util@27.5.1: resolution: {integrity: sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-validate@26.6.2: + resolution: {integrity: sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==} + engines: {node: '>= 10.14.2'} + jest-validate@27.5.1: resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-watcher@26.6.2: + resolution: {integrity: sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==} + engines: {node: '>= 10.14.2'} + jest-watcher@27.5.1: resolution: {integrity: sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + jest-worker@26.6.2: + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} + jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -4999,6 +7002,11 @@ packages: resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest@26.6.3: + resolution: {integrity: sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==} + engines: {node: '>= 10.14.2'} + hasBin: true + jest@27.5.1: resolution: {integrity: sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -5016,6 +7024,12 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + jose@6.2.12: + resolution: {integrity: sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==} + + js-cookie@3.0.8: + resolution: {integrity: sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==} + js-message@1.0.7: resolution: {integrity: sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==} engines: {node: '>=0.6.0'} @@ -5023,6 +7037,9 @@ packages: js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-tokens@9.0.1: + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true @@ -5040,15 +7057,38 @@ packages: canvas: optional: true - jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - - jsesc@2.5.2: + jsdom@19.0.0: + resolution: {integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==} + engines: {node: '>=12'} + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + + jsdom@26.1.0: + resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} + engines: {node: '>=18'} + peerDependencies: + canvas: ^3.0.0 + peerDependenciesMeta: + canvas: + optional: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -5064,6 +7104,9 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + json-schema-typed@8.0.2: + resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -5090,9 +7133,16 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} + katex@0.16.47: + resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==} + hasBin: true + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + kind-of@3.2.2: resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} engines: {node: '>=0.10.0'} @@ -5116,12 +7166,22 @@ packages: known-css-properties@0.29.0: resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==} + langium@3.3.1: + resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} + engines: {node: '>=16.0.0'} + launch-editor-middleware@2.9.1: resolution: {integrity: sha512-4wF6AtPtaIENiZdH/a+3yW8Xni7uxzTEDd1z+gH00hUWBCSmQknFohznMd9BWhLk8MXObeB5ir69GbIr9qFW1w==} launch-editor@2.9.1: resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} + layout-base@1.0.2: + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + + layout-base@2.0.1: + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + less-loader@10.2.0: resolution: {integrity: sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==} engines: {node: '>= 12.13.0'} @@ -5129,6 +7189,11 @@ packages: less: ^3.5.0 || ^4.0.0 webpack: ^5.0.0 + less@3.13.1: + resolution: {integrity: sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==} + engines: {node: '>=6'} + hasBin: true + less@4.2.0: resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} engines: {node: '>=6'} @@ -5295,9 +7360,15 @@ packages: resolution: {integrity: sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==} engines: {node: '>=0.10.0'} + loupe@3.2.1: + resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} + lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -5308,6 +7379,13 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} + lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + hasBin: true + + magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -5367,6 +7445,9 @@ packages: markdown-it-emoji@2.0.2: resolution: {integrity: sha512-zLftSaNrKuYl0kR5zm4gxXjHaOI3FAOEaloKmRA5hijmJZvSjmxcokOLlzycb/HXlUFWzXqpIEoyEMCE4i9MvQ==} + markdown-it-fence@0.1.3: + resolution: {integrity: sha512-mdZbkwJUyZXhyDX4QzD+WnIhxWBq9oIIJU22E6jCT7MHgIp79oEOJfwXIl/HqmfIxnXEdC47sBGn4h6chM4DKw==} + markdown-it-link-attributes@4.0.1: resolution: {integrity: sha512-pg5OK0jPLg62H4k7M9mRJLT61gUp9nvG0XveKYHMOOluASo9OEF13WlXrpAp2aj35LbedAy3QOCgQCw0tkLKAQ==} @@ -5377,13 +7458,25 @@ packages: resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} hasBin: true + marked@16.4.2: + resolution: {integrity: sha512-TI3V8YYWvkVf3KJe1dRkpnjs68JUPyEa5vjKrp1XEEJUAOaQc+Qj+L1qWbPd0SJuAdQkFU0h73sXXqwDYxsiDA==} + engines: {node: '>= 20'} + hasBin: true + matcher@1.1.1: resolution: {integrity: sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==} engines: {node: '>=4'} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + mathml-tag-names@2.1.3: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} + mdn-data@1.1.4: + resolution: {integrity: sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==} + mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} @@ -5400,6 +7493,10 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + media-typer@1.1.1: + resolution: {integrity: sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==} + engines: {node: '>= 0.8'} + memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -5427,6 +7524,10 @@ packages: merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + merge-descriptors@2.0.0: + resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} + engines: {node: '>=18'} + merge-source-map@1.1.0: resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==} @@ -5440,6 +7541,12 @@ packages: merge@2.1.1: resolution: {integrity: sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==} + mermaid@11.12.0: + resolution: {integrity: sha512-ZudVx73BwrMJfCFmSSJT84y6u5brEoV8DOItdHomNLz32uBjNrelm7mg95X7g+C6UoQH/W6mBLGDEDv73JdxBg==} + + mermaid@9.4.3: + resolution: {integrity: sha512-TLkQEtqhRSuEHSE34lh5bCa94KATCyluAXmFnNI2PRZwOpXFeqiJWwZl+d2CcemE1RS6QbbueSSq9QIg8Uxcyw==} + methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -5460,10 +7567,18 @@ packages: resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} engines: {node: '>= 0.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.2: + resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} + engines: {node: '>=18'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -5511,6 +7626,18 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} + miniprogram-api-typings@3.12.3: + resolution: {integrity: sha512-o7bOfrU28MEMCBWo83nXv0ROQSBFxJcfCl4f2wTYqah64ipC5RGqLJfvWJTWhlQt2ECVwspSzM8LgvnfMo7TEQ==} + + miniprogram-compiler@0.2.3: + resolution: {integrity: sha512-/MfFiXTBUwYxnrTbj1hgwk1+qGkMCTL1zi8IReOq/0SPVkUxpx19E89w+ohYCELFXkMfVbD+6ejrHh3Y1u5sVg==} + + miniprogram-exparser@2.29.1: + resolution: {integrity: sha512-f2LUVYcQ5O664nOHhrEbtR//hlqln88dRY0mIwuRncJfuXMCdK9FBk0vzNDG6EgaaeTt3iGLeFQLRHlhYktkXw==} + + miniprogram-simulate@1.6.2: + resolution: {integrity: sha512-s66u/TWOo8oRNDRqrbP4VrUXBZyiviZrr9KLRILRQAwkE6pJ7Mj+Oc15dpeH3AMDmrnwqfjbprjWcci266IdoQ==} + mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} @@ -5568,6 +7695,13 @@ packages: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} engines: {node: '>=0.10.0'} + nanostores@0.11.4: + resolution: {integrity: sha512-k1oiVNN4hDK8NcNERSZLQiMfRzEGtfnvZvdBvey3SQbgn8Dcrk0h1I6vpxApjb10PFUflZrgJ2WEZyJQ+5v7YQ==} + engines: {node: ^18.0.0 || >=20.0.0} + + native-request@1.1.2: + resolution: {integrity: sha512-/etjwrK0J4Ebbcnt35VMWnfiUX/B04uwGJxyJInagxDqf2z5drSt/lsOvEMWGYunz1kaLZAFrV4NDAbOoDKvAQ==} + natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} @@ -5583,6 +7717,10 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + negotiator@1.1.0: + resolution: {integrity: sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==} + engines: {node: '>=18'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -5608,14 +7746,24 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + node-notifier@8.0.2: + resolution: {integrity: sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==} + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.54: + resolution: {integrity: sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ==} + engines: {node: '>=18'} + nodemon@3.1.7: resolution: {integrity: sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==} engines: {node: '>=10'} hasBin: true + non-layered-tidy-tree-layout@2.0.2: + resolution: {integrity: sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==} + normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -5627,6 +7775,10 @@ packages: resolution: {integrity: sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==} engines: {node: '>=0.10.0'} + normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -5682,6 +7834,9 @@ packages: nwsapi@2.2.12: resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} + nwsapi@2.2.27: + resolution: {integrity: sha512-gQPNF78qebCQ6tvVFBYrvJdBNOrYZm90ZlXgpIFm06p6qHDHq/XC4TnJftN6OMbxVE0UTBAoRgcsDeJBBooITw==} + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -5694,6 +7849,10 @@ packages: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -5733,6 +7892,12 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + omi-transition@0.1.11: + resolution: {integrity: sha512-AsiLCOzMUuFRQ2juGXnSVjcOA2eOb4WdZzbiALbeyXCUgxdRTlE0ekO08IgyvAe9Rdc9fhx0iEgLnwd7ufneCg==} + + omi@7.7.13: + resolution: {integrity: sha512-LA/rLhGE7PO/OVN9Mp4TG4YL3Dt5dERM9fsVyiPmE75CRCuyW7vVfrYK8Ee7EPbQuTycYRsfbrD1YBQytOY/jw==} + on-finished@2.4.1: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} @@ -5776,6 +7941,10 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + p-each-series@2.2.0: + resolution: {integrity: sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==} + engines: {node: '>=8'} + p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} @@ -5828,6 +7997,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-manager-detector@1.8.0: + resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==} + param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -5860,6 +8032,9 @@ packages: parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -5871,6 +8046,9 @@ packages: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} + path-data-parser@0.1.0: + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} @@ -5900,6 +8078,9 @@ packages: path-to-regexp@0.1.10: resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + path-to-regexp@8.4.2: + resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} + path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} @@ -5908,6 +8089,13 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@2.0.1: + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} + performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} @@ -5928,6 +8116,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} + engines: {node: '>=12'} + pidtree@0.3.1: resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} engines: {node: '>=0.10'} @@ -5957,6 +8149,10 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + pkce-challenge@5.0.1: + resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} + engines: {node: '>=16.20.0'} + pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -5968,6 +8164,12 @@ packages: resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} engines: {node: '>=10.13.0'} + points-on-curve@0.2.0: + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + + points-on-path@0.2.1: + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + portfinder@1.0.32: resolution: {integrity: sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==} engines: {node: '>= 0.12.0'} @@ -6223,9 +8425,18 @@ packages: engines: {node: '>=10.13.0'} hasBin: true + prettier@3.9.6: + resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==} + engines: {node: '>=14'} + hasBin: true + pretty-error@4.0.0: resolution: {integrity: sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==} + pretty-format@26.6.2: + resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} + engines: {node: '>= 10'} + pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -6297,6 +8508,10 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} + qs@6.16.0: + resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} + engines: {node: '>=0.6'} + querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -6329,18 +8544,50 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} engines: {node: '>= 0.8'} + raw-body@3.0.2: + resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} + engines: {node: '>= 0.10'} + raw-loader@4.0.2: resolution: {integrity: sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==} engines: {node: '>= 10.13.0'} peerDependencies: webpack: ^4.0.0 || ^5.0.0 + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: '>=16.6.0' + react-dom: '>=16.6.0' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + reactive-signal@2.0.1: + resolution: {integrity: sha512-c+avHi2L+sHn9kkEsDZskRGtkfj6PtoTn1wGgutY2NZR9jCI0InXY7zqWbUXz6cGcuIXKMkQq/mtUiUXBFmKVA==} + read-pkg-up@3.0.0: resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} engines: {node: '>=4'} @@ -6396,6 +8643,10 @@ packages: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} @@ -6433,6 +8684,17 @@ packages: resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} engines: {node: '>=4'} + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.13.2: + resolution: {integrity: sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==} + hasBin: true + regjsparser@0.9.1: resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} hasBin: true @@ -6441,6 +8703,9 @@ packages: resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==} engines: {node: '>= 0.10'} + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + renderkid@3.0.0: resolution: {integrity: sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==} @@ -6466,6 +8731,9 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -6501,6 +8769,11 @@ packages: resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==} engines: {node: '>=10'} + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + engines: {node: '>= 0.4'} + hasBin: true + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -6539,11 +8812,31 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup@4.40.0: - resolution: {integrity: sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==} + robust-predicates@3.0.3: + resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} + + rollup-plugin-inject-process-env@1.3.1: + resolution: {integrity: sha512-kKDoL30IZr0wxbNVJjq+OS92RJSKRbKV6B5eNW4q3mZTFqoWDh6lHy+mPDYuuGuERFNKXkG+AKxvYqC9+DRpKQ==} + + rollup@4.63.1: + resolution: {integrity: sha512-3Df9jsstwhccuEfmAMi9l8XUh/GOkVObmFTU7CCVBysEbcOZLl84jCtaAZMcPiMz2EGKsATzQcU+Xr3n/wU6cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + roughjs@4.6.6: + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + + router@2.2.0: + resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} + engines: {node: '>= 18'} + + rrweb-cssom@0.8.0: + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} + + rsvp@4.8.5: + resolution: {integrity: sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==} + engines: {node: 6.* || >= 7.*} + run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -6556,6 +8849,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + rxjs@6.6.7: resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} @@ -6583,6 +8879,12 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sane@4.1.0: + resolution: {integrity: sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==} + engines: {node: 6.* || 8.* || >= 10.*} + deprecated: some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added + hasBin: true + sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} @@ -6593,6 +8895,13 @@ packages: resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} engines: {node: '>=10'} + saxes@6.0.0: + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + schema-utils@2.7.1: resolution: {integrity: sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==} engines: {node: '>= 8.9.0'} @@ -6605,6 +8914,10 @@ packages: resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} engines: {node: '>= 12.13.0'} + screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + section-matter@1.0.0: resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} engines: {node: '>=4'} @@ -6643,6 +8956,10 @@ packages: resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} engines: {node: '>= 0.8.0'} + send@1.2.1: + resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} + engines: {node: '>= 18'} + serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -6654,6 +8971,10 @@ packages: resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} engines: {node: '>= 0.8.0'} + serve-static@2.2.1: + resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} + engines: {node: '>= 18'} + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -6698,10 +9019,32 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shellwords@0.1.1: + resolution: {integrity: sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==} + + side-channel-list@1.0.1: + resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} + side-channel@1.1.1: + resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} + engines: {node: '>= 0.4'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -6735,6 +9078,13 @@ packages: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} + smob@1.6.2: + resolution: {integrity: sha512-RQsvleCbF8cVHEv+xuDGaA4pOizFqJ0GgjtMSRo6oP8pnN7WsigHgVGey6aILRBKv4W2YOMHLqbKdnB6hpB9fw==} + engines: {node: '>=20.0.0'} + + smoothscroll-polyfill@0.4.4: + resolution: {integrity: sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==} + snapdragon-node@2.1.1: resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} engines: {node: '>=0.10.0'} @@ -6783,6 +9133,10 @@ packages: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -6830,6 +9184,9 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} @@ -6855,6 +9212,13 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + std-env@3.10.0: + resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + string-argv@0.0.2: resolution: {integrity: sha512-p6/Mqq0utTQWUeGMi/m0uBtlLZEwXSY3+mXzeRRqw7fz5ezUb28Wr0R99NlfbWaMmL/jCyT9be4jpn7Yz8IO8w==} engines: {node: '>=0.6.19'} @@ -6875,6 +9239,9 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string.fromcodepoint@0.2.1: + resolution: {integrity: sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg==} + string.prototype.matchall@4.0.11: resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} @@ -6959,6 +9326,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-literal@3.1.0: + resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} + style-search@0.1.0: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} @@ -7009,6 +9379,9 @@ packages: engines: {node: ^14.13.1 || >=16.0.0} hasBin: true + stylis@4.4.0: + resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} + supports-color@2.0.0: resolution: {integrity: sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==} engines: {node: '>=0.8.0'} @@ -7065,10 +9438,19 @@ packages: resolution: {integrity: sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==} engines: {node: '>=10.0.0'} + tailwind-merge@2.6.1: + resolution: {integrity: sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + tdesign-icons-react@0.6.11: + resolution: {integrity: sha512-zH9Wr7QvX5y3WRF9hvm25ci04SLaPHB9SPN2FfWMHQf9f5ITmli+3abJkGwcePTeTYE4vmNBnAy6dxRSMCui1g==} + peerDependencies: + react: '>=16.13.1' + react-dom: '>=16.13.1' + tdesign-icons-svg@0.0.1: resolution: {integrity: sha512-4l05CgPXwI33Y6hU8ytKYIIXVznR22x6blhhtB6MntSHj2xrA+Unx4U/qy+Do/lCMtYao9q1wVkaZvxNjuX7jw==} @@ -7100,6 +9482,23 @@ packages: peerDependencies: vue: ^2.6.12 + tdesign-icons-web-components@0.3.9: + resolution: {integrity: sha512-o9jeZUFIET5AUq4cnmmiuxhAzu+UtIAh1LO4glAgzXmJQ5SzIgL73GTvcjgoxgufQGXs3XYEHaPns9hqnfK2aA==} + peerDependencies: + omi: '>=7.6.17' + + tdesign-mobile-react@0.23.3: + resolution: {integrity: sha512-BXnqJEpamO4gR1pNzE+XUCe4LlTaSwmRis9i1B1fLNVcFR8i/775CvhLJsE5IYDC9mwSSS4PyT4JRNxZEIFdcw==} + peerDependencies: + react: '>=18.0.0' + react-dom: '>=18.0.0' + + tdesign-react@1.18.3: + resolution: {integrity: sha512-20Jxx5qKhgcYo9GJQQWrZlw18mFnKNiGQC4IwUfhXwn853nnNfyhTKFPVksK673DdZU+U7D64iEK5DUR9KTz0A==} + peerDependencies: + react: '>=16.13.1' + react-dom: '>=16.13.1' + tdesign-vue-next@1.17.7: resolution: {integrity: sha512-mV/9mm/nIS+tfx1oUG1IMMmTPFeZfLmP8bIVEa7S9CpVke2+Yei5i8RBXmDwF/d+OaDoKVgwUq08goSIZfRePQ==} engines: {node: '>= 18'} @@ -7116,6 +9515,12 @@ packages: peerDependencies: vue: ~2.7.14 + tdesign-web-components@1.2.10: + resolution: {integrity: sha512-ro06t9n+7/khY1d6U91c7X+DcrFfjAKVHBQCGReKyIVR5hzV5I48xC1kAnl04dBZT906Ez4Y44VFIIqekaBwnw==} + + tdesign-web-components@1.3.0-alpha.2: + resolution: {integrity: sha512-MiM5t58SwVlNU3EUps+039i4s3mKV+g1MHSPVwSRiVQlg7UTzKapUioNV34opdjdkvzTYlijwvgqhF1bQ0R3fQ==} + terminal-link@2.1.1: resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} engines: {node: '>=8'} @@ -7168,6 +9573,9 @@ packages: three@0.127.0: resolution: {integrity: sha512-wtgrn+mhYUbobxT7QN3GPdu3SRpSBQvwY6uOzLChWS7QE//f7paDU/+wlzbg+ngeIvBBqjBHSRuywTh8A99Jng==} + throat@5.0.0: + resolution: {integrity: sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==} + throat@6.0.2: resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} @@ -7186,13 +9594,46 @@ packages: tiny-emitter@2.1.0: resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + tinycolor2@1.6.0: resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyexec@1.3.1: + resolution: {integrity: sha512-GCvB3aoys96IuDFBMcTB46JOR6mdMtAToqwiW8JlWhsoh1mhHi/xn9ss/Dg7N555GiJyEt2qzoG/NHCwM6h1EA==} + engines: {node: '>=18'} + tinyglobby@0.2.12: resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + + tinypool@1.1.1: + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} + + tinyspy@4.0.6: + resolution: {integrity: sha512-u8KszXvGfU68hVcZpRHKG28T0krMuv2G5nDhiHaMLen/gIuFEgIJhaJuO69qjnXg5paSrbPMFfx3brNuN8eVSg==} + engines: {node: '>=14.0.0'} + + tldts-core@6.1.86: + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + + tldts@6.1.86: + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + hasBin: true + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -7220,6 +9661,9 @@ packages: resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} engines: {node: '>=0.10.0'} + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + toidentifier@1.0.1: resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} engines: {node: '>=0.6'} @@ -7239,6 +9683,10 @@ packages: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} engines: {node: '>=6'} + tough-cookie@5.1.2: + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + engines: {node: '>=16'} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -7246,6 +9694,14 @@ packages: resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} engines: {node: '>=8'} + tr46@3.0.0: + resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} + engines: {node: '>=12'} + + tr46@5.1.1: + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + engines: {node: '>=18'} + trim-newlines@2.0.0: resolution: {integrity: sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==} engines: {node: '>=4'} @@ -7258,6 +9714,10 @@ packages: resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} engines: {node: '>=12'} + ts-dedent@2.3.0: + resolution: {integrity: sha512-JfJeIHke7y2egdGGgRAvpCwYFUsHlM2gPcrVOxFkznt/4uzQ7HFmvE63iFHVLBJNDuyDOQgijDK/tXH/f6Msjg==} + engines: {node: '>=6.10'} + ts-node@10.9.2: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true @@ -7278,6 +9738,9 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + tslib@2.3.1: + resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} @@ -7292,6 +9755,11 @@ packages: engines: {node: '>=18.0.0'} hasBin: true + tsx@4.23.13: + resolution: {integrity: sha512-BL5MGkRln6aDYhb0xbQlEAGw743BaZYWdbWtdJOBriYJboKgUUYCadFp2/FpBBZquBC/ezNBn7wMMPx7FDZUDw==} + engines: {node: '>=18.0.0'} + hasBin: true + tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} @@ -7335,6 +9803,10 @@ packages: resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} engines: {node: '>= 0.6'} + type-is@2.1.0: + resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} + engines: {node: '>= 18'} + typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -7362,6 +9834,11 @@ packages: engines: {node: '>=4.2.0'} hasBin: true + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + uc.micro@1.0.6: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} @@ -7376,13 +9853,16 @@ packages: undefsafe@2.0.5: resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} undici@5.28.4: resolution: {integrity: sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==} engines: {node: '>=14.0'} + unescape-js@1.1.4: + resolution: {integrity: sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g==} + unicode-canonical-property-names-ecmascript@2.0.1: resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} @@ -7395,6 +9875,10 @@ packages: resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} engines: {node: '>=4'} + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} @@ -7435,6 +9919,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.3.2: + resolution: {integrity: sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -7466,17 +9956,30 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@11.1.1: + resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} + hasBin: true + uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). + hasBin: true + v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} v8-compile-cache@2.4.0: resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + v8-to-istanbul@7.1.2: + resolution: {integrity: sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==} + engines: {node: '>=10.10.0'} + v8-to-istanbul@8.1.1: resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} engines: {node: '>=10.12.0'} @@ -7496,6 +9999,11 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + vite-node@3.2.4: + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + vite-plugin-tdoc@2.0.4: resolution: {integrity: sha512-KKoEvlhf78opGCb+WjbOc6TRkzqOEm6rLMmJL9POh8OEa6jOCETs1k81TAaPLaIxuoJxqE4k6IAMchV60XoKpw==} @@ -7539,6 +10047,54 @@ packages: yaml: optional: true + vitest@3.2.7: + resolution: {integrity: sha512-KrxIJ62Fd89gfysR4WotlgZABiz2dqFPgqGzX7s+CwsqLFomRH7777ZcrOD6+WVAh7khPQP41A+BKbpcJFrdEg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.2.7 + '@vitest/ui': 3.2.7 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/debug': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.14: + resolution: {integrity: sha512-EQyqJMi552E4ZTf46izQ4Fj6XquqxCySR3J5ZSD1SisMf6RfpeOWHxGBE8Gr6V0/3GHIGdAzDn8F8+1nTGCnoQ==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + vue-eslint-parser@8.3.0: resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7618,6 +10174,14 @@ packages: resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} engines: {node: '>=10'} + w3c-xmlserializer@3.0.0: + resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} + engines: {node: '>=12'} + + w3c-xmlserializer@5.0.0: + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} + walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} @@ -7631,6 +10195,13 @@ packages: wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + weakmap-polyfill@2.0.4: + resolution: {integrity: sha512-ZzxBf288iALJseijWelmECm/1x7ZwQn3sMYIkDr2VvZp7r6SEKuT8D0O9Wiq6L9Nl5mazrOMcmiZE/2NCenaxw==} + engines: {node: '>=8.10.0'} + + web-worker@1.5.0: + resolution: {integrity: sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -7642,6 +10213,10 @@ packages: resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} engines: {node: '>=10.4'} + webidl-conversions@7.0.0: + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} + webpack-bundle-analyzer@4.10.2: resolution: {integrity: sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==} engines: {node: '>= 10.13.0'} @@ -7704,21 +10279,51 @@ packages: resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation + whatwg-fetch@3.6.20: resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} whatwg-mimetype@2.3.0: resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-mimetype@3.0.0: + resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} + engines: {node: '>=12'} - whatwg-url@8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + whatwg-url@10.0.0: + resolution: {integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==} + engines: {node: '>=12'} + + whatwg-url@11.0.0: + resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} + engines: {node: '>=12'} + + whatwg-url@14.2.0: + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + engines: {node: '>=18'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + whatwg-url@8.7.0: + resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} + engines: {node: '>=10'} + + which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} which-builtin-type@1.1.4: resolution: {integrity: sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==} @@ -7744,6 +10349,11 @@ packages: engines: {node: '>= 8'} hasBin: true + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + wildcard@2.0.1: resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} @@ -7800,9 +10410,29 @@ packages: utf-8-validate: optional: true + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xml-name-validator@3.0.0: resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + xml-name-validator@5.0.0: + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} + xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -7870,6 +10500,17 @@ packages: yup@0.26.10: resolution: {integrity: sha512-keuNEbNSnsOTOuGCt3UJW69jDE3O4P+UHAakO7vSeFMnjaitcmlbij/a3oNb9g1Y1KvSKH/7O1R2PQ4m4TRylw==} + zod-to-json-schema@3.25.2: + resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} + peerDependencies: + zod: ^3.25.28 || ^4 + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + + zod@4.5.4: + resolution: {integrity: sha512-sC95tT5iHHH9gtpj6A81kh+NEaRAUFN+qlUPDUbRfOMvNf5QCBqsb3WgvnpVtK5Y+4UfA6KqufotuTvMGiTlsA==} + snapshots: '@achrinza/node-ipc@9.2.9': @@ -7895,6 +10536,19 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@antfu/install-pkg@2.0.1': + dependencies: + package-manager-detector: 1.8.0 + tinyexec: 1.3.1 + + '@asamuzakjp/css-color@3.2.0': + dependencies: + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + lru-cache: 10.4.3 + '@babel/code-frame@7.12.11': dependencies: '@babel/highlight': 7.24.7 @@ -7904,8 +10558,16 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.1.1 + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.25.4': {} + '@babel/compat-data@7.29.7': {} + '@babel/core@7.25.2': dependencies: '@ampproject/remapping': 2.3.0 @@ -7926,6 +10588,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.3.7(supports-color@5.5.0) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/eslint-parser@7.25.1(@babel/core@7.25.2)(eslint@7.32.0)': dependencies: '@babel/core': 7.25.2 @@ -7936,15 +10618,27 @@ snapshots: '@babel/generator@7.25.6': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.29.8 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 + '@babel/generator@7.29.8': + dependencies: + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.24.7': dependencies: '@babel/types': 7.29.8 + '@babel/helper-annotate-as-pure@7.29.7': + dependencies: + '@babel/types': 7.29.8 + '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': dependencies: '@babel/traverse': 7.25.6 @@ -7960,6 +10654,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.9 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -7973,6 +10675,45 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/helper-replace-supers': 7.25.0(@babel/core@7.29.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/traverse': 7.25.6 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.25.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.8 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.8 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -7980,6 +10721,20 @@ snapshots: regexpu-core: 5.3.2 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.24.7 + regexpu-core: 5.3.2 + semver: 6.3.1 + + '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + regexpu-core: 6.4.0 + semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -7991,6 +10746,30 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-plugin-utils': 7.24.8 + debug: 4.3.7(supports-color@5.5.0) + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + debug: 4.4.3 + lodash.debounce: 4.0.8 + resolve: 1.22.12 + transitivePeerDependencies: + - supports-color + + '@babel/helper-globals@7.29.7': {} + '@babel/helper-member-expression-to-functions@7.24.8': dependencies: '@babel/traverse': 7.25.6 @@ -7998,6 +10777,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-member-expression-to-functions@7.29.7': + dependencies: + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-imports@7.24.7': dependencies: '@babel/traverse': 7.25.6 @@ -8005,6 +10791,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8015,12 +10808,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.24.7': dependencies: '@babel/types': 7.29.8 + '@babel/helper-optimise-call-expression@7.29.7': + dependencies: + '@babel/types': 7.29.8 + '@babel/helper-plugin-utils@7.24.8': {} + '@babel/helper-plugin-utils@7.29.7': {} + '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8030,6 +10838,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-wrap-function': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8039,10 +10856,37 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.25.0(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.24.8 + '@babel/helper-optimise-call-expression': 7.24.7 + '@babel/traverse': 7.25.6 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.29.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/helper-simple-access@7.24.7': dependencies: '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -8053,14 +10897,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-string-parser@7.29.7': {} + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + dependencies: + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-string-parser@7.29.7': {} '@babel/helper-validator-identifier@7.29.7': {} '@babel/helper-validator-option@7.24.8': {} + '@babel/helper-validator-option@7.29.7': {} + '@babel/helper-wrap-function@7.25.0': dependencies: '@babel/template': 7.25.0 @@ -8069,21 +10920,34 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-wrap-function@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/helpers@7.25.6': dependencies: '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/types': 7.29.8 + + '@babel/helpers@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 '@babel/highlight@7.24.7': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.29.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.1 '@babel/parser@7.25.6': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.29.8 '@babel/parser@7.29.8': dependencies: @@ -8097,16 +10961,42 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8116,6 +11006,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8124,20 +11023,28 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.2)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.29.7) '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-decorators': 7.24.7(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-decorators@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-decorators': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color @@ -8145,36 +11052,65 @@ snapshots: dependencies: '@babel/core': 7.25.2 + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-decorators@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8185,82 +11121,168 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.2)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + + '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8271,6 +11293,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-generator-functions@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8280,21 +11311,48 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-class-properties@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -8307,6 +11365,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-classes@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8319,40 +11385,96 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/template': 7.25.0 + '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/template': 7.29.7 + '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-dotall-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-exponentiation-operator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8361,12 +11483,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8375,6 +11507,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8384,28 +11524,57 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-function-name@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8414,6 +11583,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8423,6 +11600,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8433,6 +11618,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-systemjs@7.29.8(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8441,29 +11636,58 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-named-capturing-groups-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8472,6 +11696,17 @@ snapshots: '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8480,12 +11715,25 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8495,11 +11743,24 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8508,6 +11769,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-property-in-object@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8518,30 +11787,70 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-react-jsx-self@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-react-jsx-source@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 regenerator-transform: 0.15.2 + '@babel/plugin-transform-regenerator@7.29.8(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-transform-runtime@7.25.4(@babel/core@7.25.2)': + '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-runtime@7.25.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.29.7) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -8551,6 +11860,11 @@ snapshots: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8559,44 +11873,101 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.29.8(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-unicode-property-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-unicode-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-unicode-sets-regex@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) '@babel/helper-plugin-utils': 7.24.8 + '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/preset-env@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/compat-data': 7.25.4 @@ -8633,7 +12004,7 @@ snapshots: '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-block-scoping': 7.25.0(@babel/core@7.25.2) - '@babel/plugin-transform-class-properties': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.25.2) '@babel/plugin-transform-class-static-block': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-classes': 7.25.4(@babel/core@7.25.2) '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.2) @@ -8686,6 +12057,83 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-env@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7) + '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-async-generator-functions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-dynamic-import': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-explicit-resource-management': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-export-namespace-from': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-function-name': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-json-strings': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-logical-assignment-operators': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-systemjs': 7.29.8(@babel/core@7.29.7) + '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-numeric-separator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-object-rest-spread': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-object-super': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-regenerator': 7.29.8(@babel/core@7.29.7) + '@babel/plugin-transform-regexp-modifiers': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-spread': 7.29.8(@babel/core@7.29.7) + '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-property-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-sets-regex': 7.29.7(@babel/core@7.29.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.7) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7) + core-js-compat: 3.50.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -8693,6 +12141,24 @@ snapshots: '@babel/types': 7.29.8 esutils: 2.0.3 + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.24.8 + '@babel/types': 7.29.8 + esutils: 2.0.3 + + '@babel/preset-typescript@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + '@babel/regjsgen@0.8.0': {} '@babel/runtime-corejs3@7.18.9': @@ -8708,26 +12174,48 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.26.10': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/runtime@7.29.7': {} '@babel/template@7.25.0': dependencies: '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 '@babel/traverse@7.25.6': dependencies: '@babel/code-frame': 7.24.7 '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 + '@babel/parser': 7.29.8 '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/types': 7.29.8 debug: 4.3.7(supports-color@5.5.0) globals: 11.12.0 transitivePeerDependencies: - supports-color + '@babel/traverse@7.29.8': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 + debug: 4.3.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + '@babel/types@7.25.6': dependencies: '@babel/helper-string-parser': 7.29.7 @@ -8741,6 +12229,33 @@ snapshots: '@bcoe/v8-coverage@0.2.3': {} + '@braintree/sanitize-url@6.0.4': + optional: true + + '@braintree/sanitize-url@7.1.2': {} + + '@chevrotain/cst-dts-gen@11.0.3': + dependencies: + '@chevrotain/gast': 11.0.3 + '@chevrotain/types': 11.0.3 + lodash-es: 4.17.21 + + '@chevrotain/gast@11.0.3': + dependencies: + '@chevrotain/types': 11.0.3 + lodash-es: 4.17.21 + + '@chevrotain/regexp-to-ast@11.0.3': {} + + '@chevrotain/types@11.0.3': {} + + '@chevrotain/utils@11.0.3': {} + + '@cnakazawa/watch@1.0.4': + dependencies: + exec-sh: 0.3.6 + minimist: 1.2.8 + '@commitlint/cli@8.3.6': dependencies: '@commitlint/format': 8.3.6 @@ -8790,7 +12305,7 @@ snapshots: babel-runtime: 6.26.0 lodash: 4.17.21 - '@commitlint/load@19.5.0(@types/node@22.9.0)(typescript@4.9.5)': + '@commitlint/load@19.5.0(@types/node@22.20.1)(typescript@4.9.5)': dependencies: '@commitlint/config-validator': 19.5.0 '@commitlint/execute-rule': 19.5.0 @@ -8798,7 +12313,24 @@ snapshots: '@commitlint/types': 19.5.0 chalk: 5.3.0 cosmiconfig: 9.0.0(typescript@4.9.5) - cosmiconfig-typescript-loader: 5.0.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5) + cosmiconfig-typescript-loader: 5.0.0(@types/node@22.20.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@4.9.5) + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + lodash.uniq: 4.5.0 + transitivePeerDependencies: + - '@types/node' + - typescript + optional: true + + '@commitlint/load@19.5.0(@types/node@22.20.1)(typescript@5.9.3)': + dependencies: + '@commitlint/config-validator': 19.5.0 + '@commitlint/execute-rule': 19.5.0 + '@commitlint/resolve-extends': 19.5.0 + '@commitlint/types': 19.5.0 + chalk: 5.3.0 + cosmiconfig: 9.0.0(typescript@5.9.3) + cosmiconfig-typescript-loader: 5.0.0(@types/node@22.20.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3) lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 lodash.uniq: 4.5.0 @@ -8823,7 +12355,7 @@ snapshots: dependencies: conventional-changelog-angular: 1.6.6 conventional-commits-parser: 3.2.4 - lodash: 4.17.21 + lodash: 4.18.1 '@commitlint/read@8.3.6': dependencies: @@ -8873,12 +12405,32 @@ snapshots: '@jridgewell/trace-mapping': 0.3.9 optional: true + '@csstools/color-helpers@5.1.0': {} + + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/color-helpers': 5.1.0 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1)': dependencies: '@csstools/css-tokenizer': 2.4.1 + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-tokenizer@2.4.1': {} + '@csstools/css-tokenizer@3.0.4': {} + '@csstools/media-query-list-parser@2.1.13(@csstools/css-parser-algorithms@2.7.1(@csstools/css-tokenizer@2.4.1))(@csstools/css-tokenizer@2.4.1)': dependencies: '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) @@ -8893,78 +12445,156 @@ snapshots: '@esbuild/aix-ppc64@0.25.2': optional: true + '@esbuild/aix-ppc64@0.28.2': + optional: true + '@esbuild/android-arm64@0.25.2': optional: true + '@esbuild/android-arm64@0.28.2': + optional: true + '@esbuild/android-arm@0.25.2': optional: true + '@esbuild/android-arm@0.28.2': + optional: true + '@esbuild/android-x64@0.25.2': optional: true + '@esbuild/android-x64@0.28.2': + optional: true + '@esbuild/darwin-arm64@0.25.2': optional: true + '@esbuild/darwin-arm64@0.28.2': + optional: true + '@esbuild/darwin-x64@0.25.2': optional: true + '@esbuild/darwin-x64@0.28.2': + optional: true + '@esbuild/freebsd-arm64@0.25.2': optional: true + '@esbuild/freebsd-arm64@0.28.2': + optional: true + '@esbuild/freebsd-x64@0.25.2': optional: true + '@esbuild/freebsd-x64@0.28.2': + optional: true + '@esbuild/linux-arm64@0.25.2': optional: true + '@esbuild/linux-arm64@0.28.2': + optional: true + '@esbuild/linux-arm@0.25.2': optional: true + '@esbuild/linux-arm@0.28.2': + optional: true + '@esbuild/linux-ia32@0.25.2': optional: true + '@esbuild/linux-ia32@0.28.2': + optional: true + '@esbuild/linux-loong64@0.25.2': optional: true + '@esbuild/linux-loong64@0.28.2': + optional: true + '@esbuild/linux-mips64el@0.25.2': optional: true + '@esbuild/linux-mips64el@0.28.2': + optional: true + '@esbuild/linux-ppc64@0.25.2': optional: true + '@esbuild/linux-ppc64@0.28.2': + optional: true + '@esbuild/linux-riscv64@0.25.2': optional: true + '@esbuild/linux-riscv64@0.28.2': + optional: true + '@esbuild/linux-s390x@0.25.2': optional: true + '@esbuild/linux-s390x@0.28.2': + optional: true + '@esbuild/linux-x64@0.25.2': optional: true + '@esbuild/linux-x64@0.28.2': + optional: true + '@esbuild/netbsd-arm64@0.25.2': optional: true + '@esbuild/netbsd-arm64@0.28.2': + optional: true + '@esbuild/netbsd-x64@0.25.2': optional: true + '@esbuild/netbsd-x64@0.28.2': + optional: true + '@esbuild/openbsd-arm64@0.25.2': optional: true + '@esbuild/openbsd-arm64@0.28.2': + optional: true + '@esbuild/openbsd-x64@0.25.2': optional: true + '@esbuild/openbsd-x64@0.28.2': + optional: true + + '@esbuild/openharmony-arm64@0.28.2': + optional: true + '@esbuild/sunos-x64@0.25.2': optional: true + '@esbuild/sunos-x64@0.28.2': + optional: true + '@esbuild/win32-arm64@0.25.2': optional: true + '@esbuild/win32-arm64@0.28.2': + optional: true + '@esbuild/win32-ia32@0.25.2': optional: true + '@esbuild/win32-ia32@0.28.2': + optional: true + '@esbuild/win32-x64@0.25.2': optional: true + '@esbuild/win32-x64@0.28.2': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@7.32.0)': dependencies: eslint: 7.32.0 @@ -8994,6 +12624,10 @@ snapshots: dependencies: '@hapi/hoek': 9.3.0 + '@hono/node-server@2.1.1(hono@4.13.7)': + dependencies: + hono: 4.13.7 + '@humanwhocodes/config-array@0.5.0': dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -9006,6 +12640,14 @@ snapshots: '@hutson/parse-repository-url@3.0.2': {} + '@iconify/types@2.0.0': {} + + '@iconify/utils@3.1.7': + dependencies: + '@antfu/install-pkg': 2.0.1 + '@iconify/types': 2.0.0 + import-meta-resolve: 4.2.0 + '@istanbuljs/load-nyc-config@1.1.0': dependencies: camelcase: 5.3.1 @@ -9016,30 +12658,76 @@ snapshots: '@istanbuljs/schema@0.1.3': {} + '@jest/console@26.6.2': + dependencies: + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + chalk: 4.1.2 + jest-message-util: 26.6.2 + jest-util: 26.6.2 + slash: 3.0.0 + '@jest/console@27.5.1': dependencies: '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 slash: 3.0.0 - '@jest/core@27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5))': + '@jest/core@26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3))': + dependencies: + '@jest/console': 26.6.2 + '@jest/reporters': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 26.6.2 + jest-config: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jest-haste-map: 26.6.2 + jest-message-util: 26.6.2 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-resolve-dependencies: 26.6.3 + jest-runner: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jest-runtime: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + jest-watcher: 26.6.2 + micromatch: 4.0.8 + p-each-series: 2.2.0 + rimraf: 3.0.2 + slash: 3.0.0 + strip-ansi: 6.0.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + + '@jest/core@27.5.1(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3))': dependencies: '@jest/console': 27.5.1 - '@jest/reporters': 27.5.1 + '@jest/reporters': 27.5.1(node-notifier@8.0.2) '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.8.1 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 27.5.1 - jest-config: 27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5)) + jest-config: 27.5.1(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) jest-haste-map: 27.5.1 jest-message-util: 27.5.1 jest-regex-util: 27.5.1 @@ -9055,6 +12743,8 @@ snapshots: rimraf: 3.0.2 slash: 3.0.0 strip-ansi: 6.0.1 + optionalDependencies: + node-notifier: 8.0.2 transitivePeerDependencies: - bufferutil - canvas @@ -9062,36 +12752,89 @@ snapshots: - ts-node - utf-8-validate + '@jest/environment@26.6.2': + dependencies: + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + jest-mock: 26.6.2 + '@jest/environment@27.5.1': dependencies: '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 jest-mock: 27.5.1 + '@jest/fake-timers@26.6.2': + dependencies: + '@jest/types': 26.6.2 + '@sinonjs/fake-timers': 6.0.1 + '@types/node': 22.20.1 + jest-message-util: 26.6.2 + jest-mock: 26.6.2 + jest-util: 26.6.2 + '@jest/fake-timers@27.5.1': dependencies: '@jest/types': 27.5.1 '@sinonjs/fake-timers': 8.1.0 - '@types/node': 22.9.0 + '@types/node': 22.20.1 jest-message-util: 27.5.1 jest-mock: 27.5.1 jest-util: 27.5.1 + '@jest/globals@26.6.2': + dependencies: + '@jest/environment': 26.6.2 + '@jest/types': 26.6.2 + expect: 26.6.2 + '@jest/globals@27.5.1': dependencies: '@jest/environment': 27.5.1 '@jest/types': 27.5.1 expect: 27.5.1 - '@jest/reporters@27.5.1': + '@jest/reporters@26.6.2': + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + chalk: 4.1.2 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 4.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + jest-haste-map: 26.6.2 + jest-resolve: 26.6.2 + jest-util: 26.6.2 + jest-worker: 26.6.2 + slash: 3.0.0 + source-map: 0.6.1 + string-length: 4.0.2 + terminal-link: 2.1.1 + v8-to-istanbul: 7.1.2 + optionalDependencies: + node-notifier: 8.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/reporters@27.5.1(node-notifier@8.0.2)': dependencies: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 27.5.1 '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -9111,15 +12854,30 @@ snapshots: string-length: 4.0.2 terminal-link: 2.1.1 v8-to-istanbul: 8.1.1 + optionalDependencies: + node-notifier: 8.0.2 transitivePeerDependencies: - supports-color + '@jest/source-map@26.6.2': + dependencies: + callsites: 3.1.0 + graceful-fs: 4.2.11 + source-map: 0.6.1 + '@jest/source-map@27.5.1': dependencies: callsites: 3.1.0 graceful-fs: 4.2.11 source-map: 0.6.1 + '@jest/test-result@26.6.2': + dependencies: + '@jest/console': 26.6.2 + '@jest/types': 26.6.2 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.2 + '@jest/test-result@27.5.1': dependencies: '@jest/console': 27.5.1 @@ -9127,6 +12885,20 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 + '@jest/test-sequencer@26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3))': + dependencies: + '@jest/test-result': 26.6.2 + graceful-fs: 4.2.11 + jest-haste-map: 26.6.2 + jest-runner: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jest-runtime: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + '@jest/test-sequencer@27.5.1': dependencies: '@jest/test-result': 27.5.1 @@ -9136,9 +12908,29 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/transform@26.6.2': + dependencies: + '@babel/core': 7.29.7 + '@jest/types': 26.6.2 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 1.9.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 26.6.2 + jest-regex-util: 26.0.0 + jest-util: 26.6.2 + micromatch: 4.0.8 + pirates: 4.0.6 + slash: 3.0.0 + source-map: 0.6.1 + write-file-atomic: 3.0.3 + transitivePeerDependencies: + - supports-color + '@jest/transform@27.5.1': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@jest/types': 27.5.1 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 @@ -9156,20 +12948,38 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/types@26.6.2': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.20.1 + '@types/yargs': 15.0.20 + chalk: 4.1.2 + '@jest/types@27.5.1': dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 22.9.0 + '@types/node': 22.20.1 '@types/yargs': 16.0.9 chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.6.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -9186,6 +12996,11 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.6.0 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.6.0 + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -9202,6 +13017,35 @@ snapshots: '@material/material-color-utilities@0.1.2': {} + '@mermaid-js/parser@0.6.3': + dependencies: + langium: 3.3.1 + + '@modelcontextprotocol/sdk@1.30.0(zod@4.5.4)': + dependencies: + '@hono/node-server': 2.1.1(hono@4.13.7) + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + content-type: 1.0.5 + cors: 2.8.6 + cross-spawn: 7.0.6 + eventsource: 3.0.7 + eventsource-parser: 3.1.1 + express: 5.2.1 + express-rate-limit: 8.7.0(express@5.2.1) + hono: 4.13.7 + jose: 6.2.12 + json-schema-typed: 8.0.2 + pkce-challenge: 5.0.1 + raw-body: 3.0.2 + zod: 4.5.4 + zod-to-json-schema: 3.25.2(zod@4.5.4) + transitivePeerDependencies: + - supports-color + + '@napi-rs/lzma-linux-x64-gnu@1.5.1': + optional: true + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: eslint-scope: 5.1.1 @@ -9284,64 +13128,141 @@ snapshots: '@popperjs/core@2.11.8': {} - '@rollup/rollup-android-arm-eabi@4.40.0': + '@rolldown/pluginutils@1.0.0-beta.27': {} + + '@rollup/plugin-commonjs@28.0.9(rollup@4.63.1)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) + commondir: 1.0.1 + estree-walker: 2.0.2 + fdir: 6.4.3(picomatch@4.0.2) + is-reference: 1.2.1 + magic-string: 0.30.21 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.63.1 + + '@rollup/plugin-json@6.1.0(rollup@4.63.1)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) + optionalDependencies: + rollup: 4.63.1 + + '@rollup/plugin-node-resolve@16.0.3(rollup@4.63.1)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.8 + optionalDependencies: + rollup: 4.63.1 + + '@rollup/plugin-replace@6.0.3(rollup@4.63.1)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) + magic-string: 0.30.21 + optionalDependencies: + rollup: 4.63.1 + + '@rollup/plugin-terser@0.4.4(rollup@4.63.1)': + dependencies: + serialize-javascript: 6.0.2 + smob: 1.6.2 + terser: 5.33.0 + optionalDependencies: + rollup: 4.63.1 + + '@rollup/plugin-typescript@12.3.0(rollup@4.63.1)(tslib@2.7.0)(typescript@5.9.3)': + dependencies: + '@rollup/pluginutils': 5.4.0(rollup@4.63.1) + resolve: 1.22.8 + typescript: 5.9.3 + optionalDependencies: + rollup: 4.63.1 + tslib: 2.7.0 + + '@rollup/pluginutils@5.4.0(rollup@4.63.1)': + dependencies: + '@types/estree': 1.0.7 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.63.1 + + '@rollup/rollup-android-arm-eabi@4.63.1': + optional: true + + '@rollup/rollup-android-arm64@4.63.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.63.1': + optional: true + + '@rollup/rollup-darwin-x64@4.63.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.63.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.63.1': optional: true - '@rollup/rollup-android-arm64@4.40.0': + '@rollup/rollup-linux-arm-gnueabihf@4.63.1': optional: true - '@rollup/rollup-darwin-arm64@4.40.0': + '@rollup/rollup-linux-arm-musleabihf@4.63.1': optional: true - '@rollup/rollup-darwin-x64@4.40.0': + '@rollup/rollup-linux-arm64-gnu@4.63.1': optional: true - '@rollup/rollup-freebsd-arm64@4.40.0': + '@rollup/rollup-linux-arm64-musl@4.63.1': optional: true - '@rollup/rollup-freebsd-x64@4.40.0': + '@rollup/rollup-linux-loong64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.40.0': + '@rollup/rollup-linux-loong64-musl@4.63.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.40.0': + '@rollup/rollup-linux-ppc64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.40.0': + '@rollup/rollup-linux-ppc64-musl@4.63.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.40.0': + '@rollup/rollup-linux-riscv64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.40.0': + '@rollup/rollup-linux-riscv64-musl@4.63.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.40.0': + '@rollup/rollup-linux-s390x-gnu@4.63.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.40.0': + '@rollup/rollup-linux-x64-gnu@4.63.1': optional: true - '@rollup/rollup-linux-riscv64-musl@4.40.0': + '@rollup/rollup-linux-x64-musl@4.63.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.40.0': + '@rollup/rollup-openbsd-x64@4.63.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.40.0': + '@rollup/rollup-openharmony-arm64@4.63.1': optional: true - '@rollup/rollup-linux-x64-musl@4.40.0': + '@rollup/rollup-win32-arm64-msvc@4.63.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.40.0': + '@rollup/rollup-win32-ia32-msvc@4.63.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.40.0': + '@rollup/rollup-win32-x64-gnu@4.63.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.40.0': + '@rollup/rollup-win32-x64-msvc@4.63.1': optional: true '@rtsao/scc@1.1.0': {} @@ -9366,6 +13287,10 @@ snapshots: dependencies: type-detect: 4.0.8 + '@sinonjs/fake-timers@6.0.1': + dependencies: + '@sinonjs/commons': 1.8.6 + '@sinonjs/fake-timers@8.1.0': dependencies: '@sinonjs/commons': 1.8.6 @@ -9380,6 +13305,22 @@ snapshots: '@soda/get-current-script@1.0.2': {} + '@tdesign-react/chat@1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.10 + classnames: 2.5.1 + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-fast-compare: 3.2.2 + tdesign-web-components: 1.3.0-alpha.2 + zod: 3.25.76 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + '@tdesign/site-components@0.19.3': dependencies: '@popperjs/core': 2.11.8 @@ -9389,8 +13330,31 @@ snapshots: qrcode: 1.5.4 tdesign-icons-svg: 0.0.1 + '@testing-library/dom@10.4.1': + dependencies: + '@babel/code-frame': 7.24.7 + '@babel/runtime': 7.29.7 + '@types/aria-query': 5.0.4 + aria-query: 5.3.0 + dom-accessibility-api: 0.5.16 + lz-string: 1.5.0 + picocolors: 1.1.1 + pretty-format: 27.5.1 + + '@testing-library/react@16.3.3(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.29.7 + '@testing-library/dom': 10.4.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.31 + '@types/react-dom': 18.3.7(@types/react@18.3.31) + '@tootallnate/once@1.1.2': {} + '@tootallnate/once@2.0.1': {} + '@trysound/sax@0.2.0': {} '@tsconfig/node10@1.0.13': @@ -9405,6 +13369,8 @@ snapshots: '@tsconfig/node16@1.0.4': optional: true + '@types/aria-query@5.0.4': {} + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.29.8 @@ -9429,30 +13395,158 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.5.5 + '@types/node': 22.20.1 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.20.1 + + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 '@types/clipboard@2.0.7': dependencies: clipboard: 2.0.11 + '@types/codemirror@0.0.108': + dependencies: + '@types/tern': 0.23.9 + '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 4.19.5 - '@types/node': 22.5.5 + '@types/node': 22.20.1 '@types/connect@3.4.38': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.20.1 '@types/conventional-commits-parser@5.0.0': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.20.1 optional: true + '@types/d3-array@3.2.2': {} + + '@types/d3-axis@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-brush@3.0.6': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-chord@3.0.6': {} + + '@types/d3-color@3.1.3': {} + + '@types/d3-contour@3.0.6': + dependencies: + '@types/d3-array': 3.2.2 + '@types/geojson': 7946.0.16 + + '@types/d3-delaunay@6.0.4': {} + + '@types/d3-dispatch@3.0.7': {} + + '@types/d3-drag@3.0.7': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-dsv@3.0.7': {} + + '@types/d3-ease@3.0.2': {} + + '@types/d3-fetch@3.0.7': + dependencies: + '@types/d3-dsv': 3.0.7 + + '@types/d3-force@3.0.10': {} + + '@types/d3-format@3.0.4': {} + + '@types/d3-geo@3.1.1': + dependencies: + '@types/geojson': 7946.0.16 + + '@types/d3-hierarchy@3.1.7': {} + + '@types/d3-interpolate@3.0.4': + dependencies: + '@types/d3-color': 3.1.3 + + '@types/d3-path@3.1.1': {} + + '@types/d3-polygon@3.0.2': {} + + '@types/d3-quadtree@3.0.6': {} + + '@types/d3-random@3.0.4': {} + + '@types/d3-scale-chromatic@3.1.0': {} + + '@types/d3-scale@4.0.9': + dependencies: + '@types/d3-time': 3.0.4 + + '@types/d3-selection@3.0.11': {} + + '@types/d3-shape@3.2.0': + dependencies: + '@types/d3-path': 3.1.1 + + '@types/d3-time-format@4.0.3': {} + + '@types/d3-time@3.0.4': {} + + '@types/d3-timer@3.0.2': {} + + '@types/d3-transition@3.0.9': + dependencies: + '@types/d3-selection': 3.0.11 + + '@types/d3-zoom@3.0.8': + dependencies: + '@types/d3-interpolate': 3.0.4 + '@types/d3-selection': 3.0.11 + + '@types/d3@7.4.3': + dependencies: + '@types/d3-array': 3.2.2 + '@types/d3-axis': 3.0.6 + '@types/d3-brush': 3.0.6 + '@types/d3-chord': 3.0.6 + '@types/d3-color': 3.1.3 + '@types/d3-contour': 3.0.6 + '@types/d3-delaunay': 6.0.4 + '@types/d3-dispatch': 3.0.7 + '@types/d3-drag': 3.0.7 + '@types/d3-dsv': 3.0.7 + '@types/d3-ease': 3.0.2 + '@types/d3-fetch': 3.0.7 + '@types/d3-force': 3.0.10 + '@types/d3-format': 3.0.4 + '@types/d3-geo': 3.1.1 + '@types/d3-hierarchy': 3.1.7 + '@types/d3-interpolate': 3.0.4 + '@types/d3-path': 3.1.1 + '@types/d3-polygon': 3.0.2 + '@types/d3-quadtree': 3.0.6 + '@types/d3-random': 3.0.4 + '@types/d3-scale': 4.0.9 + '@types/d3-scale-chromatic': 3.1.0 + '@types/d3-selection': 3.0.11 + '@types/d3-shape': 3.2.0 + '@types/d3-time': 3.0.4 + '@types/d3-time-format': 4.0.3 + '@types/d3-timer': 3.0.2 + '@types/d3-transition': 3.0.9 + '@types/d3-zoom': 3.0.8 + + '@types/deep-eql@4.0.2': {} + '@types/eslint@8.56.12': dependencies: '@types/estree': 1.0.6 @@ -9462,9 +13556,18 @@ snapshots: '@types/estree@1.0.7': {} + '@types/estree@1.0.9': {} + '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.20.1 + '@types/qs': 6.9.16 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express-serve-static-core@5.1.3': + dependencies: + '@types/node': 22.20.1 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -9476,9 +13579,17 @@ snapshots: '@types/qs': 6.9.16 '@types/serve-static': 1.15.7 + '@types/express@5.0.6': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 5.1.3 + '@types/serve-static': 2.2.0 + + '@types/geojson@7946.0.16': {} + '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 22.9.0 + '@types/node': 22.20.1 '@types/html-minifier-terser@6.1.0': {} @@ -9486,7 +13597,7 @@ snapshots: '@types/http-proxy@1.17.15': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.20.1 '@types/istanbul-lib-coverage@2.0.6': {} @@ -9498,6 +13609,11 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 + '@types/jest@27.5.2': + dependencies: + jest-matcher-utils: 27.5.1 + pretty-format: 27.5.1 + '@types/json-schema@7.0.15': {} '@types/json5@0.0.29': {} @@ -9525,15 +13641,11 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.5.5 - - '@types/node@22.5.5': - dependencies: - undici-types: 6.19.8 + '@types/node': 22.20.1 - '@types/node@22.9.0': + '@types/node@22.20.1': dependencies: - undici-types: 6.19.8 + undici-types: 6.21.0 '@types/normalize-package-data@2.4.4': {} @@ -9541,6 +13653,8 @@ snapshots: '@types/prettier@2.7.3': {} + '@types/prop-types@15.7.15': {} + '@types/q@1.5.8': {} '@types/qs@6.9.16': {} @@ -9549,6 +13663,17 @@ snapshots: '@types/range-parser@1.2.7': {} + '@types/react-dom@18.3.7(@types/react@18.3.31)': + dependencies: + '@types/react': 18.3.31 + + '@types/react@18.3.31': + dependencies: + '@types/prop-types': 15.7.15 + csstype: 3.2.3 + + '@types/resolve@1.20.2': {} + '@types/retry@0.12.0': {} '@types/semver@7.5.8': {} @@ -9556,21 +13681,26 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.5.5 + '@types/node': 22.20.1 '@types/serve-index@1.9.4': dependencies: - '@types/express': 4.17.21 + '@types/express': 5.0.6 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.5.5 + '@types/node': 22.20.1 '@types/send': 0.17.4 + '@types/serve-static@2.2.0': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 22.20.1 + '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.20.1 '@types/sortablejs@1.15.8': {} @@ -9578,18 +13708,35 @@ snapshots: '@types/stack-utils@2.0.3': {} + '@types/tern@0.23.9': + dependencies: + '@types/estree': 1.0.7 + '@types/tinycolor2@1.4.6': {} + '@types/trusted-types@2.0.7': + optional: true + '@types/validator@13.12.2': {} '@types/validator@13.15.10': {} + '@types/whatwg-mimetype@3.0.2': {} + + '@types/ws@8.18.1': + dependencies: + '@types/node': 22.20.1 + '@types/ws@8.5.12': dependencies: - '@types/node': 22.5.5 + '@types/node': 22.20.1 '@types/yargs-parser@21.0.3': {} + '@types/yargs@15.0.20': + dependencies: + '@types/yargs-parser': 21.0.3 + '@types/yargs@16.0.9': dependencies: '@types/yargs-parser': 21.0.3 @@ -9678,36 +13825,97 @@ snapshots: '@typescript-eslint/types': 5.62.0 eslint-visitor-keys: 3.4.3 - '@vitejs/plugin-vue2@2.3.3(vite@6.3.1(@types/node@22.9.0)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.19.3))(vue@2.7.14)': + '@use-gesture/core@10.3.1': {} + + '@use-gesture/react@10.3.1(react@18.3.1)': + dependencies: + '@use-gesture/core': 10.3.1 + react: 18.3.1 + + '@vitejs/plugin-react@4.7.0(vite@6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13))': + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-jsx-self': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-source': 7.29.7(@babel/core@7.29.7) + '@rolldown/pluginutils': 1.0.0-beta.27 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-vue2@2.3.3(vite@6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13))(vue@2.7.14)': dependencies: - vite: 6.3.1(@types/node@22.9.0)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.19.3) + vite: 6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) vue: 2.7.14 + '@vitest/expect@3.2.7': + dependencies: + '@types/chai': 5.2.3 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 + chai: 5.3.3 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.2.7(vite@6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13))': + dependencies: + '@vitest/spy': 3.2.7 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: 6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) + + '@vitest/pretty-format@3.2.7': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.2.7': + dependencies: + '@vitest/utils': 3.2.7 + pathe: 2.0.3 + strip-literal: 3.1.0 + + '@vitest/snapshot@3.2.7': + dependencies: + '@vitest/pretty-format': 3.2.7 + magic-string: 0.30.21 + pathe: 2.0.3 + + '@vitest/spy@3.2.7': + dependencies: + tinyspy: 4.0.6 + + '@vitest/utils@3.2.7': + dependencies: + '@vitest/pretty-format': 3.2.7 + loupe: 3.2.1 + tinyrainbow: 2.0.0 + '@vue/babel-helper-vue-jsx-merge-props@1.4.0': {} '@vue/babel-helper-vue-transform-on@1.2.5': {} - '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.25.2)': + '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.29.7)': dependencies: '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) '@babel/template': 7.25.0 '@babel/traverse': 7.25.6 '@babel/types': 7.29.8 '@vue/babel-helper-vue-transform-on': 1.2.5 - '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.25.2) + '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.29.7) html-tags: 3.3.1 svg-tags: 1.0.0 optionalDependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 transitivePeerDependencies: - supports-color - '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.25.2)': + '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.29.7)': dependencies: '@babel/code-frame': 7.24.7 - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.8 '@babel/parser': 7.29.8 @@ -9715,11 +13923,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/babel-plugin-transform-vue-jsx@1.4.0(@babel/core@7.25.2)': + '@vue/babel-plugin-transform-vue-jsx@1.4.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@babel/helper-module-imports': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 html-tags: 2.0.0 lodash.kebabcase: 4.1.1 @@ -9727,20 +13935,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/babel-preset-app@5.0.8(@babel/core@7.25.2)(core-js@3.38.1)(vue@2.7.14)': + '@vue/babel-preset-app@5.0.8(@babel/core@7.29.7)(core-js@3.38.1)(vue@2.7.14)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@babel/helper-compilation-targets': 7.25.2 '@babel/helper-module-imports': 7.24.7 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.2) - '@babel/plugin-proposal-decorators': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@babel/plugin-transform-runtime': 7.25.4(@babel/core@7.25.2) - '@babel/preset-env': 7.25.4(@babel/core@7.25.2) - '@babel/runtime': 7.25.6 - '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.25.2) - '@vue/babel-preset-jsx': 1.4.0(@babel/core@7.25.2)(vue@2.7.14) + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@babel/plugin-transform-runtime': 7.25.4(@babel/core@7.29.7) + '@babel/preset-env': 7.29.7(@babel/core@7.29.7) + '@babel/runtime': 7.29.7 + '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.29.7) + '@vue/babel-preset-jsx': 1.4.0(@babel/core@7.29.7)(vue@2.7.14) babel-plugin-dynamic-import-node: 2.3.3 core-js-compat: 3.38.1 semver: 7.6.3 @@ -9750,59 +13958,59 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/babel-preset-jsx@1.4.0(@babel/core@7.25.2)(vue@2.7.14)': + '@vue/babel-preset-jsx@1.4.0(@babel/core@7.29.7)(vue@2.7.14)': dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 - '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.25.2) - '@vue/babel-sugar-composition-api-inject-h': 1.4.0(@babel/core@7.25.2) - '@vue/babel-sugar-composition-api-render-instance': 1.4.0(@babel/core@7.25.2) - '@vue/babel-sugar-functional-vue': 1.4.0(@babel/core@7.25.2) - '@vue/babel-sugar-inject-h': 1.4.0(@babel/core@7.25.2) - '@vue/babel-sugar-v-model': 1.4.0(@babel/core@7.25.2) - '@vue/babel-sugar-v-on': 1.4.0(@babel/core@7.25.2) + '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.29.7) + '@vue/babel-sugar-composition-api-inject-h': 1.4.0(@babel/core@7.29.7) + '@vue/babel-sugar-composition-api-render-instance': 1.4.0(@babel/core@7.29.7) + '@vue/babel-sugar-functional-vue': 1.4.0(@babel/core@7.29.7) + '@vue/babel-sugar-inject-h': 1.4.0(@babel/core@7.29.7) + '@vue/babel-sugar-v-model': 1.4.0(@babel/core@7.29.7) + '@vue/babel-sugar-v-on': 1.4.0(@babel/core@7.29.7) optionalDependencies: vue: 2.7.14 transitivePeerDependencies: - supports-color - '@vue/babel-sugar-composition-api-inject-h@1.4.0(@babel/core@7.25.2)': + '@vue/babel-sugar-composition-api-inject-h@1.4.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.29.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) - '@vue/babel-sugar-composition-api-render-instance@1.4.0(@babel/core@7.25.2)': + '@vue/babel-sugar-composition-api-render-instance@1.4.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.29.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) - '@vue/babel-sugar-functional-vue@1.4.0(@babel/core@7.25.2)': + '@vue/babel-sugar-functional-vue@1.4.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.29.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) - '@vue/babel-sugar-inject-h@1.4.0(@babel/core@7.25.2)': + '@vue/babel-sugar-inject-h@1.4.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.29.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) - '@vue/babel-sugar-v-model@1.4.0(@babel/core@7.25.2)': + '@vue/babel-sugar-v-model@1.4.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) + '@babel/core': 7.29.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 - '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.25.2) + '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.29.7) camelcase: 5.3.1 html-tags: 2.0.0 svg-tags: 1.0.0 transitivePeerDependencies: - supports-color - '@vue/babel-sugar-v-on@1.4.0(@babel/core@7.25.2)': + '@vue/babel-sugar-v-on@1.4.0(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.2) - '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.25.2) + '@babel/core': 7.29.7 + '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.29.7) camelcase: 5.3.1 transitivePeerDependencies: - supports-color @@ -9811,11 +14019,11 @@ snapshots: '@vue/cli-plugin-babel@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.42)(handlebars@4.7.8)(less-loader@10.2.0(less@4.2.0)(webpack@5.94.0))(lodash@4.17.21)(prettier@2.8.8)(raw-loader@4.0.2(webpack@5.94.0))(vue-template-compiler@2.7.14)(vue@2.7.14)(webpack-sources@3.2.3))(core-js@3.38.1)(vue@2.7.14)': dependencies: - '@babel/core': 7.25.2 - '@vue/babel-preset-app': 5.0.8(@babel/core@7.25.2)(core-js@3.38.1)(vue@2.7.14) + '@babel/core': 7.29.7 + '@vue/babel-preset-app': 5.0.8(@babel/core@7.29.7)(core-js@3.38.1)(vue@2.7.14) '@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.42)(handlebars@4.7.8)(less-loader@10.2.0(less@4.2.0)(webpack@5.94.0))(lodash@4.17.21)(prettier@2.8.8)(raw-loader@4.0.2(webpack@5.94.0))(vue-template-compiler@2.7.14)(vue@2.7.14)(webpack-sources@3.2.3) '@vue/cli-shared-utils': 5.0.8 - babel-loader: 8.4.1(@babel/core@7.25.2)(webpack@5.94.0) + babel-loader: 8.4.1(@babel/core@7.29.7)(webpack@5.94.0) thread-loader: 3.0.4(webpack@5.94.0) webpack: 5.94.0 transitivePeerDependencies: @@ -10019,7 +14227,7 @@ snapshots: '@vue/compiler-sfc@2.7.14': dependencies: - '@babel/parser': 7.25.6 + '@babel/parser': 7.29.8 postcss: 8.4.47 source-map: 0.6.1 @@ -10225,42 +14433,43 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 + accepts@2.0.0: + dependencies: + mime-types: 3.0.2 + negotiator: 1.1.0 + acorn-globals@6.0.0: dependencies: acorn: 7.4.1 acorn-walk: 7.2.0 - acorn-import-attributes@1.9.5(acorn@8.12.1): + acorn-import-attributes@1.9.5(acorn@8.18.0): dependencies: - acorn: 8.12.1 + acorn: 8.18.0 acorn-jsx@5.3.2(acorn@7.4.1): dependencies: acorn: 7.4.1 - acorn-jsx@5.3.2(acorn@8.12.1): + acorn-jsx@5.3.2(acorn@8.18.0): dependencies: - acorn: 8.12.1 + acorn: 8.18.0 acorn-walk@7.2.0: {} acorn-walk@8.3.4: dependencies: - acorn: 8.12.1 + acorn: 8.18.0 acorn-walk@8.3.5: dependencies: acorn: 8.18.0 - optional: true acorn@7.4.1: {} acorn@8.12.1: {} - acorn@8.15.0: {} - - acorn@8.18.0: - optional: true + acorn@8.18.0: {} add-stream@1.0.0: {} @@ -10272,10 +14481,29 @@ snapshots: transitivePeerDependencies: - supports-color + agent-base@7.1.4: {} + + ahooks@3.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.29.7 + dayjs: 1.11.23 + js-cookie: 3.0.8 + lodash: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-fast-compare: 3.2.2 + resize-observer-polyfill: 1.5.1 + screenfull: 5.2.0 + tslib: 2.7.0 + ajv-formats@2.1.1(ajv@8.17.1): optionalDependencies: ajv: 8.17.1 + ajv-formats@3.0.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 @@ -10333,6 +14561,13 @@ snapshots: any-promise@1.3.0: {} + anymatch@2.0.0: + dependencies: + micromatch: 3.1.10 + normalize-path: 2.1.1 + transitivePeerDependencies: + - supports-color + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -10349,6 +14584,10 @@ snapshots: argparse@2.0.1: {} + aria-query@5.3.0: + dependencies: + dequal: 2.0.3 + arr-diff@4.0.0: {} arr-flatten@1.1.0: {} @@ -10448,13 +14687,15 @@ snapshots: arrify@1.0.1: {} + assertion-error@2.0.1: {} + assign-symbols@1.0.0: {} astral-regex@2.0.0: {} async@2.6.4: dependencies: - lodash: 4.17.21 + lodash: 4.18.1 asynckit@0.4.0: {} @@ -10488,6 +14729,20 @@ snapshots: transitivePeerDependencies: - supports-color + babel-jest@26.6.3(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 26.6.2(@babel/core@7.29.7) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + babel-jest@27.5.1(@babel/core@7.25.2): dependencies: '@babel/core': 7.25.2 @@ -10502,9 +14757,23 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@8.4.1(@babel/core@7.25.2)(webpack@5.94.0): + babel-jest@27.5.1(@babel/core@7.29.7): dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 + '@jest/transform': 27.5.1 + '@jest/types': 27.5.1 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 27.5.1(@babel/core@7.29.7) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-loader@8.4.1(@babel/core@7.29.7)(webpack@5.94.0): + dependencies: + '@babel/core': 7.29.7 find-cache-dir: 3.3.2 loader-utils: 2.0.4 make-dir: 3.1.0 @@ -10525,6 +14794,13 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-jest-hoist@26.6.2: + dependencies: + '@babel/template': 7.25.0 + '@babel/types': 7.29.8 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.6 + babel-plugin-jest-hoist@27.5.1: dependencies: '@babel/template': 7.25.0 @@ -10541,6 +14817,24 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.29.7): + dependencies: + '@babel/compat-data': 7.25.4 + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.29.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7): + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): dependencies: '@babel/core': 7.25.2 @@ -10549,6 +14843,22 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.29.7) + core-js-compat: 3.38.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) + core-js-compat: 3.50.0 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): dependencies: '@babel/core': 7.25.2 @@ -10556,6 +14866,20 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + babel-polyfill@6.26.0: dependencies: babel-runtime: 6.26.0 @@ -10581,12 +14905,43 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + babel-preset-current-node-syntax@1.1.0(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.7) + '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.29.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.7) + + babel-preset-jest@26.6.2(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + babel-plugin-jest-hoist: 26.6.2 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.29.7) + babel-preset-jest@27.5.1(@babel/core@7.25.2): dependencies: '@babel/core': 7.25.2 babel-plugin-jest-hoist: 27.5.1 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) + babel-preset-jest@27.5.1(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + babel-plugin-jest-hoist: 27.5.1 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.29.7) + babel-runtime@6.26.0: dependencies: core-js: 2.6.12 @@ -10608,6 +14963,8 @@ snapshots: mixin-deep: 1.3.2 pascalcase: 0.1.1 + baseline-browser-mapping@2.11.21: {} + batch@0.6.1: {} before-after-hook@2.2.3: {} @@ -10643,6 +15000,20 @@ snapshots: transitivePeerDependencies: - supports-color + body-parser@2.3.0: + dependencies: + bytes: 3.1.2 + content-type: 2.1.0 + debug: 4.4.3 + http-errors: 2.0.1 + iconv-lite: 0.7.3 + on-finished: 2.4.1 + qs: 6.16.0 + raw-body: 3.0.2 + type-is: 2.1.0 + transitivePeerDependencies: + - supports-color + bonjour-service@1.2.1: dependencies: fast-deep-equal: 3.1.3 @@ -10683,12 +15054,24 @@ snapshots: node-releases: 2.0.18 update-browserslist-db: 1.1.0(browserslist@4.23.3) + browserslist@4.28.9: + dependencies: + baseline-browser-mapping: 2.11.21 + caniuse-lite: 1.0.30001810 + electron-to-chromium: 1.5.423 + node-releases: 2.0.54 + update-browserslist-db: 1.3.2(browserslist@4.28.9) + bser@2.1.1: dependencies: node-int64: 0.4.0 buffer-from@1.1.2: {} + buffer-image-size@0.6.4: + dependencies: + '@types/node': 22.20.1 + buffer@5.7.1: dependencies: base64-js: 1.5.1 @@ -10698,6 +15081,8 @@ snapshots: bytes@3.1.2: {} + cac@6.7.14: {} + cache-base@1.0.1: dependencies: collection-visit: 1.0.0 @@ -10712,6 +15097,11 @@ snapshots: cachedir@2.3.0: {} + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -10720,6 +15110,11 @@ snapshots: get-intrinsic: 1.2.4 set-function-length: 1.2.2 + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + caller-callsite@2.0.0: dependencies: callsites: 2.0.0 @@ -10771,13 +15166,27 @@ snapshots: caniuse-lite@1.0.30001662: {} + caniuse-lite@1.0.30001810: {} + canvas-3d@1.0.14: dependencies: gsap: 3.8.0 three: 0.127.0 + capture-exit@2.0.0: + dependencies: + rsvp: 4.8.5 + case-sensitive-paths-webpack-plugin@2.4.0: {} + chai@5.3.3: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.3 + deep-eql: 5.0.2 + loupe: 3.2.1 + pathval: 2.0.1 + chalk@1.1.3: dependencies: ansi-styles: 2.2.1 @@ -10809,6 +15218,54 @@ snapshots: chardet@0.7.0: {} + check-error@2.1.3: {} + + cherry-markdown@0.10.3: + dependencies: + '@types/codemirror': 0.0.108 + crypto-js: 4.2.0 + dompurify: 3.4.15 + htmlparser2: 10.1.0 + jsdom: 19.0.0 + ws: 8.18.0 + optionalDependencies: + mermaid: 9.4.3 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + + cherry-markdown@0.11.0-alpha-2: + dependencies: + '@types/codemirror': 0.0.108 + crypto-js: 4.2.0 + dompurify: 3.4.15 + htmlparser2: 10.1.0 + jsdom: 19.0.0 + ws: 8.18.0 + optionalDependencies: + mermaid: 9.4.3 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + + chevrotain-allstar@0.3.1(chevrotain@11.0.3): + dependencies: + chevrotain: 11.0.3 + lodash-es: 4.18.1 + + chevrotain@11.0.3: + dependencies: + '@chevrotain/cst-dts-gen': 11.0.3 + '@chevrotain/gast': 11.0.3 + '@chevrotain/regexp-to-ast': 11.0.3 + '@chevrotain/types': 11.0.3 + '@chevrotain/utils': 11.0.3 + lodash-es: 4.17.21 + chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -10833,6 +15290,8 @@ snapshots: ci-info@3.9.0: {} + cjs-module-lexer@0.6.0: {} + cjs-module-lexer@1.4.1: {} class-utils@0.3.6: @@ -10842,6 +15301,10 @@ snapshots: isobject: 3.0.1 static-extend: 0.1.2 + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + classnames@2.5.1: {} clean-css@5.3.3: @@ -10906,6 +15369,8 @@ snapshots: clone@1.0.4: {} + clsx@2.1.1: {} + co@4.6.0: {} coa@2.0.2: @@ -10949,10 +15414,30 @@ snapshots: commander@8.3.0: {} - commitizen@4.3.0(@types/node@22.9.0)(typescript@4.9.5): + commitizen@4.3.0(@types/node@22.20.1)(typescript@4.9.5): + dependencies: + cachedir: 2.3.0 + cz-conventional-changelog: 3.3.0(@types/node@22.20.1)(typescript@4.9.5) + dedent: 0.7.0 + detect-indent: 6.1.0 + find-node-modules: 2.1.3 + find-root: 1.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + inquirer: 8.2.5 + is-utf8: 0.2.1 + lodash: 4.17.21 + minimist: 1.2.7 + strip-bom: 4.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - '@types/node' + - typescript + + commitizen@4.3.0(@types/node@22.20.1)(typescript@5.9.3): dependencies: cachedir: 2.3.0 - cz-conventional-changelog: 3.3.0(@types/node@22.9.0)(typescript@4.9.5) + cz-conventional-changelog: 3.3.0(@types/node@22.20.1)(typescript@5.9.3) dedent: 0.7.0 detect-indent: 6.1.0 find-node-modules: 2.1.3 @@ -11017,12 +15502,18 @@ snapshots: handlebars: 4.7.8 lodash: 4.17.21 + construct-style-sheets-polyfill@3.0.1: {} + content-disposition@0.5.4: dependencies: safe-buffer: 5.2.1 + content-disposition@1.1.0: {} + content-type@1.0.5: {} + content-type@2.1.0: {} + conventional-changelog-angular@1.6.6: dependencies: compare-func: 1.3.4 @@ -11132,7 +15623,7 @@ snapshots: dependencies: JSONStream: 1.3.5 is-text-path: 1.0.1 - lodash: 4.17.21 + lodash: 4.18.1 meow: 8.1.2 split2: 3.2.2 through2: 4.0.2 @@ -11154,14 +15645,22 @@ snapshots: cookie-signature@1.0.6: {} + cookie-signature@1.2.2: {} + cookie@0.6.0: {} + cookie@0.7.2: {} + copy-anything@2.0.6: dependencies: is-what: 3.14.1 copy-descriptor@0.1.1: {} + copy-to-clipboard@3.3.3: + dependencies: + toggle-selection: 1.0.6 + copy-webpack-plugin@9.1.0(webpack@5.94.0): dependencies: fast-glob: 3.3.2 @@ -11176,6 +15675,10 @@ snapshots: dependencies: browserslist: 4.23.3 + core-js-compat@3.50.0: + dependencies: + browserslist: 4.28.9 + core-js-pure@3.38.1: {} core-js@2.6.12: {} @@ -11184,14 +15687,35 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig-typescript-loader@5.0.0(@types/node@22.9.0)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5): + cors@2.8.6: dependencies: - '@types/node': 22.9.0 - cosmiconfig: 9.0.0(typescript@4.9.5) + object-assign: 4.1.1 + vary: 1.1.2 + + cose-base@1.0.3: + dependencies: + layout-base: 1.0.2 + + cose-base@2.2.0: + dependencies: + layout-base: 2.0.1 + + cosmiconfig-typescript-loader@5.0.0(@types/node@22.20.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@4.9.5): + dependencies: + '@types/node': 22.20.1 + cosmiconfig: 9.0.0(typescript@5.9.3) jiti: 1.21.6 typescript: 4.9.5 optional: true + cosmiconfig-typescript-loader@5.0.0(@types/node@22.20.1)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): + dependencies: + '@types/node': 22.20.1 + cosmiconfig: 9.0.0(typescript@5.9.3) + jiti: 1.21.6 + typescript: 5.9.3 + optional: true + cosmiconfig@5.2.1: dependencies: import-fresh: 2.0.0 @@ -11207,14 +15731,14 @@ snapshots: path-type: 4.0.0 yaml: 1.10.2 - cosmiconfig@8.3.6(typescript@4.9.5): + cosmiconfig@8.3.6(typescript@5.9.3): dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 4.9.5 + typescript: 5.9.3 cosmiconfig@9.0.0(typescript@4.9.5): dependencies: @@ -11226,6 +15750,16 @@ snapshots: typescript: 4.9.5 optional: true + cosmiconfig@9.0.0(typescript@5.9.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.9.3 + optional: true + create-require@1.1.1: optional: true @@ -11253,20 +15787,32 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-js@4.2.0: {} + css-declaration-sorter@6.4.1(postcss@8.4.47): dependencies: postcss: 8.4.47 + css-declaration-sorter@6.4.1(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + css-functions-list@3.2.2: {} css-loader@6.11.0(webpack@5.94.0): dependencies: - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 - postcss-modules-extract-imports: 3.1.0(postcss@8.4.47) - postcss-modules-local-by-default: 4.0.5(postcss@8.4.47) - postcss-modules-scope: 3.2.0(postcss@8.4.47) - postcss-modules-values: 4.0.0(postcss@8.4.47) + icss-utils: 5.1.0(postcss@8.5.26) + postcss: 8.5.26 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.26) + postcss-modules-local-by-default: 4.0.5(postcss@8.5.26) + postcss-modules-scope: 3.2.0(postcss@8.5.26) + postcss-modules-values: 4.0.0(postcss@8.5.26) postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: @@ -11274,9 +15820,9 @@ snapshots: css-minimizer-webpack-plugin@3.4.1(webpack@5.94.0): dependencies: - cssnano: 5.1.15(postcss@8.4.47) + cssnano: 5.1.15(postcss@8.5.26) jest-worker: 27.5.1 - postcss: 8.4.47 + postcss: 8.5.26 schema-utils: 4.2.0 serialize-javascript: 6.0.2 source-map: 0.6.1 @@ -11299,6 +15845,11 @@ snapshots: domutils: 2.8.0 nth-check: 2.1.1 + css-tree@1.0.0-alpha.29: + dependencies: + mdn-data: 1.1.4 + source-map: 0.5.7 + css-tree@1.0.0-alpha.37: dependencies: mdn-data: 2.0.4 @@ -11355,10 +15906,47 @@ snapshots: postcss-svgo: 5.1.0(postcss@8.4.47) postcss-unique-selectors: 5.1.1(postcss@8.4.47) + cssnano-preset-default@5.2.14(postcss@8.5.26): + dependencies: + css-declaration-sorter: 6.4.1(postcss@8.5.26) + cssnano-utils: 3.1.0(postcss@8.5.26) + postcss: 8.5.26 + postcss-calc: 8.2.4(postcss@8.5.26) + postcss-colormin: 5.3.1(postcss@8.5.26) + postcss-convert-values: 5.1.3(postcss@8.5.26) + postcss-discard-comments: 5.1.2(postcss@8.5.26) + postcss-discard-duplicates: 5.1.0(postcss@8.5.26) + postcss-discard-empty: 5.1.1(postcss@8.5.26) + postcss-discard-overridden: 5.1.0(postcss@8.5.26) + postcss-merge-longhand: 5.1.7(postcss@8.5.26) + postcss-merge-rules: 5.1.4(postcss@8.5.26) + postcss-minify-font-values: 5.1.0(postcss@8.5.26) + postcss-minify-gradients: 5.1.1(postcss@8.5.26) + postcss-minify-params: 5.1.4(postcss@8.5.26) + postcss-minify-selectors: 5.2.1(postcss@8.5.26) + postcss-normalize-charset: 5.1.0(postcss@8.5.26) + postcss-normalize-display-values: 5.1.0(postcss@8.5.26) + postcss-normalize-positions: 5.1.1(postcss@8.5.26) + postcss-normalize-repeat-style: 5.1.1(postcss@8.5.26) + postcss-normalize-string: 5.1.0(postcss@8.5.26) + postcss-normalize-timing-functions: 5.1.0(postcss@8.5.26) + postcss-normalize-unicode: 5.1.1(postcss@8.5.26) + postcss-normalize-url: 5.1.0(postcss@8.5.26) + postcss-normalize-whitespace: 5.1.1(postcss@8.5.26) + postcss-ordered-values: 5.1.3(postcss@8.5.26) + postcss-reduce-initial: 5.1.2(postcss@8.5.26) + postcss-reduce-transforms: 5.1.0(postcss@8.5.26) + postcss-svgo: 5.1.0(postcss@8.5.26) + postcss-unique-selectors: 5.1.1(postcss@8.5.26) + cssnano-utils@3.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 + cssnano-utils@3.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + cssnano@5.1.15(postcss@8.4.47): dependencies: cssnano-preset-default: 5.2.14(postcss@8.4.47) @@ -11366,6 +15954,17 @@ snapshots: postcss: 8.4.47 yaml: 1.10.2 + cssnano@5.1.15(postcss@8.5.26): + dependencies: + cssnano-preset-default: 5.2.14(postcss@8.5.26) + lilconfig: 2.1.0 + postcss: 8.5.26 + yaml: 1.10.2 + + csso@3.5.1: + dependencies: + css-tree: 1.0.0-alpha.29 + csso@4.2.0: dependencies: css-tree: 1.1.3 @@ -11374,10 +15973,17 @@ snapshots: cssom@0.4.4: {} + cssom@0.5.0: {} + cssstyle@2.3.0: dependencies: cssom: 0.3.8 + cssstyle@4.6.0: + dependencies: + '@asamuzakjp/css-color': 3.2.0 + rrweb-cssom: 0.8.0 + csstype@3.1.3: {} csstype@3.2.3: {} @@ -11386,20 +15992,224 @@ snapshots: dependencies: array-find-index: 1.0.2 - cz-conventional-changelog@3.3.0(@types/node@22.9.0)(typescript@4.9.5): + cytoscape-cose-bilkent@4.1.0(cytoscape@3.34.3): + dependencies: + cose-base: 1.0.3 + cytoscape: 3.34.3 + + cytoscape-fcose@2.2.0(cytoscape@3.34.3): + dependencies: + cose-base: 2.2.0 + cytoscape: 3.34.3 + + cytoscape@3.34.3: {} + + cz-conventional-changelog@3.3.0(@types/node@22.20.1)(typescript@4.9.5): + dependencies: + chalk: 2.4.2 + commitizen: 4.3.0(@types/node@22.20.1)(typescript@4.9.5) + conventional-commit-types: 3.0.0 + lodash.map: 4.6.0 + longest: 2.0.1 + word-wrap: 1.2.5 + optionalDependencies: + '@commitlint/load': 19.5.0(@types/node@22.20.1)(typescript@4.9.5) + transitivePeerDependencies: + - '@types/node' + - typescript + + cz-conventional-changelog@3.3.0(@types/node@22.20.1)(typescript@5.9.3): dependencies: chalk: 2.4.2 - commitizen: 4.3.0(@types/node@22.9.0)(typescript@4.9.5) + commitizen: 4.3.0(@types/node@22.20.1)(typescript@5.9.3) conventional-commit-types: 3.0.0 lodash.map: 4.6.0 longest: 2.0.1 word-wrap: 1.2.5 optionalDependencies: - '@commitlint/load': 19.5.0(@types/node@22.9.0)(typescript@4.9.5) + '@commitlint/load': 19.5.0(@types/node@22.20.1)(typescript@5.9.3) transitivePeerDependencies: - '@types/node' - typescript + d3-array@2.12.1: + dependencies: + internmap: 1.0.1 + + d3-array@3.2.4: + dependencies: + internmap: 2.0.3 + + d3-axis@3.0.0: {} + + d3-brush@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3-chord@3.0.1: + dependencies: + d3-path: 3.1.0 + + d3-color@3.1.0: {} + + d3-contour@4.0.2: + dependencies: + d3-array: 3.2.4 + + d3-delaunay@6.0.4: + dependencies: + delaunator: 5.1.0 + + d3-dispatch@3.0.1: {} + + d3-drag@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + + d3-dsv@3.0.1: + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + + d3-ease@3.0.1: {} + + d3-fetch@3.0.1: + dependencies: + d3-dsv: 3.0.1 + + d3-force@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + + d3-format@3.1.2: {} + + d3-geo@3.1.1: + dependencies: + d3-array: 3.2.4 + + d3-hierarchy@3.1.2: {} + + d3-interpolate@3.0.1: + dependencies: + d3-color: 3.1.0 + + d3-path@1.0.9: {} + + d3-path@3.1.0: {} + + d3-polygon@3.0.1: {} + + d3-quadtree@3.0.1: {} + + d3-random@3.0.1: {} + + d3-sankey@0.12.3: + dependencies: + d3-array: 2.12.1 + d3-shape: 1.3.7 + + d3-scale-chromatic@3.1.0: + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + + d3-scale@4.0.2: + dependencies: + d3-array: 3.2.4 + d3-format: 3.1.2 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + + d3-selection@3.0.0: {} + + d3-shape@1.3.7: + dependencies: + d3-path: 1.0.9 + + d3-shape@3.2.0: + dependencies: + d3-path: 3.1.0 + + d3-time-format@4.1.0: + dependencies: + d3-time: 3.1.0 + + d3-time@3.1.0: + dependencies: + d3-array: 3.2.4 + + d3-timer@3.0.1: {} + + d3-transition@3.0.1(d3-selection@3.0.0): + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + + d3-zoom@3.0.0: + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1(d3-selection@3.0.0) + + d3@7.9.0: + dependencies: + d3-array: 3.2.4 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.4 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.2 + d3-geo: 3.1.1 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.1.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1(d3-selection@3.0.0) + d3-zoom: 3.0.0 + + dagre-d3-es@7.0.11: + dependencies: + d3: 7.9.0 + lodash-es: 4.18.1 + + dagre-d3-es@7.0.9: + dependencies: + d3: 7.9.0 + lodash-es: 4.18.1 + optional: true + dargs@4.1.0: dependencies: number-is-nan: 1.0.1 @@ -11412,6 +16222,17 @@ snapshots: whatwg-mimetype: 2.3.0 whatwg-url: 8.7.0 + data-urls@3.0.2: + dependencies: + abab: 2.0.6 + whatwg-mimetype: 3.0.0 + whatwg-url: 11.0.0 + + data-urls@5.0.0: + dependencies: + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + data-view-buffer@1.0.1: dependencies: call-bind: 1.0.7 @@ -11456,6 +16277,10 @@ snapshots: optionalDependencies: supports-color: 5.5.0 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 @@ -11467,10 +16292,14 @@ snapshots: decimal.js@10.4.3: {} + decimal.js@10.6.0: {} + decode-uri-component@0.2.2: {} dedent@0.7.0: {} + deep-eql@5.0.2: {} + deep-is@0.1.4: {} deepmerge@1.5.2: {} @@ -11521,6 +16350,10 @@ snapshots: pify: 3.0.0 rimraf: 2.7.1 + delaunator@5.1.0: + dependencies: + robust-predicates: 3.0.3 + delayed-stream@1.0.0: {} delegate@3.2.0: {} @@ -11531,6 +16364,8 @@ snapshots: deprecation@2.3.1: {} + dequal@2.0.3: {} + destroy@1.2.0: {} detect-file@1.0.0: {} @@ -11545,6 +16380,8 @@ snapshots: diacritics@1.3.0: {} + diff-sequences@26.6.2: {} + diff-sequences@27.5.1: {} diff@4.0.4: @@ -11568,10 +16405,17 @@ snapshots: dependencies: esutils: 2.0.3 + dom-accessibility-api@0.5.16: {} + dom-converter@0.2.0: dependencies: utila: 0.4.0 + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.29.7 + csstype: 3.2.3 + dom-serializer@0.2.2: dependencies: domelementtype: 2.3.0 @@ -11597,6 +16441,10 @@ snapshots: dependencies: webidl-conversions: 5.0.0 + domexception@4.0.0: + dependencies: + webidl-conversions: 7.0.0 + domhandler@4.3.1: dependencies: domelementtype: 2.3.0 @@ -11605,6 +16453,13 @@ snapshots: dependencies: domelementtype: 2.3.0 + dompurify@2.4.3: + optional: true + + dompurify@3.4.15: + optionalDependencies: + '@types/trusted-types': 2.0.7 + domutils@1.7.0: dependencies: dom-serializer: 0.2.2 @@ -11622,6 +16477,12 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + dot-case@3.0.4: dependencies: no-case: 3.0.4 @@ -11639,11 +16500,19 @@ snapshots: dotenv@10.0.0: {} + dotenv@17.4.2: {} + dotgitignore@2.1.0: dependencies: find-up: 3.0.0 minimatch: 3.1.2 + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + duplexer@0.1.2: {} easy-stack@1.0.1: {} @@ -11652,8 +16521,15 @@ snapshots: electron-to-chromium@1.5.27: {} + electron-to-chromium@1.5.423: {} + elegant-spinner@1.0.1: {} + elkjs@0.8.2: + optional: true + + emittery@0.7.2: {} + emittery@0.8.1: {} emoji-regex@8.0.0: {} @@ -11684,6 +16560,8 @@ snapshots: entities@4.5.0: {} + entities@6.0.1: {} + entities@7.0.1: {} env-paths@2.2.1: @@ -11757,6 +16635,8 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + es-define-property@1.0.1: {} + es-errors@1.3.0: {} es-iterator-helpers@1.0.19: @@ -11778,16 +16658,29 @@ snapshots: es-module-lexer@1.5.4: {} + es-module-lexer@1.7.0: {} + es-object-atoms@1.0.0: dependencies: es-errors: 1.3.0 + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + es-set-tostringtag@2.0.3: dependencies: get-intrinsic: 1.2.4 has-tostringtag: 1.0.2 hasown: 2.0.2 + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.4 + es-shim-unscopables@1.0.2: dependencies: hasown: 2.0.2 @@ -11826,6 +16719,35 @@ snapshots: '@esbuild/win32-ia32': 0.25.2 '@esbuild/win32-x64': 0.25.2 + esbuild@0.28.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.2 + '@esbuild/android-arm': 0.28.2 + '@esbuild/android-arm64': 0.28.2 + '@esbuild/android-x64': 0.28.2 + '@esbuild/darwin-arm64': 0.28.2 + '@esbuild/darwin-x64': 0.28.2 + '@esbuild/freebsd-arm64': 0.28.2 + '@esbuild/freebsd-x64': 0.28.2 + '@esbuild/linux-arm': 0.28.2 + '@esbuild/linux-arm64': 0.28.2 + '@esbuild/linux-ia32': 0.28.2 + '@esbuild/linux-loong64': 0.28.2 + '@esbuild/linux-mips64el': 0.28.2 + '@esbuild/linux-ppc64': 0.28.2 + '@esbuild/linux-riscv64': 0.28.2 + '@esbuild/linux-s390x': 0.28.2 + '@esbuild/linux-x64': 0.28.2 + '@esbuild/netbsd-arm64': 0.28.2 + '@esbuild/netbsd-x64': 0.28.2 + '@esbuild/openbsd-arm64': 0.28.2 + '@esbuild/openbsd-x64': 0.28.2 + '@esbuild/openharmony-arm64': 0.28.2 + '@esbuild/sunos-x64': 0.28.2 + '@esbuild/win32-arm64': 0.28.2 + '@esbuild/win32-ia32': 0.28.2 + '@esbuild/win32-x64': 0.28.2 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -12118,8 +17040,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.18.0 + acorn-jsx: 5.3.2(acorn@8.18.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -12138,6 +17060,10 @@ snapshots: estree-walker@2.0.2: {} + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.7 + esutils@2.0.3: {} etag@1.8.1: {} @@ -12148,6 +17074,14 @@ snapshots: events@3.3.0: {} + eventsource-parser@3.1.1: {} + + eventsource@3.0.7: + dependencies: + eventsource-parser: 3.1.1 + + exec-sh@0.3.6: {} + execa@0.8.0: dependencies: cross-spawn: 5.1.0 @@ -12168,6 +17102,18 @@ snapshots: signal-exit: 3.0.7 strip-eof: 1.0.0 + execa@4.1.0: + dependencies: + cross-spawn: 7.0.3 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + execa@5.1.1: dependencies: cross-spawn: 7.0.3 @@ -12198,6 +17144,17 @@ snapshots: dependencies: homedir-polyfill: 1.0.3 + expect-type@1.4.0: {} + + expect@26.6.2: + dependencies: + '@jest/types': 26.6.2 + ansi-styles: 4.3.0 + jest-get-type: 26.3.0 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-regex-util: 26.0.0 + expect@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -12205,6 +17162,16 @@ snapshots: jest-matcher-utils: 27.5.1 jest-message-util: 27.5.1 + expr-parser@1.0.0: {} + + express-rate-limit@8.7.0(express@5.2.1): + dependencies: + debug: 4.4.3 + express: 5.2.1 + ip-address: 10.7.0 + transitivePeerDependencies: + - supports-color + express@4.21.0: dependencies: accepts: 1.3.8 @@ -12241,6 +17208,39 @@ snapshots: transitivePeerDependencies: - supports-color + express@5.2.1: + dependencies: + accepts: 2.0.0 + body-parser: 2.3.0 + content-disposition: 1.1.0 + content-type: 1.0.5 + cookie: 0.7.2 + cookie-signature: 1.2.2 + debug: 4.4.3 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 2.1.1 + fresh: 2.0.0 + http-errors: 2.0.0 + merge-descriptors: 2.0.0 + mime-types: 3.0.2 + on-finished: 2.4.1 + once: 1.4.0 + parseurl: 1.3.3 + proxy-addr: 2.0.7 + qs: 6.16.0 + range-parser: 1.2.1 + router: 2.2.0 + send: 1.2.1 + serve-static: 2.2.1 + statuses: 2.0.1 + type-is: 2.1.0 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + extend-shallow@2.0.1: dependencies: is-extendable: 0.1.1 @@ -12281,6 +17281,8 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-json-patch@3.1.1: {} + fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -12305,6 +17307,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.5.0(picomatch@4.0.7): + optionalDependencies: + picomatch: 4.0.7 + figures@1.7.0: dependencies: escape-string-regexp: 1.0.5 @@ -12353,6 +17359,17 @@ snapshots: transitivePeerDependencies: - supports-color + finalhandler@2.1.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + find-cache-dir@3.3.2: dependencies: commondir: 1.0.1 @@ -12421,6 +17438,14 @@ snapshots: combined-stream: 1.0.8 mime-types: 2.1.35 + form-data@4.0.6: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.4 + mime-types: 2.1.35 + forwarded@0.2.0: {} fraction.js@4.3.7: {} @@ -12431,6 +17456,8 @@ snapshots: fresh@0.5.2: {} + fresh@2.0.0: {} + fs-access@1.0.1: dependencies: null-check: 1.0.0 @@ -12488,6 +17515,19 @@ snapshots: has-symbols: 1.0.3 hasown: 2.0.2 + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.2 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + get-own-enumerable-property-symbols@3.0.2: {} get-package-type@0.1.0: {} @@ -12499,6 +17539,11 @@ snapshots: through2: 2.0.5 yargs: 16.2.0 + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.2 + get-stdin@7.0.0: {} get-stream@3.0.0: {} @@ -12507,6 +17552,10 @@ snapshots: dependencies: pump: 3.0.2 + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + get-stream@6.0.1: {} get-symbol-description@1.0.2: @@ -12532,7 +17581,7 @@ snapshots: git-raw-commits@2.0.11: dependencies: dargs: 7.0.0 - lodash: 4.17.21 + lodash: 4.18.1 meow: 8.1.2 split2: 3.2.2 through2: 4.0.2 @@ -12646,6 +17695,8 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + gopd@1.2.0: {} + graceful-fs@4.2.11: {} graphemer@1.4.0: {} @@ -12657,12 +17708,17 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 + growly@1.3.0: + optional: true + gsap@3.8.0: {} gzip-size@6.0.0: dependencies: duplexer: 0.1.2 + hachure-fill@0.5.2: {} + handle-thing@2.0.1: {} handlebars@4.7.8: @@ -12674,6 +17730,19 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 + happy-dom@20.14.0: + dependencies: + '@types/node': 22.20.1 + '@types/whatwg-mimetype': 3.0.2 + '@types/ws': 8.18.1 + buffer-image-size: 0.6.4 + entities: 7.0.1 + whatwg-mimetype: 3.0.0 + ws: 8.21.3 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + hard-rejection@2.1.0: {} has-ansi@2.0.0: @@ -12694,6 +17763,8 @@ snapshots: has-symbols@1.0.3: {} + has-symbols@1.1.0: {} + has-tostringtag@1.0.2: dependencies: has-symbols: 1.0.3 @@ -12725,14 +17796,24 @@ snapshots: dependencies: function-bind: 1.1.2 + hasown@2.0.4: + dependencies: + function-bind: 1.1.2 + he@1.2.0: {} highlight.js@10.7.3: {} + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + homedir-polyfill@1.0.3: dependencies: parse-passwd: 1.0.0 + hono@4.13.7: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -12746,10 +17827,20 @@ snapshots: readable-stream: 2.3.8 wbuf: 1.7.3 + htm@3.1.1: {} + html-encoding-sniffer@2.0.1: dependencies: whatwg-encoding: 1.0.5 + html-encoding-sniffer@3.0.0: + dependencies: + whatwg-encoding: 2.0.0 + + html-encoding-sniffer@4.0.0: + dependencies: + whatwg-encoding: 3.1.1 + html-entities@2.5.2: {} html-escaper@2.0.2: {} @@ -12772,12 +17863,19 @@ snapshots: dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 - lodash: 4.17.21 + lodash: 4.18.1 pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: webpack: 5.94.0 + htmlparser2@10.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 7.0.1 + htmlparser2@6.1.0: dependencies: domelementtype: 2.3.0 @@ -12809,6 +17907,14 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + http-errors@2.0.1: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.2 + toidentifier: 1.0.1 + http-parser-js@0.5.8: {} http-proxy-agent@4.0.1: @@ -12819,6 +17925,21 @@ snapshots: transitivePeerDependencies: - supports-color + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.1 + agent-base: 6.0.2 + debug: 4.3.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.3.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + http-proxy-middleware@2.0.6(@types/express@4.17.21)(debug@4.3.7): dependencies: '@types/http-proxy': 1.17.15 @@ -12846,6 +17967,15 @@ snapshots: transitivePeerDependencies: - supports-color + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.3.7(supports-color@5.5.0) + transitivePeerDependencies: + - supports-color + + human-signals@1.1.1: {} + human-signals@2.1.0: {} husky@3.1.0: @@ -12875,11 +18005,14 @@ snapshots: iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - optional: true - icss-utils@5.1.0(postcss@8.4.47): + iconv-lite@0.7.3: dependencies: - postcss: 8.4.47 + safer-buffer: 2.1.2 + + icss-utils@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 ieee754@1.2.1: {} @@ -12892,6 +18025,8 @@ snapshots: image-size@0.5.5: optional: true + immer@10.2.0: {} + import-fresh@2.0.0: dependencies: caller-path: 2.0.0 @@ -12912,6 +18047,8 @@ snapshots: import-meta-resolve@4.1.0: optional: true + import-meta-resolve@4.2.0: {} + imurmurhash@0.1.4: {} indent-string@3.2.0: {} @@ -12942,7 +18079,7 @@ snapshots: cli-width: 3.0.0 external-editor: 3.1.0 figures: 3.2.0 - lodash: 4.17.21 + lodash: 4.18.1 mute-stream: 0.0.8 ora: 5.4.1 run-async: 2.4.1 @@ -12958,6 +18095,12 @@ snapshots: hasown: 2.0.2 side-channel: 1.0.6 + internmap@1.0.1: {} + + internmap@2.0.3: {} + + ip-address@10.7.0: {} + ipaddr.js@1.9.1: {} ipaddr.js@2.2.0: {} @@ -12998,10 +18141,18 @@ snapshots: dependencies: ci-info: 1.6.0 + is-ci@2.0.0: + dependencies: + ci-info: 2.0.0 + is-core-module@2.15.1: dependencies: hasown: 2.0.2 + is-core-module@2.16.2: + dependencies: + hasown: 2.0.4 + is-data-descriptor@1.0.1: dependencies: hasown: 2.0.2 @@ -13066,6 +18217,8 @@ snapshots: is-map@2.0.3: {} + is-module@1.0.0: {} + is-negative-zero@2.0.3: {} is-number-object@1.0.7: @@ -13110,6 +18263,12 @@ snapshots: is-promise@2.2.2: {} + is-promise@4.0.0: {} + + is-reference@1.2.1: + dependencies: + '@types/estree': 1.0.7 + is-regex@1.1.4: dependencies: call-bind: 1.0.7 @@ -13182,9 +18341,18 @@ snapshots: istanbul-lib-coverage@3.2.2: {} + istanbul-lib-instrument@4.0.3: + dependencies: + '@babel/core': 7.29.7 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@babel/parser': 7.29.8 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -13219,8 +18387,20 @@ snapshots: reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 + j-component@1.4.10: + dependencies: + expr-parser: 1.0.0 + miniprogram-api-typings: 3.12.3 + miniprogram-exparser: 2.29.1 + javascript-stringify@2.1.0: {} + jest-changed-files@26.6.2: + dependencies: + '@jest/types': 26.6.2 + execa: 4.1.0 + throat: 5.0.0 + jest-changed-files@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -13232,7 +18412,7 @@ snapshots: '@jest/environment': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -13251,20 +18431,44 @@ snapshots: transitivePeerDependencies: - supports-color - jest-cli@27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5)): + jest-cli@26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)): + dependencies: + '@jest/core': 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + import-local: 3.2.0 + is-ci: 2.0.0 + jest-config: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jest-util: 26.6.2 + jest-validate: 26.6.2 + prompts: 2.4.2 + yargs: 15.4.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + + jest-cli@27.5.1(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)): dependencies: - '@jest/core': 27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5)) + '@jest/core': 27.5.1(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 import-local: 3.2.0 - jest-config: 27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5)) + jest-config: 27.5.1(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) jest-util: 27.5.1 jest-validate: 27.5.1 prompts: 2.4.2 yargs: 16.2.0 + optionalDependencies: + node-notifier: 8.0.2 transitivePeerDependencies: - bufferutil - canvas @@ -13272,12 +18476,40 @@ snapshots: - ts-node - utf-8-validate - jest-config@27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5)): + jest-config@26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)): dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 + '@jest/test-sequencer': 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + '@jest/types': 26.6.2 + babel-jest: 26.6.3(@babel/core@7.29.7) + chalk: 4.1.2 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-environment-jsdom: 26.6.2 + jest-environment-node: 26.6.2 + jest-get-type: 26.3.0 + jest-jasmine2: 26.6.3 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + micromatch: 4.0.8 + pretty-format: 26.6.2 + optionalDependencies: + ts-node: 10.9.2(@types/node@22.20.1)(typescript@5.9.3) + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + + jest-config@27.5.1(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)): + dependencies: + '@babel/core': 7.29.7 '@jest/test-sequencer': 27.5.1 '@jest/types': 27.5.1 - babel-jest: 27.5.1(@babel/core@7.25.2) + babel-jest: 27.5.1(@babel/core@7.29.7) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -13299,13 +18531,20 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - ts-node: 10.9.2(@types/node@22.9.0)(typescript@4.9.5) + ts-node: 10.9.2(@types/node@22.20.1)(typescript@5.9.3) transitivePeerDependencies: - bufferutil - canvas - supports-color - utf-8-validate + jest-diff@26.6.2: + dependencies: + chalk: 4.1.2 + diff-sequences: 26.6.2 + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + jest-diff@27.5.1: dependencies: chalk: 4.1.2 @@ -13313,10 +18552,22 @@ snapshots: jest-get-type: 27.5.1 pretty-format: 27.5.1 + jest-docblock@26.0.0: + dependencies: + detect-newline: 3.1.0 + jest-docblock@27.5.1: dependencies: detect-newline: 3.1.0 + jest-each@26.6.2: + dependencies: + '@jest/types': 26.6.2 + chalk: 4.1.2 + jest-get-type: 26.3.0 + jest-util: 26.6.2 + pretty-format: 26.6.2 + jest-each@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -13325,12 +18576,27 @@ snapshots: jest-util: 27.5.1 pretty-format: 27.5.1 + jest-environment-jsdom@26.6.2: + dependencies: + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + jest-mock: 26.6.2 + jest-util: 26.6.2 + jsdom: 16.7.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + jest-environment-jsdom@27.5.1: dependencies: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 jest-mock: 27.5.1 jest-util: 27.5.1 jsdom: 16.7.0 @@ -13340,22 +18606,53 @@ snapshots: - supports-color - utf-8-validate + jest-environment-node@26.6.2: + dependencies: + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + jest-mock: 26.6.2 + jest-util: 26.6.2 + jest-environment-node@27.5.1: dependencies: '@jest/environment': 27.5.1 '@jest/fake-timers': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 jest-mock: 27.5.1 jest-util: 27.5.1 + jest-get-type@26.3.0: {} + jest-get-type@27.5.1: {} + jest-haste-map@26.6.2: + dependencies: + '@jest/types': 26.6.2 + '@types/graceful-fs': 4.1.9 + '@types/node': 22.20.1 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 26.0.0 + jest-serializer: 26.6.2 + jest-util: 26.6.2 + jest-worker: 26.6.2 + micromatch: 4.0.8 + sane: 4.1.0 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + transitivePeerDependencies: + - supports-color + jest-haste-map@27.5.1: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.9 - '@types/node': 22.9.0 + '@types/node': 22.20.1 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -13368,13 +18665,36 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + jest-jasmine2@26.6.3: + dependencies: + '@babel/traverse': 7.25.6 + '@jest/environment': 26.6.2 + '@jest/source-map': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + chalk: 4.1.2 + co: 4.6.0 + expect: 26.6.2 + is-generator-fn: 2.1.0 + jest-each: 26.6.2 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-runtime: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + pretty-format: 26.6.2 + throat: 5.0.0 + transitivePeerDependencies: + - supports-color + jest-jasmine2@27.5.1: dependencies: '@jest/environment': 27.5.1 '@jest/source-map': 27.5.1 '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 chalk: 4.1.2 co: 4.6.0 expect: 27.5.1 @@ -13390,11 +18710,23 @@ snapshots: transitivePeerDependencies: - supports-color + jest-leak-detector@26.6.2: + dependencies: + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + jest-leak-detector@27.5.1: dependencies: jest-get-type: 27.5.1 pretty-format: 27.5.1 + jest-matcher-utils@26.6.2: + dependencies: + chalk: 4.1.2 + jest-diff: 26.6.2 + jest-get-type: 26.3.0 + pretty-format: 26.6.2 + jest-matcher-utils@27.5.1: dependencies: chalk: 4.1.2 @@ -13402,6 +18734,18 @@ snapshots: jest-get-type: 27.5.1 pretty-format: 27.5.1 + jest-message-util@26.6.2: + dependencies: + '@babel/code-frame': 7.24.7 + '@jest/types': 26.6.2 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 26.6.2 + slash: 3.0.0 + stack-utils: 2.0.6 + jest-message-util@27.5.1: dependencies: '@babel/code-frame': 7.24.7 @@ -13414,17 +18758,36 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 + jest-mock@26.6.2: + dependencies: + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + jest-mock@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 + + jest-pnp-resolver@1.2.3(jest-resolve@26.6.2): + optionalDependencies: + jest-resolve: 26.6.2 jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): optionalDependencies: jest-resolve: 27.5.1 + jest-regex-util@26.0.0: {} + jest-regex-util@27.5.1: {} + jest-resolve-dependencies@26.6.3: + dependencies: + '@jest/types': 26.6.2 + jest-regex-util: 26.0.0 + jest-snapshot: 26.6.2 + transitivePeerDependencies: + - supports-color + jest-resolve-dependencies@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -13433,6 +18796,17 @@ snapshots: transitivePeerDependencies: - supports-color + jest-resolve@26.6.2: + dependencies: + '@jest/types': 26.6.2 + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-pnp-resolver: 1.2.3(jest-resolve@26.6.2) + jest-util: 26.6.2 + read-pkg-up: 7.0.1 + resolve: 1.22.8 + slash: 3.0.0 + jest-resolve@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -13446,6 +18820,35 @@ snapshots: resolve.exports: 1.1.1 slash: 3.0.0 + jest-runner@26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)): + dependencies: + '@jest/console': 26.6.2 + '@jest/environment': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + chalk: 4.1.2 + emittery: 0.7.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jest-docblock: 26.0.0 + jest-haste-map: 26.6.2 + jest-leak-detector: 26.6.2 + jest-message-util: 26.6.2 + jest-resolve: 26.6.2 + jest-runtime: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jest-util: 26.6.2 + jest-worker: 26.6.2 + source-map-support: 0.5.21 + throat: 5.0.0 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + jest-runner@27.5.1: dependencies: '@jest/console': 27.5.1 @@ -13453,7 +18856,7 @@ snapshots: '@jest/test-result': 27.5.1 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 chalk: 4.1.2 emittery: 0.8.1 graceful-fs: 4.2.11 @@ -13475,6 +18878,42 @@ snapshots: - supports-color - utf-8-validate + jest-runtime@26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)): + dependencies: + '@jest/console': 26.6.2 + '@jest/environment': 26.6.2 + '@jest/fake-timers': 26.6.2 + '@jest/globals': 26.6.2 + '@jest/source-map': 26.6.2 + '@jest/test-result': 26.6.2 + '@jest/transform': 26.6.2 + '@jest/types': 26.6.2 + '@types/yargs': 15.0.20 + chalk: 4.1.2 + cjs-module-lexer: 0.6.0 + collect-v8-coverage: 1.0.2 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-config: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jest-haste-map: 26.6.2 + jest-message-util: 26.6.2 + jest-mock: 26.6.2 + jest-regex-util: 26.0.0 + jest-resolve: 26.6.2 + jest-snapshot: 26.6.2 + jest-util: 26.6.2 + jest-validate: 26.6.2 + slash: 3.0.0 + strip-bom: 4.0.0 + yargs: 15.4.1 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + jest-runtime@27.5.1: dependencies: '@jest/environment': 27.5.1 @@ -13502,23 +18941,49 @@ snapshots: transitivePeerDependencies: - supports-color + jest-serializer@26.6.2: + dependencies: + '@types/node': 22.20.1 + graceful-fs: 4.2.11 + jest-serializer@27.5.1: dependencies: - '@types/node': 22.9.0 + '@types/node': 22.20.1 + graceful-fs: 4.2.11 + + jest-snapshot@26.6.2: + dependencies: + '@babel/types': 7.29.8 + '@jest/types': 26.6.2 + '@types/babel__traverse': 7.20.6 + '@types/prettier': 2.7.3 + chalk: 4.1.2 + expect: 26.6.2 graceful-fs: 4.2.11 + jest-diff: 26.6.2 + jest-get-type: 26.3.0 + jest-haste-map: 26.6.2 + jest-matcher-utils: 26.6.2 + jest-message-util: 26.6.2 + jest-resolve: 26.6.2 + natural-compare: 1.4.0 + pretty-format: 26.6.2 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color jest-snapshot@27.5.1: dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.29.7 '@babel/generator': 7.25.6 - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.25.2) + '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.29.7) '@babel/traverse': 7.25.6 '@babel/types': 7.29.8 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/babel__traverse': 7.20.6 '@types/prettier': 2.7.3 - babel-preset-current-node-syntax: 1.1.0(@babel/core@7.25.2) + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.29.7) chalk: 4.1.2 expect: 27.5.1 graceful-fs: 4.2.11 @@ -13534,15 +18999,33 @@ snapshots: transitivePeerDependencies: - supports-color + jest-util@26.6.2: + dependencies: + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + chalk: 4.1.2 + graceful-fs: 4.2.11 + is-ci: 2.0.0 + micromatch: 4.0.8 + jest-util@27.5.1: dependencies: '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 + jest-validate@26.6.2: + dependencies: + '@jest/types': 26.6.2 + camelcase: 6.3.0 + chalk: 4.1.2 + jest-get-type: 26.3.0 + leven: 3.1.0 + pretty-format: 26.6.2 + jest-validate@27.5.1: dependencies: '@jest/types': 27.5.1 @@ -13552,33 +19035,63 @@ snapshots: leven: 3.1.0 pretty-format: 27.5.1 + jest-watcher@26.6.2: + dependencies: + '@jest/test-result': 26.6.2 + '@jest/types': 26.6.2 + '@types/node': 22.20.1 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + jest-util: 26.6.2 + string-length: 4.0.2 + jest-watcher@27.5.1: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 22.9.0 + '@types/node': 22.20.1 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 string-length: 4.0.2 + jest-worker@26.6.2: + dependencies: + '@types/node': 22.20.1 + merge-stream: 2.0.0 + supports-color: 7.2.0 + jest-worker@27.5.1: dependencies: - '@types/node': 22.5.5 + '@types/node': 22.20.1 merge-stream: 2.0.0 supports-color: 8.1.1 jest-worker@28.1.3: dependencies: - '@types/node': 22.5.5 + '@types/node': 22.20.1 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5)): + jest@26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)): + dependencies: + '@jest/core': 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + import-local: 3.2.0 + jest-cli: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - ts-node + - utf-8-validate + + jest@27.5.1(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)): dependencies: - '@jest/core': 27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5)) + '@jest/core': 27.5.1(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) import-local: 3.2.0 - jest-cli: 27.5.1(ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5)) + jest-cli: 27.5.1(node-notifier@8.0.2)(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + optionalDependencies: + node-notifier: 8.0.2 transitivePeerDependencies: - bufferutil - canvas @@ -13597,10 +19110,16 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + jose@6.2.12: {} + + js-cookie@3.0.8: {} + js-message@1.0.7: {} js-tokens@4.0.0: {} + js-tokens@9.0.1: {} + js-yaml@3.14.1: dependencies: argparse: 1.0.10 @@ -13613,7 +19132,7 @@ snapshots: jsdom@16.7.0: dependencies: abab: 2.0.6 - acorn: 8.15.0 + acorn: 8.18.0 acorn-globals: 6.0.0 cssom: 0.4.4 cssstyle: 2.3.0 @@ -13644,10 +19163,73 @@ snapshots: - supports-color - utf-8-validate + jsdom@19.0.0: + dependencies: + abab: 2.0.6 + acorn: 8.18.0 + acorn-globals: 6.0.0 + cssom: 0.5.0 + cssstyle: 2.3.0 + data-urls: 3.0.2 + decimal.js: 10.4.3 + domexception: 4.0.0 + escodegen: 2.1.0 + form-data: 4.0.6 + html-encoding-sniffer: 3.0.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.12 + parse5: 6.0.1 + saxes: 5.0.1 + symbol-tree: 3.2.4 + tough-cookie: 4.1.4 + w3c-hr-time: 1.0.2 + w3c-xmlserializer: 3.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 2.0.0 + whatwg-mimetype: 3.0.0 + whatwg-url: 10.0.0 + ws: 8.18.0 + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + jsdom@26.1.0: + dependencies: + cssstyle: 4.6.0 + data-urls: 5.0.0 + decimal.js: 10.6.0 + html-encoding-sniffer: 4.0.0 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + is-potential-custom-element-name: 1.0.1 + nwsapi: 2.2.27 + parse5: 7.3.0 + rrweb-cssom: 0.8.0 + saxes: 6.0.0 + symbol-tree: 3.2.4 + tough-cookie: 5.1.2 + w3c-xmlserializer: 5.0.0 + webidl-conversions: 7.0.0 + whatwg-encoding: 3.1.1 + whatwg-mimetype: 4.0.0 + whatwg-url: 14.2.0 + ws: 8.18.0 + xml-name-validator: 5.0.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + jsesc@0.5.0: {} jsesc@2.5.2: {} + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-parse-better-errors@1.0.2: {} @@ -13658,6 +19240,8 @@ snapshots: json-schema-traverse@1.0.0: {} + json-schema-typed@8.0.2: {} + json-stable-stringify-without-jsonify@1.0.1: {} json-stringify-safe@5.0.1: {} @@ -13683,10 +19267,16 @@ snapshots: object.assign: 4.1.5 object.values: 1.2.0 + katex@0.16.47: + dependencies: + commander: 8.3.0 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 + khroma@2.1.0: {} + kind-of@3.2.2: dependencies: is-buffer: 1.1.6 @@ -13703,6 +19293,14 @@ snapshots: known-css-properties@0.29.0: {} + langium@3.3.1: + dependencies: + chevrotain: 11.0.3 + chevrotain-allstar: 0.3.1(chevrotain@11.0.3) + vscode-languageserver: 9.0.1 + vscode-languageserver-textdocument: 1.0.14 + vscode-uri: 3.0.8 + launch-editor-middleware@2.9.1: dependencies: launch-editor: 2.9.1 @@ -13712,12 +19310,29 @@ snapshots: picocolors: 1.1.1 shell-quote: 1.8.1 + layout-base@1.0.2: {} + + layout-base@2.0.1: {} + less-loader@10.2.0(less@4.2.0)(webpack@5.94.0): dependencies: klona: 2.0.6 less: 4.2.0 webpack: 5.94.0 + less@3.13.1: + dependencies: + copy-anything: 2.0.6 + tslib: 1.14.1 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + native-request: 1.1.2 + source-map: 0.6.1 + less@4.2.0: dependencies: copy-anything: 2.0.6 @@ -13931,10 +19546,14 @@ snapshots: currently-unhandled: 0.4.1 signal-exit: 3.0.7 + loupe@3.2.1: {} + lower-case@2.0.2: dependencies: tslib: 2.7.0 + lru-cache@10.4.3: {} + lru-cache@4.1.5: dependencies: pseudomap: 1.0.2 @@ -13948,6 +19567,12 @@ snapshots: dependencies: yallist: 4.0.0 + lz-string@1.5.0: {} + + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 @@ -13998,6 +19623,8 @@ snapshots: markdown-it-emoji@2.0.2: {} + markdown-it-fence@0.1.3: {} + markdown-it-link-attributes@4.0.1: {} markdown-it-toc-done-right@4.2.0: {} @@ -14010,12 +19637,18 @@ snapshots: mdurl: 1.0.1 uc.micro: 1.0.6 + marked@16.4.2: {} + matcher@1.1.1: dependencies: escape-string-regexp: 1.0.5 + math-intrinsics@1.1.0: {} + mathml-tag-names@2.1.3: {} + mdn-data@1.1.4: {} + mdn-data@2.0.14: {} mdn-data@2.0.30: {} @@ -14026,6 +19659,8 @@ snapshots: media-typer@0.3.0: {} + media-typer@1.1.1: {} + memfs@3.5.3: dependencies: fs-monkey: 1.0.6 @@ -14087,6 +19722,8 @@ snapshots: merge-descriptors@1.0.3: {} + merge-descriptors@2.0.0: {} + merge-source-map@1.1.0: dependencies: source-map: 0.6.1 @@ -14097,6 +19734,49 @@ snapshots: merge@2.1.1: {} + mermaid@11.12.0: + dependencies: + '@braintree/sanitize-url': 7.1.2 + '@iconify/utils': 3.1.7 + '@mermaid-js/parser': 0.6.3 + '@types/d3': 7.4.3 + cytoscape: 3.34.3 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.34.3) + cytoscape-fcose: 2.2.0(cytoscape@3.34.3) + d3: 7.9.0 + d3-sankey: 0.12.3 + dagre-d3-es: 7.0.11 + dayjs: 1.11.23 + dompurify: 3.4.15 + katex: 0.16.47 + khroma: 2.1.0 + lodash-es: 4.18.1 + marked: 16.4.2 + roughjs: 4.6.6 + stylis: 4.4.0 + ts-dedent: 2.3.0 + uuid: 11.1.1 + + mermaid@9.4.3: + dependencies: + '@braintree/sanitize-url': 6.0.4 + cytoscape: 3.34.3 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.34.3) + cytoscape-fcose: 2.2.0(cytoscape@3.34.3) + d3: 7.9.0 + dagre-d3-es: 7.0.9 + dayjs: 1.11.23 + dompurify: 2.4.3 + elkjs: 0.8.2 + khroma: 2.1.0 + lodash-es: 4.18.1 + non-layered-tidy-tree-layout: 2.0.2 + stylis: 4.4.0 + ts-dedent: 2.3.0 + uuid: 9.0.1 + web-worker: 1.5.0 + optional: true + methods@1.1.2: {} micromatch@3.1.10: @@ -14126,10 +19806,16 @@ snapshots: mime-db@1.53.0: {} + mime-db@1.54.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 + mime-types@3.0.2: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mimic-fn@1.2.0: {} @@ -14169,6 +19855,24 @@ snapshots: dependencies: yallist: 4.0.0 + miniprogram-api-typings@3.12.3: {} + + miniprogram-compiler@0.2.3: + dependencies: + glob: 7.2.3 + unescape-js: 1.1.4 + + miniprogram-exparser@2.29.1: {} + + miniprogram-simulate@1.6.2: + dependencies: + csso: 3.5.1 + j-component: 1.4.10 + less: 3.13.1 + miniprogram-compiler: 0.2.3 + postcss: 7.0.39 + pretty-format: 26.6.2 + mitt@3.0.1: {} mixin-deep@1.3.2: @@ -14225,6 +19929,11 @@ snapshots: transitivePeerDependencies: - supports-color + nanostores@0.11.4: {} + + native-request@1.1.2: + optional: true + natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} @@ -14237,6 +19946,10 @@ snapshots: negotiator@0.6.3: {} + negotiator@1.1.0: + dependencies: + content-type: 2.1.0 + neo-async@2.6.2: {} nice-try@1.0.5: {} @@ -14254,8 +19967,20 @@ snapshots: node-int64@0.4.0: {} + node-notifier@8.0.2: + dependencies: + growly: 1.3.0 + is-wsl: 2.2.0 + semver: 7.6.3 + shellwords: 0.1.1 + uuid: 8.3.2 + which: 2.0.2 + optional: true + node-releases@2.0.18: {} + node-releases@2.0.54: {} + nodemon@3.1.7: dependencies: chokidar: 3.6.0 @@ -14269,6 +19994,9 @@ snapshots: touch: 3.1.1 undefsafe: 2.0.5 + non-layered-tidy-tree-layout@2.0.2: + optional: true + normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 @@ -14285,6 +20013,10 @@ snapshots: normalize-path@1.0.0: {} + normalize-path@2.1.1: + dependencies: + remove-trailing-separator: 1.1.0 + normalize-path@3.0.0: {} normalize-range@0.1.2: {} @@ -14337,6 +20069,8 @@ snapshots: nwsapi@2.2.12: {} + nwsapi@2.2.27: {} + object-assign@4.1.1: {} object-copy@0.1.0: @@ -14347,6 +20081,8 @@ snapshots: object-inspect@1.13.2: {} + object-inspect@1.13.4: {} + object-keys@1.1.1: {} object-visit@1.0.1: @@ -14401,6 +20137,16 @@ snapshots: obuf@1.1.2: {} + omi-transition@0.1.11: + dependencies: + omi: 7.7.13 + + omi@7.7.13: + dependencies: + construct-style-sheets-polyfill: 3.0.1 + reactive-signal: 2.0.1 + weakmap-polyfill: 2.0.4 + on-finished@2.4.1: dependencies: ee-first: 1.1.1 @@ -14452,6 +20198,8 @@ snapshots: os-tmpdir@1.0.2: {} + p-each-series@2.2.0: {} + p-finally@1.0.0: {} p-limit@1.3.0: @@ -14495,6 +20243,8 @@ snapshots: p-try@2.2.0: {} + package-manager-detector@1.8.0: {} + param-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -14528,6 +20278,10 @@ snapshots: parse5@6.0.1: {} + parse5@7.3.0: + dependencies: + entities: 6.0.1 + parseurl@1.3.3: {} pascal-case@3.1.2: @@ -14537,6 +20291,8 @@ snapshots: pascalcase@0.1.1: {} + path-data-parser@0.1.0: {} + path-exists@3.0.0: {} path-exists@4.0.0: {} @@ -14553,12 +20309,18 @@ snapshots: path-to-regexp@0.1.10: {} + path-to-regexp@8.4.2: {} + path-type@3.0.0: dependencies: pify: 3.0.0 path-type@4.0.0: {} + pathe@2.0.3: {} + + pathval@2.0.1: {} + performance-now@2.1.0: {} picocolors@0.2.1: {} @@ -14571,6 +20333,8 @@ snapshots: picomatch@4.0.2: {} + picomatch@4.0.7: {} + pidtree@0.3.1: {} pify@2.3.0: {} @@ -14588,6 +20352,8 @@ snapshots: pirates@4.0.6: {} + pkce-challenge@5.0.1: {} + pkg-dir@4.2.0: dependencies: find-up: 4.1.0 @@ -14598,6 +20364,13 @@ snapshots: pngjs@5.0.0: {} + points-on-curve@0.2.0: {} + + points-on-path@0.2.1: + dependencies: + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + portfinder@1.0.32: dependencies: async: 2.6.4 @@ -14616,6 +20389,12 @@ snapshots: postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 + postcss-calc@8.2.4(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + postcss-colormin@5.3.1(postcss@8.4.47): dependencies: browserslist: 4.23.3 @@ -14624,28 +20403,58 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-colormin@5.3.1(postcss@8.5.26): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + colord: 2.9.3 + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-convert-values@5.1.3(postcss@8.4.47): dependencies: browserslist: 4.23.3 postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-convert-values@5.1.3(postcss@8.5.26): + dependencies: + browserslist: 4.23.3 + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-discard-comments@5.1.2(postcss@8.4.47): dependencies: postcss: 8.4.47 + postcss-discard-comments@5.1.2(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-discard-duplicates@5.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 + postcss-discard-duplicates@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-discard-empty@5.1.1(postcss@8.4.47): dependencies: postcss: 8.4.47 + postcss-discard-empty@5.1.1(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-discard-overridden@5.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 + postcss-discard-overridden@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-less@6.0.0(postcss@8.5.26): dependencies: postcss: 8.5.26 @@ -14664,6 +20473,12 @@ snapshots: postcss-value-parser: 4.2.0 stylehacks: 5.1.1(postcss@8.4.47) + postcss-merge-longhand@5.1.7(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + stylehacks: 5.1.1(postcss@8.5.26) + postcss-merge-rules@5.1.4(postcss@8.4.47): dependencies: browserslist: 4.23.3 @@ -14672,11 +20487,24 @@ snapshots: postcss: 8.4.47 postcss-selector-parser: 6.1.2 + postcss-merge-rules@5.1.4(postcss@8.5.26): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + cssnano-utils: 3.1.0(postcss@8.5.26) + postcss: 8.5.26 + postcss-selector-parser: 6.1.2 + postcss-minify-font-values@5.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-minify-font-values@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-minify-gradients@5.1.1(postcss@8.4.47): dependencies: colord: 2.9.3 @@ -14684,6 +20512,13 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-minify-gradients@5.1.1(postcss@8.5.26): + dependencies: + colord: 2.9.3 + cssnano-utils: 3.1.0(postcss@8.5.26) + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-minify-params@5.1.4(postcss@8.4.47): dependencies: browserslist: 4.23.3 @@ -14691,95 +20526,170 @@ snapshots: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-minify-params@5.1.4(postcss@8.5.26): + dependencies: + browserslist: 4.23.3 + cssnano-utils: 3.1.0(postcss@8.5.26) + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-minify-selectors@5.2.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 - postcss-modules-extract-imports@3.1.0(postcss@8.4.47): + postcss-minify-selectors@5.2.1(postcss@8.5.26): dependencies: - postcss: 8.4.47 + postcss: 8.5.26 + postcss-selector-parser: 6.1.2 - postcss-modules-local-by-default@4.0.5(postcss@8.4.47): + postcss-modules-extract-imports@3.1.0(postcss@8.5.26): dependencies: - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 + postcss: 8.5.26 + + postcss-modules-local-by-default@4.0.5(postcss@8.5.26): + dependencies: + icss-utils: 5.1.0(postcss@8.5.26) + postcss: 8.5.26 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.0(postcss@8.4.47): + postcss-modules-scope@3.2.0(postcss@8.5.26): dependencies: - postcss: 8.4.47 + postcss: 8.5.26 postcss-selector-parser: 6.1.2 - postcss-modules-values@4.0.0(postcss@8.4.47): + postcss-modules-values@4.0.0(postcss@8.5.26): dependencies: - icss-utils: 5.1.0(postcss@8.4.47) - postcss: 8.4.47 + icss-utils: 5.1.0(postcss@8.5.26) + postcss: 8.5.26 postcss-normalize-charset@5.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 + postcss-normalize-charset@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-normalize-display-values@5.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-normalize-display-values@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-normalize-positions@5.1.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-normalize-positions@5.1.1(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-normalize-repeat-style@5.1.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-normalize-repeat-style@5.1.1(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-normalize-string@5.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-normalize-string@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-normalize-timing-functions@5.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-normalize-timing-functions@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-normalize-unicode@5.1.1(postcss@8.4.47): dependencies: browserslist: 4.23.3 postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-normalize-unicode@5.1.1(postcss@8.5.26): + dependencies: + browserslist: 4.23.3 + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-normalize-url@5.1.0(postcss@8.4.47): dependencies: normalize-url: 6.1.0 postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-normalize-url@5.1.0(postcss@8.5.26): + dependencies: + normalize-url: 6.1.0 + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-normalize-whitespace@5.1.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-normalize-whitespace@5.1.1(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-ordered-values@5.1.3(postcss@8.4.47): dependencies: cssnano-utils: 3.1.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-ordered-values@5.1.3(postcss@8.5.26): + dependencies: + cssnano-utils: 3.1.0(postcss@8.5.26) + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-reduce-initial@5.1.2(postcss@8.4.47): dependencies: browserslist: 4.23.3 caniuse-api: 3.0.0 postcss: 8.4.47 + postcss-reduce-initial@5.1.2(postcss@8.5.26): + dependencies: + browserslist: 4.23.3 + caniuse-api: 3.0.0 + postcss: 8.5.26 + postcss-reduce-transforms@5.1.0(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-value-parser: 4.2.0 + postcss-reduce-transforms@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + postcss-resolve-nested-selector@0.1.6: {} postcss-safe-parser@6.0.0(postcss@8.4.47): @@ -14797,11 +20707,22 @@ snapshots: postcss-value-parser: 4.2.0 svgo: 2.8.0 + postcss-svgo@5.1.0(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-value-parser: 4.2.0 + svgo: 2.8.0 + postcss-unique-selectors@5.1.1(postcss@8.4.47): dependencies: postcss: 8.4.47 postcss-selector-parser: 6.1.2 + postcss-unique-selectors@5.1.1(postcss@8.5.26): + dependencies: + postcss: 8.5.26 + postcss-selector-parser: 6.1.2 + postcss-value-parser@4.2.0: {} postcss@7.0.39: @@ -14835,11 +20756,20 @@ snapshots: prettier@2.8.8: {} + prettier@3.9.6: {} + pretty-error@4.0.0: dependencies: - lodash: 4.17.21 + lodash: 4.18.1 renderkid: 3.0.0 + pretty-format@26.6.2: + dependencies: + '@jest/types': 26.6.2 + ansi-regex: 5.0.1 + ansi-styles: 4.3.0 + react-is: 17.0.2 + pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 @@ -14905,6 +20835,11 @@ snapshots: dependencies: side-channel: 1.0.6 + qs@6.16.0: + dependencies: + es-define-property: 1.0.1 + side-channel: 1.1.1 + querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -14932,16 +20867,50 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + raw-body@3.0.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.1 + iconv-lite: 0.7.3 + unpipe: 1.0.0 + raw-loader@4.0.2(webpack@5.94.0): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 webpack: 5.94.0 + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-fast-compare@3.2.2: {} + react-is@16.13.1: {} react-is@17.0.2: {} + react-is@18.3.1: {} + + react-refresh@0.17.0: {} + + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.29.7 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + reactive-signal@2.0.1: {} + read-pkg-up@3.0.0: dependencies: find-up: 2.1.0 @@ -15028,6 +20997,10 @@ snapshots: dependencies: regenerate: 1.4.2 + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + regenerate@1.4.2: {} regenerator-runtime@0.10.5: {} @@ -15067,18 +21040,35 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.0 + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.2 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + + regjsgen@0.8.0: {} + + regjsparser@0.13.2: + dependencies: + jsesc: 3.1.0 + regjsparser@0.9.1: dependencies: jsesc: 0.5.0 relateurl@0.2.7: {} + remove-trailing-separator@1.1.0: {} + renderkid@3.0.0: dependencies: css-select: 4.3.0 dom-converter: 0.2.0 htmlparser2: 6.1.0 - lodash: 4.17.21 + lodash: 4.18.1 strip-ansi: 6.0.1 repeat-element@1.1.4: {} @@ -15093,6 +21083,8 @@ snapshots: requires-port@1.0.0: {} + resize-observer-polyfill@1.5.1: {} + resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 @@ -15118,6 +21110,13 @@ snapshots: resolve.exports@1.1.1: {} + resolve@1.22.12: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.2 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.8: dependencies: is-core-module: 2.15.1 @@ -15154,32 +21153,65 @@ snapshots: dependencies: glob: 7.2.3 - rollup@4.40.0: + robust-predicates@3.0.3: {} + + rollup-plugin-inject-process-env@1.3.1: dependencies: - '@types/estree': 1.0.7 + magic-string: 0.25.9 + + rollup@4.63.1: + dependencies: + '@types/estree': 1.0.9 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.40.0 - '@rollup/rollup-android-arm64': 4.40.0 - '@rollup/rollup-darwin-arm64': 4.40.0 - '@rollup/rollup-darwin-x64': 4.40.0 - '@rollup/rollup-freebsd-arm64': 4.40.0 - '@rollup/rollup-freebsd-x64': 4.40.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.40.0 - '@rollup/rollup-linux-arm-musleabihf': 4.40.0 - '@rollup/rollup-linux-arm64-gnu': 4.40.0 - '@rollup/rollup-linux-arm64-musl': 4.40.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.40.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.40.0 - '@rollup/rollup-linux-riscv64-gnu': 4.40.0 - '@rollup/rollup-linux-riscv64-musl': 4.40.0 - '@rollup/rollup-linux-s390x-gnu': 4.40.0 - '@rollup/rollup-linux-x64-gnu': 4.40.0 - '@rollup/rollup-linux-x64-musl': 4.40.0 - '@rollup/rollup-win32-arm64-msvc': 4.40.0 - '@rollup/rollup-win32-ia32-msvc': 4.40.0 - '@rollup/rollup-win32-x64-msvc': 4.40.0 + '@napi-rs/lzma-linux-x64-gnu': 1.5.1 + '@rollup/rollup-android-arm-eabi': 4.63.1 + '@rollup/rollup-android-arm64': 4.63.1 + '@rollup/rollup-darwin-arm64': 4.63.1 + '@rollup/rollup-darwin-x64': 4.63.1 + '@rollup/rollup-freebsd-arm64': 4.63.1 + '@rollup/rollup-freebsd-x64': 4.63.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.63.1 + '@rollup/rollup-linux-arm-musleabihf': 4.63.1 + '@rollup/rollup-linux-arm64-gnu': 4.63.1 + '@rollup/rollup-linux-arm64-musl': 4.63.1 + '@rollup/rollup-linux-loong64-gnu': 4.63.1 + '@rollup/rollup-linux-loong64-musl': 4.63.1 + '@rollup/rollup-linux-ppc64-gnu': 4.63.1 + '@rollup/rollup-linux-ppc64-musl': 4.63.1 + '@rollup/rollup-linux-riscv64-gnu': 4.63.1 + '@rollup/rollup-linux-riscv64-musl': 4.63.1 + '@rollup/rollup-linux-s390x-gnu': 4.63.1 + '@rollup/rollup-linux-x64-gnu': 4.63.1 + '@rollup/rollup-linux-x64-musl': 4.63.1 + '@rollup/rollup-openbsd-x64': 4.63.1 + '@rollup/rollup-openharmony-arm64': 4.63.1 + '@rollup/rollup-win32-arm64-msvc': 4.63.1 + '@rollup/rollup-win32-ia32-msvc': 4.63.1 + '@rollup/rollup-win32-x64-gnu': 4.63.1 + '@rollup/rollup-win32-x64-msvc': 4.63.1 fsevents: 2.3.3 + roughjs@4.6.6: + dependencies: + hachure-fill: 0.5.2 + path-data-parser: 0.1.0 + points-on-curve: 0.2.0 + points-on-path: 0.2.1 + + router@2.2.0: + dependencies: + debug: 4.4.3 + depd: 2.0.0 + is-promise: 4.0.0 + parseurl: 1.3.3 + path-to-regexp: 8.4.2 + transitivePeerDependencies: + - supports-color + + rrweb-cssom@0.8.0: {} + + rsvp@4.8.5: {} + run-async@2.4.1: {} run-node@1.0.0: {} @@ -15188,6 +21220,8 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rw@1.3.3: {} + rxjs@6.6.7: dependencies: tslib: 1.14.1 @@ -15219,6 +21253,20 @@ snapshots: safer-buffer@2.1.2: {} + sane@4.1.0: + dependencies: + '@cnakazawa/watch': 1.0.4 + anymatch: 2.0.0 + capture-exit: 2.0.0 + exec-sh: 0.3.6 + execa: 1.0.0 + fb-watchman: 2.0.2 + micromatch: 3.1.10 + minimist: 1.2.8 + walker: 1.0.8 + transitivePeerDependencies: + - supports-color + sax@1.2.4: {} sax@1.4.1: @@ -15228,6 +21276,14 @@ snapshots: dependencies: xmlchars: 2.2.0 + saxes@6.0.0: + dependencies: + xmlchars: 2.2.0 + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + schema-utils@2.7.1: dependencies: '@types/json-schema': 7.0.15 @@ -15247,6 +21303,8 @@ snapshots: ajv-formats: 2.1.1(ajv@8.17.1) ajv-keywords: 5.1.0(ajv@8.17.1) + screenfull@5.2.0: {} + section-matter@1.0.0: dependencies: extend-shallow: 2.0.1 @@ -15289,6 +21347,22 @@ snapshots: transitivePeerDependencies: - supports-color + send@1.2.1: + dependencies: + debug: 4.4.3 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.1 + mime-types: 3.0.2 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -15314,6 +21388,15 @@ snapshots: transitivePeerDependencies: - supports-color + serve-static@2.2.1: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 1.2.1 + transitivePeerDependencies: + - supports-color + set-blocking@2.0.0: {} set-function-length@1.2.2: @@ -15361,6 +21444,29 @@ snapshots: shell-quote@1.8.1: {} + shellwords@0.1.1: + optional: true + + side-channel-list@1.0.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + side-channel@1.0.6: dependencies: call-bind: 1.0.7 @@ -15368,6 +21474,16 @@ snapshots: get-intrinsic: 1.2.4 object-inspect: 1.13.2 + side-channel@1.1.1: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.1 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + siginfo@2.0.0: {} + signal-exit@3.0.7: {} signal-exit@4.1.0: {} @@ -15400,6 +21516,10 @@ snapshots: astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 + smob@1.6.2: {} + + smoothscroll-polyfill@0.4.4: {} + snapdragon-node@2.1.1: dependencies: define-property: 1.0.0 @@ -15456,6 +21576,8 @@ snapshots: source-map@0.7.4: {} + sourcemap-codec@1.4.8: {} + spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 @@ -15519,6 +21641,8 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 + stackback@0.0.2: {} + stackframe@1.3.4: {} staged-git-files@1.1.2: {} @@ -15550,6 +21674,10 @@ snapshots: statuses@2.0.1: {} + statuses@2.0.2: {} + + std-env@3.10.0: {} + string-argv@0.0.2: {} string-length@4.0.2: @@ -15574,6 +21702,8 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string.fromcodepoint@0.2.1: {} + string.prototype.matchall@4.0.11: dependencies: call-bind: 1.0.7 @@ -15670,6 +21800,10 @@ snapshots: strip-json-comments@3.1.1: {} + strip-literal@3.1.0: + dependencies: + js-tokens: 9.0.1 + style-search@0.1.0: {} stylehacks@5.1.1(postcss@8.4.47): @@ -15678,40 +21812,46 @@ snapshots: postcss: 8.4.47 postcss-selector-parser: 6.1.2 - stylelint-config-recommended-less@2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@4.9.5)): + stylehacks@5.1.1(postcss@8.5.26): + dependencies: + browserslist: 4.23.3 + postcss: 8.5.26 + postcss-selector-parser: 6.1.2 + + stylelint-config-recommended-less@2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@5.9.3)): dependencies: postcss-less: 6.0.0(postcss@8.5.26) - stylelint: 15.11.0(typescript@4.9.5) - stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@4.9.5)) - stylelint-less: 2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@4.9.5)) + stylelint: 15.11.0(typescript@5.9.3) + stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@5.9.3)) + stylelint-less: 2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@5.9.3)) optionalDependencies: postcss: 8.5.26 - stylelint-config-recommended@13.0.0(stylelint@15.11.0(typescript@4.9.5)): + stylelint-config-recommended@13.0.0(stylelint@15.11.0(typescript@5.9.3)): dependencies: - stylelint: 15.11.0(typescript@4.9.5) + stylelint: 15.11.0(typescript@5.9.3) - stylelint-config-standard-less@2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@4.9.5)): + stylelint-config-standard-less@2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@5.9.3)): dependencies: - stylelint: 15.11.0(typescript@4.9.5) - stylelint-config-recommended-less: 2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@4.9.5)) - stylelint-config-standard: 34.0.0(stylelint@15.11.0(typescript@4.9.5)) + stylelint: 15.11.0(typescript@5.9.3) + stylelint-config-recommended-less: 2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@5.9.3)) + stylelint-config-standard: 34.0.0(stylelint@15.11.0(typescript@5.9.3)) optionalDependencies: postcss: 8.5.26 - stylelint-config-standard@34.0.0(stylelint@15.11.0(typescript@4.9.5)): + stylelint-config-standard@34.0.0(stylelint@15.11.0(typescript@5.9.3)): dependencies: - stylelint: 15.11.0(typescript@4.9.5) - stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@4.9.5)) + stylelint: 15.11.0(typescript@5.9.3) + stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@5.9.3)) - stylelint-less@2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@4.9.5)): + stylelint-less@2.0.0(postcss@8.5.26)(stylelint@15.11.0(typescript@5.9.3)): dependencies: postcss: 8.5.26 postcss-resolve-nested-selector: 0.1.6 postcss-value-parser: 4.2.0 - stylelint: 15.11.0(typescript@4.9.5) + stylelint: 15.11.0(typescript@5.9.3) - stylelint@15.11.0(typescript@4.9.5): + stylelint@15.11.0(typescript@5.9.3): dependencies: '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) '@csstools/css-tokenizer': 2.4.1 @@ -15719,7 +21859,7 @@ snapshots: '@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2) balanced-match: 2.0.0 colord: 2.9.3 - cosmiconfig: 8.3.6(typescript@4.9.5) + cosmiconfig: 8.3.6(typescript@5.9.3) css-functions-list: 3.2.2 css-tree: 2.3.1 debug: 4.3.7(supports-color@5.5.0) @@ -15757,6 +21897,8 @@ snapshots: - supports-color - typescript + stylis@4.4.0: {} + supports-color@2.0.0: {} supports-color@5.5.0: @@ -15825,8 +21967,17 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + tailwind-merge@2.6.1: {} + tapable@2.2.1: {} + tdesign-icons-react@0.6.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.29.7 + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tdesign-icons-svg@0.0.1: {} tdesign-icons-view@0.5.11(typescript@4.9.5): @@ -15852,13 +22003,13 @@ snapshots: tdesign-icons-vue@0.2.5(vue@2.7.14): dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.29.7 classnames: 2.5.1 vue: 2.7.14 tdesign-icons-vue@0.3.6(vue@2.7.14): dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.29.7 classnames: 2.5.1 vue: 2.7.14 @@ -15868,6 +22019,55 @@ snapshots: classnames: 2.5.1 vue: 2.7.14 + tdesign-icons-web-components@0.3.9(omi@7.7.13): + dependencies: + '@babel/runtime': 7.29.7 + clsx: 2.1.1 + omi: 7.7.13 + tailwind-merge: 2.6.1 + + tdesign-mobile-react@0.23.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@popperjs/core': 2.11.8 + '@types/sortablejs': 1.15.9 + '@use-gesture/react': 10.3.1(react@18.3.1) + ahooks: 3.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + classnames: 2.5.1 + csstype: 3.2.3 + dayjs: 1.11.23 + hoist-non-react-statics: 3.3.2 + lodash-es: 4.18.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + smoothscroll-polyfill: 0.4.4 + sortablejs: 1.15.7 + tdesign-icons-react: 0.6.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tinycolor2: 1.6.0 + validator: 13.15.35 + + tdesign-react@1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.10 + '@popperjs/core': 2.11.8 + '@types/sortablejs': 1.15.9 + '@types/validator': 13.15.10 + classnames: 2.5.1 + dayjs: 1.11.10 + hoist-non-react-statics: 3.3.2 + lodash-es: 4.18.1 + mitt: 3.0.1 + raf: 3.4.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-fast-compare: 3.2.2 + react-is: 18.3.1 + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + sortablejs: 1.15.7 + tdesign-icons-react: 0.6.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tslib: 2.3.1 + validator: 13.15.35 + tdesign-vue-next@1.17.7(vue@3.5.42(typescript@4.9.5)): dependencies: '@babel/runtime': 7.29.7 @@ -15896,7 +22096,7 @@ snapshots: '@types/validator': 13.12.2 clipboard: 2.0.11 dayjs: 1.11.10 - lodash-es: 4.17.21 + lodash-es: 4.18.1 mitt: 3.0.1 raf: 3.4.1 sortablejs: 1.15.3 @@ -15926,6 +22126,59 @@ snapshots: validator: 13.12.0 vue: 2.7.14 + tdesign-web-components@1.2.10: + dependencies: + '@babel/runtime': 7.29.7 + '@popperjs/core': 2.11.8 + cherry-markdown: 0.10.3 + class-variance-authority: 0.7.1 + clsx: 2.1.1 + copy-to-clipboard: 3.3.3 + dayjs: 1.11.23 + fast-json-patch: 3.1.1 + htm: 3.1.1 + immer: 10.2.0 + lodash-es: 4.18.1 + markdown-it-fence: 0.1.3 + mermaid: 11.12.0 + nanostores: 0.11.4 + omi: 7.7.13 + omi-transition: 0.1.11 + tailwind-merge: 2.6.1 + tdesign-icons-web-components: 0.3.9(omi@7.7.13) + zod: 3.25.76 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + + tdesign-web-components@1.3.0-alpha.2: + dependencies: + '@babel/runtime': 7.29.7 + '@popperjs/core': 2.11.8 + cherry-markdown: 0.11.0-alpha-2 + class-variance-authority: 0.7.1 + clsx: 2.1.1 + copy-to-clipboard: 3.3.3 + dayjs: 1.11.23 + fast-json-patch: 3.1.1 + htm: 3.1.1 + immer: 10.2.0 + lodash-es: 4.18.1 + markdown-it-fence: 0.1.3 + nanostores: 0.11.4 + omi: 7.7.13 + omi-transition: 0.1.11 + tailwind-merge: 2.6.1 + tdesign-icons-web-components: 0.3.9(omi@7.7.13) + zod: 3.25.76 + transitivePeerDependencies: + - bufferutil + - canvas + - supports-color + - utf-8-validate + terminal-link@2.1.1: dependencies: ansi-escapes: 4.3.2 @@ -15943,7 +22196,7 @@ snapshots: terser@5.33.0: dependencies: '@jridgewell/source-map': 0.3.6 - acorn: 8.12.1 + acorn: 8.18.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -15976,6 +22229,8 @@ snapshots: three@0.127.0: {} + throat@5.0.0: {} + throat@6.0.2: {} through2@2.0.5: @@ -15993,13 +22248,36 @@ snapshots: tiny-emitter@2.1.0: {} + tinybench@2.9.0: {} + tinycolor2@1.6.0: {} + tinyexec@0.3.2: {} + + tinyexec@1.3.1: {} + tinyglobby@0.2.12: dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 + + tinypool@1.1.1: {} + + tinyrainbow@2.0.0: {} + + tinyspy@4.0.6: {} + + tldts-core@6.1.86: {} + + tldts@6.1.86: + dependencies: + tldts-core: 6.1.86 + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -16028,6 +22306,8 @@ snapshots: regex-not: 1.0.2 safe-regex: 1.1.0 + toggle-selection@1.0.6: {} + toidentifier@1.0.1: {} toposort@2.0.2: {} @@ -16043,33 +22323,47 @@ snapshots: universalify: 0.2.0 url-parse: 1.5.10 + tough-cookie@5.1.2: + dependencies: + tldts: 6.1.86 + tr46@0.0.3: {} tr46@2.1.0: dependencies: punycode: 2.3.1 + tr46@3.0.0: + dependencies: + punycode: 2.3.1 + + tr46@5.1.1: + dependencies: + punycode: 2.3.1 + trim-newlines@2.0.0: {} trim-newlines@3.0.1: {} trim-newlines@4.1.1: {} - ts-node@10.9.2(@types/node@22.9.0)(typescript@4.9.5): + ts-dedent@2.3.0: {} + + ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.13 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.9.0 + '@types/node': 22.20.1 acorn: 8.18.0 acorn-walk: 8.3.5 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.4 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 optional: true @@ -16083,6 +22377,8 @@ snapshots: tslib@1.14.1: {} + tslib@2.3.1: {} + tslib@2.7.0: {} tsutils@3.21.0(typescript@4.9.5): @@ -16097,6 +22393,12 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + tsx@4.23.13: + dependencies: + esbuild: 0.28.2 + optionalDependencies: + fsevents: 2.3.3 + tunnel@0.0.6: {} tvision-color@1.6.0: @@ -16129,6 +22431,12 @@ snapshots: media-typer: 0.3.0 mime-types: 2.1.35 + type-is@2.1.0: + dependencies: + content-type: 2.1.0 + media-typer: 1.1.1 + mime-types: 3.0.2 + typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 @@ -16169,6 +22477,8 @@ snapshots: typescript@4.9.5: {} + typescript@5.9.3: {} + uc.micro@1.0.6: {} uglify-js@3.19.3: @@ -16183,12 +22493,16 @@ snapshots: undefsafe@2.0.5: {} - undici-types@6.19.8: {} + undici-types@6.21.0: {} undici@5.28.4: dependencies: '@fastify/busboy': 2.1.1 + unescape-js@1.1.4: + dependencies: + string.fromcodepoint: 0.2.1 + unicode-canonical-property-names-ecmascript@2.0.1: {} unicode-match-property-ecmascript@2.0.0: @@ -16198,6 +22512,8 @@ snapshots: unicode-match-property-value-ecmascript@2.2.0: {} + unicode-match-property-value-ecmascript@2.2.1: {} + unicode-property-aliases-ecmascript@2.1.0: {} union-value@1.0.1: @@ -16230,6 +22546,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.3.2(browserslist@4.28.9): + dependencies: + browserslist: 4.28.9 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.1 @@ -16260,13 +22582,24 @@ snapshots: utils-merge@1.0.1: {} + uuid@11.1.1: {} + uuid@8.3.2: {} + uuid@9.0.1: + optional: true + v8-compile-cache-lib@3.0.1: optional: true v8-compile-cache@2.4.0: {} + v8-to-istanbul@7.1.2: + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + convert-source-map: 1.9.0 + source-map: 0.7.4 + v8-to-istanbul@8.1.1: dependencies: '@types/istanbul-lib-coverage': 2.0.6 @@ -16284,6 +22617,27 @@ snapshots: vary@1.1.2: {} + vite-node@3.2.4(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + vite-plugin-tdoc@2.0.4(@types/markdown-it@12.2.3): dependencies: diacritics: 1.3.0 @@ -16299,21 +22653,81 @@ snapshots: transitivePeerDependencies: - '@types/markdown-it' - vite@6.3.1(@types/node@22.9.0)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.19.3): + vite@6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13): dependencies: esbuild: 0.25.2 fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 postcss: 8.5.3 - rollup: 4.40.0 + rollup: 4.63.1 tinyglobby: 0.2.12 optionalDependencies: - '@types/node': 22.9.0 + '@types/node': 22.20.1 fsevents: 2.3.3 jiti: 1.21.6 less: 4.2.0 terser: 5.33.0 - tsx: 4.19.3 + tsx: 4.23.13 + + vitest@3.2.7(@types/node@22.20.1)(happy-dom@20.14.0)(jiti@1.21.6)(jsdom@26.1.0)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.7 + '@vitest/mocker': 3.2.7(vite@6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13)) + '@vitest/pretty-format': 3.2.7 + '@vitest/runner': 3.2.7 + '@vitest/snapshot': 3.2.7 + '@vitest/spy': 3.2.7 + '@vitest/utils': 3.2.7 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.4.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.2 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.17 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) + vite-node: 3.2.4(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.20.1 + happy-dom: 20.14.0 + jsdom: 26.1.0 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.14: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-uri@3.0.8: {} vue-eslint-parser@8.3.0(eslint@7.32.0): dependencies: @@ -16323,7 +22737,7 @@ snapshots: eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.6.0 - lodash: 4.17.21 + lodash: 4.18.1 semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -16454,6 +22868,14 @@ snapshots: dependencies: xml-name-validator: 3.0.0 + w3c-xmlserializer@3.0.0: + dependencies: + xml-name-validator: 4.0.0 + + w3c-xmlserializer@5.0.0: + dependencies: + xml-name-validator: 5.0.0 + walker@1.0.8: dependencies: makeerror: 1.0.12 @@ -16471,17 +22893,24 @@ snapshots: dependencies: defaults: 1.0.4 + weakmap-polyfill@2.0.4: {} + + web-worker@1.5.0: + optional: true + webidl-conversions@3.0.1: {} webidl-conversions@5.0.0: {} webidl-conversions@6.1.0: {} + webidl-conversions@7.0.0: {} + webpack-bundle-analyzer@4.10.2: dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.12.1 - acorn-walk: 8.3.4 + acorn: 8.18.0 + acorn-walk: 8.3.5 commander: 7.2.0 debounce: 1.2.1 escape-string-regexp: 4.0.0 @@ -16561,12 +22990,12 @@ snapshots: webpack@5.94.0: dependencies: - '@types/estree': 1.0.6 + '@types/estree': 1.0.7 '@webassemblyjs/ast': 1.12.1 '@webassemblyjs/wasm-edit': 1.12.1 '@webassemblyjs/wasm-parser': 1.12.1 - acorn: 8.12.1 - acorn-import-attributes: 1.9.5(acorn@8.12.1) + acorn: 8.18.0 + acorn-import-attributes: 1.9.5(acorn@8.18.0) browserslist: 4.23.3 chrome-trace-event: 1.0.4 enhanced-resolve: 5.17.1 @@ -16601,10 +23030,37 @@ snapshots: dependencies: iconv-lite: 0.4.24 + whatwg-encoding@2.0.0: + dependencies: + iconv-lite: 0.6.3 + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + whatwg-fetch@3.6.20: {} whatwg-mimetype@2.3.0: {} + whatwg-mimetype@3.0.0: {} + + whatwg-mimetype@4.0.0: {} + + whatwg-url@10.0.0: + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + + whatwg-url@11.0.0: + dependencies: + tr46: 3.0.0 + webidl-conversions: 7.0.0 + + whatwg-url@14.2.0: + dependencies: + tr46: 5.1.1 + webidl-conversions: 7.0.0 + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -16664,6 +23120,11 @@ snapshots: dependencies: isexe: 2.0.0 + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + wildcard@2.0.1: {} word-wrap@1.2.5: {} @@ -16705,8 +23166,14 @@ snapshots: ws@8.18.0: {} + ws@8.21.3: {} + xml-name-validator@3.0.0: {} + xml-name-validator@4.0.0: {} + + xml-name-validator@5.0.0: {} + xmlchars@2.2.0: {} xtend@4.0.2: {} @@ -16793,7 +23260,15 @@ snapshots: dependencies: '@babel/runtime': 7.0.0 fn-name: 2.0.1 - lodash: 4.17.21 + lodash: 4.18.1 property-expr: 1.5.1 synchronous-promise: 2.0.17 toposort: 2.0.2 + + zod-to-json-schema@3.25.2(zod@4.5.4): + dependencies: + zod: 4.5.4 + + zod@3.25.76: {} + + zod@4.5.4: {} From d3f590ad598eccf71a5605914b97fa1ef6625619 Mon Sep 17 00:00:00 2001 From: liweijie <674416404@qq.com> Date: Tue, 8 Sep 2026 21:15:38 +0800 Subject: [PATCH 03/15] =?UTF-8?q?ci:=20=E6=9B=B4=E6=96=B0=20pkg-pr-new=20?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E6=B5=81=E4=BB=A5=E5=8C=85=E5=90=AB=20mcp-se?= =?UTF-8?q?rver=20=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pkg-pr-new.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pkg-pr-new.yml b/.github/workflows/pkg-pr-new.yml index 96ab9f31f..5d50d9abf 100644 --- a/.github/workflows/pkg-pr-new.yml +++ b/.github/workflows/pkg-pr-new.yml @@ -3,11 +3,13 @@ on: push: branches: [main] paths: + - 'packages/mcp-server/**' - 'packages/site-components/**' - 'packages/theme-generator/**' pull_request: branches: [main] paths: + - 'packages/mcp-server/**' - 'packages/site-components/**' - 'packages/theme-generator/**' - 'site/**' From e4340c2b5adfa6ae39fa43b1f930375c2ab548cf Mon Sep 17 00:00:00 2001 From: liweijie <674416404@qq.com> Date: Tue, 8 Sep 2026 21:15:54 +0800 Subject: [PATCH 04/15] =?UTF-8?q?ci:=20=E4=BF=AE=E5=A4=8D=20pkg-pr-new=20?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E8=B7=AF=E5=BE=84=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pkg-pr-new.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pkg-pr-new.yml b/.github/workflows/pkg-pr-new.yml index 5d50d9abf..988467459 100644 --- a/.github/workflows/pkg-pr-new.yml +++ b/.github/workflows/pkg-pr-new.yml @@ -33,7 +33,7 @@ jobs: - run: pnpm --filter '@tdesign/site-components' --filter '@tdesign/theme-generator' run build - run: pnpm --filter tdesign-mcp-server run build:mcp - - run: pnpm dlx pkg-pr-new publish './packages/site-components' './packages/theme-generator' 'packages/mcp-server/server' + - run: pnpm dlx pkg-pr-new publish './packages/site-components' './packages/theme-generator' './packages/mcp-server/server' build-tdesign-vue-site: if: github.repository == 'Tencent/tdesign' && github.event_name == 'pull_request' From 5153b61add89d545f12a0feac536c0d4aca7b53e Mon Sep 17 00:00:00 2001 From: liweijie <674416404@qq.com> Date: Tue, 8 Sep 2026 22:36:40 +0800 Subject: [PATCH 05/15] =?UTF-8?q?refactor(mcp-server):=20=E9=87=8D?= =?UTF-8?q?=E6=9E=84=E4=B8=BA=E5=8F=AF=E5=8F=91=E5=B8=83=E7=9A=84=E7=8B=AC?= =?UTF-8?q?=E7=AB=8B=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/pkg-pr-new.yml | 2 +- .gitignore | 1 + package.json | 10 +- packages/mcp-server/DEVELOPMENT.md | 24 +- packages/mcp-server/common/package.json | 8 - packages/mcp-server/package.json | 74 +- packages/mcp-server/scripts/dom/index.ts | 2 +- .../dom/snapshots/mobile/setup.test.ts | 2 +- .../dom/snapshots/web-chat/setup.test.ts | 2 +- .../scripts/dom/snapshots/web/setup.test.ts | 2 +- packages/mcp-server/scripts/index.ts | 7 +- packages/mcp-server/scripts/package.json | 48 - packages/mcp-server/scripts/utils/path.ts | 11 +- packages/mcp-server/server/README.md | 29 - packages/mcp-server/server/package.json | 47 - packages/mcp-server/server/rollup.config.js | 62 - .../{server => }/src/helpers/cache.ts | 4 +- .../{server => }/src/helpers/component.ts | 2 +- .../{server => }/src/helpers/format.ts | 2 +- .../{server => }/src/helpers/index.ts | 0 packages/mcp-server/{server => }/src/http.ts | 0 packages/mcp-server/{server => }/src/init.ts | 0 .../{server => }/src/prompts/assistant.ts | 0 .../{server => }/src/prompts/index.ts | 0 .../{server => }/src/prompts/schema.ts | 2 +- packages/mcp-server/{server => }/src/stdio.ts | 0 .../{server => }/src/tools/changelog.ts | 2 +- .../mcp-server/{server => }/src/tools/docs.ts | 2 +- .../mcp-server/{server => }/src/tools/dom.ts | 2 +- .../mcp-server/{server => }/src/tools/icon.ts | 0 .../{server => }/src/tools/index.ts | 0 .../mcp-server/{server => }/src/tools/list.ts | 2 +- packages/mcp-server/tsconfig.json | 2 +- packages/mcp-server/tsdown.config.ts | 36 + .../mcp-server/{scripts => }/vitest.config.ts | 8 +- pnpm-lock.yaml | 1403 ++++++++++++----- pnpm-workspace.yaml | 1 - 37 files changed, 1138 insertions(+), 661 deletions(-) delete mode 100644 packages/mcp-server/common/package.json delete mode 100644 packages/mcp-server/scripts/package.json delete mode 100644 packages/mcp-server/server/README.md delete mode 100644 packages/mcp-server/server/package.json delete mode 100644 packages/mcp-server/server/rollup.config.js rename packages/mcp-server/{server => }/src/helpers/cache.ts (95%) rename packages/mcp-server/{server => }/src/helpers/component.ts (97%) rename packages/mcp-server/{server => }/src/helpers/format.ts (91%) rename packages/mcp-server/{server => }/src/helpers/index.ts (100%) rename packages/mcp-server/{server => }/src/http.ts (100%) rename packages/mcp-server/{server => }/src/init.ts (100%) rename packages/mcp-server/{server => }/src/prompts/assistant.ts (100%) rename packages/mcp-server/{server => }/src/prompts/index.ts (100%) rename packages/mcp-server/{server => }/src/prompts/schema.ts (94%) rename packages/mcp-server/{server => }/src/stdio.ts (100%) rename packages/mcp-server/{server => }/src/tools/changelog.ts (98%) rename packages/mcp-server/{server => }/src/tools/docs.ts (98%) rename packages/mcp-server/{server => }/src/tools/dom.ts (97%) rename packages/mcp-server/{server => }/src/tools/icon.ts (100%) rename packages/mcp-server/{server => }/src/tools/index.ts (100%) rename packages/mcp-server/{server => }/src/tools/list.ts (92%) create mode 100644 packages/mcp-server/tsdown.config.ts rename packages/mcp-server/{scripts => }/vitest.config.ts (89%) diff --git a/.github/workflows/pkg-pr-new.yml b/.github/workflows/pkg-pr-new.yml index 988467459..ddac4670b 100644 --- a/.github/workflows/pkg-pr-new.yml +++ b/.github/workflows/pkg-pr-new.yml @@ -33,7 +33,7 @@ jobs: - run: pnpm --filter '@tdesign/site-components' --filter '@tdesign/theme-generator' run build - run: pnpm --filter tdesign-mcp-server run build:mcp - - run: pnpm dlx pkg-pr-new publish './packages/site-components' './packages/theme-generator' './packages/mcp-server/server' + - run: pnpm dlx pkg-pr-new publish './packages/site-components' './packages/theme-generator' './packages/mcp-server' build-tdesign-vue-site: if: github.repository == 'Tencent/tdesign' && github.event_name == 'pull_request' diff --git a/.gitignore b/.gitignore index 0edfaf6b9..6110a603d 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ dist results static_site lib +packages/mcp-server/docs ## test coverage \ No newline at end of file diff --git a/package.json b/package.json index 7c48cb6b5..4301daecf 100644 --- a/package.json +++ b/package.json @@ -12,11 +12,11 @@ "site:preview": "pnpm run build:components && pnpm run --filter tdesign-site site:preview", "auto-release-collection": "pnpm run --filter auto-release-collection start", "prepare": "husky install", - "build:mcp": "pnpm run --filter tdesign-mcp-server-mono build:mcp", - "build:mcp-stdio": "pnpm run --filter tdesign-mcp-server-mono build:mcp-stdio", - "build:mcp-http": "pnpm run --filter tdesign-mcp-server-mono build:mcp-http", - "start:mcp-http": "pnpm run --filter tdesign-mcp-server-mono start:mcp-http", - "build:docs+dom": "pnpm run --filter tdesign-mcp-server-mono build:docs+dom" + "build:mcp": "pnpm run --filter tdesign-mcp-server build:mcp", + "build:mcp-stdio": "pnpm run --filter tdesign-mcp-server build:mcp-stdio", + "build:mcp-http": "pnpm run --filter tdesign-mcp-server build:mcp-http", + "start:mcp-http": "pnpm run --filter tdesign-mcp-server start:mcp-http", + "build:docs+dom": "pnpm run --filter tdesign-mcp-server build:docs+dom" }, "license": "MIT", "dependencies": { diff --git a/packages/mcp-server/DEVELOPMENT.md b/packages/mcp-server/DEVELOPMENT.md index f418e8d22..b4cb1782e 100644 --- a/packages/mcp-server/DEVELOPMENT.md +++ b/packages/mcp-server/DEVELOPMENT.md @@ -3,25 +3,26 @@ ## 🏠 项目架构 ```bash -# 安装依赖 -npm install +# 在仓库根目录安装依赖 +pnpm install #(可选)更新文档 -npm run build:docs+dom +pnpm run --filter tdesign-mcp-server build:docs+dom ``` - 由于该项目在提取文档时,如果找不到本地仓库的话,会自动启动 clone 其它组件库的流程。 -- 如果你本地已经有 TDesign 的其它组件库项目,可以把该仓库 clone 到相同的目录下;如果没有,建议新建一个额外的空目录,再把该仓库 clone 进去。 +- 默认会在**当前 tdesign 仓库的同级目录**下查找/克隆各端框架仓库(如 `tdesign-react`)。 +- 在 mono / 沙盒 / CI 环境中,可以通过环境变量 `TD_REPOS_ROOT` 显式指定一个目录用于存放这些仓库(例如工作区内的空目录);未设置时自动 clone 会先创建默认目录。 ```bash 📄 .env # 环境变量(仅用于本地调试) 📁 packages/mcp-server -├── 📁 common # 通用工具函数 -├── 📁 docs # 已整理的文档(脚本生成,不入库) -├── 📁 scripts # 自动化脚本 -└── 📁 server # 核心业务逻辑 - ├── 📁 tools - └── 📁 prompts +├── 📁 src # 核心业务逻辑 +│ ├── 📁 tools +│ └── 📁 prompts +├── 📁 common # 通用工具函数(源码目录) +├── 📁 scripts # 自动化脚本(源码目录) +└── 📁 docs # 已整理的文档(脚本生成,不入库) ``` ### ⚠️ Apple Silicon 环境说明 @@ -39,6 +40,7 @@ softwareupdate --install-rosetta --agree-to-license | 环境变量 | 说明 | 可选值 | 默认值 | |:---|:---|:---|:---| | `DOCS_SOURCE_MODE` | 文档数据来源 | `online`(CDN)
`local`(docs 文件夹) | `online` | +| `TD_REPOS_ROOT` | tdesign 系列仓库(tdesign-react 等)的公共目录 | 任意绝对路径 | 当前 tdesign 仓库的同级目录 | ### Stdio @@ -51,7 +53,7 @@ npm run build:mcp-stdio "mcpServers": { "tdesign-mcp-server": { "command": "node", - "args": ["your_path_to/tdesign/packages/mcp-server/server/dist/stdio.js"], + "args": ["your_path_to/tdesign/packages/mcp-server/dist/stdio.js"], "env": { "DOCS_SOURCE_MODE": "local" } diff --git a/packages/mcp-server/common/package.json b/packages/mcp-server/common/package.json deleted file mode 100644 index c774d2cdb..000000000 --- a/packages/mcp-server/common/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "@tdesign-mcp-server/common", - "main": "index.ts", - "type": "module", - "dependencies": { - "dotenv": "^17.2.1" - } -} diff --git a/packages/mcp-server/package.json b/packages/mcp-server/package.json index 2100cdc02..a3450c131 100644 --- a/packages/mcp-server/package.json +++ b/packages/mcp-server/package.json @@ -1,13 +1,71 @@ { - "name": "tdesign-mcp-server-mono", + "name": "tdesign-mcp-server", + "description": "MCP server for TDesign, providing component knowledge across multiple frameworks.", "version": "0.2.4", - "private": true, - "description": "TDesign MCP Server packages", + "type": "module", + "repository": { + "type": "git", + "url": "https://cnb.cool/tencent/tdesign/tdesign.git", + "directory": "packages/mcp-server" + }, "scripts": { - "build:docs+dom": "pnpm -C scripts build:docs+dom", - "build:mcp": "pnpm -C server build:mcp", - "build:mcp-stdio": "pnpm -C server build:mcp-stdio", - "build:mcp-http": "pnpm -C server build:mcp-http", - "start:mcp-http": "pnpm -C server start:mcp-http" + "build:mcp": "tsdown", + "build:mcp-http": "BUILD_TARGET=http tsdown", + "build:mcp-stdio": "BUILD_TARGET=stdio tsdown", + "start:mcp-http": "node dist/http.cjs", + "build:docs+dom": "tsx ./scripts/index.ts", + "build:docs": "tsx ./scripts/docs/index.ts", + "build:dom": "npm run build:snap && tsx ./scripts/dom/index.ts", + "build:icon": "tsx ./scripts/icon/index.ts", + "build:snap": "npm run build:snap:web && npm run build:snap:web-chat && npm run build:snap:mobile && npm run build:snap:mini", + "build:snap:web": "vitest run -u scripts/dom/snapshots/web", + "build:snap:web-chat": "vitest run -u scripts/dom/snapshots/web-chat", + "build:snap:mobile": "vitest run -u scripts/dom/snapshots/mobile", + "build:snap:mini": "jest --config scripts/dom/snapshots/miniprogram/jest.config.cjs -u" + }, + "bin": { + "tdesign-mcp-server": "dist/stdio.js" + }, + "files": [ + "dist", + "README.md" + ], + "dependencies": { + "@modelcontextprotocol/sdk": "^1.23.0", + "express": "^5.2.1", + "zod": "^4.1.13" + }, + "devDependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-proposal-decorators": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/preset-env": "^7.26.0", + "@babel/preset-typescript": "^7.26.0", + "@tdesign-react/chat": "latest", + "@testing-library/react": "^16.3.0", + "@types/express": "^5.0.6", + "@types/jest": "^27.0.3", + "@types/node": "^22.14.1", + "@types/react": "^18.3.10", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.5.1", + "babel-jest": "^26.6.3", + "dotenv": "^17.2.1", + "happy-dom": "^20.8.4", + "jest": "^26.6.3", + "jsdom": "^26.1.0", + "lodash-es": "^4.17.21", + "miniprogram-simulate": "^1.6.0", + "prettier": "^3.5.3", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "tdesign-icons-react": "latest", + "tdesign-mobile-react": "latest", + "tdesign-react": "latest", + "tdesign-web-components": "latest", + "tsdown": "^0.23.0", + "tsx": "^4.21.0", + "typescript": "^5.8.3", + "vitest": "^3.2.2" } } diff --git a/packages/mcp-server/scripts/dom/index.ts b/packages/mcp-server/scripts/dom/index.ts index 8354a97be..242132a44 100644 --- a/packages/mcp-server/scripts/dom/index.ts +++ b/packages/mcp-server/scripts/dom/index.ts @@ -11,7 +11,7 @@ import { MINIPROGRAM_DOM_RULE_MAP, UNIAPP_DOM_RULE_MAP, type RuleMap -} from "@tdesign-mcp-server/common"; +} from "../../common"; import { TD_DOCS_OUTPUT_DIR } from "../utils/path"; const __dirname = getDirname(import.meta.url); diff --git a/packages/mcp-server/scripts/dom/snapshots/mobile/setup.test.ts b/packages/mcp-server/scripts/dom/snapshots/mobile/setup.test.ts index 356516fd2..fab7cb045 100644 --- a/packages/mcp-server/scripts/dom/snapshots/mobile/setup.test.ts +++ b/packages/mcp-server/scripts/dom/snapshots/mobile/setup.test.ts @@ -5,7 +5,7 @@ import { cleanup, render } from "@testing-library/react"; import React from "react"; import { expect, test, vi } from "vitest"; -import { getDirname } from "@tdesign-mcp-server/common"; +import { getDirname } from "../../../../common"; import { getDocsOutputDir } from "../../../utils/path"; // jsdom 不支持 canvas,mock getContext 避免报错 diff --git a/packages/mcp-server/scripts/dom/snapshots/web-chat/setup.test.ts b/packages/mcp-server/scripts/dom/snapshots/web-chat/setup.test.ts index 5d370e413..8e1a9cce6 100644 --- a/packages/mcp-server/scripts/dom/snapshots/web-chat/setup.test.ts +++ b/packages/mcp-server/scripts/dom/snapshots/web-chat/setup.test.ts @@ -4,7 +4,7 @@ import path from "path"; import { cleanup } from "@testing-library/react"; import { test } from "vitest"; -import { getDirname } from "@tdesign-mcp-server/common"; +import { getDirname } from "../../../../common"; const __dirname = getDirname(import.meta.url); const CUSTOM_TEST_DIR = path.join(__dirname, "./custom"); diff --git a/packages/mcp-server/scripts/dom/snapshots/web/setup.test.ts b/packages/mcp-server/scripts/dom/snapshots/web/setup.test.ts index bb79253bd..0af766065 100644 --- a/packages/mcp-server/scripts/dom/snapshots/web/setup.test.ts +++ b/packages/mcp-server/scripts/dom/snapshots/web/setup.test.ts @@ -5,7 +5,7 @@ import { cleanup, render } from "@testing-library/react"; import React from "react"; import { expect, test } from "vitest"; -import { getDirname, isChatComponent } from "@tdesign-mcp-server/common"; +import { getDirname, isChatComponent } from "../../../../common"; import { getDocsOutputDir } from "../../../utils/path"; const __dirname = getDirname(import.meta.url); diff --git a/packages/mcp-server/scripts/index.ts b/packages/mcp-server/scripts/index.ts index fd8bfddb5..f19f8a6c7 100644 --- a/packages/mcp-server/scripts/index.ts +++ b/packages/mcp-server/scripts/index.ts @@ -5,7 +5,7 @@ import path from "path"; import { promisify } from "util"; const execPromise = promisify(exec); -import { addTdPrefix, FRAMEWORKS, getDirname, isChatFramework, isUniapp } from "@tdesign-mcp-server/common"; +import { addTdPrefix, FRAMEWORKS, getDirname, isChatFramework, isUniapp } from "../common"; import { TD_REPOS_ROOT } from "./utils/path"; const __dirname = getDirname(import.meta.url); @@ -25,7 +25,7 @@ const TD_REQUIRED_REPOS = ["common", ...FRAMEWORKS, "icons"].filter( async function gitClone(repoUrl: string) { console.log(`Cloning repository from ${repoUrl}...`); - await execPromise(`cd ${TD_REPOS_ROOT} && git clone ${repoUrl} --depth=1`); + await execPromise(`mkdir -p ${TD_REPOS_ROOT} && cd ${TD_REPOS_ROOT} && git clone ${repoUrl} --depth=1`); console.log("Repository cloned successfully!\n"); } @@ -36,6 +36,7 @@ async function gitPull(repoPath: string) { } async function prepareTDesignRepos() { + console.log(`TDesign repos root: ${TD_REPOS_ROOT}`); for (const repo of TD_REQUIRED_REPOS) { const localRepoPath = path.join(TD_REPOS_ROOT, addTdPrefix(repo)); const repoUrl = `${TENCENT_GITHUB_URL}${addTdPrefix(repo)}`; @@ -55,7 +56,7 @@ async function executeTypeScript(scriptPath: string) { async function extractDocs() { await executeTypeScript(path.join(__dirname, "docs/index.ts")); - const { stdout, stderr } = await execPromise("npm run build:snap", { cwd: __dirname }); + const { stdout, stderr } = await execPromise("npm run build:snap", { cwd: path.join(__dirname, "..") }); if (stdout) console.log(stdout); if (stderr) console.error(stderr); await executeTypeScript(path.join(__dirname, "dom/index.ts")); diff --git a/packages/mcp-server/scripts/package.json b/packages/mcp-server/scripts/package.json deleted file mode 100644 index 84f83218e..000000000 --- a/packages/mcp-server/scripts/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "@tdesign-mcp-server/scripts", - "main": "index.ts", - "type": "module", - "scripts": { - "build:docs+dom": "tsx ./index.ts", - "build:docs": "tsx docs/index.ts", - "build:dom": "npm run build:snap && tsx dom/index.ts", - "build:icon": "tsx icon/index.ts", - "build:snap": "npm run build:snap:web && npm run build:snap:web-chat && npm run build:snap:mobile && npm run build:snap:mini", - "build:snap:web": "vitest run -u dom/snapshots/web", - "build:snap:web-chat": "vitest run -u dom/snapshots/web-chat", - "build:snap:mobile": "vitest run -u dom/snapshots/mobile", - "build:snap:mini": "jest --config dom/snapshots/miniprogram/jest.config.cjs -u" - }, - "dependencies": { - "@tdesign-mcp-server/common": "workspace:*", - "@tdesign-react/chat": "latest", - "lodash-es": "^4.17.21", - "react": "^18.3.1", - "react-dom": "^18.3.1", - "tdesign-icons-react": "latest", - "tdesign-mobile-react": "latest", - "tdesign-react": "latest", - "tdesign-web-components": "latest" - }, - "devDependencies": { - "@babel/core": "^7.26.0", - "@babel/plugin-proposal-decorators": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/preset-env": "^7.26.0", - "@babel/preset-typescript": "^7.26.0", - "@testing-library/react": "^16.3.0", - "@types/jest": "^27.0.3", - "@types/node": "^22.14.1", - "@types/react": "^18.3.10", - "@types/react-dom": "^18.3.0", - "@vitejs/plugin-react": "^4.5.1", - "babel-jest": "^26.6.3", - "happy-dom": "^20.8.4", - "jest": "^26.6.3", - "jsdom": "^26.1.0", - "miniprogram-simulate": "^1.6.0", - "tsx": "^4.21.0", - "typescript": "^5.8.3", - "vitest": "^3.2.2" - } -} diff --git a/packages/mcp-server/scripts/utils/path.ts b/packages/mcp-server/scripts/utils/path.ts index 6d8788ca8..89fb5937f 100644 --- a/packages/mcp-server/scripts/utils/path.ts +++ b/packages/mcp-server/scripts/utils/path.ts @@ -12,12 +12,17 @@ import { isMonorepo, isUniapp, type Framework -} from "@tdesign-mcp-server/common"; +} from "../../common"; const __dirname = getDirname(import.meta.url); -/* 所有 tdesign-* 系列仓库的公共父目录(默认各端框架与当前项目在同一目录) */ -export const TD_REPOS_ROOT = path.join(__dirname, "../../../../../"); +/* + * 所有 tdesign-* 系列仓库的公共父目录(各框架仓库的克隆/读取根目录)。 + * 默认约定:与当前 tdesign 仓库同级放置,即从本文件上溯到仓库根(4 级)再上一级; + * 也可以用环境变量 TD_REPOS_ROOT 显式指定,便于在 mono/沙盒/CI 中把仓库 clone 到工作区内。 + */ +const MONO_REPO_ROOT = path.resolve(__dirname, "../../../../"); +export const TD_REPOS_ROOT = path.resolve(process.env.TD_REPOS_ROOT || path.join(MONO_REPO_ROOT, "..")); export const TD_DOCS_OUTPUT_DIR = path.join(__dirname, "../../docs"); diff --git a/packages/mcp-server/server/README.md b/packages/mcp-server/server/README.md deleted file mode 100644 index 10f9f2ee1..000000000 --- a/packages/mcp-server/server/README.md +++ /dev/null @@ -1,29 +0,0 @@ -# TDesign MCP Server - -## 🎉 功能介绍 - -### 🔨 支持框架 -- 桌面端:`react` / `vue-next` / `vue` -- 移动端:`mobile-react` / `mobile-vue` / `miniprogram` / `uniapp` -- AI 对话:`react-chat` / `vue-next-chat` / `miniprogram-chat` / `uniapp-chat` - -### 🔨 支持工具 -- [x] `search-icons`:搜索可用的图标列表,适用场景:图标查找与名称确认 -- [x] `get-component-docs`:获取组件的文档,适用场景:代码生成和代码转换 -- [x] `get-component-dom`:获取组件的 DOM 结构,适用场景:转换自定义的 CSS 样式 -- [x] `get-component-list`:获取所有可用的组件列表,适用场景:选择合适组件进行组合实现不存在的功能 -- [x] `get-component-changelog`:获取组件的变更日志,适用场景:组件库版本升级 - -## 📦 使用说明 -```json -{ - "mcpServers": { // 或 servers(根据不同的 MCP 客户端决定) - "tdesign-mcp-server": { - "command": "npx", - "args": ["-y", "tdesign-mcp-server@latest"] - } - } -} -``` - -> 💡 如果在 MCP 客户端中连接失败,可以在终端手动输入 `npx tdesign-mcp-server`,并反馈对应的报错信息在 issue。 diff --git a/packages/mcp-server/server/package.json b/packages/mcp-server/server/package.json deleted file mode 100644 index 46fcb7257..000000000 --- a/packages/mcp-server/server/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "tdesign-mcp-server", - "description": "MCP server for TDesign, providing component knowledge across multiple frameworks.", - "version": "0.2.4", - "main": "index.ts", - "type": "module", - "repository": { - "type": "git", - "url": "https://cnb.cool/tencent/tdesign/tdesign.git", - "directory": "packages/mcp-server/server" - }, - "scripts": { - "build:mcp": "rollup -c --environment NODE_ENV:production", - "build:mcp-http": "rollup -c --environment NODE_ENV:production,BUILD_TARGET:http", - "build:mcp-stdio": "rollup -c --environment NODE_ENV:production,BUILD_TARGET:stdio", - "start:mcp-http": "node dist/http.cjs" - }, - "bin": { - "tdesign-mcp-server": "dist/stdio.js" - }, - "files": [ - "dist", - "README.md" - ], - "dependencies": { - "@modelcontextprotocol/sdk": "^1.23.0", - "@tdesign-mcp-server/common": "workspace:*", - "express": "^5.2.1", - "zod": "^4.1.13" - }, - "devDependencies": { - "@rollup/plugin-commonjs": "^28.0.3", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-node-resolve": "^16.0.1", - "@rollup/plugin-replace": "^6.0.2", - "@rollup/plugin-terser": "^0.4.4", - "@rollup/plugin-typescript": "^12.3.0", - "@types/express": "^5.0.6", - "@types/node": "^22.14.1", - "dotenv": "^17.2.1", - "prettier": "^3.5.3", - "rollup": "^4.40.1", - "rollup-plugin-inject-process-env": "^1.3.1", - "tsx": "^4.21.0", - "typescript": "^5.8.3" - } -} diff --git a/packages/mcp-server/server/rollup.config.js b/packages/mcp-server/server/rollup.config.js deleted file mode 100644 index fc4bf9829..000000000 --- a/packages/mcp-server/server/rollup.config.js +++ /dev/null @@ -1,62 +0,0 @@ -import commonjs from "@rollup/plugin-commonjs"; -import json from "@rollup/plugin-json"; -import resolve from "@rollup/plugin-node-resolve"; -import replace from "@rollup/plugin-replace"; -import terser from "@rollup/plugin-terser"; -import typescript from "@rollup/plugin-typescript"; - -const plugins = [ - replace({ - preventAssignment: true, - "process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV) - }), - resolve({ - extensions: [".ts", ".js", ".json"] - }), - commonjs(), - json(), - typescript({ - include: ["src/**/*.ts", "../common/**/*.ts"], - compilerOptions: { - target: "ES2020", - removeComments: true, - importHelpers: false, - allowSyntheticDefaultImports: true - } - }), - terser() -]; - -const configs = [ - { - input: "./src/stdio.ts", - output: [ - { - dir: "dist", - format: "esm", - entryFileNames: "stdio.js", - banner: "#!/usr/bin/env node", - sourcemap: false, - inlineDynamicImports: true - } - ], - plugins - }, - { - input: "./src/http.ts", - output: [ - { - dir: "dist", - format: "cjs", // for tencent cloud node v18 compatibility - entryFileNames: "http.cjs", - sourcemap: false, - inlineDynamicImports: true - } - ], - plugins - } -]; - -const targetInput = process.env.BUILD_TARGET; - -export default targetInput ? configs.filter((config) => config.input.includes(targetInput)) : configs; diff --git a/packages/mcp-server/server/src/helpers/cache.ts b/packages/mcp-server/src/helpers/cache.ts similarity index 95% rename from packages/mcp-server/server/src/helpers/cache.ts rename to packages/mcp-server/src/helpers/cache.ts index 4539b66e8..656fc79c3 100644 --- a/packages/mcp-server/server/src/helpers/cache.ts +++ b/packages/mcp-server/src/helpers/cache.ts @@ -1,13 +1,13 @@ import { promises as fs } from "fs"; import path from "path"; -import { DOCS_SOURCE_MODE, getDirname, isLocalMode, isProduction } from "@tdesign-mcp-server/common"; +import { DOCS_SOURCE_MODE, getDirname, isLocalMode, isProduction } from "../../common"; const __dirname = getDirname(import.meta.url); const DOCS_ONLINE_URL = "https://tdesign.gtimg.com/mcp/"; -const docsDir = isProduction && isLocalMode ? "../../docs/" : "../../../docs/"; +const docsDir = isProduction && isLocalMode ? "../docs/" : "../../docs/"; const DOCS_LOCAL_PATH = path.join(__dirname, docsDir); class MemoryCache { diff --git a/packages/mcp-server/server/src/helpers/component.ts b/packages/mcp-server/src/helpers/component.ts similarity index 97% rename from packages/mcp-server/server/src/helpers/component.ts rename to packages/mcp-server/src/helpers/component.ts index ad428afb7..ad85bb75a 100644 --- a/packages/mcp-server/server/src/helpers/component.ts +++ b/packages/mcp-server/src/helpers/component.ts @@ -1,4 +1,4 @@ -import { getPlatformByFramework, isChatFramework, type Framework } from "@tdesign-mcp-server/common"; +import { getPlatformByFramework, isChatFramework, type Framework } from "../../common"; import { loadFileContent } from "./cache"; import { convert2PascalCase } from "./format"; diff --git a/packages/mcp-server/server/src/helpers/format.ts b/packages/mcp-server/src/helpers/format.ts similarity index 91% rename from packages/mcp-server/server/src/helpers/format.ts rename to packages/mcp-server/src/helpers/format.ts index 686856064..915497c71 100644 --- a/packages/mcp-server/server/src/helpers/format.ts +++ b/packages/mcp-server/src/helpers/format.ts @@ -1,7 +1,7 @@ import { promises as fs } from "fs"; import path from "path"; -import { getDirname, isProduction } from "@tdesign-mcp-server/common"; +import { getDirname, isProduction } from "../../common"; const __dirname = getDirname(import.meta.url); diff --git a/packages/mcp-server/server/src/helpers/index.ts b/packages/mcp-server/src/helpers/index.ts similarity index 100% rename from packages/mcp-server/server/src/helpers/index.ts rename to packages/mcp-server/src/helpers/index.ts diff --git a/packages/mcp-server/server/src/http.ts b/packages/mcp-server/src/http.ts similarity index 100% rename from packages/mcp-server/server/src/http.ts rename to packages/mcp-server/src/http.ts diff --git a/packages/mcp-server/server/src/init.ts b/packages/mcp-server/src/init.ts similarity index 100% rename from packages/mcp-server/server/src/init.ts rename to packages/mcp-server/src/init.ts diff --git a/packages/mcp-server/server/src/prompts/assistant.ts b/packages/mcp-server/src/prompts/assistant.ts similarity index 100% rename from packages/mcp-server/server/src/prompts/assistant.ts rename to packages/mcp-server/src/prompts/assistant.ts diff --git a/packages/mcp-server/server/src/prompts/index.ts b/packages/mcp-server/src/prompts/index.ts similarity index 100% rename from packages/mcp-server/server/src/prompts/index.ts rename to packages/mcp-server/src/prompts/index.ts diff --git a/packages/mcp-server/server/src/prompts/schema.ts b/packages/mcp-server/src/prompts/schema.ts similarity index 94% rename from packages/mcp-server/server/src/prompts/schema.ts rename to packages/mcp-server/src/prompts/schema.ts index f42a1ea59..4d18f2296 100644 --- a/packages/mcp-server/server/src/prompts/schema.ts +++ b/packages/mcp-server/src/prompts/schema.ts @@ -1,5 +1,5 @@ import { z } from "zod"; -import { FRAMEWORKS } from "@tdesign-mcp-server/common"; +import { FRAMEWORKS } from "../../common"; export const FrameworkSchema = z.object({ framework: z.enum(FRAMEWORKS).describe("如果用户没有指定,根据 package.json 中的依赖判断") diff --git a/packages/mcp-server/server/src/stdio.ts b/packages/mcp-server/src/stdio.ts similarity index 100% rename from packages/mcp-server/server/src/stdio.ts rename to packages/mcp-server/src/stdio.ts diff --git a/packages/mcp-server/server/src/tools/changelog.ts b/packages/mcp-server/src/tools/changelog.ts similarity index 98% rename from packages/mcp-server/server/src/tools/changelog.ts rename to packages/mcp-server/src/tools/changelog.ts index a9972f1c1..2ec9798d1 100644 --- a/packages/mcp-server/server/src/tools/changelog.ts +++ b/packages/mcp-server/src/tools/changelog.ts @@ -5,7 +5,7 @@ import { cleanText, compareVersion, type Framework -} from "@tdesign-mcp-server/common"; +} from "../../common"; import { checkCompsExistence, loadFileContent } from "../helpers"; import { ChangelogsSchema } from "../prompts"; diff --git a/packages/mcp-server/server/src/tools/docs.ts b/packages/mcp-server/src/tools/docs.ts similarity index 98% rename from packages/mcp-server/server/src/tools/docs.ts rename to packages/mcp-server/src/tools/docs.ts index eb42bdaee..dff125ac7 100644 --- a/packages/mcp-server/server/src/tools/docs.ts +++ b/packages/mcp-server/src/tools/docs.ts @@ -6,7 +6,7 @@ import { isMiniProgram, MINIPROGRAM_DEMO_EXTS, type Framework -} from "@tdesign-mcp-server/common"; +} from "../../common"; import { checkCompsExistence, loadFileContent } from "../helpers"; import { ComponentsSchema } from "../prompts"; diff --git a/packages/mcp-server/server/src/tools/dom.ts b/packages/mcp-server/src/tools/dom.ts similarity index 97% rename from packages/mcp-server/server/src/tools/dom.ts rename to packages/mcp-server/src/tools/dom.ts index 0e9cebb5b..f1cdae34b 100644 --- a/packages/mcp-server/server/src/tools/dom.ts +++ b/packages/mcp-server/src/tools/dom.ts @@ -7,7 +7,7 @@ import { isChatFramework, isMiniProgram, isUniapp -} from "@tdesign-mcp-server/common"; +} from "../../common"; import { checkCompsExistence, loadFileContent } from "../helpers"; import { ComponentsSchema } from "../prompts"; diff --git a/packages/mcp-server/server/src/tools/icon.ts b/packages/mcp-server/src/tools/icon.ts similarity index 100% rename from packages/mcp-server/server/src/tools/icon.ts rename to packages/mcp-server/src/tools/icon.ts diff --git a/packages/mcp-server/server/src/tools/index.ts b/packages/mcp-server/src/tools/index.ts similarity index 100% rename from packages/mcp-server/server/src/tools/index.ts rename to packages/mcp-server/src/tools/index.ts diff --git a/packages/mcp-server/server/src/tools/list.ts b/packages/mcp-server/src/tools/list.ts similarity index 92% rename from packages/mcp-server/server/src/tools/list.ts rename to packages/mcp-server/src/tools/list.ts index 5bf592bd9..033bbf2c2 100644 --- a/packages/mcp-server/server/src/tools/list.ts +++ b/packages/mcp-server/src/tools/list.ts @@ -1,6 +1,6 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; -import { addTdPrefix, type Framework } from "@tdesign-mcp-server/common"; +import { addTdPrefix, type Framework } from "../../common"; import { loadFileContent } from "../helpers"; import { FrameworkSchema } from "../prompts"; diff --git a/packages/mcp-server/tsconfig.json b/packages/mcp-server/tsconfig.json index c1eed2dce..c2994553c 100644 --- a/packages/mcp-server/tsconfig.json +++ b/packages/mcp-server/tsconfig.json @@ -14,6 +14,6 @@ "@tdesign-mcp-server/docs-mobile-react/*": ["./docs/tdesign-mobile-react/*"] } }, - "include": ["common/**/*", "scripts/**/*", "server/**/*"], + "include": ["common/**/*", "scripts/**/*", "src/**/*"], "exclude": ["docs/**/*"] } diff --git a/packages/mcp-server/tsdown.config.ts b/packages/mcp-server/tsdown.config.ts new file mode 100644 index 000000000..f2851b253 --- /dev/null +++ b/packages/mcp-server/tsdown.config.ts @@ -0,0 +1,36 @@ +import { defineConfig, type Options } from "tsdown"; + +const shared: Options = { + outDir: "dist", + platform: "node", + target: "es2020", + minify: true, + dts: false, + sourcemap: false, + clean: false, + define: { + "process.env.NODE_ENV": '"production"' + } +}; + +const configs: Options[] = [ + { + ...shared, + entry: { stdio: "src/stdio.ts" }, + format: "esm", + outExtensions: () => ({ js: ".js" }), + banner: "#!/usr/bin/env node" + }, + { + ...shared, + entry: { http: "src/http.ts" }, + format: "cjs", // for tencent cloud node v18 compatibility + outExtensions: () => ({ js: ".cjs" }) + } +]; + +const targetInput = process.env.BUILD_TARGET; + +export default defineConfig( + targetInput ? configs.filter((config) => Object.keys(config.entry).includes(targetInput)) : configs +); diff --git a/packages/mcp-server/scripts/vitest.config.ts b/packages/mcp-server/vitest.config.ts similarity index 89% rename from packages/mcp-server/scripts/vitest.config.ts rename to packages/mcp-server/vitest.config.ts index 09614b6dd..da224dc83 100644 --- a/packages/mcp-server/scripts/vitest.config.ts +++ b/packages/mcp-server/vitest.config.ts @@ -12,9 +12,9 @@ export default defineConfig({ resolve: { preserveSymlinks: false, alias: { - "@tdesign-mcp-server/docs-react": path.resolve(__dirname, "../docs/tdesign-react"), - "@tdesign-mcp-server/docs-react-chat": path.resolve(__dirname, "../docs/tdesign-react-chat"), - "@tdesign-mcp-server/docs-mobile-react": path.resolve(__dirname, "../docs/tdesign-mobile-react"), + "@tdesign-mcp-server/docs-react": path.resolve(__dirname, "docs/tdesign-react"), + "@tdesign-mcp-server/docs-react-chat": path.resolve(__dirname, "docs/tdesign-react-chat"), + "@tdesign-mcp-server/docs-mobile-react": path.resolve(__dirname, "docs/tdesign-mobile-react"), // 省得 Docs 目录下也安装依赖 "lodash-es": path.resolve(__dirname, "./node_modules/lodash-es"), "tdesign-mobile-react": path.resolve(__dirname, "./node_modules/tdesign-mobile-react"), @@ -26,7 +26,7 @@ export default defineConfig({ }, test: { environment: "happy-dom", - exclude: ["**/dom/snapshots/miniprogram/**", "**/node_modules/**"], + exclude: ["**/scripts/dom/snapshots/miniprogram/**", "**/node_modules/**"], testTimeout: 10000, server: { deps: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d7813ca9c..33955a86e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,7 +80,111 @@ importers: specifier: ^4.9.5 version: 4.9.5 - packages/mcp-server: {} + packages/mcp-server: + dependencies: + '@modelcontextprotocol/sdk': + specifier: ^1.23.0 + version: 1.30.0(zod@4.5.4) + express: + specifier: ^5.2.1 + version: 5.2.1 + zod: + specifier: ^4.1.13 + version: 4.5.4 + devDependencies: + '@babel/core': + specifier: ^7.26.0 + version: 7.29.7 + '@babel/plugin-proposal-decorators': + specifier: ^7.25.9 + version: 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-class-properties': + specifier: ^7.25.9 + version: 7.29.7(@babel/core@7.29.7) + '@babel/preset-env': + specifier: ^7.26.0 + version: 7.29.7(@babel/core@7.29.7) + '@babel/preset-typescript': + specifier: ^7.26.0 + version: 7.29.7(@babel/core@7.29.7) + '@tdesign-react/chat': + specifier: latest + version: 1.0.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@testing-library/react': + specifier: ^16.3.0 + version: 16.3.3(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.31))(@types/react@18.3.31)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@types/express': + specifier: ^5.0.6 + version: 5.0.6 + '@types/jest': + specifier: ^27.0.3 + version: 27.5.2 + '@types/node': + specifier: ^22.14.1 + version: 22.20.1 + '@types/react': + specifier: ^18.3.10 + version: 18.3.31 + '@types/react-dom': + specifier: ^18.3.0 + version: 18.3.7(@types/react@18.3.31) + '@vitejs/plugin-react': + specifier: ^4.5.1 + version: 4.7.0(vite@6.3.1(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13)) + babel-jest: + specifier: ^26.6.3 + version: 26.6.3(@babel/core@7.29.7) + dotenv: + specifier: ^17.2.1 + version: 17.4.2 + happy-dom: + specifier: ^20.8.4 + version: 20.14.0 + jest: + specifier: ^26.6.3 + version: 26.6.3(ts-node@10.9.2(@types/node@22.20.1)(typescript@5.9.3)) + jsdom: + specifier: ^26.1.0 + version: 26.1.0 + lodash-es: + specifier: ^4.17.21 + version: 4.18.1 + miniprogram-simulate: + specifier: ^1.6.0 + version: 1.6.2 + prettier: + specifier: ^3.5.3 + version: 3.9.6 + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + tdesign-icons-react: + specifier: latest + version: 0.6.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tdesign-mobile-react: + specifier: latest + version: 0.23.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tdesign-react: + specifier: latest + version: 1.18.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + tdesign-web-components: + specifier: latest + version: 1.2.10 + tsdown: + specifier: ^0.23.0 + version: 0.23.0(tsx@4.23.13)(typescript@5.9.3) + tsx: + specifier: ^4.21.0 + version: 4.23.13 + typescript: + specifier: ^5.8.3 + version: 5.9.3 + vitest: + specifier: ^3.2.2 + version: 3.2.7(@types/node@22.20.1)(happy-dom@20.14.0)(jiti@1.21.6)(jsdom@26.1.0)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13) packages/mcp-server/common: dependencies: @@ -546,12 +650,6 @@ packages: resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.25.4': - resolution: {integrity: sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-create-class-features-plugin@7.29.7': resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==} engines: {node: '>=6.9.0'} @@ -584,10 +682,6 @@ packages: resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.24.8': - resolution: {integrity: sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==} - engines: {node: '>=6.9.0'} - '@babel/helper-member-expression-to-functions@7.29.7': resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==} engines: {node: '>=6.9.0'} @@ -612,10 +706,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.24.7': - resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} - engines: {node: '>=6.9.0'} - '@babel/helper-optimise-call-expression@7.29.7': resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==} engines: {node: '>=6.9.0'} @@ -866,12 +956,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.29.7': resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} engines: {node: '>=6.9.0'} @@ -920,12 +1004,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.25.4': - resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-typescript@7.29.7': resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} engines: {node: '>=6.9.0'} @@ -2382,15 +2460,114 @@ packages: '@octokit/types@13.6.1': resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==} + '@oxc-project/types@0.148.0': + resolution: {integrity: sha512-Nm4s/jB+4FpFsPhWGEC4h7rzksesmtnMXomo6rCMcg/b8zLQuOziRgkCS1fxDCXOlJB/6Q8oABOZ/OP6RIPj9A==} + '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + '@quansync/fs@1.0.0': + resolution: {integrity: sha512-4TJ3DFtlf1L5LDMaM6CanJ/0lckGNtJcMjQ1NAV6zDmA0tEHKZtxNKin8EgPaVX1YzljbxckyT2tJrpQKAtngQ==} + + '@rolldown/binding-android-arm-eabi@1.2.7': + resolution: {integrity: sha512-EypzgnYCwyVY4NDHKzGmNJT5b+XaQEBniHxsMdeIQLB/tcCzZnhqrzHpZFbX9iaxx+5RiB8caATBtfvZP7zVxQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@rolldown/binding-android-arm64@1.2.7': + resolution: {integrity: sha512-l17HE9EweWaqJZhuUuNBN/FzM62xw+DECVnJyvMsxn8vJFAGLy5QfLDoYAcronkAN8VxKZHezDpulHDPx95vFw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@rolldown/binding-darwin-arm64@1.2.7': + resolution: {integrity: sha512-8ED8ELFvHXc6OCETIn4gXObPiaR6bckM/ipXtbzlPVDRMBfEGjCKgO90F9YtfdpDatVx/ZQw7aZ1vUMf/+T3Mw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@rolldown/binding-darwin-x64@1.2.7': + resolution: {integrity: sha512-/WPripjtiAIZ2tWY7ddijORT0Ujg87wxWW/qcoFVCKAWVDPhtY0xr7Dj0M3GyNGz60jGwTElhro/mkF9dT7dDQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@rolldown/binding-freebsd-x64@1.2.7': + resolution: {integrity: sha512-14DI4NcqpvbICxSnGLx3PmtDaWqRP/KGSGb6C+JLLVPeZRl6dKdHba3pGsqT3vpdTqhEYIPG0MMQ8c0xYqoJxA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@rolldown/binding-linux-arm-gnueabihf@1.2.7': + resolution: {integrity: sha512-bxrWIRvHWQvbJwi+VIie/kDJmQxcNE6xxWwZdqF/ExVAigtHkv54WTLQPb+QsZdnFy18fg7JPfWGL0RH6vwIlQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@rolldown/binding-linux-arm64-gnu@1.2.7': + resolution: {integrity: sha512-toOY2BChBZyuxU7OYX6Tn389di4IzAqPTycVcci0O7FSfBqzRB3RZn+K5Is6ANf4tmgRd/K1yZTsNTXbkXsnLg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-arm64-musl@1.2.7': + resolution: {integrity: sha512-lAIXTH/aiLRLxsTgQvfhjo4K1ydWIp00+V0voOr9beb/9ZmkUFrSIb03dXNFRgMNvkE6oGsF10ioQ6UsI+vS5Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@rolldown/binding-linux-ppc64-gnu@1.2.7': + resolution: {integrity: sha512-kdnwS28Pkenp/mZMRwjXXXwxQ7pIsm+bF919LUK93BOyhcLsrVKdP2p9fxpiPNPAbNuch8ypQt0pm2P2LYCAGg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@rolldown/binding-linux-s390x-gnu@1.2.7': + resolution: {integrity: sha512-516OdsyLdr5E65paF3yBF55t8mfm9+gmtCsK3xI7XKXIT7EfRlHhxL8K/NR6Hu8BWSgF5+1w74lTL0+nxcc8Qw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@rolldown/binding-linux-x64-gnu@1.2.7': + resolution: {integrity: sha512-r8/z8n7GFaYRln3xmP1Cxy0HH/HLM0uBUPkEuSVEfKGDA89M0FsZRZJRSwe/tJjRx+fpH/gjorfhB8tmEbSFLA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-linux-x64-musl@1.2.7': + resolution: {integrity: sha512-pAsE8iiDxUg1xBqdhrTfg45AVDVpirjz00sblEYClGNNcMnDb+e8beQgqIAw6LvauX/APvgxUnwrgun/YYGBhw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@rolldown/binding-openharmony-arm64@1.2.7': + resolution: {integrity: sha512-lTcIYmmnQQA8Or/2DatS6oSqcdLHvendjS+zLu+FwgToynWMRSmQdpM65fTANJgIS4mjbMOo5KT2lnT9SAb96w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@rolldown/binding-win32-arm64-msvc@1.2.7': + resolution: {integrity: sha512-e3Gu3WxbNk/UqQhxqU7YIYO+9ZBvWNz3U+h/qRFosscMFzdRPbXYSaSWgSnklv2fz1TgzBTcti2z35c/7irsHw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@rolldown/binding-win32-x64-msvc@1.2.7': + resolution: {integrity: sha512-W/jg5qoRSqjsEv0+dZi4e687mcHqmVuU0P4fK6qS/xjetW2Gmc1W8j//z5nAeNcC8Ttm0hV46IjcYeuVwYhuiw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/pluginutils@1.0.0-beta.27': resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} + '@rolldown/pluginutils@1.0.1': + resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==} + '@rollup/plugin-commonjs@28.0.9': resolution: {integrity: sha512-PIR4/OHZ79romx0BVVll/PkwWpJ7e5lsqFa3gFfcrFPWwLXLV39JVUzQV9RKjWerE7B845Hqjj9VYlQeieZ2dA==} engines: {node: '>=16.0.0 || 14 >= 14.17'} @@ -2986,9 +3163,6 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@types/ws@8.5.12': - resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} - '@types/yargs-parser@21.0.3': resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} @@ -3326,6 +3500,129 @@ packages: '@xtuc/long@4.2.2': resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + '@yuku-codegen/binding-android-arm64@0.9.5': + resolution: {integrity: sha512-jrOY5WM+AaAqkv51fHP1x28ifto4WgcZVzodLUyMU1jMWn5Sq+VciRdk/n8E0Ey5w4p4cWWE+m5GfXWOYh7Kzw==} + cpu: [arm64] + os: [android] + + '@yuku-codegen/binding-darwin-arm64@0.9.5': + resolution: {integrity: sha512-4O4lkCQIzPZGjiNB1GORSI6hBECbiiSBS/APZXPvNKYH+nhY4uuqv03LNXA+SET3hoBjvr95P5rIhY8KQaQUBA==} + cpu: [arm64] + os: [darwin] + + '@yuku-codegen/binding-darwin-x64@0.9.5': + resolution: {integrity: sha512-9EvoUO0SEhD6/d8VHdWuPerepPMSR1y84+UEgz8Un1Ope14Oe7xMvePpEQLTLovoIFZ8Zg3iZ8z8E11pZMqC3g==} + cpu: [x64] + os: [darwin] + + '@yuku-codegen/binding-freebsd-x64@0.9.5': + resolution: {integrity: sha512-HqT78WwgHTmp8lwujoUa9CrIortX4DdpuiVC18ZPSGvuuJf4ylpIEI6QrQEM78Zwz3muhAWAOXZ5irdiYY+AyA==} + cpu: [x64] + os: [freebsd] + + '@yuku-codegen/binding-linux-arm-gnu@0.9.5': + resolution: {integrity: sha512-QJXwIW6Ms3QIawbcBIedmrmXnfdpuAOjZJ/eAABq5XTzWvSxZ7lutu9W5yIHahlaTaFnBo7ikrVMD1szLTpPUw==} + cpu: [arm] + os: [linux] + + '@yuku-codegen/binding-linux-arm-musl@0.9.5': + resolution: {integrity: sha512-eHbFy3IHGb+IYarrYwAo0yWSEQV3eAmEn6VrsKA6I1Wy1YPJxWqSJlV69JhqsHtJuJlljUIF3ex0y46yaKIu9w==} + cpu: [arm] + os: [linux] + + '@yuku-codegen/binding-linux-arm64-gnu@0.9.5': + resolution: {integrity: sha512-ByoJMbySTaDhjAXSu8q6Lh7HKg3YoesXpcT72aYk0Aiw4PCznmY4ybpLTq0RCvp0RIPhFm/6yECFiGBwyCC1nw==} + cpu: [arm64] + os: [linux] + + '@yuku-codegen/binding-linux-arm64-musl@0.9.5': + resolution: {integrity: sha512-gD9vfXIoBw1toSxhO9rgmSu/FEfy3PMznJAxVjIuH8DrWEiDKXmJO0pJKfj1Ltbe/TmtWVZR+TjISqeSIGQzMg==} + cpu: [arm64] + os: [linux] + + '@yuku-codegen/binding-linux-x64-gnu@0.9.5': + resolution: {integrity: sha512-BARvdnvqMGjOr5Iel2JH+9H5vAIE0R6H0Z2fsT02xrvmI/1ZXNB8lkuX+ZGevPhZb3zJ9WeC/R8JZstrsUOK5g==} + cpu: [x64] + os: [linux] + + '@yuku-codegen/binding-linux-x64-musl@0.9.5': + resolution: {integrity: sha512-x8flcevS1fbb7ESrmpOY/pON4eInSaE/7Ktjqx2udOE2W33BNSZmJuwpyUgo54AoHNqrcaM7szqydyJn5fNvew==} + cpu: [x64] + os: [linux] + + '@yuku-codegen/binding-win32-arm64@0.9.5': + resolution: {integrity: sha512-KOL/rBatWqH4ZpCNoF8ZtSNdOJbAxBJLmk/VeRciepGROPTbPum1A9t67GpFgOU7qrkUWlPJdJ+KHKbvbmOt+w==} + cpu: [arm64] + os: [win32] + + '@yuku-codegen/binding-win32-x64@0.9.5': + resolution: {integrity: sha512-FxENahEjWSan59Syh/us/Kf4wNq8qrJLFJ3R2N4Oiwtb6yNdz/rWLNTIoNSssnsp7IoWJdUP6o/Z8ppg7lXMcg==} + cpu: [x64] + os: [win32] + + '@yuku-parser/binding-android-arm64@0.9.5': + resolution: {integrity: sha512-A2JCFCSHfnficqYEw4Iujpx7XrkMM3UfFcgJFmYpZSo9zM4nyhmdIIE0FogSduuU60lhM0/UcfuUBXIVNBMlGQ==} + cpu: [arm64] + os: [android] + + '@yuku-parser/binding-darwin-arm64@0.9.5': + resolution: {integrity: sha512-3PiyU+Eare4YuKaQ22N98/yAiROPY5o/NQJHraICzDvk4pgS+m+bgLKOvkGBRn33OnV95Vdv1Mn38b+MQHpULQ==} + cpu: [arm64] + os: [darwin] + + '@yuku-parser/binding-darwin-x64@0.9.5': + resolution: {integrity: sha512-blFMAFI7AInI83XaiOF8cIeiRM46Nz9EfpZtZPRLbKxSA9aAr5v8aHYpmfN6NoyXxAv/10pwS4gsAuc1W6fy5Q==} + cpu: [x64] + os: [darwin] + + '@yuku-parser/binding-freebsd-x64@0.9.5': + resolution: {integrity: sha512-TsNuL4qsZdO0tHp5GW43Y5fHeLPpPHA675wdcPNTcdq2ZO5AvsQWFFoiDg8CH4oBktfsQ9tdvKhjLnLYwKvp4g==} + cpu: [x64] + os: [freebsd] + + '@yuku-parser/binding-linux-arm-gnu@0.9.5': + resolution: {integrity: sha512-b0afYK5gHeV8RdmOcqAlgM8ONsye4cax4DMnIBaoJyPMd1UTGvTbpkqQcPVdhmHlcfcGVGMV1laeVovlr/dscw==} + cpu: [arm] + os: [linux] + + '@yuku-parser/binding-linux-arm-musl@0.9.5': + resolution: {integrity: sha512-fD3lKzl+r6j6n8DwiMY53qnh5DLqD8KJjCp+NbVud54Nnh3Q9Wprqss3YzyMHP3NSJk663Wlg1E1X5qOuFVFig==} + cpu: [arm] + os: [linux] + + '@yuku-parser/binding-linux-arm64-gnu@0.9.5': + resolution: {integrity: sha512-aRU/aCphV1MWCl/lvI6NX8LgucHQ68Fx+vz7NBb/5MEr2EuzCxiPOQqeFcMdWh+2AED/p0AvAREch0c+cSnlhA==} + cpu: [arm64] + os: [linux] + + '@yuku-parser/binding-linux-arm64-musl@0.9.5': + resolution: {integrity: sha512-5+Guro0l8H473YXlEjVNBRLN/IbPbJdnQh1zo0OLt49xxnON+XMJRRaEyTOTfkn9QSRg0+BhEKGR4W9Gu2uZJQ==} + cpu: [arm64] + os: [linux] + + '@yuku-parser/binding-linux-x64-gnu@0.9.5': + resolution: {integrity: sha512-pwwSyV9q+GlvzSXlsMZBMlgk22L5bud714/vqZCdeUTivzeUVltQzUaf3IQXOGXdpc59JYTeuMCtbGquaAUoCA==} + cpu: [x64] + os: [linux] + + '@yuku-parser/binding-linux-x64-musl@0.9.5': + resolution: {integrity: sha512-z18j6JN3lBHH8vzN7gG1M8fI0nlgItSfnC9PfbmUbt97iHViKfw2iA2G9fGwRMe5LyPRZBrejIlapbygPbpdaw==} + cpu: [x64] + os: [linux] + + '@yuku-parser/binding-win32-arm64@0.9.5': + resolution: {integrity: sha512-s6Gwttb1dQvtPX6Bgkw+UPC9IO3UBDXc6Zezog8MMgvu3UfJBBB9TQqKBX/2quu0Eyh+lLSAyNlIyyecaagUPg==} + cpu: [arm64] + os: [win32] + + '@yuku-parser/binding-win32-x64@0.9.5': + resolution: {integrity: sha512-FrERt9YWatY3bJfSUdi4YWY+6iQcyo3MzCC821BxlWM5TFZEHijnpz/bknR79VHlXY/9CvXz8ZlaAGPsTtN3nw==} + cpu: [x64] + os: [win32] + + '@yuku-toolchain/types@0.9.5': + resolution: {integrity: sha512-KiuLNNgX9uNealaWAR+G3/cMXnRk9x4TY2EkYe/KIag+UPdwiA0RRf1hr1WAxzTP8KGzCTkqUdLPvqh32sEO3w==} + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -3830,6 +4127,10 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + cac@7.0.0: + resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} + engines: {node: '>=20.19.0'} + cache-base@1.0.1: resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} engines: {node: '>=0.10.0'} @@ -4939,9 +5240,6 @@ packages: resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} engines: {node: '>=10'} - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - decimal.js@10.6.0: resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} @@ -4998,6 +5296,9 @@ packages: resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} engines: {node: '>=0.10.0'} + defu@6.1.7: + resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} + del@3.0.0: resolution: {integrity: sha512-7yjqSoVSlJzA4t/VUwazuEagGeANEKB3f/aNI//06pfKgwoCb7f6Q1gETN1sZzYaj6chTQ0AhIwDiPdfOjko4A==} engines: {node: '>=4'} @@ -5170,6 +5471,15 @@ packages: resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==} engines: {node: '>=6'} + dts-resolver@3.0.0: + resolution: {integrity: sha512-1T1f+z+4tl9XD+m+0HBgWoL/nm0bOIffyWaUuUSBlFg/86IWvfx+wjNaO/ybU0AJzG9/Mi5hBUgGV6zCmWEN7Q==} + engines: {node: ^22.18.0 || >=24.0.0} + peerDependencies: + oxc-resolver: '>=11.0.0' + peerDependenciesMeta: + oxc-resolver: + optional: true + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -5212,6 +5522,10 @@ packages: resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} engines: {node: '>= 4'} + empathic@2.0.1: + resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} + engines: {node: '>=14'} + encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -5270,10 +5584,6 @@ packages: es-array-method-boxes-properly@1.0.0: resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -5943,6 +6253,10 @@ packages: get-tsconfig@4.10.0: resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + get-tsconfig@5.0.0-beta.6: + resolution: {integrity: sha512-X6fBC0pmImC70gvX2zm56go9hx0MyoGVdG0tUCkg/D+Xnh5TJsOZ7iDbOdI3PvmtrDxnu1YdDufpK2QJX1Meqw==} + engines: {node: '>=20.20.0'} + get-value@2.0.6: resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} engines: {node: '>=0.10.0'} @@ -6171,6 +6485,9 @@ packages: resolution: {integrity: sha512-c8/gF9ac8Y78/agExVocyLevgR+JlpNB444Py0FSX8pJoPdYUfUzRcXtYEYGwt6l19qIlVZPN5Mfsw9jFShmQQ==} engines: {node: '>=16.9.0'} + hookable@6.1.1: + resolution: {integrity: sha512-U9LYDy1CwhMCnprUfeAZWZGByVbhd54hwepegYTK7Pi5NvqEj63ifz5z+xukznehT7i6NIZRu89Ay1AZmRsLEQ==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -6378,6 +6695,10 @@ packages: import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + import-without-cache@0.4.0: + resolution: {integrity: sha512-NkJQA7oZ4YHQhd2+H3BoRFKF3d/XNsiKpHZCQEMH9pDX27hQQLsTyOocyRgaIVtf8gHX3Nt3LPkR4e5EdtPAGQ==} + engines: {node: ^22.18.0 || >=24.0.0} + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -7563,10 +7884,6 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - mime-db@1.53.0: - resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} - engines: {node: '>= 0.6'} - mime-db@1.54.0: resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} engines: {node: '>= 0.6'} @@ -7831,9 +8148,6 @@ packages: resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==} engines: {node: '>=0.10.0'} - nwsapi@2.2.12: - resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} - nwsapi@2.2.27: resolution: {integrity: sha512-gQPNF78qebCQ6tvVFBYrvJdBNOrYZm90ZlXgpIFm06p6qHDHq/XC4TnJftN6OMbxVE0UTBAoRgcsDeJBBooITw==} @@ -7892,6 +8206,10 @@ packages: obuf@1.1.2: resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + obug@2.1.4: + resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} + engines: {node: '>=12.20.0'} + omi-transition@0.1.11: resolution: {integrity: sha512-AsiLCOzMUuFRQ2juGXnSVjcOA2eOb4WdZzbiALbeyXCUgxdRTlE0ekO08IgyvAe9Rdc9fhx0iEgLnwd7ufneCg==} @@ -8512,6 +8830,9 @@ packages: resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} engines: {node: '>=0.6'} + quansync@1.0.0: + resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} + querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -8815,6 +9136,30 @@ packages: robust-predicates@3.0.3: resolution: {integrity: sha512-NS3levdsRIUOmiJ8FZWCP7LG3QpJyrs/TE0Zpf1yvZu8cAJJ6QMW92H1c7kWpdIHo8RvmLxN/o2JXTKHp74lUA==} + rolldown-plugin-dts@0.28.5: + resolution: {integrity: sha512-yYd3C9CeJwqjOc9X23m0Tyxcqic491uLZlfg51szT287S8zCCqLR2uoySoElgqy2CLn7PdXcEo1dlkBs4n1WHg==} + engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} + peerDependencies: + '@typescript/native-preview': '*' + '@volar/typescript': ~2.4.0 + rolldown: ^1.2.0 + typescript: ^5.0.0 || ^6.0.0 || ~7.0.0 + vue-tsc: ~3.2.0 || ~3.3.0 + peerDependenciesMeta: + '@typescript/native-preview': + optional: true + '@volar/typescript': + optional: true + typescript: + optional: true + vue-tsc: + optional: true + + rolldown@1.2.7: + resolution: {integrity: sha512-g0EtLvBjTUB7jhyV0S/TCup3v/XSVl45vUIGbOGU4QPiyjTenCe4mKuFvW9fEgYmS2Fo42AUssRmNuMziXdrig==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rollup-plugin-inject-process-env@1.3.1: resolution: {integrity: sha512-kKDoL30IZr0wxbNVJjq+OS92RJSKRbKV6B5eNW4q3mZTFqoWDh6lHy+mPDYuuGuERFNKXkG+AKxvYqC9+DRpKQ==} @@ -9034,10 +9379,6 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - side-channel@1.1.1: resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} engines: {node: '>= 0.4'} @@ -9702,6 +10043,10 @@ packages: resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} engines: {node: '>=18'} + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + trim-newlines@2.0.0: resolution: {integrity: sha512-MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==} engines: {node: '>=4'} @@ -9735,6 +10080,40 @@ packages: tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + tsdown@0.23.0: + resolution: {integrity: sha512-BaT+ep1xnj5hdyICLd5r5SYYE+TXnI1ATePLykv9vcKpHpFTWUWRH+x1AF/E2qcu3YB6+vI8IdyxIIIffEqw5Q==} + engines: {node: ^22.18.0 || ^24.11.0 || >=26.0.0} + hasBin: true + peerDependencies: + '@arethetypeswrong/core': ^0.18.1 + '@tsdown/css': 0.23.0 + '@tsdown/exe': 0.23.0 + '@vitejs/devtools': '*' + publint: ^0.3.8 + tsx: '*' + typescript: ^5.0.0 || ^6.0.0 || ^7.0.0 + unplugin-unused: '>=0.5.0' + unrun: '*' + peerDependenciesMeta: + '@arethetypeswrong/core': + optional: true + '@tsdown/css': + optional: true + '@tsdown/exe': + optional: true + '@vitejs/devtools': + optional: true + publint: + optional: true + tsx: + optional: true + typescript: + optional: true + unplugin-unused: + optional: true + unrun: + optional: true + tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -9850,6 +10229,9 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unconfig-core@7.5.0: + resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} + undefsafe@2.0.5: resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} @@ -9999,6 +10381,10 @@ packages: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} + verkit@0.4.0: + resolution: {integrity: sha512-sXMwN6DMHeouPfCxkxWkKAmxphWKEenHYY5H1nIBzU3PmDsmJp6kBXJdshjVdpMZuWCmL9SH7KFRx29AylpP6g==} + engines: {node: '>=18.12.0'} + vite-node@3.2.4: resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -10398,18 +10784,6 @@ packages: utf-8-validate: optional: true - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - ws@8.21.3: resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} engines: {node: '>=10.0.0'} @@ -10497,6 +10871,15 @@ packages: resolution: {integrity: sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==} engines: {node: '>=4'} + yuku-ast@0.9.5: + resolution: {integrity: sha512-Q8qW8WwQnN5Cm0ZZivdRIfv0sRLTjUq0YumXJkw8CYN1aCdICH9rk4C47/4n6kA5EqDtlj+F608twoTSV2MwdQ==} + + yuku-codegen@0.9.5: + resolution: {integrity: sha512-zGUVyDpSK4b6c9B0yyxi2P0wujn1XZTbG9dCb7d6gyAoP63EMgyLzUwPUvwxPG5jgYqhlI7w+S3oCyapqGr4PA==} + + yuku-parser@0.9.5: + resolution: {integrity: sha512-IBnAdNVMswWbJcM7woPluOudectJzFjJ1N8jVRxP9Uq4CIv5hZdBIcdmtRbFDYF/Ph2j2gVup4YJ4N9mh0jYFA==} + yup@0.26.10: resolution: {integrity: sha512-keuNEbNSnsOTOuGCt3UJW69jDE3O4P+UHAakO7vSeFMnjaitcmlbij/a3oNb9g1Y1KvSKH/7O1R2PQ4m4TRylw==} @@ -10601,7 +10984,7 @@ snapshots: '@babel/types': 7.29.8 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -10641,15 +11024,15 @@ snapshots: '@babel/helper-builder-binary-assignment-operator-visitor@7.24.7': dependencies: - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-compilation-targets@7.25.2': dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 browserslist: 4.23.3 lru-cache: 5.1.1 semver: 6.3.1 @@ -10662,32 +11045,6 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.25.2)': - dependencies: - '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.6 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - - '@babel/helper-create-class-features-plugin@7.25.4(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.25.0(@babel/core@7.29.7) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/traverse': 7.25.6 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 @@ -10717,15 +11074,15 @@ snapshots: '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-annotate-as-pure': 7.29.7 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.25.2(@babel/core@7.29.7)': + '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-annotate-as-pure': 7.24.7 - regexpu-core: 5.3.2 + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.29.7 + regexpu-core: 6.4.0 semver: 6.3.1 '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7)': @@ -10738,9 +11095,9 @@ snapshots: '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.7(supports-color@5.5.0) + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -10749,9 +11106,9 @@ snapshots: '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - debug: 4.3.7(supports-color@5.5.0) + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -10770,13 +11127,6 @@ snapshots: '@babel/helper-globals@7.29.7': {} - '@babel/helper-member-expression-to-functions@7.24.8': - dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.29.8 - transitivePeerDependencies: - - supports-color - '@babel/helper-member-expression-to-functions@7.29.7': dependencies: '@babel/traverse': 7.29.8 @@ -10786,7 +11136,7 @@ snapshots: '@babel/helper-module-imports@7.24.7': dependencies: - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -10804,22 +11154,27 @@ snapshots: '@babel/helper-module-imports': 7.24.7 '@babel/helper-simple-access': 7.24.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + '@babel/helper-module-transforms@7.29.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.29.7 + '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.24.7': + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/types': 7.29.8 + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.8 + transitivePeerDependencies: + - supports-color '@babel/helper-optimise-call-expression@7.29.7': dependencies: @@ -10832,9 +11187,9 @@ snapshots: '@babel/helper-remap-async-to-generator@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-annotate-as-pure': 7.29.7 '@babel/helper-wrap-function': 7.25.0 - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color @@ -10850,18 +11205,9 @@ snapshots: '@babel/helper-replace-supers@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.6 - transitivePeerDependencies: - - supports-color - - '@babel/helper-replace-supers@7.25.0(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-member-expression-to-functions': 7.24.8 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color @@ -10885,14 +11231,14 @@ snapshots: '@babel/helper-simple-access@7.24.7': dependencies: - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.24.7': dependencies: - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -10914,8 +11260,8 @@ snapshots: '@babel/helper-wrap-function@7.25.0': dependencies: - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.8 '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -10930,7 +11276,7 @@ snapshots: '@babel/helpers@7.25.6': dependencies: - '@babel/template': 7.25.0 + '@babel/template': 7.29.7 '@babel/types': 7.29.8 '@babel/helpers@7.29.7': @@ -10956,8 +11302,8 @@ snapshots: '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color @@ -10972,7 +11318,7 @@ snapshots: '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7)': dependencies: @@ -10982,7 +11328,7 @@ snapshots: '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11000,9 +11346,9 @@ snapshots: '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/plugin-transform-optional-chaining': 7.24.8(@babel/core@7.25.2) + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -11018,8 +11364,8 @@ snapshots: '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color @@ -11034,8 +11380,8 @@ snapshots: '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -11059,42 +11405,42 @@ snapshots: '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-decorators@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11104,22 +11450,22 @@ snapshots: '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-assertions@7.25.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11129,12 +11475,12 @@ snapshots: '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-syntax-import-attributes@7.25.6(@babel/core@7.29.7)': + '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.25.2)': dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11144,27 +11490,22 @@ snapshots: '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11174,87 +11515,82 @@ snapshots: '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 - - '@babel/plugin-syntax-typescript@7.25.4(@babel/core@7.29.7)': - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11264,19 +11600,19 @@ snapshots: '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.29.7) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11286,10 +11622,10 @@ snapshots: '@babel/plugin-transform-async-generator-functions@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color @@ -11306,7 +11642,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-remap-async-to-generator': 7.25.0(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -11323,7 +11659,7 @@ snapshots: '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11333,7 +11669,7 @@ snapshots: '@babel/plugin-transform-block-scoping@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11359,8 +11695,8 @@ snapshots: '@babel/plugin-transform-class-static-block@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -11377,10 +11713,10 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -11400,8 +11736,8 @@ snapshots: '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/template': 7.25.0 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/template': 7.29.7 '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11412,7 +11748,7 @@ snapshots: '@babel/plugin-transform-destructuring@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11426,7 +11762,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11437,7 +11773,7 @@ snapshots: '@babel/plugin-transform-duplicate-keys@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11448,7 +11784,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11459,7 +11795,7 @@ snapshots: '@babel/plugin-transform-dynamic-import@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7)': @@ -11479,7 +11815,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-builder-binary-assignment-operator-visitor': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -11491,7 +11827,7 @@ snapshots: '@babel/plugin-transform-export-namespace-from@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7)': @@ -11502,7 +11838,7 @@ snapshots: '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color @@ -11518,9 +11854,9 @@ snapshots: '@babel/plugin-transform-function-name@7.25.1(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/traverse': 7.25.6 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color @@ -11536,7 +11872,7 @@ snapshots: '@babel/plugin-transform-json-strings@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7)': @@ -11547,7 +11883,7 @@ snapshots: '@babel/plugin-transform-literals@7.25.2(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11557,7 +11893,7 @@ snapshots: '@babel/plugin-transform-logical-assignment-operators@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7)': @@ -11568,7 +11904,7 @@ snapshots: '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11578,8 +11914,8 @@ snapshots: '@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -11594,8 +11930,8 @@ snapshots: '@babel/plugin-transform-modules-commonjs@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-simple-access': 7.24.7 transitivePeerDependencies: - supports-color @@ -11611,10 +11947,10 @@ snapshots: '@babel/plugin-transform-modules-systemjs@7.25.0(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 transitivePeerDependencies: - supports-color @@ -11631,8 +11967,8 @@ snapshots: '@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-module-transforms': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -11648,7 +11984,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11659,7 +11995,7 @@ snapshots: '@babel/plugin-transform-new-target@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11669,7 +12005,7 @@ snapshots: '@babel/plugin-transform-nullish-coalescing-operator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7)': @@ -11680,7 +12016,7 @@ snapshots: '@babel/plugin-transform-numeric-separator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7)': @@ -11691,10 +12027,10 @@ snapshots: '@babel/plugin-transform-object-rest-spread@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.25.2) '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11710,7 +12046,7 @@ snapshots: '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-replace-supers': 7.25.0(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -11726,7 +12062,7 @@ snapshots: '@babel/plugin-transform-optional-catch-binding@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7)': @@ -11737,12 +12073,20 @@ snapshots: '@babel/plugin-transform-optional-chaining@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) transitivePeerDependencies: - supports-color + '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 @@ -11754,7 +12098,12 @@ snapshots: '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11764,8 +12113,8 @@ snapshots: '@babel/plugin-transform-private-methods@7.25.4(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -11781,8 +12130,8 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-create-class-features-plugin': 7.25.4(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) transitivePeerDependencies: - supports-color @@ -11799,7 +12148,7 @@ snapshots: '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11819,7 +12168,7 @@ snapshots: '@babel/plugin-transform-regenerator@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 regenerator-transform: 0.15.2 '@babel/plugin-transform-regenerator@7.29.8(@babel/core@7.29.7)': @@ -11836,7 +12185,7 @@ snapshots: '@babel/plugin-transform-reserved-words@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11846,11 +12195,11 @@ snapshots: '@babel/plugin-transform-runtime@7.25.4(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.29.7) + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7) babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.29.7) - babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11858,7 +12207,7 @@ snapshots: '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11868,7 +12217,7 @@ snapshots: '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 transitivePeerDependencies: - supports-color @@ -11884,7 +12233,7 @@ snapshots: '@babel/plugin-transform-sticky-regex@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11894,7 +12243,7 @@ snapshots: '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11904,7 +12253,7 @@ snapshots: '@babel/plugin-transform-typeof-symbol@7.24.8(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11925,7 +12274,7 @@ snapshots: '@babel/plugin-transform-unicode-escapes@7.24.7(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11936,7 +12285,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11948,7 +12297,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -11960,7 +12309,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-create-regexp-features-plugin': 7.25.2(@babel/core@7.25.2) - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7)': dependencies: @@ -12137,14 +12486,14 @@ snapshots: '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': dependencies: '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/types': 7.29.8 esutils: 2.0.3 '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@babel/types': 7.29.8 esutils: 2.0.3 @@ -12182,7 +12531,7 @@ snapshots: '@babel/template@7.25.0': dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.29.7 '@babel/parser': 7.29.8 '@babel/types': 7.29.8 @@ -12194,12 +12543,12 @@ snapshots: '@babel/traverse@7.25.6': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 '@babel/parser': 7.29.8 - '@babel/template': 7.25.0 + '@babel/template': 7.29.7 '@babel/types': 7.29.8 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -12212,7 +12561,7 @@ snapshots: '@babel/parser': 7.29.8 '@babel/template': 7.29.7 '@babel/types': 7.29.8 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -12605,7 +12954,7 @@ snapshots: '@eslint/eslintrc@0.4.3': dependencies: ajv: 6.12.6 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 espree: 7.3.1 globals: 13.24.0 ignore: 4.0.6 @@ -12631,7 +12980,7 @@ snapshots: '@humanwhocodes/config-array@0.5.0': dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -12973,12 +13322,12 @@ snapshots: dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.6.0 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} @@ -12986,8 +13335,8 @@ snapshots: '@jridgewell/source-map@0.3.6': dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.6.0': {} @@ -13124,12 +13473,65 @@ snapshots: dependencies: '@octokit/openapi-types': 22.2.0 + '@oxc-project/types@0.148.0': {} + '@polka/url@1.0.0-next.28': {} '@popperjs/core@2.11.8': {} + '@quansync/fs@1.0.0': + dependencies: + quansync: 1.0.0 + + '@rolldown/binding-android-arm-eabi@1.2.7': + optional: true + + '@rolldown/binding-android-arm64@1.2.7': + optional: true + + '@rolldown/binding-darwin-arm64@1.2.7': + optional: true + + '@rolldown/binding-darwin-x64@1.2.7': + optional: true + + '@rolldown/binding-freebsd-x64@1.2.7': + optional: true + + '@rolldown/binding-linux-arm-gnueabihf@1.2.7': + optional: true + + '@rolldown/binding-linux-arm64-gnu@1.2.7': + optional: true + + '@rolldown/binding-linux-arm64-musl@1.2.7': + optional: true + + '@rolldown/binding-linux-ppc64-gnu@1.2.7': + optional: true + + '@rolldown/binding-linux-s390x-gnu@1.2.7': + optional: true + + '@rolldown/binding-linux-x64-gnu@1.2.7': + optional: true + + '@rolldown/binding-linux-x64-musl@1.2.7': + optional: true + + '@rolldown/binding-openharmony-arm64@1.2.7': + optional: true + + '@rolldown/binding-win32-arm64-msvc@1.2.7': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.2.7': + optional: true + '@rolldown/pluginutils@1.0.0-beta.27': {} + '@rolldown/pluginutils@1.0.1': {} + '@rollup/plugin-commonjs@28.0.9(rollup@4.63.1)': dependencies: '@rollup/pluginutils': 5.4.0(rollup@4.63.1) @@ -13332,7 +13734,7 @@ snapshots: '@testing-library/dom@10.4.1': dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.29.7 '@babel/runtime': 7.29.7 '@types/aria-query': 5.0.4 aria-query: 5.3.0 @@ -13416,7 +13818,7 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: - '@types/express-serve-static-core': 4.19.5 + '@types/express-serve-static-core': 5.1.3 '@types/node': 22.20.1 '@types/connect@3.4.38': @@ -13577,7 +13979,7 @@ snapshots: '@types/body-parser': 1.19.5 '@types/express-serve-static-core': 4.19.5 '@types/qs': 6.9.16 - '@types/serve-static': 1.15.7 + '@types/serve-static': 2.2.0 '@types/express@5.0.6': dependencies: @@ -13710,7 +14112,7 @@ snapshots: '@types/tern@0.23.9': dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.9 '@types/tinycolor2@1.4.6': {} @@ -13727,10 +14129,6 @@ snapshots: dependencies: '@types/node': 22.20.1 - '@types/ws@8.5.12': - dependencies: - '@types/node': 22.20.1 - '@types/yargs-parser@21.0.3': {} '@types/yargs@15.0.20': @@ -13781,7 +14179,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@4.9.5) '@typescript-eslint/utils': 5.62.0(eslint@7.32.0)(typescript@4.9.5) - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 eslint: 7.32.0 tsutils: 3.21.0(typescript@4.9.5) optionalDependencies: @@ -13795,7 +14193,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -13897,11 +14295,11 @@ snapshots: '@vue/babel-plugin-jsx@1.2.5(@babel/core@7.29.7)': dependencies: - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.8 '@babel/types': 7.29.8 '@vue/babel-helper-vue-transform-on': 1.2.5 '@vue/babel-plugin-resolve-type': 1.2.5(@babel/core@7.29.7) @@ -13914,10 +14312,10 @@ snapshots: '@vue/babel-plugin-resolve-type@1.2.5(@babel/core@7.29.7)': dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.29.7 '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/parser': 7.29.8 '@vue/compiler-sfc': 3.5.42 transitivePeerDependencies: @@ -13926,8 +14324,8 @@ snapshots: '@vue/babel-plugin-transform-vue-jsx@1.4.0(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@babel/helper-module-imports': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 html-tags: 2.0.0 lodash.kebabcase: 4.1.1 @@ -13938,19 +14336,19 @@ snapshots: '@vue/babel-preset-app@5.0.8(@babel/core@7.29.7)(core-js@3.38.1)(vue@2.7.14)': dependencies: '@babel/core': 7.29.7 - '@babel/helper-compilation-targets': 7.25.2 + '@babel/helper-compilation-targets': 7.29.7 '@babel/helper-module-imports': 7.24.7 '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.29.7) '@babel/plugin-proposal-decorators': 7.29.7(@babel/core@7.29.7) '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.29.7) - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) '@babel/plugin-transform-runtime': 7.25.4(@babel/core@7.29.7) '@babel/preset-env': 7.29.7(@babel/core@7.29.7) '@babel/runtime': 7.29.7 '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.29.7) '@vue/babel-preset-jsx': 1.4.0(@babel/core@7.29.7)(vue@2.7.14) babel-plugin-dynamic-import-node: 2.3.3 - core-js-compat: 3.38.1 + core-js-compat: 3.50.0 semver: 7.6.3 optionalDependencies: core-js: 3.38.1 @@ -13977,27 +14375,27 @@ snapshots: '@vue/babel-sugar-composition-api-inject-h@1.4.0(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) '@vue/babel-sugar-composition-api-render-instance@1.4.0(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) '@vue/babel-sugar-functional-vue@1.4.0(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) '@vue/babel-sugar-inject-h@1.4.0(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) '@vue/babel-sugar-v-model@1.4.0(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) '@vue/babel-helper-vue-jsx-merge-props': 1.4.0 '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.29.7) camelcase: 5.3.1 @@ -14009,7 +14407,7 @@ snapshots: '@vue/babel-sugar-v-on@1.4.0(@babel/core@7.29.7)': dependencies: '@babel/core': 7.29.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.29.7) + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) '@vue/babel-plugin-transform-vue-jsx': 1.4.0(@babel/core@7.29.7) camelcase: 5.3.1 transitivePeerDependencies: @@ -14228,7 +14626,7 @@ snapshots: '@vue/compiler-sfc@2.7.14': dependencies: '@babel/parser': 7.29.8 - postcss: 8.4.47 + postcss: 8.5.26 source-map: 0.6.1 '@vue/compiler-sfc@3.5.42': @@ -14421,6 +14819,80 @@ snapshots: '@xtuc/long@4.2.2': {} + '@yuku-codegen/binding-android-arm64@0.9.5': + optional: true + + '@yuku-codegen/binding-darwin-arm64@0.9.5': + optional: true + + '@yuku-codegen/binding-darwin-x64@0.9.5': + optional: true + + '@yuku-codegen/binding-freebsd-x64@0.9.5': + optional: true + + '@yuku-codegen/binding-linux-arm-gnu@0.9.5': + optional: true + + '@yuku-codegen/binding-linux-arm-musl@0.9.5': + optional: true + + '@yuku-codegen/binding-linux-arm64-gnu@0.9.5': + optional: true + + '@yuku-codegen/binding-linux-arm64-musl@0.9.5': + optional: true + + '@yuku-codegen/binding-linux-x64-gnu@0.9.5': + optional: true + + '@yuku-codegen/binding-linux-x64-musl@0.9.5': + optional: true + + '@yuku-codegen/binding-win32-arm64@0.9.5': + optional: true + + '@yuku-codegen/binding-win32-x64@0.9.5': + optional: true + + '@yuku-parser/binding-android-arm64@0.9.5': + optional: true + + '@yuku-parser/binding-darwin-arm64@0.9.5': + optional: true + + '@yuku-parser/binding-darwin-x64@0.9.5': + optional: true + + '@yuku-parser/binding-freebsd-x64@0.9.5': + optional: true + + '@yuku-parser/binding-linux-arm-gnu@0.9.5': + optional: true + + '@yuku-parser/binding-linux-arm-musl@0.9.5': + optional: true + + '@yuku-parser/binding-linux-arm64-gnu@0.9.5': + optional: true + + '@yuku-parser/binding-linux-arm64-musl@0.9.5': + optional: true + + '@yuku-parser/binding-linux-x64-gnu@0.9.5': + optional: true + + '@yuku-parser/binding-linux-x64-musl@0.9.5': + optional: true + + '@yuku-parser/binding-win32-arm64@0.9.5': + optional: true + + '@yuku-parser/binding-win32-x64@0.9.5': + optional: true + + '@yuku-toolchain/types@0.9.5': {} + JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -14477,7 +14949,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -14786,7 +15258,7 @@ snapshots: babel-plugin-istanbul@6.1.1: dependencies: - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.29.7 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -14796,36 +15268,27 @@ snapshots: babel-plugin-jest-hoist@26.6.2: dependencies: - '@babel/template': 7.25.0 + '@babel/template': 7.29.7 '@babel/types': 7.29.8 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 babel-plugin-jest-hoist@27.5.1: dependencies: - '@babel/template': 7.25.0 + '@babel/template': 7.29.7 '@babel/types': 7.29.8 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): dependencies: - '@babel/compat-data': 7.25.4 + '@babel/compat-data': 7.29.7 '@babel/core': 7.25.2 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.29.7): - dependencies: - '@babel/compat-data': 7.25.4 - '@babel/core': 7.29.7 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.29.7) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7): dependencies: '@babel/compat-data': 7.29.7 @@ -14839,7 +15302,7 @@ snapshots: dependencies: '@babel/core': 7.25.2 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) - core-js-compat: 3.38.1 + core-js-compat: 3.50.0 transitivePeerDependencies: - supports-color @@ -14847,7 +15310,7 @@ snapshots: dependencies: '@babel/core': 7.29.7 '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.29.7) - core-js-compat: 3.38.1 + core-js-compat: 3.50.0 transitivePeerDependencies: - supports-color @@ -14866,13 +15329,6 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.29.7): - dependencies: - '@babel/core': 7.29.7 - '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.29.7) - transitivePeerDependencies: - - supports-color - babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7): dependencies: '@babel/core': 7.29.7 @@ -14893,7 +15349,7 @@ snapshots: '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) - '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.25.2) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) @@ -14912,7 +15368,7 @@ snapshots: '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.7) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.7) '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.7) - '@babel/plugin-syntax-import-attributes': 7.25.6(@babel/core@7.29.7) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7) '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.7) '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.7) '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.7) @@ -15083,6 +15539,8 @@ snapshots: cac@6.7.14: {} + cac@7.0.0: {} + cache-base@1.0.1: dependencies: collection-visit: 1.0.0 @@ -15104,7 +15562,7 @@ snapshots: call-bind@1.0.7: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 @@ -15159,8 +15617,8 @@ snapshots: caniuse-api@3.0.0: dependencies: - browserslist: 4.23.3 - caniuse-lite: 1.0.30001662 + browserslist: 4.28.9 + caniuse-lite: 1.0.30001810 lodash.memoize: 4.1.2 lodash.uniq: 4.5.0 @@ -15227,7 +15685,7 @@ snapshots: dompurify: 3.4.15 htmlparser2: 10.1.0 jsdom: 19.0.0 - ws: 8.18.0 + ws: 8.21.3 optionalDependencies: mermaid: 9.4.3 transitivePeerDependencies: @@ -15243,7 +15701,7 @@ snapshots: dompurify: 3.4.15 htmlparser2: 10.1.0 jsdom: 19.0.0 - ws: 8.18.0 + ws: 8.21.3 optionalDependencies: mermaid: 9.4.3 transitivePeerDependencies: @@ -15470,7 +15928,7 @@ snapshots: compressible@2.0.18: dependencies: - mime-db: 1.53.0 + mime-db: 1.54.0 compression@1.7.4: dependencies: @@ -15765,7 +16223,7 @@ snapshots: cross-env@6.0.3: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 cross-spawn@5.1.0: dependencies: @@ -16290,8 +16748,6 @@ snapshots: decamelize@5.0.1: {} - decimal.js@10.4.3: {} - decimal.js@10.6.0: {} decode-uri-component@0.2.2: {} @@ -16316,7 +16772,7 @@ snapshots: define-data-property@1.1.4: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 gopd: 1.0.1 @@ -16341,6 +16797,8 @@ snapshots: is-descriptor: 1.0.3 isobject: 3.0.1 + defu@6.1.7: {} + del@3.0.0: dependencies: globby: 6.1.0 @@ -16507,6 +16965,8 @@ snapshots: find-up: 3.0.0 minimatch: 3.1.2 + dts-resolver@3.0.0: {} + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -16536,6 +16996,8 @@ snapshots: emojis-list@3.0.0: {} + empathic@2.0.1: {} + encodeurl@1.0.2: {} encodeurl@2.0.0: {} @@ -16589,7 +17051,7 @@ snapshots: data-view-buffer: 1.0.1 data-view-byte-length: 1.0.1 data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 es-set-tostringtag: 2.0.3 @@ -16631,10 +17093,6 @@ snapshots: es-array-method-boxes-properly@1.0.0: {} - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -16910,7 +17368,7 @@ snapshots: eslint-plugin-react-native@3.11.0(eslint@7.32.0): dependencies: - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 eslint: 7.32.0 eslint-plugin-react-native-globals: 0.1.2 transitivePeerDependencies: @@ -17062,7 +17520,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.7 + '@types/estree': 1.0.9 esutils@2.0.3: {} @@ -17104,7 +17562,7 @@ snapshots: execa@4.1.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 5.2.0 human-signals: 1.1.1 is-stream: 2.0.1 @@ -17116,7 +17574,7 @@ snapshots: execa@5.1.1: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -17223,7 +17681,7 @@ snapshots: etag: 1.8.1 finalhandler: 2.1.1 fresh: 2.0.0 - http-errors: 2.0.0 + http-errors: 2.0.1 merge-descriptors: 2.0.0 mime-types: 3.0.2 on-finished: 2.4.1 @@ -17235,7 +17693,7 @@ snapshots: router: 2.2.0 send: 1.2.1 serve-static: 2.2.1 - statuses: 2.0.1 + statuses: 2.0.2 type-is: 2.1.0 vary: 1.1.2 transitivePeerDependencies: @@ -17307,6 +17765,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.4.3(picomatch@4.0.7): + optionalDependencies: + picomatch: 4.0.7 + fdir@6.5.0(picomatch@4.0.7): optionalDependencies: picomatch: 4.0.7 @@ -17366,7 +17828,7 @@ snapshots: escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color @@ -17525,7 +17987,7 @@ snapshots: get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-own-enumerable-property-symbols@3.0.2: {} @@ -17568,6 +18030,10 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-tsconfig@5.0.0-beta.6: + dependencies: + resolve-pkg-maps: 1.0.0 + get-value@2.0.6: {} git-raw-commits@2.0.0: @@ -17757,7 +18223,7 @@ snapshots: has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 has-proto@1.0.3: {} @@ -17814,6 +18280,8 @@ snapshots: hono@4.13.7: {} + hookable@6.1.1: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -17921,7 +18389,7 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -17929,14 +18397,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.1 agent-base: 6.0.2 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -17963,14 +18431,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -18049,6 +18517,8 @@ snapshots: import-meta-resolve@4.2.0: {} + import-without-cache@0.4.0: {} + imurmurhash@0.1.4: {} indent-string@3.2.0: {} @@ -18093,7 +18563,7 @@ snapshots: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.1 internmap@1.0.1: {} @@ -18317,7 +18787,7 @@ snapshots: is-weakset@2.0.3: dependencies: call-bind: 1.0.7 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 is-what@3.14.1: {} @@ -18368,7 +18838,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -18382,7 +18852,7 @@ snapshots: iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 has-symbols: 1.0.3 reflect.getprototypeof: 1.0.6 set-function-name: 2.0.2 @@ -18667,7 +19137,7 @@ snapshots: jest-jasmine2@26.6.3: dependencies: - '@babel/traverse': 7.25.6 + '@babel/traverse': 7.29.8 '@jest/environment': 26.6.2 '@jest/source-map': 26.6.2 '@jest/test-result': 26.6.2 @@ -18736,7 +19206,7 @@ snapshots: jest-message-util@26.6.2: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.29.7 '@jest/types': 26.6.2 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -18748,7 +19218,7 @@ snapshots: jest-message-util@27.5.1: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.29.7 '@jest/types': 27.5.1 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -18804,7 +19274,7 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@26.6.2) jest-util: 26.6.2 read-pkg-up: 7.0.1 - resolve: 1.22.8 + resolve: 1.22.12 slash: 3.0.0 jest-resolve@27.5.1: @@ -18975,9 +19445,9 @@ snapshots: jest-snapshot@27.5.1: dependencies: '@babel/core': 7.29.7 - '@babel/generator': 7.25.6 - '@babel/plugin-syntax-typescript': 7.25.4(@babel/core@7.29.7) - '@babel/traverse': 7.25.6 + '@babel/generator': 7.29.8 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.8 '@babel/types': 7.29.8 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 @@ -19137,7 +19607,7 @@ snapshots: cssom: 0.4.4 cssstyle: 2.3.0 data-urls: 2.0.0 - decimal.js: 10.4.3 + decimal.js: 10.6.0 domexception: 2.0.1 escodegen: 2.1.0 form-data: 3.0.1 @@ -19145,7 +19615,7 @@ snapshots: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.12 + nwsapi: 2.2.27 parse5: 6.0.1 saxes: 5.0.1 symbol-tree: 3.2.4 @@ -19171,7 +19641,7 @@ snapshots: cssom: 0.5.0 cssstyle: 2.3.0 data-urls: 3.0.2 - decimal.js: 10.4.3 + decimal.js: 10.6.0 domexception: 4.0.0 escodegen: 2.1.0 form-data: 4.0.6 @@ -19179,7 +19649,7 @@ snapshots: http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.12 + nwsapi: 2.2.27 parse5: 6.0.1 saxes: 5.0.1 symbol-tree: 3.2.4 @@ -19190,7 +19660,7 @@ snapshots: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 10.0.0 - ws: 8.18.0 + ws: 8.21.3 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -19217,7 +19687,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.18.0 + ws: 8.21.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -19804,8 +20274,6 @@ snapshots: mime-db@1.52.0: {} - mime-db@1.53.0: {} - mime-db@1.54.0: {} mime-types@2.1.35: @@ -20067,8 +20535,6 @@ snapshots: number-is-nan@1.0.1: {} - nwsapi@2.2.12: {} - nwsapi@2.2.27: {} object-assign@4.1.1: {} @@ -20137,6 +20603,8 @@ snapshots: obuf@1.1.2: {} + obug@2.1.4: {} + omi-transition@0.1.11: dependencies: omi: 7.7.13 @@ -20261,7 +20729,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.29.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -20397,7 +20865,7 @@ snapshots: postcss-colormin@5.3.1(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.4.47 @@ -20405,7 +20873,7 @@ snapshots: postcss-colormin@5.3.1(postcss@8.5.26): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 caniuse-api: 3.0.0 colord: 2.9.3 postcss: 8.5.26 @@ -20413,13 +20881,13 @@ snapshots: postcss-convert-values@5.1.3(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 postcss: 8.4.47 postcss-value-parser: 4.2.0 postcss-convert-values@5.1.3(postcss@8.5.26): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 postcss: 8.5.26 postcss-value-parser: 4.2.0 @@ -20481,7 +20949,7 @@ snapshots: postcss-merge-rules@5.1.4(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.4.47) postcss: 8.4.47 @@ -20489,7 +20957,7 @@ snapshots: postcss-merge-rules@5.1.4(postcss@8.5.26): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 caniuse-api: 3.0.0 cssnano-utils: 3.1.0(postcss@8.5.26) postcss: 8.5.26 @@ -20521,14 +20989,14 @@ snapshots: postcss-minify-params@5.1.4(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 cssnano-utils: 3.1.0(postcss@8.4.47) postcss: 8.4.47 postcss-value-parser: 4.2.0 postcss-minify-params@5.1.4(postcss@8.5.26): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 cssnano-utils: 3.1.0(postcss@8.5.26) postcss: 8.5.26 postcss-value-parser: 4.2.0 @@ -20624,13 +21092,13 @@ snapshots: postcss-normalize-unicode@5.1.1(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 postcss: 8.4.47 postcss-value-parser: 4.2.0 postcss-normalize-unicode@5.1.1(postcss@8.5.26): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 postcss: 8.5.26 postcss-value-parser: 4.2.0 @@ -20670,13 +21138,13 @@ snapshots: postcss-reduce-initial@5.1.2(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 caniuse-api: 3.0.0 postcss: 8.4.47 postcss-reduce-initial@5.1.2(postcss@8.5.26): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 caniuse-api: 3.0.0 postcss: 8.5.26 @@ -20833,13 +21301,15 @@ snapshots: qs@6.13.0: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.1 qs@6.16.0: dependencies: es-define-property: 1.0.1 side-channel: 1.1.1 + quansync@1.0.0: {} + querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -20989,7 +21459,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.3 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 globalthis: 1.0.4 which-builtin-type: 1.1.4 @@ -21155,6 +21625,41 @@ snapshots: robust-predicates@3.0.3: {} + rolldown-plugin-dts@0.28.5(rolldown@1.2.7)(typescript@5.9.3): + dependencies: + dts-resolver: 3.0.0 + get-tsconfig: 5.0.0-beta.6 + obug: 2.1.4 + rolldown: 1.2.7 + yuku-ast: 0.9.5 + yuku-codegen: 0.9.5 + yuku-parser: 0.9.5 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - oxc-resolver + + rolldown@1.2.7: + dependencies: + '@oxc-project/types': 0.148.0 + '@rolldown/pluginutils': 1.0.1 + optionalDependencies: + '@rolldown/binding-android-arm-eabi': 1.2.7 + '@rolldown/binding-android-arm64': 1.2.7 + '@rolldown/binding-darwin-arm64': 1.2.7 + '@rolldown/binding-darwin-x64': 1.2.7 + '@rolldown/binding-freebsd-x64': 1.2.7 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.7 + '@rolldown/binding-linux-arm64-gnu': 1.2.7 + '@rolldown/binding-linux-arm64-musl': 1.2.7 + '@rolldown/binding-linux-ppc64-gnu': 1.2.7 + '@rolldown/binding-linux-s390x-gnu': 1.2.7 + '@rolldown/binding-linux-x64-gnu': 1.2.7 + '@rolldown/binding-linux-x64-musl': 1.2.7 + '@rolldown/binding-openharmony-arm64': 1.2.7 + '@rolldown/binding-win32-arm64-msvc': 1.2.7 + '@rolldown/binding-win32-x64-msvc': 1.2.7 + rollup-plugin-inject-process-env@1.3.1: dependencies: magic-string: 0.25.9 @@ -21467,13 +21972,6 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.0.6: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.2 - side-channel@1.1.1: dependencies: es-errors: 1.3.0 @@ -21490,7 +21988,7 @@ snapshots: simple-git@1.132.0: dependencies: - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -21594,7 +22092,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -21605,7 +22103,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -21717,7 +22215,7 @@ snapshots: internal-slot: 1.0.7 regexp.prototype.flags: 1.5.2 set-function-name: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.1 string.prototype.padend@3.1.6: dependencies: @@ -21808,13 +22306,13 @@ snapshots: stylehacks@5.1.1(postcss@8.4.47): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 postcss: 8.4.47 postcss-selector-parser: 6.1.2 stylehacks@5.1.1(postcss@8.5.26): dependencies: - browserslist: 4.23.3 + browserslist: 4.28.9 postcss: 8.5.26 postcss-selector-parser: 6.1.2 @@ -22258,8 +22756,8 @@ snapshots: tinyglobby@0.2.12: dependencies: - fdir: 6.4.3(picomatch@4.0.2) - picomatch: 4.0.2 + fdir: 6.4.3(picomatch@4.0.7) + picomatch: 4.0.7 tinyglobby@0.2.17: dependencies: @@ -22341,6 +22839,8 @@ snapshots: dependencies: punycode: 2.3.1 + tree-kill@1.2.2: {} + trim-newlines@2.0.0: {} trim-newlines@3.0.1: {} @@ -22375,6 +22875,31 @@ snapshots: minimist: 1.2.8 strip-bom: 3.0.0 + tsdown@0.23.0(tsx@4.23.13)(typescript@5.9.3): + dependencies: + cac: 7.0.0 + defu: 6.1.7 + empathic: 2.0.1 + hookable: 6.1.1 + import-without-cache: 0.4.0 + obug: 2.1.4 + picomatch: 4.0.7 + rolldown: 1.2.7 + rolldown-plugin-dts: 0.28.5(rolldown@1.2.7)(typescript@5.9.3) + tinyexec: 1.3.1 + tinyglobby: 0.2.17 + tree-kill: 1.2.2 + unconfig-core: 7.5.0 + verkit: 0.4.0 + optionalDependencies: + tsx: 4.23.13 + typescript: 5.9.3 + transitivePeerDependencies: + - '@typescript/native-preview' + - '@volar/typescript' + - oxc-resolver + - vue-tsc + tslib@1.14.1: {} tslib@2.3.1: {} @@ -22491,6 +23016,11 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + unconfig-core@7.5.0: + dependencies: + '@quansync/fs': 1.0.0 + quansync: 1.0.0 + undefsafe@2.0.5: {} undici-types@6.21.0: {} @@ -22617,6 +23147,8 @@ snapshots: vary@1.1.2: {} + verkit@0.4.0: {} + vite-node@3.2.4(@types/node@22.20.1)(jiti@1.21.6)(less@4.2.0)(terser@5.33.0)(tsx@4.23.13): dependencies: cac: 6.7.14 @@ -22684,7 +23216,7 @@ snapshots: expect-type: 1.4.0 magic-string: 0.30.21 pathe: 2.0.3 - picomatch: 4.0.2 + picomatch: 4.0.7 std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 @@ -22731,7 +23263,7 @@ snapshots: vue-eslint-parser@8.3.0(eslint@7.32.0): dependencies: - debug: 4.3.7(supports-color@5.5.0) + debug: 4.4.3 eslint: 7.32.0 eslint-scope: 7.2.2 eslint-visitor-keys: 3.4.3 @@ -22946,7 +23478,7 @@ snapshots: '@types/serve-index': 1.9.4 '@types/serve-static': 1.15.7 '@types/sockjs': 0.3.36 - '@types/ws': 8.5.12 + '@types/ws': 8.18.1 ansi-html-community: 0.0.8 bonjour-service: 1.2.1 chokidar: 3.6.0 @@ -22969,7 +23501,7 @@ snapshots: sockjs: 0.3.24 spdy: 4.0.2 webpack-dev-middleware: 5.3.4(webpack@5.94.0) - ws: 8.18.0 + ws: 8.21.3 optionalDependencies: webpack: 5.94.0 transitivePeerDependencies: @@ -23164,8 +23696,6 @@ snapshots: ws@7.5.10: {} - ws@8.18.0: {} - ws@8.21.3: {} xml-name-validator@3.0.0: {} @@ -23256,6 +23786,45 @@ snapshots: normalize-path: 1.0.0 strip-indent: 2.0.0 + yuku-ast@0.9.5: + dependencies: + '@yuku-toolchain/types': 0.9.5 + + yuku-codegen@0.9.5: + dependencies: + '@yuku-toolchain/types': 0.9.5 + optionalDependencies: + '@yuku-codegen/binding-android-arm64': 0.9.5 + '@yuku-codegen/binding-darwin-arm64': 0.9.5 + '@yuku-codegen/binding-darwin-x64': 0.9.5 + '@yuku-codegen/binding-freebsd-x64': 0.9.5 + '@yuku-codegen/binding-linux-arm-gnu': 0.9.5 + '@yuku-codegen/binding-linux-arm-musl': 0.9.5 + '@yuku-codegen/binding-linux-arm64-gnu': 0.9.5 + '@yuku-codegen/binding-linux-arm64-musl': 0.9.5 + '@yuku-codegen/binding-linux-x64-gnu': 0.9.5 + '@yuku-codegen/binding-linux-x64-musl': 0.9.5 + '@yuku-codegen/binding-win32-arm64': 0.9.5 + '@yuku-codegen/binding-win32-x64': 0.9.5 + + yuku-parser@0.9.5: + dependencies: + '@yuku-toolchain/types': 0.9.5 + yuku-ast: 0.9.5 + optionalDependencies: + '@yuku-parser/binding-android-arm64': 0.9.5 + '@yuku-parser/binding-darwin-arm64': 0.9.5 + '@yuku-parser/binding-darwin-x64': 0.9.5 + '@yuku-parser/binding-freebsd-x64': 0.9.5 + '@yuku-parser/binding-linux-arm-gnu': 0.9.5 + '@yuku-parser/binding-linux-arm-musl': 0.9.5 + '@yuku-parser/binding-linux-arm64-gnu': 0.9.5 + '@yuku-parser/binding-linux-arm64-musl': 0.9.5 + '@yuku-parser/binding-linux-x64-gnu': 0.9.5 + '@yuku-parser/binding-linux-x64-musl': 0.9.5 + '@yuku-parser/binding-win32-arm64': 0.9.5 + '@yuku-parser/binding-win32-x64': 0.9.5 + yup@0.26.10: dependencies: '@babel/runtime': 7.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 3559a947b..470e88009 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,4 +1,3 @@ packages: - "packages/*" - - "packages/mcp-server/*" - "site" From 27e79319e5d7a8863cb8d848716600504b73b416 Mon Sep 17 00:00:00 2001 From: liweijie <674416404@qq.com> Date: Tue, 8 Sep 2026 22:37:59 +0800 Subject: [PATCH 06/15] =?UTF-8?q?feat(mcp-server):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=8F=90=E5=8F=96=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 docs 脚本,从各框架组件仓库提取 API 文档和示例代码 - 生成组件映射 JSON,支持 web、mobile 和 chat 平台 - 支持小程序和 uni-app 多文件示例的提取与依赖内联 - 添加快照目录到 .gitignore --- .gitignore | 3 +- packages/mcp-server/.gitignore | 30 --- packages/mcp-server/scripts/docs/index.ts | 191 ++++++++++++++ .../scripts/docs/utils/miniprogram.ts | 237 ++++++++++++++++++ 4 files changed, 430 insertions(+), 31 deletions(-) delete mode 100644 packages/mcp-server/.gitignore create mode 100644 packages/mcp-server/scripts/docs/index.ts create mode 100644 packages/mcp-server/scripts/docs/utils/miniprogram.ts diff --git a/.gitignore b/.gitignore index 6110a603d..96da86aed 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,5 @@ lib packages/mcp-server/docs ## test -coverage \ No newline at end of file +coverage +packages/mcp-server/scripts/dom/snapshots/**/__snapshots__ \ No newline at end of file diff --git a/packages/mcp-server/.gitignore b/packages/mcp-server/.gitignore deleted file mode 100644 index 492edf4f4..000000000 --- a/packages/mcp-server/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-ssr -*.local - -.vscode -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -pnpm-lock.yaml - -.npmrc - -# Script-generated files (do not commit) -docs/ -scripts/dom/snapshots/*/__snapshots__/ diff --git a/packages/mcp-server/scripts/docs/index.ts b/packages/mcp-server/scripts/docs/index.ts new file mode 100644 index 000000000..2877d7fc5 --- /dev/null +++ b/packages/mcp-server/scripts/docs/index.ts @@ -0,0 +1,191 @@ +import { existsSync, promises as fs, readdirSync } from "fs"; +import path from "path"; + +import { + addTdPrefix, + API_RULE_MAP, + cleanText, + DEMO_RULE_MAP, + FRAMEWORKS, + getSuffixByFramework, + isMiniProgram, + isUniapp, + MOBILE_DEMO_RULE_MAP, + MOBILE_FRAMEWORKS, + type Framework +} from "../../common"; + +import { + getComponentDir, + getDemoTemplateDir, + getDocsOutputDir, + getMiniprogramOutputDirName, + getUniappOutputDirName, + TD_COMP_MAP_PATH, + TD_DOCS_OUTPUT_DIR +} from "../utils/path"; + +import { generateMiniProgramDemo, generateUniappDemo } from "./utils/miniprogram"; + +(async function main() { + await extractCompMap(); + await extractAllDocs(); +})(); + +async function extractCompMap() { + const { NON_PASCAL_CASE_NAMES, WEB_COMPONENT_MAP, MOBILE_COMPONENT_MAP, CHAT_COMPONENT_MAP } = await import( + TD_COMP_MAP_PATH + ); + + await fs.mkdir(TD_DOCS_OUTPUT_DIR, { recursive: true }); + + const compMaps = [ + { name: "web-components.json", components: WEB_COMPONENT_MAP, alias: NON_PASCAL_CASE_NAMES }, + { name: "mobile-components.json", components: MOBILE_COMPONENT_MAP, alias: NON_PASCAL_CASE_NAMES }, + { name: "chat-components.json", components: CHAT_COMPONENT_MAP } + ]; + + for (const { name, components, alias } of compMaps) { + const outputPath = path.join(TD_DOCS_OUTPUT_DIR, name); + const data = { + ...(alias && { alias }), + components + }; + await fs.writeFile(outputPath, JSON.stringify(data, null, 2), "utf-8"); + } + + console.log("✓ Extract map successfully"); +} + +async function extractAllDocs() { + for (const framework of FRAMEWORKS) { + console.log(`--------(${framework})--------`); + await extractDocs(framework); + console.log(`✓ Extract docs successfully`); + } +} + +async function extractDocs(framework: Framework) { + const demoTemplateDir = await fs.readdir(getDemoTemplateDir(framework)); + const mdFiles = demoTemplateDir.filter((file) => file.endsWith(".md") && !file.includes("en-US")); + + for (const file of mdFiles) { + const compName = file.split(".")[0]; + const compDir = getComponentDir(framework, compName); + + if (!existsSync(compDir)) { + // console.warn(`✗ Component not found: [${framework}] ${compName}`); + continue; + } + + await generateApi(framework, compName); + await generateDemo(framework, compName); + await generateCompList(framework, compName); + } +} + +/* ---------------------------------------- */ + +async function generateApi(framework: Framework, compName: string) { + const componentPath = getComponentDir(framework, compName); + + // miniprogram 和 uniapp 使用 README.md 作为 API 文档 + const apiDocsName = isMiniProgram(framework) || isUniapp(framework) ? "README" : compName; + const apiPath = `${componentPath}/${apiDocsName}.md`; + + let apiContent = await fs.readFile(apiPath, "utf-8"); + apiContent = cleanText(apiContent, API_RULE_MAP); + + const outputDir = await getDocsOutputDir(framework, compName); + await fs.writeFile(path.join(outputDir, "api.md"), apiContent, "utf-8"); +} + +async function generateDemo(framework: Framework, compName: string) { + if (isMiniProgram(framework)) { + return generateMiniProgramDemo(framework, compName); + } + if (isUniapp(framework)) { + return generateUniappDemo(framework, compName); + } + + const exampleDirName = framework === "mobile-vue" ? "demos" : "_example"; + const exampleDir = path.join(getComponentDir(framework, compName), exampleDirName); + // 取基础 Demo 即可 + const baseFileName = "base"; + + if (!existsSync(exampleDir)) return null; + + const MOBILE_SKIP_FILES = ["mobile", "index", "customized"]; + const allEntries = readdirSync(exampleDir, { withFileTypes: true }); + + // 只保留文件 + let allFiles = allEntries.filter((entry) => entry.isFile()).map((entry) => entry.name); + + const isMobile = (MOBILE_FRAMEWORKS as readonly string[]).includes(framework); + const files = isMobile ? allFiles.filter((file) => !MOBILE_SKIP_FILES.includes(file.split(".")[0])) : allFiles; + + const baseDemo = files.find((file) => file.split(".")[0] === baseFileName) || files[0]; + + let demoContent = await fs.readFile(path.join(exampleDir, baseDemo), "utf-8"); + demoContent = cleanText(demoContent, DEMO_RULE_MAP); + if (isMobile) { + demoContent = cleanText(demoContent, MOBILE_DEMO_RULE_MAP); + } + + const suffix = getSuffixByFramework(framework); + const outputDir = await getDocsOutputDir(framework, compName); + await fs.writeFile(path.join(outputDir, `Demo.${suffix}`), demoContent, "utf-8"); +} + +async function generateCompList(framework: Framework, compName: string) { + const componentDir = getComponentDir(framework, compName); + if (!existsSync(componentDir)) return; // 避免某些库没有实现对应的组件 + + const demoTemplatePath = `${getDemoTemplateDir(framework)}/${compName}.md`; + const demoTemplateContent = await fs.readFile(demoTemplatePath, "utf-8"); + + const metaReg = DEMO_RULE_MAP.meta[0]; + const metaMatch = demoTemplateContent.match(metaReg); + const meta = metaMatch ? metaMatch[1] : ""; + const metaObj = Object.fromEntries( + meta.split("\n").map((line) => { + const [key, value] = line.split(": "); + return [key.trim(), value.trim()]; + }) + ); + + if (metaObj.isComponent !== 'true') return; + + const splineType = metaObj.spline; + const compMeta = { + [compName]: metaObj.description + }; + + // miniprogram 的 AI 组件列表输出到 tdesign-miniprogram-chat/index.json + // uniapp 的 AI 组件列表输出到 tdesign-uniapp-chat/index.json + let compListDirName: string; + if (isMiniProgram(framework)) { + compListDirName = addTdPrefix(getMiniprogramOutputDirName(compName)); + } else if (isUniapp(framework)) { + compListDirName = addTdPrefix(getUniappOutputDirName(compName)); + } else { + compListDirName = addTdPrefix(framework); + } + const compListDir = path.join(TD_DOCS_OUTPUT_DIR, compListDirName); + if (!existsSync(compListDir)) { + await fs.mkdir(compListDir, { recursive: true }); + } + let compListPath = path.join(compListDir, "index.json"); + if (!existsSync(compListPath)) { + await fs.writeFile(compListPath, JSON.stringify({}, null, 2), "utf-8"); + } + + let compListContent = JSON.parse(await fs.readFile(compListPath, "utf-8")); + + compListContent[splineType] = { + ...(compListContent[splineType] || {}), + ...compMeta + }; + + await fs.writeFile(compListPath, JSON.stringify(compListContent, null, 2), "utf-8"); +} diff --git a/packages/mcp-server/scripts/docs/utils/miniprogram.ts b/packages/mcp-server/scripts/docs/utils/miniprogram.ts new file mode 100644 index 000000000..e9d7ab8aa --- /dev/null +++ b/packages/mcp-server/scripts/docs/utils/miniprogram.ts @@ -0,0 +1,237 @@ +import { existsSync, promises as fs, readdirSync } from "fs"; +import path from "path"; + +import { + cleanText, + DEMO_RULE_MAP, + MINIPROGRAM_DEMO_EXTS, + MOBILE_DEMO_RULE_MAP, + type Framework +} from "../../../common"; + +import { getComponentDir, getDocsOutputDir, TD_REPOS_ROOT } from "../../utils/path"; + +/** 匹配 JS/WXML/Vue 中的相对路径引用(../ 和 ./) */ +const REF_PATTERNS = [ + /import\s+.+?\s+from\s+['"](\.\.?\/.+?)['"]/g, // JS import + /require\s*\(\s*['"](\.\.?\/.+?)['"]\s*\)/g, // JS require + /src\s*=\s*["'](\.\.?\/.+?)["']/g // WXML src +]; + +/** 尝试解析的文件扩展名 */ +const TRY_EXTS = [".js", ".ts", ".wxs", ".json"]; + +/** + * 匹配 utils 相关的 import 语句,兼容两种写法: + * 1. default import:`import getNavigationBarHeight from '../utils';` + * 2. named import: `import { getNavigationBarHeight } from '../utils';` + */ +const UTILS_IMPORT_PATTERN = + /import\s+(?:getNavigationBarHeight|\{[^}]*getNavigationBarHeight[^}]*\})\s+from\s*['"][^'"]*utils[^'"]*['"];?\n?/g; + +/** 微信小程序获取导航栏高度函数 */ +const MINIPROGRAM_GET_NAV_HEIGHT_FN = ` +const getNavigationBarHeight = () => { + try { + const systemInfo = wx.getSystemInfoSync(); + const statusBarHeight = systemInfo.statusBarHeight || 0; + const menuButtonInfo = wx.getMenuButtonBoundingClientRect(); + if (menuButtonInfo) { + return menuButtonInfo.bottom + (menuButtonInfo.top - statusBarHeight); + } + return statusBarHeight + 44; + } catch (error) { + console.error('获取导航栏高度失败:', error); + return 44; + } +};\n +`.trim(); + +/** UniApp 获取导航栏高度函数 */ +const UNIAPP_GET_NAV_HEIGHT_FN = ` +const getNavigationBarHeight = () => { + try { + const systemInfo = uni.getWindowInfo ? uni.getWindowInfo() : uni.getSystemInfoSync(); + const statusBarHeight = systemInfo.statusBarHeight || 0; + const menuButtonInfo = uni.getMenuButtonBoundingClientRect?.(); + if (menuButtonInfo) { + return menuButtonInfo.bottom + (menuButtonInfo.top - statusBarHeight); + } + return statusBarHeight + 44; + } catch (error) { + console.error('获取导航栏高度失败:', error); + return 44; + } +}; +`.trim(); + +/** + * 解析源文件路径,找到则返回绝对路径,否则返回 null + */ +function resolveSourceFile(baseDir: string, relPath: string): string | null { + const absPath = path.join(baseDir, relPath); + if (existsSync(absPath)) return absPath; + for (const ext of TRY_EXTS) { + if (existsSync(absPath + ext)) return absPath + ext; + } + return null; +} + +/** + * 内联 getNavigationBarHeight 函数:移除 utils import 语句,将函数定义内联到文件中 + * @param content 文件内容 + * @param isUniapp 是否为 uniapp 框架 + * @returns 处理后的内容 + */ +export function inlineNavigationBarHeightFn(content: string, isUniapp: boolean): string { + // 重置正则 lastIndex,避免 g flag 在多次调用间残留状态 + UTILS_IMPORT_PATTERN.lastIndex = 0; + // 检查是否有 utils import + if (!UTILS_IMPORT_PATTERN.test(content)) return content; + + // 重置正则的 lastIndex + UTILS_IMPORT_PATTERN.lastIndex = 0; + + // 移除 import 语句 + let updatedContent = content.replace(UTILS_IMPORT_PATTERN, ""); + + // 选择对应平台的函数实现 + const fnImpl = isUniapp ? UNIAPP_GET_NAV_HEIGHT_FN : MINIPROGRAM_GET_NAV_HEIGHT_FN; + + // 在文件适当位置插入函数定义 + // 对于 JS 文件:在第一个非 import 语句之前插入 + // 对于 Vue 文件:在