From c80f58b086f34d66229bc29a0778bca0963642e5 Mon Sep 17 00:00:00 2001 From: li Date: Thu, 12 Mar 2026 14:00:46 +0800 Subject: [PATCH] feat: VitePress documentation site with GitHub Pages deployment - VitePress config with zh-CN (default) + English i18n - 12 content pages: landing page + 5 guide pages per locale - GitHub Actions workflow for auto-deploy on docs/** changes - Logo SVG + local search enabled - Homepage URL updated to https://fengshao1227.github.io/ccg-workflow/ --- .github/workflows/deploy-docs.yml | 55 ++ .gitignore | 5 +- docs/.vitepress/config.mts | 126 +++ docs/en/guide/commands.md | 158 ++++ docs/en/guide/configuration.md | 93 +++ docs/en/guide/getting-started.md | 103 +++ docs/en/guide/mcp.md | 88 +++ docs/en/guide/workflows.md | 123 +++ docs/en/index.md | 41 + docs/guide/commands.md | 158 ++++ docs/guide/configuration.md | 93 +++ docs/guide/getting-started.md | 103 +++ docs/guide/mcp.md | 88 +++ docs/guide/workflows.md | 123 +++ docs/index.md | 62 ++ docs/public/logo.svg | 12 + package.json | 9 +- pnpm-lock.yaml | 1221 +++++++++++++++++++++++++++-- 18 files changed, 2615 insertions(+), 46 deletions(-) create mode 100644 .github/workflows/deploy-docs.yml create mode 100644 docs/.vitepress/config.mts create mode 100644 docs/en/guide/commands.md create mode 100644 docs/en/guide/configuration.md create mode 100644 docs/en/guide/getting-started.md create mode 100644 docs/en/guide/mcp.md create mode 100644 docs/en/guide/workflows.md create mode 100644 docs/en/index.md create mode 100644 docs/guide/commands.md create mode 100644 docs/guide/configuration.md create mode 100644 docs/guide/getting-started.md create mode 100644 docs/guide/mcp.md create mode 100644 docs/guide/workflows.md create mode 100644 docs/index.md create mode 100644 docs/public/logo.svg diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..fe5bd3f --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,55 @@ +name: Deploy Docs + +on: + push: + branches: [main] + paths: + - 'docs/**' + - '.github/workflows/deploy-docs.yml' + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - uses: pnpm/action-setup@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + + - run: pnpm install + + - name: Build docs + run: pnpm docs:build + + - uses: actions/configure-pages@v4 + + - uses: actions/upload-pages-artifact@v3 + with: + path: docs/.vitepress/dist + + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + needs: build + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index f539639..1846f89 100644 --- a/.gitignore +++ b/.gitignore @@ -49,8 +49,11 @@ ceshi/ # Local spec workflows (OpenSpec 本地数据) .spec-workflow/ openspec/ -docs/ AGENTS.md + +# VitePress build output +docs/.vitepress/dist/ +docs/.vitepress/cache/ WINDOWS_FIX.md # Temp verification/notes diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts new file mode 100644 index 0000000..9fb6fc5 --- /dev/null +++ b/docs/.vitepress/config.mts @@ -0,0 +1,126 @@ +import { defineConfig } from 'vitepress' + +export default defineConfig({ + title: 'CCG', + description: 'Claude + Codex + Gemini 多模型协作开发系统', + + base: '/ccg-workflow/', + lastUpdated: true, + cleanUrls: true, + + head: [ + ['link', { rel: 'icon', type: 'image/svg+xml', href: '/ccg-workflow/logo.svg' }], + ], + + locales: { + root: { + label: '简体中文', + lang: 'zh-CN', + themeConfig: { + nav: [ + { text: '指南', link: '/guide/getting-started' }, + { text: '命令', link: '/guide/commands' }, + { + text: '更多', + items: [ + { text: '工作流', link: '/guide/workflows' }, + { text: 'MCP 配置', link: '/guide/mcp' }, + { text: '配置', link: '/guide/configuration' }, + ], + }, + ], + sidebar: [ + { + text: '入门', + items: [ + { text: '快速开始', link: '/guide/getting-started' }, + { text: '命令参考', link: '/guide/commands' }, + ], + }, + { + text: '进阶', + items: [ + { text: '工作流指南', link: '/guide/workflows' }, + { text: 'MCP 配置', link: '/guide/mcp' }, + { text: '配置说明', link: '/guide/configuration' }, + ], + }, + ], + editLink: { + pattern: 'https://github.com/fengshao1227/ccg-workflow/edit/main/docs/:path', + text: '在 GitHub 上编辑此页', + }, + footer: { + message: '基于 MIT 许可发布', + copyright: 'Copyright © 2025-present CCG Contributors', + }, + docFooter: { + prev: '上一页', + next: '下一页', + }, + outline: { + label: '页面导航', + }, + lastUpdated: { + text: '最后更新于', + }, + returnToTopLabel: '回到顶部', + sidebarMenuLabel: '菜单', + darkModeSwitchLabel: '主题', + }, + }, + en: { + label: 'English', + lang: 'en', + description: 'Claude + Codex + Gemini Multi-Model Collaboration System', + themeConfig: { + nav: [ + { text: 'Guide', link: '/en/guide/getting-started' }, + { text: 'Commands', link: '/en/guide/commands' }, + { + text: 'More', + items: [ + { text: 'Workflows', link: '/en/guide/workflows' }, + { text: 'MCP Config', link: '/en/guide/mcp' }, + { text: 'Configuration', link: '/en/guide/configuration' }, + ], + }, + ], + sidebar: [ + { + text: 'Getting Started', + items: [ + { text: 'Quick Start', link: '/en/guide/getting-started' }, + { text: 'Command Reference', link: '/en/guide/commands' }, + ], + }, + { + text: 'Advanced', + items: [ + { text: 'Workflow Guide', link: '/en/guide/workflows' }, + { text: 'MCP Configuration', link: '/en/guide/mcp' }, + { text: 'Configuration', link: '/en/guide/configuration' }, + ], + }, + ], + editLink: { + pattern: 'https://github.com/fengshao1227/ccg-workflow/edit/main/docs/:path', + text: 'Edit this page on GitHub', + }, + footer: { + message: 'Released under the MIT License', + copyright: 'Copyright © 2025-present CCG Contributors', + }, + }, + }, + }, + + themeConfig: { + socialLinks: [ + { icon: 'github', link: 'https://github.com/fengshao1227/ccg-workflow' }, + ], + search: { + provider: 'local', + }, + }, +}) diff --git a/docs/en/guide/commands.md b/docs/en/guide/commands.md new file mode 100644 index 0000000..b909c40 --- /dev/null +++ b/docs/en/guide/commands.md @@ -0,0 +1,158 @@ +# Command Reference + +CCG provides 28 slash commands covering the full development lifecycle. All commands are accessed via `/ccg:*`. + +## Development Workflow + +| Command | Description | Model | +|---------|-------------|-------| +| `/ccg:workflow` | Full 6-phase workflow (research → ideate → plan → execute → optimize → review) | Codex + Gemini | +| `/ccg:plan` | Multi-model collaborative planning (Phase 1-2) | Codex + Gemini | +| `/ccg:execute` | Multi-model collaborative execution (Phase 3-5) | Codex + Gemini + Claude | +| `/ccg:codex-exec` | Codex full execution (plan → code → review) | Codex + multi-model review | +| `/ccg:feat` | Smart feature development | Auto-routed | +| `/ccg:frontend` | Frontend tasks (fast mode) | Gemini | +| `/ccg:backend` | Backend tasks (fast mode) | Codex | + +### Usage Examples + +```bash +# Full workflow +/ccg:workflow implement user authentication + +# Planning only (no execution) +/ccg:plan implement user authentication + +# Frontend fast mode +/ccg:frontend optimize login page responsive layout +``` + +## Analysis & Quality + +| Command | Description | Model | +|---------|-------------|-------| +| `/ccg:analyze` | Technical analysis | Codex + Gemini | +| `/ccg:debug` | Problem diagnosis + fix | Codex + Gemini | +| `/ccg:optimize` | Performance optimization | Codex + Gemini | +| `/ccg:test` | Test generation | Auto-routed | +| `/ccg:review` | Code review (auto git diff) | Codex + Gemini | +| `/ccg:enhance` | Prompt enhancement | Built-in | + +### Usage Examples + +```bash +# No args — auto-review recent changes +/ccg:review + +# Analyze a specific module +/ccg:analyze src/auth/ security + +# Generate tests +/ccg:test src/utils/validator.ts +``` + +## OPSX Spec-Driven + +Integrates [OPSX](https://github.com/fission-ai/opsx) architecture to turn requirements into constraints. + +| Command | Description | +|---------|-------------| +| `/ccg:spec-init` | Initialize OPSX environment | +| `/ccg:spec-research` | Requirements → Constraints | +| `/ccg:spec-plan` | Constraints → Zero-decision plan | +| `/ccg:spec-impl` | Execute plan + archive | +| `/ccg:spec-review` | Dual-model cross-review | + +### Usage Examples + +```bash +/ccg:spec-init +/ccg:spec-research implement user auth +/ccg:spec-plan +/ccg:spec-impl +/ccg:spec-review +``` + +::: tip +You can `/clear` between phases — state is persisted in the `openspec/` directory. +::: + +## Agent Teams (v1.7.60+) + +Leverage Claude Code Agent Teams to spawn multiple Builder teammates for parallel coding. + +| Command | Description | +|---------|-------------| +| `/ccg:team-research` | Requirements → constraints (parallel exploration) | +| `/ccg:team-plan` | Constraints → parallel implementation plan | +| `/ccg:team-exec` | Spawn Builder teammates for parallel coding | +| `/ccg:team-review` | Dual-model cross-review | + +::: warning Prerequisite +Enable Agent Teams in `settings.json`: + +```json +{ + "env": { + "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" + } +} +``` +::: + +### Usage Examples + +```bash +/ccg:team-research implement kanban API +# /clear +/ccg:team-plan kanban-api +# /clear +/ccg:team-exec +# /clear +/ccg:team-review +``` + +## Git Tools + +| Command | Description | +|---------|-------------| +| `/ccg:commit` | Smart commit (conventional commit format) | +| `/ccg:rollback` | Interactive rollback | +| `/ccg:clean-branches` | Clean merged branches | +| `/ccg:worktree` | Worktree management | + +### Usage Examples + +```bash +# Smart commit (auto-analyze diff) +/ccg:commit + +# Interactive rollback +/ccg:rollback + +# Clean merged branches (dry-run by default) +/ccg:clean-branches +``` + +## Project Setup + +| Command | Description | +|---------|-------------| +| `/ccg:init` | Initialize project CLAUDE.md | +| `/ccg:context` | Project context management (.context/ init, log, compress, history) | + +### Usage Examples + +```bash +# Initialize project AI context +/ccg:init + +# Initialize .context directory +/ccg:context init + +# Log a decision +/ccg:context log "Chose PostgreSQL for JSONB support" + +# View context history +/ccg:context history +``` diff --git a/docs/en/guide/configuration.md b/docs/en/guide/configuration.md new file mode 100644 index 0000000..a57b91b --- /dev/null +++ b/docs/en/guide/configuration.md @@ -0,0 +1,93 @@ +# Configuration + +## Directory Structure + +CCG installation layout: + +``` +~/.claude/ +├── commands/ccg/ # 28 slash commands +├── agents/ccg/ # 4 sub-agents +├── skills/ccg/ # Quality gates + multi-agent orchestration +├── bin/codeagent-wrapper +└── .ccg/ + ├── config.toml # CCG configuration + └── prompts/ + ├── codex/ # 6 Codex expert prompts + └── gemini/ # 7 Gemini expert prompts +``` + +## Environment Variables + +Configure in `~/.claude/settings.json` under `"env"`: + +| Variable | Description | Default | When to change | +|----------|-------------|---------|----------------| +| `CODEAGENT_POST_MESSAGE_DELAY` | Wait after Codex completion (sec) | `5` | Set to `1` if Codex process hangs | +| `CODEX_TIMEOUT` | Wrapper execution timeout (sec) | `7200` | Increase for very long tasks | +| `BASH_DEFAULT_TIMEOUT_MS` | Claude Code Bash timeout (ms) | `120000` | Increase if commands time out | +| `BASH_MAX_TIMEOUT_MS` | Claude Code Bash max timeout (ms) | `600000` | Increase for long builds | + +::: details Example settings.json + +```json +{ + "env": { + "CODEAGENT_POST_MESSAGE_DELAY": "1", + "CODEX_TIMEOUT": "7200", + "BASH_DEFAULT_TIMEOUT_MS": "600000", + "BASH_MAX_TIMEOUT_MS": "3600000" + } +} +``` +::: + +## Fixed Configuration + +Since v1.7.0, the following are no longer customizable: + +| Setting | Fixed Value | Reason | +|---------|------------|--------| +| Frontend model | Gemini | Best at UI/CSS/components | +| Backend model | Codex | Best at logic/algorithms/debugging | +| Collaboration mode | smart | Best practice | +| Command count | 28 | All installed | + +## Utilities + +```bash +npx ccg-workflow menu # Select "Tools" +``` + +- **ccusage** — Claude Code usage analytics +- **CCometixLine** — Status bar tool (Git + usage tracking) + +## FAQ + +### Codex CLI 0.80.0 process does not exit + +In `--json` mode, Codex does not automatically exit after output completion. + +**Fix**: Set `CODEAGENT_POST_MESSAGE_DELAY=1`. + +### Node 18 throws SyntaxError + +CCG depends on `ora@9.x`, which requires Node >= 20. + +**Fix**: Upgrade to Node 20+. + +### MCP tools not working + +**Fix**: Run `npx ccg-workflow diagnose-mcp` to check configuration. + +### Agent Teams commands unavailable + +**Fix**: Add to `settings.json`: + +```json +{ + "env": { + "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" + } +} +``` diff --git a/docs/en/guide/getting-started.md b/docs/en/guide/getting-started.md new file mode 100644 index 0000000..ba1eb85 --- /dev/null +++ b/docs/en/guide/getting-started.md @@ -0,0 +1,103 @@ +# Getting Started + +## Architecture + +``` +Claude Code (Orchestrator) + │ + ┌───┴───┐ + ↓ ↓ +Codex Gemini +(Backend) (Frontend) + │ │ + └───┬───┘ + ↓ + Unified Patch +``` + +External models have no write access — they only return patches, which Claude reviews before applying. + +## Prerequisites + +| Dependency | Required | Notes | +|------------|----------|-------| +| **Node.js 20+** | Yes | `ora@9.x` requires Node >= 20 | +| **Claude Code CLI** | Yes | [Install guide](#install-claude-code) | +| **jq** | Yes | Used for auto-authorization hook | +| **Codex CLI** | No | Enables backend routing | +| **Gemini CLI** | No | Enables frontend routing | + +## Installation + +```bash +npx ccg-workflow +``` + +On first run, CCG prompts you to select a language (English / Chinese). This preference is saved for all future sessions. + +### Install jq + +::: code-group + +```bash [macOS] +brew install jq +``` + +```bash [Debian / Ubuntu] +sudo apt install jq +``` + +```bash [RHEL / CentOS] +sudo yum install jq +``` + +```bash [Windows] +choco install jq +# or +scoop install jq +``` + +::: + +### Install Claude Code + +```bash +npx ccg-workflow menu # Select "Install Claude Code" +``` + +Supports: npm, homebrew, curl, powershell, cmd. + +## Verify Installation + +After installation, type in Claude Code: + +``` +/ccg:workflow hello +``` + +If you see multi-model collaboration output, the installation is successful. + +## Update + +```bash +# npx users +npx ccg-workflow@latest + +# npm global users +npm install -g ccg-workflow@latest +``` + +## Uninstall + +```bash +npx ccg-workflow # Select "Uninstall" + +# npm global users need this extra step +npm uninstall -g ccg-workflow +``` + +## Next Steps + +- [Command Reference](/en/guide/commands) — See all 28 commands +- [Workflow Guide](/en/guide/workflows) — Learn the three main workflows +- [MCP Configuration](/en/guide/mcp) — Enhance code retrieval diff --git a/docs/en/guide/mcp.md b/docs/en/guide/mcp.md new file mode 100644 index 0000000..34ea026 --- /dev/null +++ b/docs/en/guide/mcp.md @@ -0,0 +1,88 @@ +# MCP Configuration + +MCP (Model Context Protocol) tools enhance Claude Code's code retrieval and search capabilities. CCG supports multiple MCP providers. + +## Setup + +```bash +npx ccg-workflow menu # Select "Configure MCP" +``` + +## Code Retrieval (choose one) + +### ace-tool (Recommended) + +Code search service based on Augment Code, providing semantic retrieval via `search_context`. + +- **Pros**: High search quality, good context understanding +- **Note**: Requires Augment Code account or third-party proxy +- [Official](https://augmentcode.com/) | [Third-party proxy](https://acemcp.heroman.wtf/) + +### fast-context (Recommended) + +AI-powered code search based on Windsurf Fast Context, no full-repo indexing required. + +- **Pros**: No indexing needed, fast search +- **Note**: Requires Windsurf account +- Supports optional API Key and `FC_INCLUDE_SNIPPETS` mode + +### ContextWeaver (Alternative) + +Local hybrid search engine combining Embedding + Rerank. + +- **Pros**: Fully local, works offline +- **Note**: Requires SiliconFlow API Key (free) + +## Optional Tools + +| Tool | Description | Requires API Key | +|------|-------------|-----------------| +| **Context7** | Latest library documentation | No (auto-installed) | +| **Playwright** | Browser automation / testing | No | +| **DeepWiki** | Knowledge base queries | No | +| **Exa** | Search engine | Yes | + +## MCP Sync + +CCG automatically syncs MCP configuration to Codex and Gemini: + +- **Codex sync**: `~/.codex/config.toml` — Codex can use MCP search when running `/ccg:codex-exec` +- **Gemini sync**: `~/.gemini/settings.json` — Gemini can use the same MCP tools + +Synced MCP server IDs: `grok-search`, `context7`, `ace-tool`, `contextweaver`, `fast-context` + +## Auto-Authorization Hook + +CCG automatically installs a Hook to authorize `codeagent-wrapper` commands (requires [jq](https://jqlang.github.io/jq/)). + +::: details Manual setup (for versions before v1.7.71) + +Add to `~/.claude/settings.json`: + +```json +{ + "hooks": { + "PreToolUse": [ + { + "matcher": "Bash", + "hooks": [ + { + "type": "command", + "command": "jq -r '.tool_input.command' 2>/dev/null | grep -q 'codeagent-wrapper' && echo '{\"hookSpecificOutput\": {\"hookEventName\": \"PreToolUse\", \"permissionDecision\": \"allow\", \"permissionDecisionReason\": \"codeagent-wrapper auto-approved\"}}' || true", + "timeout": 1 + } + ] + } + ] + } +} +``` +::: + +## Diagnostics + +If MCP tools aren't working, run the diagnostic command: + +```bash +npx ccg-workflow diagnose-mcp +``` diff --git a/docs/en/guide/workflows.md b/docs/en/guide/workflows.md new file mode 100644 index 0000000..69eec97 --- /dev/null +++ b/docs/en/guide/workflows.md @@ -0,0 +1,123 @@ +# Workflow Guide + +CCG provides three main workflows for different scenarios. + +## Planning & Execution Separation + +The most basic workflow: plan first, execute later, with human review in between. + +```bash +# 1. Generate implementation plan +/ccg:plan implement user authentication + +# 2. Review the plan (editable) +# Plan saved to .claude/plan/user-auth.md + +# 3a. Execute (Claude refactors) — fine-grained control +/ccg:execute .claude/plan/user-auth.md + +# 3b. Execute (Codex does everything) — efficient, low Claude token usage +/ccg:codex-exec .claude/plan/user-auth.md +``` + +### execute vs codex-exec + +| Dimension | `/ccg:execute` | `/ccg:codex-exec` | +|-----------|---------------|-------------------| +| Executor | Claude-led + Codex/Gemini assist | Codex handles everything | +| Token cost | Higher (Claude processes each step) | Very low (Claude only reviews) | +| Best for | Complex tasks needing fine control | Clear, independently executable tasks | +| MCP search | Claude executes | Codex executes (needs MCP sync) | + +## OPSX Spec-Driven Workflow + +Integrates [OPSX](https://github.com/fission-ai/opsx) to turn requirements into constraints. Best for scenarios needing **strict control**. + +```bash +/ccg:spec-init # Initialize OPSX environment +/ccg:spec-research implement user auth # Research → constraints +/ccg:spec-plan # Parallel analysis → zero-decision plan +/ccg:spec-impl # Execute the plan +/ccg:spec-review # Independent review (anytime) +``` + +### Key Features + +- **Constraint-driven**: Requirements become verifiable constraints, not vague descriptions +- **Zero-decision plan**: Execution requires no decisions — all decisions made during planning +- **Persistent state**: State stored in `openspec/` directory, `/clear` between phases to free context + +::: tip +`/ccg:spec-*` commands internally call `/opsx:*`. If using OPSX directly, use `/opsx:*` commands. +::: + +## Agent Teams Parallel Workflow + +Leverage Claude Code Agent Teams to spawn multiple Builder teammates for parallel coding. Best for tasks **decomposable into 3+ independent modules**. + +```bash +/ccg:team-research implement kanban API # 1. Requirements → constraints +# /clear +/ccg:team-plan kanban-api # 2. Plan → parallel tasks +# /clear +/ccg:team-exec # 3. Builders code in parallel +# /clear +/ccg:team-review # 4. Dual-model cross-review +``` + +### vs Traditional Workflow + +| Dimension | Traditional | Agent Teams | +|-----------|------------|-------------| +| Context | Continuous conversation | `/clear` between steps | +| State passing | Conversation context | Files (.claude/plan/) | +| Parallelism | Sequential | Multiple Builders in parallel | +| Best for | General tasks | 3+ independent modules | + +### Workflow Diagram + +``` +team-research team-plan team-exec team-review + │ │ │ │ + Analyze Plan & split Builder 1 ──┐ Codex review + │ │ Builder 2 ──┤ │ + Constraints Parallel plan Builder 3 ──┘ Gemini review + │ │ │ │ + ↓ ↓ ↓ ↓ + constraints.md plan/*.md Code output Review report +``` + +## Full 6-Phase Workflow + +`/ccg:workflow` is the most complete workflow with 6 phases: + +1. **Research** — Analyze requirements, understand context +2. **Ideate** — Propose solutions +3. **Plan** — Create implementation plan (Codex + Gemini parallel analysis) +4. **Execute** — Implement the plan (model routing: frontend → Gemini, backend → Codex) +5. **Optimize** — Performance optimization and code quality +6. **Review** — Multi-model cross-review + +```bash +/ccg:workflow implement a complete user auth system with registration, login, and JWT tokens +``` + +::: info +For large tasks, consider using `/ccg:plan` + `/ccg:execute` for step-by-step execution with plan review in between. +::: + +## Workflow Selection Guide + +``` +Receive task + │ + ├─ Simple / clear? ──────────→ /ccg:frontend or /ccg:backend + │ + ├─ Needs planning? ──────────→ /ccg:plan + /ccg:execute + │ + ├─ Needs strict constraints? ─→ /ccg:spec-* series + │ + ├─ Decomposable into 3+ modules? → /ccg:team-* series + │ + └─ Full end-to-end? ─────────→ /ccg:workflow +``` diff --git a/docs/en/index.md b/docs/en/index.md new file mode 100644 index 0000000..dd63456 --- /dev/null +++ b/docs/en/index.md @@ -0,0 +1,41 @@ +--- +layout: home + +hero: + name: CCG + text: Claude + Codex + Gemini + tagline: Multi-Model Collaboration System — Claude orchestrates, Codex handles backend, Gemini handles frontend + image: + src: /logo.svg + alt: CCG + actions: + - theme: brand + text: Get Started + link: /en/guide/getting-started + - theme: alt + text: Commands + link: /en/guide/commands + - theme: alt + text: GitHub + link: https://github.com/fengshao1227/ccg-workflow + +features: + - icon: 🔀 + title: Zero-Config Model Routing + details: Frontend tasks automatically go to Gemini, backend tasks to Codex. No manual switching. + - icon: 🔒 + title: Security by Design + details: External models have no write access. They return patches; Claude reviews before applying. + - icon: 🛠️ + title: 28 Slash Commands + details: From planning to execution, git workflow to code review, all accessible via /ccg:*. + - icon: 📐 + title: Spec-Driven Development + details: Integrates OPSX to turn vague requirements into verifiable constraints, eliminating AI improvisation. + - icon: 👥 + title: Agent Teams Parallel + details: Spawn multiple Builder teammates for parallel coding. Ideal for tasks with 3+ independent modules. + - icon: 📦 + title: One-Line Install + details: npx ccg-workflow — supports macOS, Linux, and Windows. +--- diff --git a/docs/guide/commands.md b/docs/guide/commands.md new file mode 100644 index 0000000..377b98c --- /dev/null +++ b/docs/guide/commands.md @@ -0,0 +1,158 @@ +# 命令参考 + +CCG 提供 28 个斜杠命令,覆盖开发全流程。所有命令通过 `/ccg:*` 访问。 + +## 开发工作流 + +| 命令 | 说明 | 模型 | +|------|------|------| +| `/ccg:workflow` | 6 阶段完整工作流(研究→构思→计划→执行→优化→评审) | Codex + Gemini | +| `/ccg:plan` | 多模型协作规划(Phase 1-2) | Codex + Gemini | +| `/ccg:execute` | 多模型协作执行(Phase 3-5) | Codex + Gemini + Claude | +| `/ccg:codex-exec` | Codex 全权执行(计划 → 代码 → 审核) | Codex + 多模型审核 | +| `/ccg:feat` | 智能功能开发 | 自动路由 | +| `/ccg:frontend` | 前端任务(快速模式) | Gemini | +| `/ccg:backend` | 后端任务(快速模式) | Codex | + +### 使用示例 + +```bash +# 完整工作流 +/ccg:workflow 实现用户认证功能 + +# 只做规划(不执行) +/ccg:plan 实现用户认证功能 + +# 前端快速模式 +/ccg:frontend 优化登录页面的响应式布局 +``` + +## 分析与质量 + +| 命令 | 说明 | 模型 | +|------|------|------| +| `/ccg:analyze` | 技术分析 | Codex + Gemini | +| `/ccg:debug` | 问题诊断 + 修复 | Codex + Gemini | +| `/ccg:optimize` | 性能优化 | Codex + Gemini | +| `/ccg:test` | 测试生成 | 自动路由 | +| `/ccg:review` | 代码审查(自动 git diff) | Codex + Gemini | +| `/ccg:enhance` | Prompt 增强 | 内置 | + +### 使用示例 + +```bash +# 无参数自动审查最近改动 +/ccg:review + +# 分析特定模块 +/ccg:analyze src/auth/ 的安全性 + +# 生成测试 +/ccg:test src/utils/validator.ts +``` + +## OPSX 规范驱动 + +集成 [OPSX](https://github.com/fission-ai/opsx) 架构,把需求变成约束。 + +| 命令 | 说明 | +|------|------| +| `/ccg:spec-init` | 初始化 OPSX 环境 | +| `/ccg:spec-research` | 需求 → 约束集 | +| `/ccg:spec-plan` | 约束 → 零决策计划 | +| `/ccg:spec-impl` | 按计划执行 + 归档 | +| `/ccg:spec-review` | 双模型交叉审查 | + +### 使用示例 + +```bash +/ccg:spec-init +/ccg:spec-research 实现用户认证 +/ccg:spec-plan +/ccg:spec-impl +/ccg:spec-review +``` + +::: tip +每阶段之间可 `/clear`,状态存在 `openspec/` 目录,不怕上下文爆。 +::: + +## Agent Teams(v1.7.60+) + +利用 Claude Code Agent Teams 实验特性,spawn 多个 Builder teammates 并行写代码。 + +| 命令 | 说明 | +|------|------| +| `/ccg:team-research` | 需求 → 约束集(并行探索) | +| `/ccg:team-plan` | 约束 → 并行实施计划 | +| `/ccg:team-exec` | spawn Builder teammates 并行写代码 | +| `/ccg:team-review` | 双模型交叉审查 | + +::: warning 前置条件 +需在 `settings.json` 中启用实验特性: + +```json +{ + "env": { + "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" + } +} +``` +::: + +### 使用示例 + +```bash +/ccg:team-research 实现实时协作看板 API +# /clear +/ccg:team-plan kanban-api +# /clear +/ccg:team-exec +# /clear +/ccg:team-review +``` + +## Git 工具 + +| 命令 | 说明 | +|------|------| +| `/ccg:commit` | 智能提交(conventional commit 格式) | +| `/ccg:rollback` | 交互式回滚 | +| `/ccg:clean-branches` | 清理已合并分支 | +| `/ccg:worktree` | Worktree 管理 | + +### 使用示例 + +```bash +# 智能提交(自动分析 diff) +/ccg:commit + +# 交互式回滚 +/ccg:rollback + +# 清理已合并分支(默认 dry-run) +/ccg:clean-branches +``` + +## 项目管理 + +| 命令 | 说明 | +|------|------| +| `/ccg:init` | 初始化项目 CLAUDE.md | +| `/ccg:context` | 项目上下文管理(.context 初始化/日志/压缩/历史) | + +### 使用示例 + +```bash +# 初始化项目 AI 上下文 +/ccg:init + +# 初始化 .context 目录 +/ccg:context init + +# 记录决策日志 +/ccg:context log "选择 PostgreSQL 因为需要 JSONB 支持" + +# 查看上下文历史 +/ccg:context history +``` diff --git a/docs/guide/configuration.md b/docs/guide/configuration.md new file mode 100644 index 0000000..79d591a --- /dev/null +++ b/docs/guide/configuration.md @@ -0,0 +1,93 @@ +# 配置说明 + +## 目录结构 + +CCG 安装后的文件布局: + +``` +~/.claude/ +├── commands/ccg/ # 28 个斜杠命令 +├── agents/ccg/ # 4 个子智能体 +├── skills/ccg/ # 质量关卡 + 多 Agent 协同 +├── bin/codeagent-wrapper +└── .ccg/ + ├── config.toml # CCG 配置 + └── prompts/ + ├── codex/ # 6 个 Codex 专家提示词 + └── gemini/ # 7 个 Gemini 专家提示词 +``` + +## 环境变量 + +在 `~/.claude/settings.json` 的 `"env"` 中配置: + +| 变量 | 说明 | 默认值 | 何时修改 | +|------|------|--------|----------| +| `CODEAGENT_POST_MESSAGE_DELAY` | Codex 完成后等待时间(秒) | `5` | Codex 进程挂起时设为 `1` | +| `CODEX_TIMEOUT` | wrapper 执行超时(秒) | `7200` | 超长任务时增大 | +| `BASH_DEFAULT_TIMEOUT_MS` | Claude Code Bash 超时(毫秒) | `120000` | 命令超时时增大 | +| `BASH_MAX_TIMEOUT_MS` | Claude Code Bash 最大超时(毫秒) | `600000` | 长时间构建时增大 | + +::: details settings.json 示例 + +```json +{ + "env": { + "CODEAGENT_POST_MESSAGE_DELAY": "1", + "CODEX_TIMEOUT": "7200", + "BASH_DEFAULT_TIMEOUT_MS": "600000", + "BASH_MAX_TIMEOUT_MS": "3600000" + } +} +``` +::: + +## 固定配置 + +v1.7.0 起,以下配置不再支持自定义: + +| 项目 | 固定值 | 原因 | +|------|--------|------| +| 前端模型 | Gemini | 擅长 UI/CSS/组件 | +| 后端模型 | Codex | 擅长逻辑/算法/调试 | +| 协作模式 | smart | 最佳实践 | +| 命令数量 | 28 个 | 全部安装 | + +## 实用工具 + +```bash +npx ccg-workflow menu # 选择「实用工具」 +``` + +- **ccusage** — Claude Code 用量分析 +- **CCometixLine** — 状态栏工具(Git + 用量跟踪) + +## 常见问题 + +### Codex CLI 0.80.0 进程不退出 + +`--json` 模式下 Codex 完成输出后进程不会自动退出。 + +**解决**:将 `CODEAGENT_POST_MESSAGE_DELAY` 设为 `1`。 + +### Node 18 报 SyntaxError + +CCG 依赖 `ora@9.x`,要求 Node >= 20。 + +**解决**:升级到 Node 20+。 + +### MCP 工具不生效 + +**解决**:运行 `npx ccg-workflow diagnose-mcp` 检查配置。 + +### Agent Teams 命令不可用 + +**解决**:在 `settings.json` 中添加: + +```json +{ + "env": { + "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" + } +} +``` diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md new file mode 100644 index 0000000..399d55b --- /dev/null +++ b/docs/guide/getting-started.md @@ -0,0 +1,103 @@ +# 快速开始 + +## 架构概览 + +``` +Claude Code (编排) + │ + ┌───┴───┐ + ↓ ↓ +Codex Gemini +(后端) (前端) + │ │ + └───┬───┘ + ↓ + Unified Patch +``` + +外部模型无写入权限,仅返回 Patch,由 Claude 审核后应用。 + +## 前置条件 + +| 依赖 | 必需 | 说明 | +|------|------|------| +| **Node.js 20+** | 是 | `ora@9.x` 要求 Node >= 20 | +| **Claude Code CLI** | 是 | [安装方法](#安装-claude-code) | +| **jq** | 是 | 用于自动授权 Hook | +| **Codex CLI** | 否 | 启用后端路由 | +| **Gemini CLI** | 否 | 启用前端路由 | + +## 安装 + +```bash +npx ccg-workflow +``` + +首次运行会提示选择语言(简体中文 / English),选择后自动保存。 + +### 安装 jq + +::: code-group + +```bash [macOS] +brew install jq +``` + +```bash [Debian / Ubuntu] +sudo apt install jq +``` + +```bash [RHEL / CentOS] +sudo yum install jq +``` + +```bash [Windows] +choco install jq +# 或 +scoop install jq +``` + +::: + +### 安装 Claude Code + +```bash +npx ccg-workflow menu # 选择「安装 Claude Code」 +``` + +支持:npm、homebrew、curl、powershell、cmd。 + +## 验证安装 + +安装完成后,在 Claude Code 中输入: + +``` +/ccg:workflow 你好 +``` + +如果看到多模型协作输出,说明安装成功。 + +## 更新 + +```bash +# npx 用户 +npx ccg-workflow@latest + +# npm 全局用户 +npm install -g ccg-workflow@latest +``` + +## 卸载 + +```bash +npx ccg-workflow # 选择「卸载工作流」 + +# npm 全局用户需额外执行 +npm uninstall -g ccg-workflow +``` + +## 下一步 + +- [命令参考](/guide/commands) — 查看全部 28 个命令 +- [工作流指南](/guide/workflows) — 学习三种主要工作流 +- [MCP 配置](/guide/mcp) — 增强代码检索能力 diff --git a/docs/guide/mcp.md b/docs/guide/mcp.md new file mode 100644 index 0000000..107c671 --- /dev/null +++ b/docs/guide/mcp.md @@ -0,0 +1,88 @@ +# MCP 配置 + +MCP(Model Context Protocol)工具可以增强 Claude Code 的代码检索和搜索能力。CCG 支持多个 MCP 提供者。 + +## 配置方式 + +```bash +npx ccg-workflow menu # 选择「配置 MCP」 +``` + +## 代码检索(多选一) + +### ace-tool(推荐) + +基于 Augment Code 的代码搜索服务,通过 `search_context` 提供语义检索。 + +- **优势**:搜索质量高、上下文理解好 +- **注意**:需要 Augment Code 账号或第三方中转 +- [官方](https://augmentcode.com/) | [第三方中转](https://acemcp.heroman.wtf/) + +### fast-context(推荐) + +基于 Windsurf Fast Context 的 AI 驱动代码搜索,无需全量索引。 + +- **优势**:无需索引、搜索速度快 +- **注意**:需要 Windsurf 账号 +- 支持可选 API Key 和 `FC_INCLUDE_SNIPPETS` 模式 + +### ContextWeaver(备选) + +本地混合搜索引擎,结合 Embedding + Rerank。 + +- **优势**:完全本地运行、可离线使用 +- **注意**:需要硅基流动 API Key(免费) + +## 辅助工具(可选) + +| 工具 | 说明 | 需要 API Key | +|------|------|-------------| +| **Context7** | 获取最新库文档 | 否(自动安装) | +| **Playwright** | 浏览器自动化 / 测试 | 否 | +| **DeepWiki** | 知识库查询 | 否 | +| **Exa** | 搜索引擎 | 是 | + +## MCP 同步 + +CCG 会自动将 MCP 配置同步到 Codex 和 Gemini: + +- **Codex 同步**:`~/.codex/config.toml` — 执行 `/ccg:codex-exec` 时 Codex 可直接使用 MCP 搜索 +- **Gemini 同步**:`~/.gemini/settings.json` — Gemini 可使用相同的 MCP 工具 + +同步的 MCP 服务器 ID:`grok-search`、`context7`、`ace-tool`、`contextweaver`、`fast-context` + +## 自动授权 Hook + +CCG 安装时自动写入 Hook,授权 `codeagent-wrapper` 命令(需要 [jq](https://jqlang.github.io/jq/))。 + +::: details 手动配置(v1.7.71 之前的版本) + +在 `~/.claude/settings.json` 中添加: + +```json +{ + "hooks": { + "PreToolUse": [ + { + "matcher": "Bash", + "hooks": [ + { + "type": "command", + "command": "jq -r '.tool_input.command' 2>/dev/null | grep -q 'codeagent-wrapper' && echo '{\"hookSpecificOutput\": {\"hookEventName\": \"PreToolUse\", \"permissionDecision\": \"allow\", \"permissionDecisionReason\": \"codeagent-wrapper auto-approved\"}}' || true", + "timeout": 1 + } + ] + } + ] + } +} +``` +::: + +## 诊断 + +如果 MCP 工具不工作,运行诊断命令: + +```bash +npx ccg-workflow diagnose-mcp +``` diff --git a/docs/guide/workflows.md b/docs/guide/workflows.md new file mode 100644 index 0000000..a5ae1b3 --- /dev/null +++ b/docs/guide/workflows.md @@ -0,0 +1,123 @@ +# 工作流指南 + +CCG 提供三种主要工作流,适用于不同场景。 + +## 规划与执行分离 + +最基础的工作流:先规划,再执行,中间可以人工审查和修改计划。 + +```bash +# 1. 生成实施计划 +/ccg:plan 实现用户认证功能 + +# 2. 审查计划(可修改) +# 计划保存至 .claude/plan/user-auth.md + +# 3a. 执行计划(Claude 重构)— 精细控制 +/ccg:execute .claude/plan/user-auth.md + +# 3b. 执行计划(Codex 全权)— 高效执行,Claude token 极低 +/ccg:codex-exec .claude/plan/user-auth.md +``` + +### 选择 execute 还是 codex-exec? + +| 维度 | `/ccg:execute` | `/ccg:codex-exec` | +|------|---------------|-------------------| +| 执行者 | Claude 主导 + Codex/Gemini 辅助 | Codex 全权执行 | +| Token 消耗 | 较高(Claude 处理每一步) | 极低(Claude 只审核) | +| 适用场景 | 需要精细控制的复杂任务 | 明确的、可独立执行的任务 | +| MCP 搜索 | Claude 执行 | Codex 执行(需同步 MCP) | + +## OPSX 规范驱动工作流 + +集成 [OPSX](https://github.com/fission-ai/opsx) 架构,把需求变成约束,让 AI 没法自由发挥。适合需要**严格控制**的场景。 + +```bash +/ccg:spec-init # 初始化 OPSX 环境 +/ccg:spec-research 实现用户认证 # 研究需求 → 输出约束集 +/ccg:spec-plan # 并行分析 → 零决策计划 +/ccg:spec-impl # 按计划执行 +/ccg:spec-review # 独立审查(随时可用) +``` + +### 工作流特点 + +- **约束驱动**:需求不再是模糊描述,而是可验证的约束条件 +- **零决策计划**:执行阶段不需要做任何决策,所有决策在规划阶段完成 +- **状态持久化**:状态存在 `openspec/` 目录,每阶段可 `/clear` 释放上下文 + +::: tip +`/ccg:spec-*` 命令内部调用 `/opsx:*`。如果你直接使用 OPSX,请使用 `/opsx:*` 命令。 +::: + +## Agent Teams 并行工作流 + +利用 Claude Code Agent Teams 实验特性,spawn 多个 Builder teammates 并行写代码。适合**可拆分为 3+ 独立模块**的任务。 + +```bash +/ccg:team-research 实现实时协作看板 API # 1. 需求 → 约束集 +# /clear +/ccg:team-plan kanban-api # 2. 规划 → 并行计划 +# /clear +/ccg:team-exec # 3. Builder 并行写代码 +# /clear +/ccg:team-review # 4. 双模型交叉审查 +``` + +### vs 传统工作流 + +| 维度 | 传统工作流 | Agent Teams | +|------|-----------|-------------| +| 上下文 | 连续对话 | 每步 `/clear` 隔离 | +| 状态传递 | 对话上下文 | 文件(.claude/plan/) | +| 并行度 | 串行 | 多 Builder 并行 | +| 适用场景 | 通用 | 3+ 独立模块 | + +### 工作流图 + +``` +team-research team-plan team-exec team-review + │ │ │ │ + 需求分析 规划拆分 Builder 1 ──┐ Codex 审查 + │ │ Builder 2 ──┤ │ + 约束输出 并行计划 Builder 3 ──┘ Gemini 审查 + │ │ │ │ + ↓ ↓ ↓ ↓ + constraints.md plan/*.md 代码产出 审查报告 +``` + +## 完整 6 阶段工作流 + +`/ccg:workflow` 是最完整的工作流,包含 6 个阶段: + +1. **研究** — 分析需求,理解上下文 +2. **构思** — 提出解决方案 +3. **计划** — 制定实施计划(Codex + Gemini 并行分析) +4. **执行** — 按计划实施(模型路由:前端 → Gemini,后端 → Codex) +5. **优化** — 性能优化和代码质量 +6. **评审** — 多模型交叉审查 + +```bash +/ccg:workflow 实现完整的用户认证系统,包含注册、登录、JWT 令牌 +``` + +::: info +对于大型任务,建议使用 `/ccg:plan` + `/ccg:execute` 分步执行,以便中间审查计划。 +::: + +## 工作流选择指南 + +``` +收到任务 + │ + ├─ 简单/明确? ────────────→ /ccg:frontend 或 /ccg:backend + │ + ├─ 需要规划? ─────────────→ /ccg:plan + /ccg:execute + │ + ├─ 需要严格约束? ─────────→ /ccg:spec-* 系列 + │ + ├─ 可拆分 3+ 模块? ──────→ /ccg:team-* 系列 + │ + └─ 完整端到端? ───────────→ /ccg:workflow +``` diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..5bd4747 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,62 @@ +--- +layout: home + +hero: + name: CCG + text: Claude + Codex + Gemini + tagline: 多模型协作开发系统 — Claude 编排,Codex 后端,Gemini 前端 + image: + src: /logo.svg + alt: CCG + actions: + - theme: brand + text: 快速开始 + link: /guide/getting-started + - theme: alt + text: 命令参考 + link: /guide/commands + - theme: alt + text: GitHub + link: https://github.com/fengshao1227/ccg-workflow + +features: + - icon: 🔀 + title: 零配置模型路由 + details: 前端任务自动走 Gemini,后端任务自动走 Codex,无需手动切换模型。 + - icon: 🔒 + title: 安全设计 + details: 外部模型无写入权限,仅返回 Patch,由 Claude 审核后应用。 + - icon: 🛠️ + title: 28 个斜杠命令 + details: 从规划到执行、Git 工作流到代码审查,通过 /ccg:* 一站式访问。 + - icon: 📐 + title: 规范驱动开发 + details: 集成 OPSX,将模糊需求变成可验证约束,让 AI 没法自由发挥。 + - icon: 👥 + title: Agent Teams 并行 + details: spawn 多个 Builder teammates 并行写代码,适合 3+ 独立模块的任务。 + - icon: 📦 + title: 一键安装 + details: npx ccg-workflow 一行命令,支持 macOS、Linux、Windows 三平台。 +--- + + diff --git a/docs/public/logo.svg b/docs/public/logo.svg new file mode 100644 index 0000000..35b28f6 --- /dev/null +++ b/docs/public/logo.svg @@ -0,0 +1,12 @@ + + + + + + + + + CCG + Claude+Codex + +Gemini + diff --git a/package.json b/package.json index b9408fe..d76fd4d 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,10 @@ "prepublishOnly": "pnpm build", "test": "vitest run", "lint": "eslint", - "lint:fix": "eslint --fix" + "lint:fix": "eslint --fix", + "docs:dev": "vitepress dev docs", + "docs:build": "vitepress build docs", + "docs:preview": "vitepress preview docs" }, "dependencies": { "ansis": "^4.1.0", @@ -90,6 +93,9 @@ "pathe": "^2.0.3", "smol-toml": "^1.4.2" }, + "pnpm": { + "onlyBuiltDependencies": ["esbuild"] + }, "devDependencies": { "@antfu/eslint-config": "^5.4.1", "@types/fs-extra": "^11.0.4", @@ -98,6 +104,7 @@ "tsx": "^4.20.5", "typescript": "^5.9.2", "unbuild": "^3.6.1", + "vitepress": "^1.6.4", "vitest": "^3.1.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96b9d54..97c9b2f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,7 +38,7 @@ importers: devDependencies: '@antfu/eslint-config': specifier: ^5.4.1 - version: 5.4.1(@vue/compiler-sfc@3.5.26)(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.4.1(@vue/compiler-sfc@3.5.30)(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) '@types/fs-extra': specifier: ^11.0.4 version: 11.0.4 @@ -56,13 +56,92 @@ importers: version: 5.9.3 unbuild: specifier: ^3.6.1 - version: 3.6.1(typescript@5.9.3) + version: 3.6.1(typescript@5.9.3)(vue@3.5.30(typescript@5.9.3)) + vitepress: + specifier: ^1.6.4 + version: 1.6.4(@algolia/client-search@5.49.2)(@types/node@22.19.3)(change-case@5.4.4)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.3) vitest: specifier: ^3.1.1 version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) packages: + '@algolia/abtesting@1.15.2': + resolution: {integrity: sha512-rF7vRVE61E0QORw8e2NNdnttcl3jmFMWS9B4hhdga12COe+lMa26bQLfcBn/Nbp9/AF/8gXdaRCPsVns3CnjsA==} + engines: {node: '>= 14.0.0'} + + '@algolia/autocomplete-core@1.17.7': + resolution: {integrity: sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==} + + '@algolia/autocomplete-plugin-algolia-insights@1.17.7': + resolution: {integrity: sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==} + peerDependencies: + search-insights: '>= 1 < 3' + + '@algolia/autocomplete-preset-algolia@1.17.7': + resolution: {integrity: sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/autocomplete-shared@1.17.7': + resolution: {integrity: sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + + '@algolia/client-abtesting@5.49.2': + resolution: {integrity: sha512-XyvKCm0RRmovMI/ChaAVjTwpZhXdbgt3iZofK914HeEHLqD1MUFFVLz7M0+Ou7F56UkHXwRbpHwb9xBDNopprQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-analytics@5.49.2': + resolution: {integrity: sha512-jq/3qvtmj3NijZlhq7A1B0Cl41GfaBpjJxcwukGsYds6aMSCWrEAJ9pUqw/C9B3hAmILYKl7Ljz3N9SFvekD3Q==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-common@5.49.2': + resolution: {integrity: sha512-bn0biLequn3epobCfjUqCxlIlurLr4RHu7RaE4trgN+RDcUq6HCVC3/yqq1hwbNYpVtulnTOJzcaxYlSr1fnuw==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-insights@5.49.2': + resolution: {integrity: sha512-z14wfFs1T3eeYbCArC8pvntAWsPo9f6hnUGoj8IoRUJTwgJiiySECkm8bmmV47/x0oGHfsVn3kBdjMX0yq0sNA==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-personalization@5.49.2': + resolution: {integrity: sha512-GpRf7yuuAX93+Qt0JGEJZwgtL0MFdjFO9n7dn8s2pA9mTjzl0Sc5+uTk1VPbIAuf7xhCP9Mve+URGb6J+EYxgA==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-query-suggestions@5.49.2': + resolution: {integrity: sha512-HZwApmNkp0DiAjZcLYdQLddcG4Agb88OkojiAHGgcm5DVXobT5uSZ9lmyrbw/tmQBJwgu2CNw4zTyXoIB7YbPA==} + engines: {node: '>= 14.0.0'} + + '@algolia/client-search@5.49.2': + resolution: {integrity: sha512-y1IOpG6OSmTpGg/CT0YBb/EAhR2nsC18QWp9Jy8HO9iGySpcwaTvs5kHa17daP3BMTwWyaX9/1tDTDQshZzXdg==} + engines: {node: '>= 14.0.0'} + + '@algolia/ingestion@1.49.2': + resolution: {integrity: sha512-YYJRjaZ2bqk923HxE4um7j/Cm3/xoSkF2HC2ZweOF8cXL3sqnlndSUYmCaxHFjNPWLaSHk2IfssX6J/tdKTULw==} + engines: {node: '>= 14.0.0'} + + '@algolia/monitoring@1.49.2': + resolution: {integrity: sha512-9WgH+Dha39EQQyGKCHlGYnxW/7W19DIrEbCEbnzwAMpGAv1yTWCHMPXHxYa+LcL3eCp2V/5idD1zHNlIKmHRHg==} + engines: {node: '>= 14.0.0'} + + '@algolia/recommend@5.49.2': + resolution: {integrity: sha512-K7Gp5u+JtVYgaVpBxF5rGiM+Ia8SsMdcAJMTDV93rwh00DKNllC19o1g+PwrDjDvyXNrnTEbofzbTs2GLfFyKA==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-browser-xhr@5.49.2': + resolution: {integrity: sha512-3UhYCcWX6fbtN8ABcxZlhaQEwXFh3CsFtARyyadQShHMPe3mJV9Wel4FpJTa+seugRkbezFz0tt6aPTZSYTBuA==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-fetch@5.49.2': + resolution: {integrity: sha512-G94VKSGbsr+WjsDDOBe5QDQ82QYgxvpxRGJfCHZBnYKYsy/jv9qGIDb93biza+LJWizQBUtDj7bZzp3QZyzhPQ==} + engines: {node: '>= 14.0.0'} + + '@algolia/requester-node-http@5.49.2': + resolution: {integrity: sha512-UuihBGHafG/ENsrcTGAn5rsOffrCIRuHMOsD85fZGLEY92ate+BMTUqxz60dv5zerh8ZumN4bRm8eW2z9L11jA==} + engines: {node: '>= 14.0.0'} + '@antfu/eslint-config@5.4.1': resolution: {integrity: sha512-x7BiNkxJRlXXs8tIvg0CgMuNo5IZVWkGLMJotCtCtzWUHW78Pmm8PvtXhvLBbTc8683GGBK616MMztWLh4RNjA==} hasBin: true @@ -133,8 +212,8 @@ packages: resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} - '@babel/parser@7.28.5': - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + '@babel/parser@7.29.0': + resolution: {integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==} engines: {node: '>=6.0.0'} hasBin: true @@ -142,8 +221,8 @@ packages: resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.5': - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + '@babel/types@7.29.0': + resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} '@clack/core@0.5.0': @@ -152,6 +231,29 @@ packages: '@clack/prompts@0.11.0': resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} + '@docsearch/css@3.8.2': + resolution: {integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==} + + '@docsearch/js@3.8.2': + resolution: {integrity: sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ==} + + '@docsearch/react@3.8.2': + resolution: {integrity: sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + search-insights: '>= 1 < 3' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + search-insights: + optional: true + '@es-joy/jsdoccomment@0.58.0': resolution: {integrity: sha512-smMc5pDht/UVsCD3hhw/a/e/p8m0RdRYiluXToVfd+d4yaQQh7nn9bACjkk6nXJvat7EWPAxuFkMEFfrxeGa3Q==} engines: {node: '>=20.11.0'} @@ -160,6 +262,12 @@ packages: resolution: {integrity: sha512-rQkU5u8hNAq2NVRzHnIUUvR6arbO0b6AOlvpTNS48CkiKSn/xtNfOzBK23JE4SiW89DgvU7GtxLVgV4Vn2HBAw==} engines: {node: '>=20.11.0'} + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} @@ -172,6 +280,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.25.12': resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} @@ -184,6 +298,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.25.12': resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} @@ -196,6 +316,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.25.12': resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} @@ -208,6 +334,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.25.12': resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} @@ -220,6 +352,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.25.12': resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} @@ -232,6 +370,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.25.12': resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} @@ -244,6 +388,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.12': resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} @@ -256,6 +406,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.25.12': resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} @@ -268,6 +424,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.25.12': resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} @@ -280,6 +442,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.25.12': resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} @@ -292,6 +460,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.25.12': resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} @@ -304,6 +478,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.25.12': resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} @@ -316,6 +496,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.25.12': resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} @@ -328,6 +514,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.25.12': resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} @@ -340,6 +532,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.25.12': resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} @@ -352,6 +550,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.25.12': resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} @@ -376,6 +580,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.12': resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} @@ -400,6 +610,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.12': resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} @@ -424,6 +640,12 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.25.12': resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} @@ -436,6 +658,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.25.12': resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} @@ -448,6 +676,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.25.12': resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} @@ -460,6 +694,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.25.12': resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} @@ -553,6 +793,12 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@iconify-json/simple-icons@1.2.73': + resolution: {integrity: sha512-nQZTwul4c2zBqH/aLP4zMOiElj93T6HawbrP+sFQKpxmBdS5x1duCK3cAnkj6dntHz84EYkzaQRM83V2pj4qxA==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + '@inquirer/ansi@1.0.2': resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==} engines: {node: '>=18'} @@ -858,6 +1104,30 @@ packages: cpu: [x64] os: [win32] + '@shikijs/core@2.5.0': + resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} + + '@shikijs/engine-javascript@2.5.0': + resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} + + '@shikijs/engine-oniguruma@2.5.0': + resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} + + '@shikijs/langs@2.5.0': + resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} + + '@shikijs/themes@2.5.0': + resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} + + '@shikijs/transformers@2.5.0': + resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} + + '@shikijs/types@2.5.0': + resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@stylistic/eslint-plugin@5.6.1': resolution: {integrity: sha512-JCs+MqoXfXrRPGbGmho/zGS/jMcn3ieKl/A8YImqib76C8kjgZwq5uUFzc30lJkMvcchuRn6/v8IApLxli3Jyw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -879,15 +1149,27 @@ packages: '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} '@types/jsonfile@6.1.4': resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} @@ -900,6 +1182,9 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + '@types/web-bluetooth@0.0.21': + resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} + '@typescript-eslint/eslint-plugin@8.51.0': resolution: {integrity: sha512-XtssGWJvypyM2ytBnSnKtHYOGT+4ZwTnBVl36TA4nRO2f4PRNGz5/1OszHzcZCvcBMh+qb7I06uoCmLTRdR9og==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -959,6 +1244,16 @@ packages: resolution: {integrity: sha512-mM/JRQOzhVN1ykejrvwnBRV3+7yTKK8tVANVN3o1O0t0v7o+jqdVu9crPy5Y9dov15TJk/FTIgoUGHrTOVL3Zg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@vitejs/plugin-vue@5.2.4': + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + '@vitest/eslint-plugin@1.6.5': resolution: {integrity: sha512-+wKYGmvXQJjq58qBx/AwiZr5bFfMiWBdgHViSQoFW/+wl5MQhJeOGP/3HM7GO7W1+AoiW9Gcyy2Hdwcao4LnfQ==} engines: {node: '>=18'} @@ -1001,21 +1296,97 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@vue/compiler-core@3.5.26': - resolution: {integrity: sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==} + '@vue/compiler-core@3.5.30': + resolution: {integrity: sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw==} - '@vue/compiler-dom@3.5.26': - resolution: {integrity: sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==} + '@vue/compiler-dom@3.5.30': + resolution: {integrity: sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g==} - '@vue/compiler-sfc@3.5.26': - resolution: {integrity: sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==} + '@vue/compiler-sfc@3.5.30': + resolution: {integrity: sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A==} - '@vue/compiler-ssr@3.5.26': - resolution: {integrity: sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==} + '@vue/compiler-ssr@3.5.30': + resolution: {integrity: sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA==} + + '@vue/devtools-api@7.7.9': + resolution: {integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==} + + '@vue/devtools-kit@7.7.9': + resolution: {integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==} + + '@vue/devtools-shared@7.7.9': + resolution: {integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==} + + '@vue/reactivity@3.5.30': + resolution: {integrity: sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q==} + + '@vue/runtime-core@3.5.30': + resolution: {integrity: sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg==} + + '@vue/runtime-dom@3.5.30': + resolution: {integrity: sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw==} + + '@vue/server-renderer@3.5.30': + resolution: {integrity: sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ==} + peerDependencies: + vue: 3.5.30 '@vue/shared@3.5.26': resolution: {integrity: sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==} + '@vue/shared@3.5.30': + resolution: {integrity: sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ==} + + '@vueuse/core@12.8.2': + resolution: {integrity: sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ==} + + '@vueuse/integrations@12.8.2': + resolution: {integrity: sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g==} + peerDependencies: + async-validator: ^4 + axios: ^1 + change-case: ^5 + drauu: ^0.4 + focus-trap: ^7 + fuse.js: ^7 + idb-keyval: ^6 + jwt-decode: ^4 + nprogress: ^0.2 + qrcode: ^1.5 + sortablejs: ^1 + universal-cookie: ^7 + peerDependenciesMeta: + async-validator: + optional: true + axios: + optional: true + change-case: + optional: true + drauu: + optional: true + focus-trap: + optional: true + fuse.js: + optional: true + idb-keyval: + optional: true + jwt-decode: + optional: true + nprogress: + optional: true + qrcode: + optional: true + sortablejs: + optional: true + universal-cookie: + optional: true + + '@vueuse/metadata@12.8.2': + resolution: {integrity: sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A==} + + '@vueuse/shared@12.8.2': + resolution: {integrity: sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w==} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1029,6 +1400,10 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + algoliasearch@5.49.2: + resolution: {integrity: sha512-1K0wtDaRONwfhL4h8bbJ9qTjmY6rhGgRvvagXkMBsAOMNr+3Q2SffHECh9DIuNVrMA1JwA0zCwhyepgBZVakng==} + engines: {node: '>= 14.0.0'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1070,6 +1445,9 @@ packages: resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==} hasBin: true + birpc@2.9.0: + resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} + boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} @@ -1120,6 +1498,12 @@ packages: change-case@5.4.4: resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} @@ -1163,6 +1547,9 @@ packages: colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@11.1.0: resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} engines: {node: '>=16'} @@ -1187,6 +1574,10 @@ packages: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} + copy-anything@4.0.5: + resolution: {integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==} + engines: {node: '>=18'} + core-js-compat@3.47.0: resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} @@ -1242,6 +1633,9 @@ packages: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -1295,6 +1689,9 @@ packages: electron-to-chromium@1.5.267: resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==} + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1310,13 +1707,18 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - entities@7.0.0: - resolution: {integrity: sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==} + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.25.12: resolution: {integrity: sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==} engines: {node: '>=18'} @@ -1593,6 +1995,9 @@ packages: flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + focus-trap@7.8.0: + resolution: {integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==} + format@0.2.2: resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} engines: {node: '>=0.4.x'} @@ -1655,9 +2060,18 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + i18next-fs-backend@2.6.1: resolution: {integrity: sha512-eYWTX7QT7kJ0sZyCPK6x1q+R63zvNKv2D6UdbMf15A8vNb2ZLyw4NNNZxPFwXlIv/U+oUtg8SakW6ZgJZcoqHQ==} @@ -1736,6 +2150,10 @@ packages: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} + is-what@5.5.0: + resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} + engines: {node: '>=18'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -1842,6 +2260,9 @@ packages: magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + mark.js@8.11.1: + resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -1875,6 +2296,9 @@ packages: mdast-util-phrasing@4.1.0: resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + mdast-util-to-hast@13.2.1: + resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} + mdast-util-to-markdown@2.1.2: resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} @@ -1985,6 +2409,12 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + minisearch@7.2.0: + resolution: {integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==} + + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mkdist@2.4.1: resolution: {integrity: sha512-Ezk0gi04GJBkqMfsksICU5Rjoemc4biIekwgrONWVPor2EO/N9nBgN6MZXAf7Yw4mDDhrNyKbdETaHNevfumKg==} hasBin: true @@ -2041,6 +2471,9 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} + oniguruma-to-es@3.1.1: + resolution: {integrity: sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ==} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -2092,6 +2525,9 @@ packages: resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} engines: {node: '>= 14.16'} + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -2291,6 +2727,13 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + engines: {node: ^10 || ^12 || >=14} + + preact@10.29.0: + resolution: {integrity: sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg==} + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -2299,6 +2742,9 @@ packages: resolution: {integrity: sha512-nODzvTiYVRGRqAOvE84Vk5JDPyyxsVk0/fbA/bq7RqlnhksGpset09XTxbpvLTIjoaF7K8Z8DG8yHtKGTPSYRw==} engines: {node: '>=20'} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} @@ -2310,6 +2756,15 @@ packages: resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.1.0: + resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} + regexp-ast-analysis@0.7.1: resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -2338,6 +2793,9 @@ packages: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rollup-plugin-dts@6.3.0: resolution: {integrity: sha512-d0UrqxYd8KyZ6i3M2Nx7WOMy708qsV/7fTHMHxCMCBOAe3V/U7OMPu5GkX8hC+cmkHhzGnfeYongl1IgiooddA==} engines: {node: '>=16'} @@ -2370,6 +2828,9 @@ packages: scule@1.3.0: resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==} + search-insights@2.17.3: + resolution: {integrity: sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==} + semver@7.7.3: resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} @@ -2383,6 +2844,9 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shiki@2.5.0: + resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -2401,6 +2865,9 @@ packages: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + spdx-exceptions@2.5.0: resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} @@ -2410,6 +2877,10 @@ packages: spdx-license-ids@3.0.22: resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + speakingurl@14.0.1: + resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==} + engines: {node: '>=0.10.0'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -2428,6 +2899,9 @@ packages: resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} engines: {node: '>=20'} + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -2453,6 +2927,10 @@ packages: peerDependencies: postcss: ^8.4.32 + superjson@2.2.6: + resolution: {integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==} + engines: {node: '>=16'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -2470,6 +2948,9 @@ packages: resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} engines: {node: ^14.18.0 || >=16.0.0} + tabbable@6.4.0: + resolution: {integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==} + tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} @@ -2504,6 +2985,9 @@ packages: resolution: {integrity: sha512-9mjy3frhioGIVGcwamlVlUyJ9x+WHw/TXiz9R4YOlmsIuBN43r9Dp8HZ35SF9EKjHrn3BUZj04CF+YqZ2oJ+7w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + ts-api-utils@2.4.0: resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} @@ -2554,6 +3038,9 @@ packages: unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} @@ -2583,11 +3070,48 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + vfile-message@4.0.3: + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + 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@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vite@7.3.1: resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -2628,6 +3152,18 @@ packages: yaml: optional: true + vitepress@1.6.4: + resolution: {integrity: sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg==} + hasBin: true + peerDependencies: + markdown-it-mathjax3: ^4 + postcss: ^8 + peerDependenciesMeta: + markdown-it-mathjax3: + optional: true + postcss: + optional: true + vitest@3.2.4: resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -2662,6 +3198,14 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 + vue@3.5.30: + resolution: {integrity: sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -2710,7 +3254,119 @@ packages: snapshots: - '@antfu/eslint-config@5.4.1(@vue/compiler-sfc@3.5.26)(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': + '@algolia/abtesting@1.15.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2) + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2) + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2)': + dependencies: + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2) + '@algolia/client-search': 5.49.2 + algoliasearch: 5.49.2 + + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2)': + dependencies: + '@algolia/client-search': 5.49.2 + algoliasearch: 5.49.2 + + '@algolia/client-abtesting@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/client-analytics@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/client-common@5.49.2': {} + + '@algolia/client-insights@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/client-personalization@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/client-query-suggestions@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/client-search@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/ingestion@1.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/monitoring@1.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/recommend@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + + '@algolia/requester-browser-xhr@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + + '@algolia/requester-fetch@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + + '@algolia/requester-node-http@5.49.2': + dependencies: + '@algolia/client-common': 5.49.2 + + '@antfu/eslint-config@5.4.1(@vue/compiler-sfc@3.5.30)(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 0.11.0 @@ -2741,7 +3397,7 @@ snapshots: eslint-plugin-unused-imports: 4.3.0(@typescript-eslint/eslint-plugin@8.51.0(@typescript-eslint/parser@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.6.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) eslint-plugin-yml: 1.19.1(eslint@9.39.2(jiti@2.6.1)) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.26)(eslint@9.39.2(jiti@2.6.1)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.30)(eslint@9.39.2(jiti@2.6.1)) globals: 16.5.0 jsonc-eslint-parser: 2.4.2 local-pkg: 1.1.2 @@ -2772,13 +3428,13 @@ snapshots: '@babel/helper-validator-identifier@7.28.5': {} - '@babel/parser@7.28.5': + '@babel/parser@7.29.0': dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.29.0 '@babel/runtime@7.28.4': {} - '@babel/types@7.28.5': + '@babel/types@7.29.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 @@ -2794,6 +3450,30 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 + '@docsearch/css@3.8.2': {} + + '@docsearch/js@3.8.2(@algolia/client-search@5.49.2)(search-insights@2.17.3)': + dependencies: + '@docsearch/react': 3.8.2(@algolia/client-search@5.49.2)(search-insights@2.17.3) + preact: 10.29.0 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + - search-insights + + '@docsearch/react@3.8.2(@algolia/client-search@5.49.2)(search-insights@2.17.3)': + dependencies: + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.49.2)(algoliasearch@5.49.2) + '@docsearch/css': 3.8.2 + algoliasearch: 5.49.2 + optionalDependencies: + search-insights: 2.17.3 + transitivePeerDependencies: + - '@algolia/client-search' + '@es-joy/jsdoccomment@0.58.0': dependencies: '@types/estree': 1.0.8 @@ -2810,102 +3490,153 @@ snapshots: esquery: 1.7.0 jsdoc-type-pratt-parser: 7.0.0 + '@esbuild/aix-ppc64@0.21.5': + optional: true + '@esbuild/aix-ppc64@0.25.12': optional: true '@esbuild/aix-ppc64@0.27.2': optional: true + '@esbuild/android-arm64@0.21.5': + optional: true + '@esbuild/android-arm64@0.25.12': optional: true '@esbuild/android-arm64@0.27.2': optional: true + '@esbuild/android-arm@0.21.5': + optional: true + '@esbuild/android-arm@0.25.12': optional: true '@esbuild/android-arm@0.27.2': optional: true + '@esbuild/android-x64@0.21.5': + optional: true + '@esbuild/android-x64@0.25.12': optional: true '@esbuild/android-x64@0.27.2': optional: true + '@esbuild/darwin-arm64@0.21.5': + optional: true + '@esbuild/darwin-arm64@0.25.12': optional: true '@esbuild/darwin-arm64@0.27.2': optional: true + '@esbuild/darwin-x64@0.21.5': + optional: true + '@esbuild/darwin-x64@0.25.12': optional: true '@esbuild/darwin-x64@0.27.2': optional: true + '@esbuild/freebsd-arm64@0.21.5': + optional: true + '@esbuild/freebsd-arm64@0.25.12': optional: true '@esbuild/freebsd-arm64@0.27.2': optional: true + '@esbuild/freebsd-x64@0.21.5': + optional: true + '@esbuild/freebsd-x64@0.25.12': optional: true '@esbuild/freebsd-x64@0.27.2': optional: true + '@esbuild/linux-arm64@0.21.5': + optional: true + '@esbuild/linux-arm64@0.25.12': optional: true '@esbuild/linux-arm64@0.27.2': optional: true + '@esbuild/linux-arm@0.21.5': + optional: true + '@esbuild/linux-arm@0.25.12': optional: true '@esbuild/linux-arm@0.27.2': optional: true + '@esbuild/linux-ia32@0.21.5': + optional: true + '@esbuild/linux-ia32@0.25.12': optional: true '@esbuild/linux-ia32@0.27.2': optional: true + '@esbuild/linux-loong64@0.21.5': + optional: true + '@esbuild/linux-loong64@0.25.12': optional: true '@esbuild/linux-loong64@0.27.2': optional: true + '@esbuild/linux-mips64el@0.21.5': + optional: true + '@esbuild/linux-mips64el@0.25.12': optional: true '@esbuild/linux-mips64el@0.27.2': optional: true + '@esbuild/linux-ppc64@0.21.5': + optional: true + '@esbuild/linux-ppc64@0.25.12': optional: true '@esbuild/linux-ppc64@0.27.2': optional: true + '@esbuild/linux-riscv64@0.21.5': + optional: true + '@esbuild/linux-riscv64@0.25.12': optional: true '@esbuild/linux-riscv64@0.27.2': optional: true + '@esbuild/linux-s390x@0.21.5': + optional: true + '@esbuild/linux-s390x@0.25.12': optional: true '@esbuild/linux-s390x@0.27.2': optional: true + '@esbuild/linux-x64@0.21.5': + optional: true + '@esbuild/linux-x64@0.25.12': optional: true @@ -2918,6 +3649,9 @@ snapshots: '@esbuild/netbsd-arm64@0.27.2': optional: true + '@esbuild/netbsd-x64@0.21.5': + optional: true + '@esbuild/netbsd-x64@0.25.12': optional: true @@ -2930,6 +3664,9 @@ snapshots: '@esbuild/openbsd-arm64@0.27.2': optional: true + '@esbuild/openbsd-x64@0.21.5': + optional: true + '@esbuild/openbsd-x64@0.25.12': optional: true @@ -2942,24 +3679,36 @@ snapshots: '@esbuild/openharmony-arm64@0.27.2': optional: true + '@esbuild/sunos-x64@0.21.5': + optional: true + '@esbuild/sunos-x64@0.25.12': optional: true '@esbuild/sunos-x64@0.27.2': optional: true + '@esbuild/win32-arm64@0.21.5': + optional: true + '@esbuild/win32-arm64@0.25.12': optional: true '@esbuild/win32-arm64@0.27.2': optional: true + '@esbuild/win32-ia32@0.21.5': + optional: true + '@esbuild/win32-ia32@0.25.12': optional: true '@esbuild/win32-ia32@0.27.2': optional: true + '@esbuild/win32-x64@0.21.5': + optional: true + '@esbuild/win32-x64@0.25.12': optional: true @@ -3058,6 +3807,12 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@iconify-json/simple-icons@1.2.73': + dependencies: + '@iconify/types': 2.0.0 + + '@iconify/types@2.0.0': {} + '@inquirer/ansi@1.0.2': {} '@inquirer/checkbox@4.3.2(@types/node@22.19.3)': @@ -3300,6 +4055,46 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.54.0': optional: true + '@shikijs/core@2.5.0': + dependencies: + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 3.1.1 + + '@shikijs/engine-oniguruma@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + + '@shikijs/themes@2.5.0': + dependencies: + '@shikijs/types': 2.5.0 + + '@shikijs/transformers@2.5.0': + dependencies: + '@shikijs/core': 2.5.0 + '@shikijs/types': 2.5.0 + + '@shikijs/types@2.5.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + '@stylistic/eslint-plugin@5.6.1(eslint@9.39.2(jiti@2.6.1))': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.2(jiti@2.6.1)) @@ -3328,16 +4123,29 @@ snapshots: '@types/jsonfile': 6.1.4 '@types/node': 22.19.3 + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + '@types/json-schema@7.0.15': {} '@types/jsonfile@6.1.4': dependencies: '@types/node': 22.19.3 + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 + '@types/mdurl@2.0.0': {} + '@types/ms@2.1.0': {} '@types/node@22.19.3': @@ -3348,6 +4156,8 @@ snapshots: '@types/unist@3.0.3': {} + '@types/web-bluetooth@0.0.21': {} + '@typescript-eslint/eslint-plugin@8.51.0(@typescript-eslint/parser@8.51.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -3439,6 +4249,13 @@ snapshots: '@typescript-eslint/types': 8.51.0 eslint-visitor-keys: 4.2.1 + '@ungap/structured-clone@1.3.0': {} + + '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@22.19.3))(vue@3.5.30(typescript@5.9.3))': + dependencies: + vite: 5.4.21(@types/node@22.19.3) + vue: 3.5.30(typescript@5.9.3) + '@vitest/eslint-plugin@1.6.5(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@typescript-eslint/scope-manager': 8.51.0 @@ -3492,38 +4309,108 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - '@vue/compiler-core@3.5.26': + '@vue/compiler-core@3.5.30': dependencies: - '@babel/parser': 7.28.5 - '@vue/shared': 3.5.26 - entities: 7.0.0 + '@babel/parser': 7.29.0 + '@vue/shared': 3.5.30 + entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.26': + '@vue/compiler-dom@3.5.30': dependencies: - '@vue/compiler-core': 3.5.26 - '@vue/shared': 3.5.26 + '@vue/compiler-core': 3.5.30 + '@vue/shared': 3.5.30 - '@vue/compiler-sfc@3.5.26': + '@vue/compiler-sfc@3.5.30': dependencies: - '@babel/parser': 7.28.5 - '@vue/compiler-core': 3.5.26 - '@vue/compiler-dom': 3.5.26 - '@vue/compiler-ssr': 3.5.26 - '@vue/shared': 3.5.26 + '@babel/parser': 7.29.0 + '@vue/compiler-core': 3.5.30 + '@vue/compiler-dom': 3.5.30 + '@vue/compiler-ssr': 3.5.30 + '@vue/shared': 3.5.30 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.6 + postcss: 8.5.8 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.26': + '@vue/compiler-ssr@3.5.30': dependencies: - '@vue/compiler-dom': 3.5.26 - '@vue/shared': 3.5.26 + '@vue/compiler-dom': 3.5.30 + '@vue/shared': 3.5.30 + + '@vue/devtools-api@7.7.9': + dependencies: + '@vue/devtools-kit': 7.7.9 + + '@vue/devtools-kit@7.7.9': + dependencies: + '@vue/devtools-shared': 7.7.9 + birpc: 2.9.0 + hookable: 5.5.3 + mitt: 3.0.1 + perfect-debounce: 1.0.0 + speakingurl: 14.0.1 + superjson: 2.2.6 + + '@vue/devtools-shared@7.7.9': + dependencies: + rfdc: 1.4.1 + + '@vue/reactivity@3.5.30': + dependencies: + '@vue/shared': 3.5.30 + + '@vue/runtime-core@3.5.30': + dependencies: + '@vue/reactivity': 3.5.30 + '@vue/shared': 3.5.30 + + '@vue/runtime-dom@3.5.30': + dependencies: + '@vue/reactivity': 3.5.30 + '@vue/runtime-core': 3.5.30 + '@vue/shared': 3.5.30 + csstype: 3.2.3 + + '@vue/server-renderer@3.5.30(vue@3.5.30(typescript@5.9.3))': + dependencies: + '@vue/compiler-ssr': 3.5.30 + '@vue/shared': 3.5.30 + vue: 3.5.30(typescript@5.9.3) '@vue/shared@3.5.26': {} + '@vue/shared@3.5.30': {} + + '@vueuse/core@12.8.2(typescript@5.9.3)': + dependencies: + '@types/web-bluetooth': 0.0.21 + '@vueuse/metadata': 12.8.2 + '@vueuse/shared': 12.8.2(typescript@5.9.3) + vue: 3.5.30(typescript@5.9.3) + transitivePeerDependencies: + - typescript + + '@vueuse/integrations@12.8.2(change-case@5.4.4)(focus-trap@7.8.0)(typescript@5.9.3)': + dependencies: + '@vueuse/core': 12.8.2(typescript@5.9.3) + '@vueuse/shared': 12.8.2(typescript@5.9.3) + vue: 3.5.30(typescript@5.9.3) + optionalDependencies: + change-case: 5.4.4 + focus-trap: 7.8.0 + transitivePeerDependencies: + - typescript + + '@vueuse/metadata@12.8.2': {} + + '@vueuse/shared@12.8.2(typescript@5.9.3)': + dependencies: + vue: 3.5.30(typescript@5.9.3) + transitivePeerDependencies: + - typescript + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -3537,6 +4424,23 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + algoliasearch@5.49.2: + dependencies: + '@algolia/abtesting': 1.15.2 + '@algolia/client-abtesting': 5.49.2 + '@algolia/client-analytics': 5.49.2 + '@algolia/client-common': 5.49.2 + '@algolia/client-insights': 5.49.2 + '@algolia/client-personalization': 5.49.2 + '@algolia/client-query-suggestions': 5.49.2 + '@algolia/client-search': 5.49.2 + '@algolia/ingestion': 1.49.2 + '@algolia/monitoring': 1.49.2 + '@algolia/recommend': 5.49.2 + '@algolia/requester-browser-xhr': 5.49.2 + '@algolia/requester-fetch': 5.49.2 + '@algolia/requester-node-http': 5.49.2 + ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} @@ -3566,6 +4470,8 @@ snapshots: baseline-browser-mapping@2.9.11: {} + birpc@2.9.0: {} + boolbase@1.0.0: {} brace-expansion@1.1.12: @@ -3619,6 +4525,10 @@ snapshots: change-case@5.4.4: {} + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + character-entities@2.0.2: {} chardet@2.1.1: {} @@ -3651,6 +4561,8 @@ snapshots: colord@2.9.3: {} + comma-separated-tokens@2.0.3: {} + commander@11.1.0: {} comment-parser@1.4.1: {} @@ -3665,6 +4577,10 @@ snapshots: consola@3.4.2: {} + copy-anything@4.0.5: + dependencies: + is-what: 5.5.0 + core-js-compat@3.47.0: dependencies: browserslist: 4.28.1 @@ -3749,6 +4665,8 @@ snapshots: dependencies: css-tree: 2.2.1 + csstype@3.2.3: {} + debug@4.4.3: dependencies: ms: 2.1.3 @@ -3793,6 +4711,8 @@ snapshots: electron-to-chromium@1.5.267: {} + emoji-regex-xs@1.0.0: {} + emoji-regex@8.0.0: {} empathic@2.0.0: {} @@ -3804,10 +4724,36 @@ snapshots: entities@4.5.0: {} - entities@7.0.0: {} + entities@7.0.1: {} es-module-lexer@1.7.0: {} + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + esbuild@0.25.12: optionalDependencies: '@esbuild/aix-ppc64': 0.25.12 @@ -4070,9 +5016,9 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.26)(eslint@9.39.2(jiti@2.6.1)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.30)(eslint@9.39.2(jiti@2.6.1)): dependencies: - '@vue/compiler-sfc': 3.5.26 + '@vue/compiler-sfc': 3.5.30 eslint: 9.39.2(jiti@2.6.1) eslint-scope@8.4.0: @@ -4197,6 +5143,10 @@ snapshots: flatted@3.3.3: {} + focus-trap@7.8.0: + dependencies: + tabbable: 6.4.0 + format@0.2.2: {} fraction.js@5.3.4: {} @@ -4242,8 +5192,28 @@ snapshots: dependencies: function-bind: 1.1.2 + hast-util-to-html@9.0.5: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.1 + property-information: 7.1.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + hookable@5.5.3: {} + html-void-elements@3.0.0: {} + i18next-fs-backend@2.6.1: {} i18next@25.7.3(typescript@5.9.3): @@ -4307,6 +5277,8 @@ snapshots: is-unicode-supported@2.1.0: {} + is-what@5.5.0: {} + isexe@2.0.0: {} jiti@1.21.7: {} @@ -4395,6 +5367,8 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + mark.js@8.11.1: {} + markdown-table@3.0.4: {} mdast-util-find-and-replace@3.0.2: @@ -4494,6 +5468,18 @@ snapshots: '@types/mdast': 4.0.4 unist-util-is: 6.0.1 + mdast-util-to-hast@13.2.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + mdast-util-to-markdown@2.1.2: dependencies: '@types/mdast': 4.0.4 @@ -4722,7 +5708,11 @@ snapshots: dependencies: brace-expansion: 2.0.2 - mkdist@2.4.1(typescript@5.9.3): + minisearch@7.2.0: {} + + mitt@3.0.1: {} + + mkdist@2.4.1(typescript@5.9.3)(vue@3.5.30(typescript@5.9.3)): dependencies: autoprefixer: 10.4.23(postcss@8.5.6) citty: 0.1.6 @@ -4739,6 +5729,7 @@ snapshots: tinyglobby: 0.2.15 optionalDependencies: typescript: 5.9.3 + vue: 3.5.30(typescript@5.9.3) mlly@1.8.0: dependencies: @@ -4771,6 +5762,12 @@ snapshots: dependencies: mimic-function: 5.0.1 + oniguruma-to-es@3.1.1: + dependencies: + emoji-regex-xs: 1.0.0 + regex: 6.1.0 + regex-recursion: 6.0.2 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -4824,6 +5821,8 @@ snapshots: pathval@2.0.1: {} + perfect-debounce@1.0.0: {} + picocolors@1.1.1: {} picomatch@4.0.3: {} @@ -5013,10 +6012,20 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.8: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + preact@10.29.0: {} + prelude-ls@1.2.1: {} pretty-bytes@7.1.0: {} + property-information@7.1.0: {} + punycode@2.3.1: {} quansync@0.2.11: {} @@ -5025,6 +6034,16 @@ snapshots: dependencies: '@eslint-community/regexpp': 4.12.2 + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.1.0: + dependencies: + regex-utilities: 2.3.0 + regexp-ast-analysis@0.7.1: dependencies: '@eslint-community/regexpp': 4.12.2 @@ -5051,6 +6070,8 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 + rfdc@1.4.1: {} + rollup-plugin-dts@6.3.0(rollup@4.54.0)(typescript@5.9.3): dependencies: magic-string: 0.30.21 @@ -5105,6 +6126,8 @@ snapshots: scule@1.3.0: {} + search-insights@2.17.3: {} + semver@7.7.3: {} shebang-command@2.0.0: @@ -5113,6 +6136,17 @@ snapshots: shebang-regex@3.0.0: {} + shiki@2.5.0: + dependencies: + '@shikijs/core': 2.5.0 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/langs': 2.5.0 + '@shikijs/themes': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + siginfo@2.0.0: {} signal-exit@4.1.0: {} @@ -5123,6 +6157,8 @@ snapshots: source-map-js@1.2.1: {} + space-separated-tokens@2.0.2: {} + spdx-exceptions@2.5.0: {} spdx-expression-parse@4.0.0: @@ -5132,6 +6168,8 @@ snapshots: spdx-license-ids@3.0.22: {} + speakingurl@14.0.1: {} + stackback@0.0.2: {} std-env@3.10.0: {} @@ -5149,6 +6187,11 @@ snapshots: get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 @@ -5171,6 +6214,10 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.1 + superjson@2.2.6: + dependencies: + copy-anything: 4.0.5 + supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -5191,6 +6238,8 @@ snapshots: dependencies: '@pkgr/core': 0.2.9 + tabbable@6.4.0: {} + tapable@2.3.0: {} tinybench@2.9.0: {} @@ -5214,6 +6263,8 @@ snapshots: dependencies: eslint-visitor-keys: 3.4.3 + trim-lines@3.0.1: {} + ts-api-utils@2.4.0(typescript@5.9.3): dependencies: typescript: 5.9.3 @@ -5242,7 +6293,7 @@ snapshots: ufo@1.6.1: {} - unbuild@3.6.1(typescript@5.9.3): + unbuild@3.6.1(typescript@5.9.3)(vue@3.5.30(typescript@5.9.3)): dependencies: '@rollup/plugin-alias': 5.1.1(rollup@4.54.0) '@rollup/plugin-commonjs': 28.0.9(rollup@4.54.0) @@ -5258,7 +6309,7 @@ snapshots: hookable: 5.5.3 jiti: 2.6.1 magic-string: 0.30.21 - mkdist: 2.4.1(typescript@5.9.3) + mkdist: 2.4.1(typescript@5.9.3)(vue@3.5.30(typescript@5.9.3)) mlly: 1.8.0 pathe: 2.0.3 pkg-types: 2.3.0 @@ -5282,6 +6333,10 @@ snapshots: dependencies: '@types/unist': 3.0.3 + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position@4.0.0: dependencies: '@types/unist': 3.0.3 @@ -5319,6 +6374,16 @@ snapshots: util-deprecate@1.0.2: {} + vfile-message@4.0.3: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.3 + vite-node@3.2.4(@types/node@22.19.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 @@ -5340,6 +6405,15 @@ snapshots: - tsx - yaml + vite@5.4.21(@types/node@22.19.3): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.6 + rollup: 4.54.0 + optionalDependencies: + '@types/node': 22.19.3 + fsevents: 2.3.3 + vite@7.3.1(@types/node@22.19.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.2 @@ -5355,6 +6429,55 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 + vitepress@1.6.4(@algolia/client-search@5.49.2)(@types/node@22.19.3)(change-case@5.4.4)(postcss@8.5.6)(search-insights@2.17.3)(typescript@5.9.3): + dependencies: + '@docsearch/css': 3.8.2 + '@docsearch/js': 3.8.2(@algolia/client-search@5.49.2)(search-insights@2.17.3) + '@iconify-json/simple-icons': 1.2.73 + '@shikijs/core': 2.5.0 + '@shikijs/transformers': 2.5.0 + '@shikijs/types': 2.5.0 + '@types/markdown-it': 14.1.2 + '@vitejs/plugin-vue': 5.2.4(vite@5.4.21(@types/node@22.19.3))(vue@3.5.30(typescript@5.9.3)) + '@vue/devtools-api': 7.7.9 + '@vue/shared': 3.5.26 + '@vueuse/core': 12.8.2(typescript@5.9.3) + '@vueuse/integrations': 12.8.2(change-case@5.4.4)(focus-trap@7.8.0)(typescript@5.9.3) + focus-trap: 7.8.0 + mark.js: 8.11.1 + minisearch: 7.2.0 + shiki: 2.5.0 + vite: 5.4.21(@types/node@22.19.3) + vue: 3.5.30(typescript@5.9.3) + optionalDependencies: + postcss: 8.5.6 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - async-validator + - axios + - change-case + - drauu + - fuse.js + - idb-keyval + - jwt-decode + - less + - lightningcss + - nprogress + - qrcode + - react + - react-dom + - sass + - sass-embedded + - search-insights + - sortablejs + - stylus + - sugarss + - terser + - typescript + - universal-cookie + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.3 @@ -5409,6 +6532,16 @@ snapshots: transitivePeerDependencies: - supports-color + vue@3.5.30(typescript@5.9.3): + dependencies: + '@vue/compiler-dom': 3.5.30 + '@vue/compiler-sfc': 3.5.30 + '@vue/runtime-dom': 3.5.30 + '@vue/server-renderer': 3.5.30(vue@3.5.30(typescript@5.9.3)) + '@vue/shared': 3.5.30 + optionalDependencies: + typescript: 5.9.3 + which@2.0.2: dependencies: isexe: 2.0.0