From 4b5ff6dbe9efee535541412c330e50905a05e8a0 Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 16:47:06 +0800 Subject: [PATCH 01/10] feat: add docs --- .github/workflows/deploy-docs.yaml | 35 + docs/docs/.vuepress/config.js | 20 + docs/docs/.vuepress/public/images/VEADK.png | Bin 0 -> 107467 bytes docs/docs/README.md | 29 + docs/docs/agent.md | 34 + docs/docs/cli.md | 17 + docs/docs/deploy.md | 25 + docs/docs/evaluation.md | 72 + docs/docs/get-started.md | 73 + docs/docs/installation.md | 179 + docs/docs/introduction.md | 53 + docs/docs/knowledgebase.md | 37 + docs/docs/memory.md | 105 + docs/docs/tracing.md | 41 + docs/package-lock.json | 4410 +++++++++++++++++++ docs/package.json | 20 + 16 files changed, 5150 insertions(+) create mode 100644 .github/workflows/deploy-docs.yaml create mode 100644 docs/docs/.vuepress/config.js create mode 100644 docs/docs/.vuepress/public/images/VEADK.png create mode 100644 docs/docs/README.md create mode 100644 docs/docs/agent.md create mode 100644 docs/docs/cli.md create mode 100644 docs/docs/deploy.md create mode 100644 docs/docs/evaluation.md create mode 100644 docs/docs/get-started.md create mode 100644 docs/docs/installation.md create mode 100644 docs/docs/introduction.md create mode 100644 docs/docs/knowledgebase.md create mode 100644 docs/docs/memory.md create mode 100644 docs/docs/tracing.md create mode 100644 docs/package-lock.json create mode 100644 docs/package.json diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml new file mode 100644 index 00000000..c09889ce --- /dev/null +++ b/.github/workflows/deploy-docs.yaml @@ -0,0 +1,35 @@ +name: Deploy Docs to GitHub Pages + +on: + push: + branches: + - main + paths: + - 'docs/**' + - '.github/workflows/deploy-docs.yml' + + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: Install dependencies + run: npm install + + - name: Build documentation + run: npm run docs:build + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: docs/.vuepress/dist \ No newline at end of file diff --git a/docs/docs/.vuepress/config.js b/docs/docs/.vuepress/config.js new file mode 100644 index 00000000..a131eb9b --- /dev/null +++ b/docs/docs/.vuepress/config.js @@ -0,0 +1,20 @@ +import { viteBundler } from '@vuepress/bundler-vite' +import { defaultTheme } from '@vuepress/theme-default' +import { defineUserConfig } from 'vuepress' + +export default defineUserConfig({ + lang: 'en-US', + + title: 'Volcengine Agent Development Kit', + description: '火山引擎智能体开发框架', + + theme: defaultTheme({ + logo: '/images/VEADK.png', + + navbar: ['/', '/introduction'], + + sidebar: ['introduction', 'installation', 'get-started', 'agent', 'memory', 'knowledgebase', 'tracing', 'evaluation', 'deploy', 'cli'] + }), + + bundler: viteBundler(), +}) diff --git a/docs/docs/.vuepress/public/images/VEADK.png b/docs/docs/.vuepress/public/images/VEADK.png new file mode 100644 index 0000000000000000000000000000000000000000..cabc404a21ba6f7457690b6692f481b3b7e6eafe GIT binary patch literal 107467 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 NeO8vP`eYLH{{Y2Rdtv|p literal 0 HcmV?d00001 diff --git a/docs/docs/README.md b/docs/docs/README.md new file mode 100644 index 00000000..b027fc24 --- /dev/null +++ b/docs/docs/README.md @@ -0,0 +1,29 @@ +--- +home: true +title: VeADK +heroImage: /images/VEADK.png +actions: + - text: 使用文档 + link: /introduction.html + type: primary + + - text: Github + link: https://github.com/volcengine/veadk-python + type: secondary + +features: + - title: 更丰富的内置工具 + details: Builtin工具,例如侧重头条、抖音搜索的web_search等;MCP工具,例如飞书Lark、PromptPilot等 + - title: 更灵活的功能扩展 + details: 提供Agent各类组件的基础实现,通过插件方式灵活扩展 + - title: 更完备的数据管理 + details: 运行时数据无缝衔接APMPlus、Cozeloop;运行时数据无痛落地为测试数据集文件,可直接在Cozeloop中进行测试 + - title: 更强大的知识管理 + details: 知识库支持火山引擎各类现有数据库,例如关系型数据库、键值数据库等 + - title: 更科学的结果评测 + details: 提供不确定性Tools(例如搜索类)场景下的测评解决方案,弥补传统仅根据输入输出进行评测而导致评测结果不符合预期的问题 + - title: 更友好的最佳实践 + details: 贴近实际工业场景的Samples,例如各类数据库、数据湖读写 + +footer: Apache 2.0 Licensed | Copyright © 2025-present Beijing Volcano Engine Technology Co., Ltd. +--- diff --git a/docs/docs/agent.md b/docs/docs/agent.md new file mode 100644 index 00000000..70b9d5e1 --- /dev/null +++ b/docs/docs/agent.md @@ -0,0 +1,34 @@ +# 智能体 + +## 属性 + +Agent中主要包括如下属性: + +| 属性 | 类型 | 说明 | +| --- | --- | --- | +| name | str | Agent的名称,即标识符 | +| description | str | Agent的描述,后续会被构建为系统提示词的一部分;也被用来在A2A协议中进行Agent挑选 | +| instruction | str | Agent中内置模型的系统提示词 | +| tools | list | Function call中的工具列表,既可以是本地工具,也可以是MCP工具 | +| sub_agents | list | 子Agent列表,用于多Agent之间交互 | +| long_term_memory | Vector database | 长期记忆,后端通常为一个向量数据库(Vector database),能够检索 | +| knowledgebase | Vector database | 知识库,后端通常为一个向量数据库(Vector database),能够检索 | +| tracers | list | 追踪器列表,能够定义不同的追踪方式,并在Agent执行完毕后对整体Tracing信息保存至本地 | + +## 运行 + +在生产环境中,我们推荐您使用`Runner`来进行多租户服务: + +```python +from veadk import Agent, Runner +from veadk.memory.short_term_memory import ShortTermMemory + +# Define runner config +APP_NAME = "" +USER_ID = "" +SESSION_ID = "" + +agent = Agent() +runner = Runner(agent=agent, short_term_memory=ShortTermMemory()) +response = await runner.run(messages=prompt, session_id=session_id) +``` diff --git a/docs/docs/cli.md b/docs/docs/cli.md new file mode 100644 index 00000000..253adddd --- /dev/null +++ b/docs/docs/cli.md @@ -0,0 +1,17 @@ +# 命令行工具Vego + +## 提示词优化 + +主要用来优化系统提示词(System prompt)。 + +```bash +vego prompt +``` + +## 一键上云部署 + +可直接将本地项目部署到火山引擎FaaS平台上: + +```bash +vego deploy +``` \ No newline at end of file diff --git a/docs/docs/deploy.md b/docs/docs/deploy.md new file mode 100644 index 00000000..32b0a218 --- /dev/null +++ b/docs/docs/deploy.md @@ -0,0 +1,25 @@ +# 部署上云 + +## Cloud Agent Engine + +通过定义一个云引擎,能够将本地Agent工程直接部署至VeFaaS中,并自动启动一个A2A Server。 + +```python +engine = CloudAgentEngine() +cloud_app = engine.deploy(path=..., name=...) +``` + +## Cloud App + +部署完成后,将返回一个`CloudApp`实例,代表云应用,主要功能包括: + +- 发起一个远程会话创建请求 +- 发起一个Agent执行任务/对话任务 + +```python +# 创建远程会话 +cloud_app.create_session(user_id=..., session_id=...) + +# 发起任务 +cloud_app.invoke(user_id=..., session_id=..., message=...) +``` \ No newline at end of file diff --git a/docs/docs/evaluation.md b/docs/docs/evaluation.md new file mode 100644 index 00000000..4c0a62b5 --- /dev/null +++ b/docs/docs/evaluation.md @@ -0,0 +1,72 @@ +# 评测 + +VeADK构建一套完整的自动化Evaluation流程,主要能力包括: + +- 运行时数据采集:通过collect_runtime_data开启 +- 测试集文件生成:开启后自动dump到本地 +- 评测:通过不同的evaluator或adk eval命令进行测试 +- 反馈优化:自动根据评测结果(score reason等属性)优化prompts + +## 运行时数据采集 + +```python +from veadk.evaluation import EvalSetRecorder + +# 在希望进行数据dump处初始化一个EvalSetRecorder +eval_set_recorder = EvalSetRecorder(session_service, eval_set_id) + +# dump数据,为Json格式 +dump_path = await eval_set_recorder.dump(app_name, user_id, session_id) +``` + +## 评测集文件 + +评测集文件格式兼容Google Evaluation,详见[评测集文件格式](https://google.github.io/adk-docs/evaluate/#how-evaluation-works-with-the-adk)。 + +评测集本地保存过程中,均考虑当前会话。下面是一些概念对齐: + +- `test_case`:所有对话轮次 +- `invocation`:一轮对话 + +## 评测器 + +当前VeADK支持Deepeval评测器,通过如下方式定义: + +```python +from veadk.evaluation.deepeval_evaluator import DeepevalEvaluator + +# 当然,你还可以传入`judge_model`等相关信息 +evaluator = DeepevalEvaluator() +``` + +## 评测方法 + +启动标准的评测接口: + +```python +await evaluator.eval(eval_set_file_path=dump_path, metrics=metrics) +``` + +其中,输入: + +- `eval_set_file_path`:评测集文件路径 +- `metrics`:评测指标 + +不同的评测指标在不同测试框架中可能不同。 + +## 数据上报 + +评测结果可以自动上报至火山引擎的VMP平台,只需要在定义评估器的时候传入Prometheus pushgateway的相关参数: + +```python +from veadk.evaluation.utils.prometheus import PrometheusPushgatewayConfig + +# 可以自动从环境变量中读取相关配置 +prometheus_config = PrometheusPushgatewayConfig() + +# 传入到评估器中 +evaluator = DeepevalEvaluator( + ..., + prometheus_config=prometheus_config, +) +``` \ No newline at end of file diff --git a/docs/docs/get-started.md b/docs/docs/get-started.md new file mode 100644 index 00000000..b34d6dab --- /dev/null +++ b/docs/docs/get-started.md @@ -0,0 +1,73 @@ +# 快速开始 + +## 最简Agent + +当你设置完环境变量后,你可以创建一个最简单的聊天智能体: + +```python +from veadk import Agent + +agent = Agent() +``` + +由于某些操作是异步的,因此Agent的运行需要在异步环境中进行: + +::: warning +我们在`Agent`类中提供的`run`方法仅为了本地测试和开发使用,由于该函数位于一个异步与同步函数共存的运行环境,可能会产生不可预知的异常。 + +因此不建议在生产环境中使用。 +::: + +```python +import asyncio + +prompt = "Hello!" +res = asyncio.run(agent.run(prompt)) +``` + +## 工具调用 + +你可以给Agent传入`tools`参数,指定想要调用的工具: + +```python +from veadk import Agent + +agent = Agent( + tools=[...] # fill with tools +) +``` + +### 内置工具 + +VeADK中集成了多个火山引擎提供的工具: + +- Web search +- Web scraper 邀测,代码见MCP server +- Vesearch +- Lark + +此外,还提供多种沙箱工具: + +- Computer sandbox +- Code sandbox +- Mobile sandbox + +### MCP工具 + +采用如下方式定义一个MCP工具: + +```python +# 以飞书Lark MCP工具为例 +lark_tools = MCPToolset( + connection_params=StdioServerParameters( + command="npx", + args=[...], + errlog=None, + ), +) +``` + +### 系统工具 + +- `load_knowledgebase`:检索知识库工具,在你给Agent传入`knowledgebase`参数后,将会自动挂载`load_knowledgebase_tool`工具,Agent将在运行时自主决定何时查询知识库; +- `load_memory`:检索长期记忆工具,在你给Agent传入`memory`参数后,将会自动挂载`load_memory_tool`工具,Agent将在运行时自主决定何时查询长期记忆。 diff --git a/docs/docs/installation.md b/docs/docs/installation.md new file mode 100644 index 00000000..20ed2033 --- /dev/null +++ b/docs/docs/installation.md @@ -0,0 +1,179 @@ +# 安装 + +本章主要介绍VeADK的安装方法和基本配置项。 + +## 环境 + +### 从源码构建 + +本项目使用`uv`进行构建([安装`uv`](https://docs.astral.sh/uv/getting-started/installation/))。 + +```bash +# clone repo first +git clone https://github.com/volcengine/veadk-python.git + +cd veadk-python + +uv venv --python 3.10 + +# only install necessary requirements +uv sync + +# or, install extra requirements +# uv sync --extra database +# uv sync --extra eval +# uv sync --extra cli + +# or, directly install all requirements +# uv sync --all-extras + +# install veadk-python with editable mode +uv pip install -e . +``` + +### PyPI + +本项目近期将发布在PyPI上,届时你可以使用`pip`进行安装。 + +```bash +pip install veadk-python +``` + +## 配置 + +VeADK在仓库中提供了一个`config.yaml.example`文件,你可以根据这个文件来创建你的配置文件。在样例文件中,我们标明了一个Agent运行的必需配置和可选(optional)配置。 + +### 说明 + +想要运行一个Agent,你需要进行基础配置。在你的项目根目录中创建一个`config.yaml`文件,并填入如下信息: + +```yaml +# config.yaml +model: + provider: # 如果你使用的是方舟大模型,请在这里填入`openai` + name: + api_base: + api_key: +``` + +你创建的配置文件名称我们推荐为`config.yaml`,因为VeADK中的配置模块将会自动寻找并加载这个文件中的配置为环境变量,可以帮你省去填写配置项的时间。完整的配置项你可以参考[`config.yaml.example`文件](https://github.com/volcengine/veadk-python/blob/main/config.yaml.example)。 + +下面是详细的配置说明: + +```yaml +model: + # [required] for running agent + agent: + provider: openai + name: doubao-1-5-pro-256k-250115 + api_base: https://ark.cn-beijing.volces.com/api/v3/ + api_key: + # [optional] for llm-as-a-judge a evaluation + judge: + name: doubao-1-5-pro-256k-250115 + api_base: https://ark.cn-beijing.volces.com/api/v3/ + api_key: + # [optional] for knowledgebase + embedding: + name: doubao-embedding-text-240715 + dim: 2560 + api_base: https://ark.cn-beijing.volces.com/api/v3/embeddings + api_key: + +volcengine: + # [optional] for Viking DB and `web_search` tool + ak: + sk: + +tool: + # [optional] https://console.volcengine.com/ask-echo/my-agent + vesearch: + endpoint: # `bot_id` + api_key: + # [optional] + web_scraper: + endpoint: + api_key: # `token` + # [optional] https://open.larkoffice.com/app + lark: + endpoint: # `app_id` + api_key: # `app_secret` + token: # `user_token` + + +observability: + # [optional] for exporting tracing data to Volcengine CozeLoop and APMPlus platform + opentelemetry: + apmplus: + endpoint: http://apmplus-cn-beijing.volces.com:4317 + api_key: + service_name: + cozeloop: + endpoint: https://api.coze.cn/v1/loop/opentelemetry/v1/traces + api_key: + service_name: # Coze loop `space_id` + # [optional] for exporting evaluation data to Volcengine VMP (https://console.volcengine.com/prometheus) + prometheus: + pushgateway_url: + username: + password: + + +database: + # [optional] + opensearch: + host: # should without `http://` or `https://` + port: 9200 # default OpenSearch port + username: + password: + # [optional] + mysql: + host: + user: + password: + database: + charset: utf8 + # [optional] + redis: + host: + port: 6379 # default Redis port + password: + db: 0 # default + # [optional] for knowledgebase (https://console.volcengine.com/vikingdb) + viking: + project: # user project in Volcengine Viking DB + region: cn-beijing + # [optional] for knowledgebase with viking database + tos: + endpoint: tos-cn-beijing.volces.com # default Volcengine TOS endpoint + region: cn-beijing # default Volcengine TOS region + bucket: +``` + +### 管理 + +为管理繁多的配置项,我们提供了根据`config.yaml`自动化的配置管理方案:你在配置文件中的所有配置将会根据层级,自动转为大写并使用下划线连接,统一配置成为运行时的环境变量。 + +例如下面的配置项: + +```yaml +model: + name: + api_key: + api_base: + base_a: + base_b: + ... +``` + +将会被转为如下几条环境变量: + +```bash +MODEL_NAME= +MODEL_API_KEY= +MODEL_API_BASE_BASE_A= +MODEL_API_BASE_BASE_B= +... +``` + +VeADK中提供了一个`getenv`方法来读取相关配置,你不必每次手动传入某个类的参数。 diff --git a/docs/docs/introduction.md b/docs/docs/introduction.md new file mode 100644 index 00000000..8077457e --- /dev/null +++ b/docs/docs/introduction.md @@ -0,0 +1,53 @@ +# 介绍 + +## 关于VeADK + +VeADK——Volcengine Agent Development Kit是火山引擎智能体开发框架,其提供一套面向Agent智能体开发、上云部署、评测与优化的全流程开发者框架。 + +相比于现有智能体开发框架,VeADK主要优势在于和火山引擎各产品能力聚合: + +### 更丰富的内置工具 + +内置工具主要包括头条、抖音搜索的`web_search`工具,飞书Lark等工具 + +### 更灵活的功能扩展 + +提供Agent中各类组件的基础实现,支持灵活扩展 + +### 更完备的数据管理 + +运行时数据无缝衔接APMPlus、Cozeloop等云观测平台,运行时数据直接落地为测试数据集文件 + +### 更强大的知识管理 + +知识库支持火山引擎各类现有数据库,例如关系型数据库、键值数据库等,此外支持Viking DB等火山引擎云知识库方案 + +### 更友好的最佳实践 + +提供贴近实际工业场景的各类开发和部署用例,包括各类数据库、数据湖读写,以及云部署项目模板等 + +## 整体方案 + +VeADK中构建智能体依赖`Agent`,`Runner`等几个关键概念 + +### Agent + +`Agent`是智能体的主体,负责处理用户输入,基于大模型,调用不同的组件,最终返回给用户结果。 + +### Runner + +`Runner`是智能体的执行器,负责智能体运行时的生命周期管理。 + +在多租场景下,`Runner`通过三个属性来确定资源空间: + +- `app_name`:应用名称 +- `user_id`:用户ID +- `session_id`:某个用户某次会话的ID + +Agent的组件会利用这三个属性来构建某些数据的索引。例如,知识库组件将会根据`app_name`与`user_id`来进行空间数据的索引。 + +## Milestone + +| 时间节点 | 事件 | +| --- | --- | +| 2025/08/01 | V0.1.0版本发布 | diff --git a/docs/docs/knowledgebase.md b/docs/docs/knowledgebase.md new file mode 100644 index 00000000..50d44e10 --- /dev/null +++ b/docs/docs/knowledgebase.md @@ -0,0 +1,37 @@ +# 知识库 + +自建知识库与使用火山引擎现有知识库的最大区别是:知识文档的分片和数据库维护。 + + +## 自建知识库 + +自建知识库需要开发者本地进行知识文档的切片,并维护一个数据库(或云数据库)来存储知识文档。 + +你可以通过如下方式定义一个自建知识库: + +```python +from veadk.knowledgebase.knowledgebase import KnowledgeBase + +knowledgebase = KnowledgeBase(backend="opensearch") +knowledgebase.add( + knowledgebase_data, app_name=app_name, user_id=user_id, session_id=session_id +) # 这里的数据应当是已切片完成的格式,定义为`list[str]` + +# 将知识库挂载至Agent +agent = Agent(knowledgebase=knowledgebase) +``` + +## 火山知识库 + +VeADK中提供了VikingDB支持的数据库,支持用户直接上传本地文档,文档切片和存储维护均在云上自动执行: + +```python +from veadk.knowledgebase.knowledgebase import KnowledgeBase + +FILE_PATH = ... + +knowledgebase = KnowledgeBase(backend="viking") +knowledgebase.add( + FILE_PATH, app_name=app_name, user_id=user_id, session_id=session_id +) +``` \ No newline at end of file diff --git a/docs/docs/memory.md b/docs/docs/memory.md new file mode 100644 index 00000000..dae7224f --- /dev/null +++ b/docs/docs/memory.md @@ -0,0 +1,105 @@ +# 记忆 + +在VeADK中,记忆(Memory)能够为Agent提供上下文支撑,主要分为短期记忆和长期记忆: + +- **短期记忆(Short-term memory)**:单个会话内的对话记录 +- **长期记忆(Long-term memory)**:多个会话内的对话记录,具备跨session的能力 + +## 短期记忆 + +通过以下方式定义一个短期记忆(在不进行特殊指定的情况下,记忆默认将会在内存中存储): + +```python +from veadk.memory.short_term_memory import ShortTermMemory + +# 创建短期记忆 +short_term_memory = ShortTermMemory() + +# 在短期记忆中创建一个会话 +await short_term_memory.create_session( + app_name=app_name, user_id=user_id, session_id=session_id + ) + +# 获取会话服务 +session_service = short_term_memory.session_service +``` + +为持久化您的短期记忆,VeADK还支持通过传入`backend`参数,将记忆保存在数据库中: + +```python +from veadk.memory.short_term_memory import ShortTermMemory + +# 创建短期记忆,在数据库中存储 +short_term_memory = ShortTermMemory( + backend="database", + db_url="...", # 当`db_url`为空时,将会启动一个本地SQLite数据库 +) +``` + +其中,`db_url`遵循SQLAlchemy的[连接字符串格式](),您可以根据您的数据库类型进行配置。 + +短期记忆中的backend字段定义如下: + +| backend | 说明 | +| --- | --- | +| local | 内存存储 | +| database | 数据库,需同时传入`db_url`,否则将会启动一个本地SQLite数据库 | +| mysql | MySQL数据库,可自动读取环境变量拼接MySQL格式的db_url | + +## 短期记忆的优化 + +持久化的短期记忆可能过长,占满某些模型的上下文。为解决短期记忆过长的问题,VeADK中提供了记忆优化器来进行短期记忆的优化,通过在短期记忆类中传入`enable_memory_optimization`参数,开启记忆优化器。 + +```python +from veadk.memory.short_term_memory import ShortTermMemory + +short_term_memory = ShortTermMemory( + backend="database", + db_url="...", + enable_memory_optimization=True, +) +``` + +开启后,短期记忆模块将会初始化一个`ShortTermMemoryProcessor`模块,在记忆加载后进行相关信息抽取等处理。未来,我们将支持传入自定义的记忆优化器,并计划支持如下记忆优化时机: + +- 记忆存储前(在线优化) +- 记忆存储后(离线优化) +- 记忆加载后(在线优化) + +并且提供如下维度的优化方法: + +- 时间维度 +- 信息维度 +- 自定义维度(例如结构化信息抽取) + +## 长期记忆 + +长期记忆通常存储在数据库中,通过如下方式定义一个长期记忆: + +```python +from veadk.memory.long_term_memory import LongTermMemory + +long_term_memory = LongTermMemory(backend=...) # 默认的数据库为`opensearch` + +# 装配到Agent中,同时会自动挂载`load_memory_tool`工具 +agent = Agent(long_term_memory=long_term_memory) + +# 运行时可选将某个session存储到长期记忆中 +session = await session_service.get_session( + app_name=app_name, + user_id=user_id, + session_id=session_id, +) # 获取当前session +await self.long_term_memory.add_session_to_memory(session) # 添加 +``` + +长期记忆中的backend字段定义如下: + +| backend | 说明 | +| --- | --- | +| local | GIGO模式的内存存储,不具备向量检索功能,仅用于测试 | +| viking | 火山引擎Viking Memory服务 | +| opensearch | OpenSearch数据库 | +| redis | Redis数据库,但不具备向量搜索功能 | +| mysql | MySQL数据库,但不具备向量搜索功能 | + diff --git a/docs/docs/tracing.md b/docs/docs/tracing.md new file mode 100644 index 00000000..2ec57ab5 --- /dev/null +++ b/docs/docs/tracing.md @@ -0,0 +1,41 @@ +# 可观测 + +VeADK中的可观测(Tracing)能力能够记录运行时关键节点的信息,并且支持无缝上报至火山引擎云平台(例如CozeLoop、APMPlus等)。 + +## 本地观测 + +你可以通过如下方式开启可观测,并且将运行时数据保存至本地: + +```python +from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer + +tracer = OpentelemetryTracer(exporters=exporters) +agent = Agent(tracers=[tracer]) + +# ... run agent ... + +# the data will be automatically saved to local +print(f"Tracing file path: {tracer._trace_file_path}") +``` + +## 火山云观测 + +通过设置不同的`exporter`上报器,可以将观测数据上传到对应平台: + +- CozeLoop平台:`CozeLoopExporter` +- APMPlus平台: `APMPlusExporter` + +使用方法如下: + +```python +from veadk.tracing.telemetry.opentelemetry_tracer import OpentelemetryTracer + +exporters = [CozeloopExporter(), APMPlusExporter()] +tracer = OpentelemetryTracer(exporters=exporters) +agent = Agent(tracers=[tracer]) + +# ... run agent ... + +# the data will be automatically saved to local +print(f"Tracing file path: {tracer._trace_file_path}") +``` diff --git a/docs/package-lock.json b/docs/package-lock.json new file mode 100644 index 00000000..0f2ff558 --- /dev/null +++ b/docs/package-lock.json @@ -0,0 +1,4410 @@ +{ + "name": "veadk-python-docs", + "version": "0.0.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "veadk-python-docs", + "version": "0.0.1", + "license": "MIT", + "devDependencies": { + "@vuepress/bundler-vite": "2.0.0-rc.20", + "@vuepress/theme-default": "2.0.0-rc.88", + "sass-embedded": "^1.86.0", + "vue": "^3.5.13", + "vuepress": "^2.0.0-rc.20" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.0", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.28.0.tgz", + "integrity": "sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.1", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.28.1.tgz", + "integrity": "sha512-x0LvFTekgSX+83TI28Y9wYPUfzrnl2aT5+5QLnO6v7mSJYtEEevuDRN0F0uSHRk1G1IWZC43o00Y0xDDrpBGPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bufbuild/protobuf": { + "version": "2.6.0", + "resolved": "https://registry.npmmirror.com/@bufbuild/protobuf/-/protobuf-2.6.0.tgz", + "integrity": "sha512-6cuonJVNOIL7lTj5zgo/Rc2bKAo4/GvN+rKCrUj7GdEHRzCk8zKOfFwUsL9nAVk5rSIsRmlgcpLzTRysopEeeg==", + "dev": true, + "license": "(Apache-2.0 AND BSD-3-Clause)" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", + "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.24.2.tgz", + "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", + "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.24.2.tgz", + "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", + "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", + "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", + "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", + "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", + "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", + "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", + "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", + "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", + "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", + "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", + "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", + "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", + "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", + "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", + "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", + "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", + "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", + "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", + "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", + "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", + "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.4.tgz", + "integrity": "sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@mdit-vue/plugin-component": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-component/-/plugin-component-2.1.4.tgz", + "integrity": "sha512-fiLbwcaE6gZE4c8Mkdkc4X38ltXh/EdnuPE1hepFT2dLiW6I4X8ho2Wq7nhYuT8RmV4OKlCFENwCuXlKcpV/sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/markdown-it": "^14.1.2", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-frontmatter": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-frontmatter/-/plugin-frontmatter-2.1.4.tgz", + "integrity": "sha512-mOlavV176njnozIf0UZGFYymmQ2LK5S1rjrbJ1uGz4Df59tu0DQntdE7YZXqmJJA9MiSx7ViCTUQCNPKg7R8Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit-vue/types": "2.1.4", + "@types/markdown-it": "^14.1.2", + "gray-matter": "^4.0.3", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-headers": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-headers/-/plugin-headers-2.1.4.tgz", + "integrity": "sha512-tyZwGZu2mYkNSqigFP1CK3aZYxuYwrqcrIh8ljd8tfD1UDPJkAbQeayq62U572po2IuWVB1BqIG8JIXp5POOTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit-vue/shared": "2.1.4", + "@mdit-vue/types": "2.1.4", + "@types/markdown-it": "^14.1.2", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-sfc": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-sfc/-/plugin-sfc-2.1.4.tgz", + "integrity": "sha512-oqAlMulkz280xUJIkormzp6Ps0x5WULZrwRivylWJWDEyVAFCj5VgR3Dx6CP2jdgyuPXwW3+gh2Kzw+Xe+kEIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit-vue/types": "2.1.4", + "@types/markdown-it": "^14.1.2", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-title": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-title/-/plugin-title-2.1.4.tgz", + "integrity": "sha512-uuF24gJvvLVIWG/VBtCDRqMndfd5JzOXoBoHPdKKLk3PA4P84dsB0u0NnnBUEl/YBOumdCotasn7OfFMmco9uQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit-vue/shared": "2.1.4", + "@mdit-vue/types": "2.1.4", + "@types/markdown-it": "^14.1.2", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-toc": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-toc/-/plugin-toc-2.1.4.tgz", + "integrity": "sha512-vvOU7u6aNmvPwKXzmoHion1sv4zChBp20LDpSHlRlXc3btLwdYIA0DR+UiO5YeyLUAO0XSHQKBpsIWi57K9/3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit-vue/shared": "2.1.4", + "@mdit-vue/types": "2.1.4", + "@types/markdown-it": "^14.1.2", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/shared": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@mdit-vue/shared/-/shared-2.1.4.tgz", + "integrity": "sha512-Axd8g2iKQTMuHcPXZH5JY3hbSMeLyoeu0ftdgMrjuPzHpJnWiPSAnA0dAx5NQFQqZkXHhyIrAssLSrOWjFmPKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit-vue/types": "2.1.4", + "@types/markdown-it": "^14.1.2", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/types": { + "version": "2.1.4", + "resolved": "https://registry.npmmirror.com/@mdit-vue/types/-/types-2.1.4.tgz", + "integrity": "sha512-QiGNZslz+zXUs2X8D11UQhB4KAMZ0DZghvYxa7+1B+VMLcDtz//XHpWbcuexjzE3kBXSxIUTPH3eSQCa0puZHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@mdit/helper": { + "version": "0.16.0", + "resolved": "https://registry.npmmirror.com/@mdit/helper/-/helper-0.16.0.tgz", + "integrity": "sha512-vUmLSZp+7UXJIYxOya9BkD0OgjgQ+6gpX+htEnc4SKaDPx4S1E7h5TE6Wy4E9Gm/JhkMHoD6TdeoQwrN/I9cLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/markdown-it": "^14.1.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-alert": { + "version": "0.16.0", + "resolved": "https://registry.npmmirror.com/@mdit/plugin-alert/-/plugin-alert-0.16.0.tgz", + "integrity": "sha512-T+0BUVhKjp+Azp6sNdDbiZwydDIcZP6/NAg9uivPvcsDnI9u4lMRCdXI090xNJOdhHO3l/lOsoO//s+++MJNtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/markdown-it": "^14.1.2" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-container": { + "version": "0.16.0", + "resolved": "https://registry.npmmirror.com/@mdit/plugin-container/-/plugin-container-0.16.0.tgz", + "integrity": "sha512-NCsyEiOmoJvXSEVJSY6vaEcvbE11sciRSx5qXBvQQZxUYGYsB+ObYSFVZDFPezsEN35X3b07rurLx8P2Mi9DgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/markdown-it": "^14.1.2" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@mdit/plugin-tab": { + "version": "0.16.0", + "resolved": "https://registry.npmmirror.com/@mdit/plugin-tab/-/plugin-tab-0.16.0.tgz", + "integrity": "sha512-c+/oT319DIWaMHyx5chueW8cy4pjC7E09QOg3qp86abTCdG2ljGLOlMAQbst5i/iH684QG/i8EJpB4oUeQdhkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit/helper": "0.16.0", + "@types/markdown-it": "^14.1.2" + }, + "peerDependencies": { + "markdown-it": "^14.1.0" + }, + "peerDependenciesMeta": { + "markdown-it": { + "optional": true + } + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.45.1.tgz", + "integrity": "sha512-NEySIFvMY0ZQO+utJkgoMiCAjMrGvnbDLHvcmlA33UXJpYBCvlBEbMMtV837uCkS+plG2umfhn0T5mMAxGrlRA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.45.1.tgz", + "integrity": "sha512-ujQ+sMXJkg4LRJaYreaVx7Z/VMgBBd89wGS4qMrdtfUFZ+TSY5Rs9asgjitLwzeIbhwdEhyj29zhst3L1lKsRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.45.1.tgz", + "integrity": "sha512-FSncqHvqTm3lC6Y13xncsdOYfxGSLnP+73k815EfNmpewPs+EyM49haPS105Rh4aF5mJKywk9X0ogzLXZzN9lA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.45.1.tgz", + "integrity": "sha512-2/vVn/husP5XI7Fsf/RlhDaQJ7x9zjvC81anIVbr4b/f0xtSmXQTFcGIQ/B1cXIYM6h2nAhJkdMHTnD7OtQ9Og==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.45.1.tgz", + "integrity": "sha512-4g1kaDxQItZsrkVTdYQ0bxu4ZIQ32cotoQbmsAnW1jAE4XCMbcBPDirX5fyUzdhVCKgPcrwWuucI8yrVRBw2+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.45.1.tgz", + "integrity": "sha512-L/6JsfiL74i3uK1Ti2ZFSNsp5NMiM4/kbbGEcOCps99aZx3g8SJMO1/9Y0n/qKlWZfn6sScf98lEOUe2mBvW9A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.45.1.tgz", + "integrity": "sha512-RkdOTu2jK7brlu+ZwjMIZfdV2sSYHK2qR08FUWcIoqJC2eywHbXr0L8T/pONFwkGukQqERDheaGTeedG+rra6Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.45.1.tgz", + "integrity": "sha512-3kJ8pgfBt6CIIr1o+HQA7OZ9mp/zDk3ctekGl9qn/pRBgrRgfwiffaUmqioUGN9hv0OHv2gxmvdKOkARCtRb8Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.45.1.tgz", + "integrity": "sha512-k3dOKCfIVixWjG7OXTCOmDfJj3vbdhN0QYEqB+OuGArOChek22hn7Uy5A/gTDNAcCy5v2YcXRJ/Qcnm4/ma1xw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.45.1.tgz", + "integrity": "sha512-PmI1vxQetnM58ZmDFl9/Uk2lpBBby6B6rF4muJc65uZbxCs0EA7hhKCk2PKlmZKuyVSHAyIw3+/SiuMLxKxWog==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.45.1.tgz", + "integrity": "sha512-9UmI0VzGmNJ28ibHW2GpE2nF0PBQqsyiS4kcJ5vK+wuwGnV5RlqdczVocDSUfGX/Na7/XINRVoUgJyFIgipoRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.45.1.tgz", + "integrity": "sha512-7nR2KY8oEOUTD3pBAxIBBbZr0U7U+R9HDTPNy+5nVVHDXI4ikYniH1oxQz9VoB5PbBU1CZuDGHkLJkd3zLMWsg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.45.1.tgz", + "integrity": "sha512-nlcl3jgUultKROfZijKjRQLUu9Ma0PeNv/VFHkZiKbXTBQXhpytS8CIj5/NfBeECZtY2FJQubm6ltIxm/ftxpw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.45.1.tgz", + "integrity": "sha512-HJV65KLS51rW0VY6rvZkiieiBnurSzpzore1bMKAhunQiECPuxsROvyeaot/tcK3A3aGnI+qTHqisrpSgQrpgA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.45.1.tgz", + "integrity": "sha512-NITBOCv3Qqc6hhwFt7jLV78VEO/il4YcBzoMGGNxznLgRQf43VQDae0aAzKiBeEPIxnDrACiMgbqjuihx08OOw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.45.1.tgz", + "integrity": "sha512-+E/lYl6qu1zqgPEnTrs4WysQtvc/Sh4fC2nByfFExqgYrqkKWp1tWIbe+ELhixnenSpBbLXNi6vbEEJ8M7fiHw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.45.1.tgz", + "integrity": "sha512-a6WIAp89p3kpNoYStITT9RbTbTnqarU7D8N8F2CV+4Cl9fwCOZraLVuVFvlpsW0SbIiYtEnhCZBPLoNdRkjQFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.45.1.tgz", + "integrity": "sha512-T5Bi/NS3fQiJeYdGvRpTAP5P02kqSOpqiopwhj0uaXB6nzs5JVi2XMJb18JUSKhCOX8+UE1UKQufyD6Or48dJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.45.1.tgz", + "integrity": "sha512-lxV2Pako3ujjuUe9jiU3/s7KSrDfH6IgTSQOnDWr9aJ92YsFd7EurmClK0ly/t8dzMkDtd04g60WX6yl0sGfdw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.45.1.tgz", + "integrity": "sha512-M/fKi4sasCdM8i0aWJjCSFm2qEnYRR8AMLG2kxp6wD13+tMGA4Z1tVAuHkNRjud5SW2EM3naLuK35w9twvf6aA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/merge-streams/-/merge-streams-4.0.0.tgz", + "integrity": "sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmmirror.com/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "11.0.4", + "resolved": "https://registry.npmmirror.com/@types/fs-extra/-/fs-extra-11.0.4.tgz", + "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/jsonfile": "*", + "@types/node": "*" + } + }, + "node_modules/@types/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/@types/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-UP28RddqY8xcU0SCEp9YKutQICXpaAq9N8U2klqF5hegGha7KzTOL8EdhIIV3bOSGBzjEpN9bU/d+nNZBdJYVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsonfile": { + "version": "6.1.4", + "resolved": "https://registry.npmmirror.com/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/@types/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/markdown-it": { + "version": "14.1.2", + "resolved": "https://registry.npmmirror.com/@types/markdown-it/-/markdown-it-14.1.2.tgz", + "integrity": "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/linkify-it": "^5", + "@types/mdurl": "^2" + } + }, + "node_modules/@types/markdown-it-emoji": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/@types/markdown-it-emoji/-/markdown-it-emoji-3.0.1.tgz", + "integrity": "sha512-cz1j8R35XivBqq9mwnsrP2fsz2yicLhB8+PDtuVkKOExwEdsVBNI+ROL3sbhtR5occRZ66vT0QnwFZCqdjf3pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/markdown-it": "^14" + } + }, + "node_modules/@types/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/@types/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.0.14", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.0.14.tgz", + "integrity": "sha512-4zXMWD91vBLGRtHK3YbIoFMia+1nqEz72coM42C5ETjnNCa/heoj7NT1G67iAfOqMmcfhuCZ4uNpyz8EjlAejw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.8.0" + } + }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmmirror.com/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.2.4", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz", + "integrity": "sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.17.tgz", + "integrity": "sha512-Xe+AittLbAyV0pabcN7cP7/BenRBNcteM4aSDCtRvGw0d9OL+HG1u/XHLY/kt1q4fyMeZYXyIYrsHuPSiDPosA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@vue/shared": "3.5.17", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.17.tgz", + "integrity": "sha512-+2UgfLKoaNLhgfhV5Ihnk6wB4ljyW1/7wUIog2puUqajiC29Lp5R/IKDdkebh9jTbTogTbsgB+OY9cEWzG95JQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.17", + "@vue/shared": "3.5.17" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.17.tgz", + "integrity": "sha512-rQQxbRJMgTqwRugtjw0cnyQv9cP4/4BxWfTdRBkqsTfLOHWykLzbOc3C4GGzAmdMDxhzU/1Ija5bTjMVrddqww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.5", + "@vue/compiler-core": "3.5.17", + "@vue/compiler-dom": "3.5.17", + "@vue/compiler-ssr": "3.5.17", + "@vue/shared": "3.5.17", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.17", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.17.tgz", + "integrity": "sha512-hkDbA0Q20ZzGgpj5uZjb9rBzQtIHLS78mMilwrlpWk2Ep37DYntUz0PonQ6kr113vfOEdM+zTBuJDaceNIW0tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.17", + "@vue/shared": "3.5.17" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.7.7", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-7.7.7.tgz", + "integrity": "sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.7" + } + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.7", + "resolved": "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.7.7.tgz", + "integrity": "sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.7", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.7", + "resolved": "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.7.7.tgz", + "integrity": "sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.17.tgz", + "integrity": "sha512-l/rmw2STIscWi7SNJp708FK4Kofs97zc/5aEPQh4bOsReD/8ICuBcEmS7KGwDj5ODQLYWVN2lNibKJL1z5b+Lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.17" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.17.tgz", + "integrity": "sha512-QQLXa20dHg1R0ri4bjKeGFKEkJA7MMBxrKo2G+gJikmumRS7PTD4BOU9FKrDQWMKowz7frJJGqBffYMgQYS96Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.17", + "@vue/shared": "3.5.17" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.17.tgz", + "integrity": "sha512-8El0M60TcwZ1QMz4/os2MdlQECgGoVHPuLnQBU3m9h3gdNRW9xRmI8iLS4t/22OQlOE6aJvNNlBiCzPHur4H9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.17", + "@vue/runtime-core": "3.5.17", + "@vue/shared": "3.5.17", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.17.tgz", + "integrity": "sha512-BOHhm8HalujY6lmC3DbqF6uXN/K00uWiEeF22LfEsm9Q93XeJ/plHTepGwf6tqFcF7GA5oGSSAAUock3VvzaCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.17", + "@vue/shared": "3.5.17" + }, + "peerDependencies": { + "vue": "3.5.17" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.17.tgz", + "integrity": "sha512-CabR+UN630VnsJO/jHWYBC1YVXyMq94KKp6iF5MQgZJs5I8cmjw6oVMO1oDbtBkENSHSSn/UadWlW/OAgdmKrg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vuepress/bundler-vite": { + "version": "2.0.0-rc.20", + "resolved": "https://registry.npmmirror.com/@vuepress/bundler-vite/-/bundler-vite-2.0.0-rc.20.tgz", + "integrity": "sha512-h+b/TSWidqGpnZ6YnMYm35HVSZFk+vCjzgR78SuNrQBd7kkTU2EDvd5sPD1LaoRe7QBSWDm288oDoiDNE0hW3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitejs/plugin-vue": "^5.2.1", + "@vuepress/bundlerutils": "2.0.0-rc.20", + "@vuepress/client": "2.0.0-rc.20", + "@vuepress/core": "2.0.0-rc.20", + "@vuepress/shared": "2.0.0-rc.20", + "@vuepress/utils": "2.0.0-rc.20", + "autoprefixer": "^10.4.20", + "connect-history-api-fallback": "^2.0.0", + "postcss": "^8.5.3", + "postcss-load-config": "^6.0.1", + "rollup": "^4.34.8", + "vite": "~6.1.1", + "vue": "^3.5.13", + "vue-router": "^4.5.0" + } + }, + "node_modules/@vuepress/bundlerutils": { + "version": "2.0.0-rc.20", + "resolved": "https://registry.npmmirror.com/@vuepress/bundlerutils/-/bundlerutils-2.0.0-rc.20.tgz", + "integrity": "sha512-5CZExSHx8wdBCUh8d7qPBheMPekDMznQELkL5biXR06gmYjckNkMSsaeP7QVZUzKZDRERFD6yG6a8YV9xAyqeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/client": "2.0.0-rc.20", + "@vuepress/core": "2.0.0-rc.20", + "@vuepress/shared": "2.0.0-rc.20", + "@vuepress/utils": "2.0.0-rc.20", + "vue": "^3.5.13", + "vue-router": "^4.5.0" + } + }, + "node_modules/@vuepress/cli": { + "version": "2.0.0-rc.20", + "resolved": "https://registry.npmmirror.com/@vuepress/cli/-/cli-2.0.0-rc.20.tgz", + "integrity": "sha512-BzKoOYq6R6pwi0jvmzI9Yo6TM3u1BFiU3UCx8+78x6YNlUvz7LG4h5o0BZDsmq+AknGDH37T+vtnIs2vblhwKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/core": "2.0.0-rc.20", + "@vuepress/shared": "2.0.0-rc.20", + "@vuepress/utils": "2.0.0-rc.20", + "cac": "^6.7.14", + "chokidar": "^3.6.0", + "envinfo": "^7.14.0", + "esbuild": "^0.24.2" + }, + "bin": { + "vuepress-cli": "bin/vuepress.js" + } + }, + "node_modules/@vuepress/client": { + "version": "2.0.0-rc.20", + "resolved": "https://registry.npmmirror.com/@vuepress/client/-/client-2.0.0-rc.20.tgz", + "integrity": "sha512-rEye9BmaTK+WHeKv3tFTARhvgkHoai5Ajv9JCRvVCwotBXhLFR9p3us8hxcA94u6ts0TwJxsDzxv/wQQ+9v/PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.7.2", + "@vue/devtools-kit": "^7.7.2", + "@vuepress/shared": "2.0.0-rc.20", + "vue": "^3.5.13", + "vue-router": "^4.5.0" + } + }, + "node_modules/@vuepress/core": { + "version": "2.0.0-rc.20", + "resolved": "https://registry.npmmirror.com/@vuepress/core/-/core-2.0.0-rc.20.tgz", + "integrity": "sha512-FcDvG+i35TGd0JZrOAPEUuXkCiVMdoohF1+rKRuIAknRX+SecaqN1RcrQlUEG1HBX+U2h4UGtOM1QkaLmQb8Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/client": "2.0.0-rc.20", + "@vuepress/markdown": "2.0.0-rc.20", + "@vuepress/shared": "2.0.0-rc.20", + "@vuepress/utils": "2.0.0-rc.20", + "vue": "^3.5.13" + } + }, + "node_modules/@vuepress/helper": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/helper/-/helper-2.0.0-rc.86.tgz", + "integrity": "sha512-gWsH+m0EINYhx+aylFwSlPB9nHAmJwTqBZDttdm7y7GZxVkL5BtI9q+wN0/56UxXkATpVltZq/EfNuLpibr9WQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/shared": "^3.5.13", + "@vueuse/core": "^13.0.0", + "cheerio": "1.0.0", + "fflate": "^0.8.2", + "gray-matter": "^4.0.3", + "vue": "^3.5.13" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/highlighter-helper": { + "version": "2.0.0-rc.85", + "resolved": "https://registry.npmmirror.com/@vuepress/highlighter-helper/-/highlighter-helper-2.0.0-rc.85.tgz", + "integrity": "sha512-l2WpPwWO8XXbatoBvNWgsN1eSaukOIpUSNRsxoea2rEnSg4SDZg0T/G/DKQnO26OzQ0uICtBq4BP6fDJDaJbAw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@vueuse/core": "^13.0.0", + "vuepress": "2.0.0-rc.20" + }, + "peerDependenciesMeta": { + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/@vuepress/markdown": { + "version": "2.0.0-rc.20", + "resolved": "https://registry.npmmirror.com/@vuepress/markdown/-/markdown-2.0.0-rc.20.tgz", + "integrity": "sha512-Q/zsW9Kp1BDsLaTxP6J9sVUtH8FfIYkEb6vMT8HHhNvEcIcoLBQRWMZp0VG3yuYRW5sMzjMU5IPD3BdSi52ayw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit-vue/plugin-component": "^2.1.3", + "@mdit-vue/plugin-frontmatter": "^2.1.3", + "@mdit-vue/plugin-headers": "^2.1.3", + "@mdit-vue/plugin-sfc": "^2.1.3", + "@mdit-vue/plugin-title": "^2.1.3", + "@mdit-vue/plugin-toc": "^2.1.3", + "@mdit-vue/shared": "^2.1.3", + "@mdit-vue/types": "^2.1.0", + "@types/markdown-it": "^14.1.2", + "@types/markdown-it-emoji": "^3.0.1", + "@vuepress/shared": "2.0.0-rc.20", + "@vuepress/utils": "2.0.0-rc.20", + "markdown-it": "^14.1.0", + "markdown-it-anchor": "^9.2.0", + "markdown-it-emoji": "^3.0.0", + "mdurl": "^2.0.0" + } + }, + "node_modules/@vuepress/plugin-active-header-links": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-2.0.0-rc.86.tgz", + "integrity": "sha512-g0Xt8RVquP6UhBPJ3r90oSJoVbjV8RRyW4kW9LZtaNdDwnQqvXL2HdYuv109/rJ4kWrmSX5kRlAhRdZ8OicSXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vueuse/core": "^13.0.0", + "vue": "^3.5.13" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-back-to-top": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-rc.86.tgz", + "integrity": "sha512-5miIaHbDlCKnSQNN8h8sYZdb6bd+NATTMgYiRarNpSsWz8X0xfeM2No+0qKhsN3Jx6K+H9rkpTqZLsMI1k8Mew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86", + "@vueuse/core": "^13.0.0", + "vue": "^3.5.13" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-copy-code": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-copy-code/-/plugin-copy-code-2.0.0-rc.86.tgz", + "integrity": "sha512-FhgzmhqbfrRGeE/ZrC5UOE3a/fMcmwTBXx+E7t+JmHs9r3cbpurrNl2xA9pUyKxqGbIyOYrQrjwmJTOsHZgpWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86", + "@vueuse/core": "^13.0.0", + "vue": "^3.5.13" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-git": { + "version": "2.0.0-rc.88", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-git/-/plugin-git-2.0.0-rc.88.tgz", + "integrity": "sha512-x8omhPx5EEcWcVzZ7tAUpeoefwpFiexnDYYxg1QGZhVCay/yf+SvhNjwqERdxOYy6RQHxSgNRf9O68xvIBfPpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86", + "@vueuse/core": "^13.0.0", + "execa": "^9.5.2", + "vue": "^3.5.13" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-links-check": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-links-check/-/plugin-links-check-2.0.0-rc.86.tgz", + "integrity": "sha512-Pfdql2UzMQ5b2Ad9RIPFvyGetrZeS7egkaJBZagIalyG0dlnroseYGykjUXxlCpH6FzIPpNnPBhUVLn8oJBLSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-markdown-hint": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-markdown-hint/-/plugin-markdown-hint-2.0.0-rc.86.tgz", + "integrity": "sha512-OEzs3XGhWcM/Tj8za9q7I/hQUTTeX0u++5Mv+gdUKWlm84RNN7qZh4/keBU3xI84pAARlx8PoKbdogKSAEfZEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit/plugin-alert": "^0.16.0", + "@mdit/plugin-container": "^0.16.0", + "@types/markdown-it": "^14.1.2", + "@vuepress/helper": "2.0.0-rc.86", + "@vueuse/core": "^13.0.0" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-markdown-tab": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-markdown-tab/-/plugin-markdown-tab-2.0.0-rc.86.tgz", + "integrity": "sha512-dsUp7qHHTL6XKopMJMxj1Owuojf2cWvl0tXgNuDaKqcAlGMnFoNv3KZVBnKdO+nF7n4j9dT9gGZIgz2TBIKPgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit/plugin-tab": "^0.16.0", + "@types/markdown-it": "^14.1.2", + "@vuepress/helper": "2.0.0-rc.86", + "@vueuse/core": "^13.0.0", + "vue": "^3.5.13" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-medium-zoom": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-rc.86.tgz", + "integrity": "sha512-KA8nWPdFrPpOfhi05JihSkGd5U+b5QWtq9ilzd6dWs+V1d3Qo2Onuw3E6suiJIg2Fmo6MOsmSmAwIGta2JJMAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86", + "medium-zoom": "^1.1.0", + "vue": "^3.5.13" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-nprogress": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-nprogress/-/plugin-nprogress-2.0.0-rc.86.tgz", + "integrity": "sha512-y4pLQmyfnZMvsbsLos0q9Wh/QoiJ0M71p8dWfv+fgm6DflNl/2TCOjgVdiCWjygNsi0xCyKXZZ+hGc6CQZXSPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86", + "vue": "^3.5.13" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-palette": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-palette/-/plugin-palette-2.0.0-rc.86.tgz", + "integrity": "sha512-Su9r1Ne1srRCD6Vtx29T03QsIOwg0tx7hlx61wBXgbC+q5qa2KVDuy97pGaMv0mXcmf3rNQFzLK9rBLI6IdDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86", + "chokidar": "^3.6.0" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-prismjs": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-prismjs/-/plugin-prismjs-2.0.0-rc.86.tgz", + "integrity": "sha512-fNc/ClPbDMoSWKelh1x5b0lZDr4mMdqd81+3OpjNyyhlK91OFaxaNOC/8c7hLGBjbZkI6ihaf2wFdi5igUrUQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86", + "@vuepress/highlighter-helper": "2.0.0-rc.85", + "prismjs": "^1.30.0" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-seo": { + "version": "2.0.0-rc.88", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-seo/-/plugin-seo-2.0.0-rc.88.tgz", + "integrity": "sha512-iFmNaRxKiKmq08Y0J63rSWoEGy+oHuGKyC+0/bIrnHFurTRWR8Q9om3NBsvsLdIoDz/MEmZCqGki6G966vPsfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-sitemap": { + "version": "2.0.0-rc.88", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-sitemap/-/plugin-sitemap-2.0.0-rc.88.tgz", + "integrity": "sha512-u8hMmO77GkJtF2xogKN3+wNfBz18iyJfziWmd5mjEJWIcZMrGYuPNPCKDWl9ReEwCCdn/nV1lPz7R6LLF61Thg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86", + "sitemap": "^8.0.0" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/plugin-theme-data": { + "version": "2.0.0-rc.86", + "resolved": "https://registry.npmmirror.com/@vuepress/plugin-theme-data/-/plugin-theme-data-2.0.0-rc.86.tgz", + "integrity": "sha512-wF59/fuPPXvmMXZ97tvCo4m/N7LnIY+pcklVgfKbnYAv2cO6SXHFIsPJj58tWyol7rzlfHMixvB/kygSMS7pIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^7.7.2", + "vue": "^3.5.13" + }, + "peerDependencies": { + "vuepress": "2.0.0-rc.20" + } + }, + "node_modules/@vuepress/shared": { + "version": "2.0.0-rc.20", + "resolved": "https://registry.npmmirror.com/@vuepress/shared/-/shared-2.0.0-rc.20.tgz", + "integrity": "sha512-fMCJxO9tqEGZJ85cYLz4pIP6TnUpC7kUgGJtpSGivro0NA7tqTVv4MVQwQ5J3w4YkQfEJirhlAYEOTrlols52Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdit-vue/types": "^2.1.0" + } + }, + "node_modules/@vuepress/theme-default": { + "version": "2.0.0-rc.88", + "resolved": "https://registry.npmmirror.com/@vuepress/theme-default/-/theme-default-2.0.0-rc.88.tgz", + "integrity": "sha512-8Gafj1fgMYC0EM0nzz+0BKNw5nuKMB4lDAP26a5Vqh0TgHxF+Ry0vuAQE2KBiyRVzqGqYL5we5trZk5uc1YnAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/helper": "2.0.0-rc.86", + "@vuepress/plugin-active-header-links": "2.0.0-rc.86", + "@vuepress/plugin-back-to-top": "2.0.0-rc.86", + "@vuepress/plugin-copy-code": "2.0.0-rc.86", + "@vuepress/plugin-git": "2.0.0-rc.88", + "@vuepress/plugin-links-check": "2.0.0-rc.86", + "@vuepress/plugin-markdown-hint": "2.0.0-rc.86", + "@vuepress/plugin-markdown-tab": "2.0.0-rc.86", + "@vuepress/plugin-medium-zoom": "2.0.0-rc.86", + "@vuepress/plugin-nprogress": "2.0.0-rc.86", + "@vuepress/plugin-palette": "2.0.0-rc.86", + "@vuepress/plugin-prismjs": "2.0.0-rc.86", + "@vuepress/plugin-seo": "2.0.0-rc.88", + "@vuepress/plugin-sitemap": "2.0.0-rc.88", + "@vuepress/plugin-theme-data": "2.0.0-rc.86", + "@vueuse/core": "^13.0.0", + "vue": "^3.5.13" + }, + "peerDependencies": { + "sass": "^1.86.0", + "sass-embedded": "^1.86.0", + "sass-loader": "^16.0.5", + "vuepress": "2.0.0-rc.20" + }, + "peerDependenciesMeta": { + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "sass-loader": { + "optional": true + } + } + }, + "node_modules/@vuepress/utils": { + "version": "2.0.0-rc.20", + "resolved": "https://registry.npmmirror.com/@vuepress/utils/-/utils-2.0.0-rc.20.tgz", + "integrity": "sha512-X3KL2tQrmrnyzQeQhIx7E9j0ssvfddLNrEu8pqUYevuYH3xrnrIT5XBNiTqvnDEFYDYcD2R5gFBCGtLs3uYo6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/debug": "^4.1.12", + "@types/fs-extra": "^11.0.4", + "@types/hash-sum": "^1.0.2", + "@vuepress/shared": "2.0.0-rc.20", + "debug": "^4.4.0", + "fs-extra": "^11.3.0", + "globby": "^14.1.0", + "hash-sum": "^2.0.0", + "ora": "^8.2.0", + "picocolors": "^1.1.1", + "upath": "^2.0.1" + } + }, + "node_modules/@vueuse/core": { + "version": "13.5.0", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-13.5.0.tgz", + "integrity": "sha512-wV7z0eUpifKmvmN78UBZX8T7lMW53Nrk6JP5+6hbzrB9+cJ3jr//hUlhl9TZO/03bUkMK6gGkQpqOPWoabr72g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "13.5.0", + "@vueuse/shared": "13.5.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "13.5.0", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-13.5.0.tgz", + "integrity": "sha512-euhItU3b0SqXxSy8u1XHxUCdQ8M++bsRs+TYhOLDU/OykS7KvJnyIFfep0XM5WjIFry9uAPlVSjmVHiqeshmkw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "13.5.0", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-13.5.0.tgz", + "integrity": "sha512-K7GrQIxJ/ANtucxIXbQlUHdB0TPA8c+q5i+zbrjxuhJCnJ9GtBg75sBSnvmLSxHKPg2Yo8w62PWksl9kwH0Q8g==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmmirror.com/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true, + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmmirror.com/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/birpc": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/birpc/-/birpc-2.5.0.tgz", + "integrity": "sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.25.1", + "resolved": "https://registry.npmmirror.com/browserslist/-/browserslist-4.25.1.tgz", + "integrity": "sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001726", + "electron-to-chromium": "^1.5.173", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-builder": { + "version": "0.2.0", + "resolved": "https://registry.npmmirror.com/buffer-builder/-/buffer-builder-0.2.0.tgz", + "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", + "dev": true, + "license": "MIT/X11" + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmmirror.com/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001727", + "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001727.tgz", + "integrity": "sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmmirror.com/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cheerio": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/cheerio/-/cheerio-1.0.0.tgz", + "integrity": "sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "encoding-sniffer": "^0.2.0", + "htmlparser2": "^9.1.0", + "parse5": "^7.1.2", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "parse5-parser-stream": "^7.1.2", + "undici": "^6.19.5", + "whatwg-mimetype": "^4.0.0" + }, + "engines": { + "node": ">=18.17" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmmirror.com/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/colorjs.io": { + "version": "0.5.2", + "resolved": "https://registry.npmmirror.com/colorjs.io/-/colorjs.io-0.5.2.tgz", + "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmmirror.com/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmmirror.com/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.185", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.185.tgz", + "integrity": "sha512-dYOZfUk57hSMPePoIQ1fZWl1Fkj+OshhEVuPacNKWzC1efe56OsHY3l/jCfiAgIICOU3VgOIdoq7ahg7r7n6MQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/encoding-sniffer": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/encoding-sniffer/-/encoding-sniffer-0.2.1.tgz", + "integrity": "sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "^0.6.3", + "whatwg-encoding": "^3.1.1" + }, + "funding": { + "url": "https://github.com/fb55/encoding-sniffer?sponsor=1" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/envinfo": { + "version": "7.14.0", + "resolved": "https://registry.npmmirror.com/envinfo/-/envinfo-7.14.0.tgz", + "integrity": "sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esbuild": { + "version": "0.24.2", + "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.24.2.tgz", + "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.24.2", + "@esbuild/android-arm": "0.24.2", + "@esbuild/android-arm64": "0.24.2", + "@esbuild/android-x64": "0.24.2", + "@esbuild/darwin-arm64": "0.24.2", + "@esbuild/darwin-x64": "0.24.2", + "@esbuild/freebsd-arm64": "0.24.2", + "@esbuild/freebsd-x64": "0.24.2", + "@esbuild/linux-arm": "0.24.2", + "@esbuild/linux-arm64": "0.24.2", + "@esbuild/linux-ia32": "0.24.2", + "@esbuild/linux-loong64": "0.24.2", + "@esbuild/linux-mips64el": "0.24.2", + "@esbuild/linux-ppc64": "0.24.2", + "@esbuild/linux-riscv64": "0.24.2", + "@esbuild/linux-s390x": "0.24.2", + "@esbuild/linux-x64": "0.24.2", + "@esbuild/netbsd-arm64": "0.24.2", + "@esbuild/netbsd-x64": "0.24.2", + "@esbuild/openbsd-arm64": "0.24.2", + "@esbuild/openbsd-x64": "0.24.2", + "@esbuild/sunos-x64": "0.24.2", + "@esbuild/win32-arm64": "0.24.2", + "@esbuild/win32-ia32": "0.24.2", + "@esbuild/win32-x64": "0.24.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmmirror.com/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/execa": { + "version": "9.6.0", + "resolved": "https://registry.npmmirror.com/execa/-/execa-9.6.0.tgz", + "integrity": "sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^4.0.0", + "cross-spawn": "^7.0.6", + "figures": "^6.1.0", + "get-stream": "^9.0.0", + "human-signals": "^8.0.1", + "is-plain-obj": "^4.1.0", + "is-stream": "^4.0.1", + "npm-run-path": "^6.0.0", + "pretty-ms": "^9.2.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^4.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": "^18.19.0 || >=20.5.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", + "dev": true, + "license": "MIT" + }, + "node_modules/figures": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/figures/-/figures-6.1.0.tgz", + "integrity": "sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmmirror.com/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-extra": { + "version": "11.3.0", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "14.1.0", + "resolved": "https://registry.npmmirror.com/globby/-/globby-14.1.0.tgz", + "integrity": "sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.3", + "ignore": "^7.0.3", + "path-type": "^6.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", + "dev": true, + "license": "MIT" + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/human-signals": { + "version": "8.0.1", + "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-8.0.1.tgz", + "integrity": "sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmmirror.com/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "5.1.3", + "resolved": "https://registry.npmmirror.com/immutable/-/immutable-5.1.3.tgz", + "integrity": "sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmmirror.com/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it-anchor": { + "version": "9.2.0", + "resolved": "https://registry.npmmirror.com/markdown-it-anchor/-/markdown-it-anchor-9.2.0.tgz", + "integrity": "sha512-sa2ErMQ6kKOA4l31gLGYliFQrMKkqSO0ZJgGhDHKijPf0pNFM9vghjAh3gn26pS4JDRs7Iwa9S36gxm3vgZTzg==", + "dev": true, + "license": "Unlicense", + "peerDependencies": { + "@types/markdown-it": "*", + "markdown-it": "*" + } + }, + "node_modules/markdown-it-emoji": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/markdown-it-emoji/-/markdown-it-emoji-3.0.0.tgz", + "integrity": "sha512-+rUD93bXHubA4arpEZO3q80so0qgoFJEKRkRbjKX8RTdca89v2kfyF+xR3i2sQTwql9tpPZPOQN5B+PunspXRg==", + "dev": true, + "license": "MIT" + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/medium-zoom": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/medium-zoom/-/medium-zoom-1.1.0.tgz", + "integrity": "sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "dev": true, + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmmirror.com/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmmirror.com/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmmirror.com/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-ms": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/parse-ms/-/parse-ms-4.0.0.tgz", + "integrity": "sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "domhandler": "^5.0.3", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-parser-stream": { + "version": "7.1.2", + "resolved": "https://registry.npmmirror.com/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz", + "integrity": "sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/path-type/-/path-type-6.0.0.tgz", + "integrity": "sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmmirror.com/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pretty-ms": { + "version": "9.2.0", + "resolved": "https://registry.npmmirror.com/pretty-ms/-/pretty-ms-9.2.0.tgz", + "integrity": "sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse-ms": "^4.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prismjs": { + "version": "1.30.0", + "resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.45.1", + "resolved": "https://registry.npmmirror.com/rollup/-/rollup-4.45.1.tgz", + "integrity": "sha512-4iya7Jb76fVpQyLoiVpzUrsjQ12r3dM7fIVz+4NwoYvZOShknRmiv+iu9CClZml5ZLGb0XMcYLutK6w9tgxHDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.45.1", + "@rollup/rollup-android-arm64": "4.45.1", + "@rollup/rollup-darwin-arm64": "4.45.1", + "@rollup/rollup-darwin-x64": "4.45.1", + "@rollup/rollup-freebsd-arm64": "4.45.1", + "@rollup/rollup-freebsd-x64": "4.45.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.45.1", + "@rollup/rollup-linux-arm-musleabihf": "4.45.1", + "@rollup/rollup-linux-arm64-gnu": "4.45.1", + "@rollup/rollup-linux-arm64-musl": "4.45.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.45.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-gnu": "4.45.1", + "@rollup/rollup-linux-riscv64-musl": "4.45.1", + "@rollup/rollup-linux-s390x-gnu": "4.45.1", + "@rollup/rollup-linux-x64-gnu": "4.45.1", + "@rollup/rollup-linux-x64-musl": "4.45.1", + "@rollup/rollup-win32-arm64-msvc": "4.45.1", + "@rollup/rollup-win32-ia32-msvc": "4.45.1", + "@rollup/rollup-win32-x64-msvc": "4.45.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sass-embedded": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded/-/sass-embedded-1.89.2.tgz", + "integrity": "sha512-Ack2K8rc57kCFcYlf3HXpZEJFNUX8xd8DILldksREmYXQkRHI879yy8q4mRDJgrojkySMZqmmmW1NxrFxMsYaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bufbuild/protobuf": "^2.5.0", + "buffer-builder": "^0.2.0", + "colorjs.io": "^0.5.0", + "immutable": "^5.0.2", + "rxjs": "^7.4.0", + "supports-color": "^8.1.1", + "sync-child-process": "^1.0.2", + "varint": "^6.0.0" + }, + "bin": { + "sass": "dist/bin/sass.js" + }, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "sass-embedded-android-arm": "1.89.2", + "sass-embedded-android-arm64": "1.89.2", + "sass-embedded-android-riscv64": "1.89.2", + "sass-embedded-android-x64": "1.89.2", + "sass-embedded-darwin-arm64": "1.89.2", + "sass-embedded-darwin-x64": "1.89.2", + "sass-embedded-linux-arm": "1.89.2", + "sass-embedded-linux-arm64": "1.89.2", + "sass-embedded-linux-musl-arm": "1.89.2", + "sass-embedded-linux-musl-arm64": "1.89.2", + "sass-embedded-linux-musl-riscv64": "1.89.2", + "sass-embedded-linux-musl-x64": "1.89.2", + "sass-embedded-linux-riscv64": "1.89.2", + "sass-embedded-linux-x64": "1.89.2", + "sass-embedded-win32-arm64": "1.89.2", + "sass-embedded-win32-x64": "1.89.2" + } + }, + "node_modules/sass-embedded-android-arm": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-android-arm/-/sass-embedded-android-arm-1.89.2.tgz", + "integrity": "sha512-oHAPTboBHRZlDBhyRB6dvDKh4KvFs+DZibDHXbkSI6dBZxMTT+Yb2ivocHnctVGucKTLQeT7+OM5DjWHyynL/A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-arm64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.89.2.tgz", + "integrity": "sha512-+pq7a7AUpItNyPu61sRlP6G2A8pSPpyazASb+8AK2pVlFayCSPAEgpwpCE9A2/Xj86xJZeMizzKUHxM2CBCUxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-riscv64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.89.2.tgz", + "integrity": "sha512-HfJJWp/S6XSYvlGAqNdakeEMPOdhBkj2s2lN6SHnON54rahKem+z9pUbCriUJfM65Z90lakdGuOfidY61R9TYg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-x64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-android-x64/-/sass-embedded-android-x64-1.89.2.tgz", + "integrity": "sha512-BGPzq53VH5z5HN8de6jfMqJjnRe1E6sfnCWFd4pK+CAiuM7iw5Fx6BQZu3ikfI1l2GY0y6pRXzsVLdp/j4EKEA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-arm64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.89.2.tgz", + "integrity": "sha512-UCm3RL/tzMpG7DsubARsvGUNXC5pgfQvP+RRFJo9XPIi6elopY5B6H4m9dRYDpHA+scjVthdiDwkPYr9+S/KGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-x64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.89.2.tgz", + "integrity": "sha512-D9WxtDY5VYtMApXRuhQK9VkPHB8R79NIIR6xxVlN2MIdEid/TZWi1MHNweieETXhWGrKhRKglwnHxxyKdJYMnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.89.2.tgz", + "integrity": "sha512-leP0t5U4r95dc90o8TCWfxNXwMAsQhpWxTkdtySDpngoqtTy3miMd7EYNYd1znI0FN1CBaUvbdCMbnbPwygDlA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.89.2.tgz", + "integrity": "sha512-2N4WW5LLsbtrWUJ7iTpjvhajGIbmDR18ZzYRywHdMLpfdPApuHPMDF5CYzHbS+LLx2UAx7CFKBnj5LLjY6eFgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.89.2.tgz", + "integrity": "sha512-Z6gG2FiVEEdxYHRi2sS5VIYBmp17351bWtOCUZ/thBM66+e70yiN6Eyqjz80DjL8haRUegNQgy9ZJqsLAAmr9g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.89.2.tgz", + "integrity": "sha512-nTyuaBX6U1A/cG7WJh0pKD1gY8hbg1m2SnzsyoFG+exQ0lBX/lwTLHq3nyhF+0atv7YYhYKbmfz+sjPP8CZ9lw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-riscv64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.89.2.tgz", + "integrity": "sha512-N6oul+qALO0SwGY8JW7H/Vs0oZIMrRMBM4GqX3AjM/6y8JsJRxkAwnfd0fDyK+aICMFarDqQonQNIx99gdTZqw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-x64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.89.2.tgz", + "integrity": "sha512-K+FmWcdj/uyP8GiG9foxOCPfb5OAZG0uSVq80DKgVSC0U44AdGjvAvVZkrgFEcZ6cCqlNC2JfYmslB5iqdL7tg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-riscv64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.89.2.tgz", + "integrity": "sha512-g9nTbnD/3yhOaskeqeBQETbtfDQWRgsjHok6bn7DdAuwBsyrR3JlSFyqKc46pn9Xxd9SQQZU8AzM4IR+sY0A0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-x64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.89.2.tgz", + "integrity": "sha512-Ax7dKvzncyQzIl4r7012KCMBvJzOz4uwSNoyoM5IV6y5I1f5hEwI25+U4WfuTqdkv42taCMgpjZbh9ERr6JVMQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-arm64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.89.2.tgz", + "integrity": "sha512-j96iJni50ZUsfD6tRxDQE2QSYQ2WrfHxeiyAXf41Kw0V4w5KYR/Sf6rCZQLMTUOHnD16qTMVpQi20LQSqf4WGg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-x64": { + "version": "1.89.2", + "resolved": "https://registry.npmmirror.com/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.89.2.tgz", + "integrity": "sha512-cS2j5ljdkQsb4PaORiClaVYynE9OAPZG/XjbOMxpQmjRIf7UroY4PEIH+Waf+y47PfXFX9SyxhYuw2NIKGbEng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC" + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sitemap": { + "version": "8.0.0", + "resolved": "https://registry.npmmirror.com/sitemap/-/sitemap-8.0.0.tgz", + "integrity": "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "dev": true, + "license": "MIT" + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmmirror.com/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmmirror.com/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-4.0.0.tgz", + "integrity": "sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/sync-child-process": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/sync-child-process/-/sync-child-process-1.0.2.tgz", + "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sync-message-port": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/sync-message-port": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/sync-message-port/-/sync-message-port-1.1.3.tgz", + "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici": { + "version": "6.21.3", + "resolved": "https://registry.npmmirror.com/undici/-/undici-6.21.3.tgz", + "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/undici-types": { + "version": "7.8.0", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmmirror.com/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "6.1.6", + "resolved": "https://registry.npmmirror.com/vite/-/vite-6.1.6.tgz", + "integrity": "sha512-u+jokLMwHVFUoUkfL+m/1hzucejL2639g9QXcrRdtN3WPHfW7imI83V96Oh1R0xVZqDjvcgp+7S8bSQpdVlmPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.24.2", + "postcss": "^8.5.2", + "rollup": "^4.30.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.17", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.17.tgz", + "integrity": "sha512-LbHV3xPN9BeljML+Xctq4lbz2lVHCR6DtbpTf5XIO6gugpXUN49j2QQPcMj086r9+AkJ0FfUT8xjulKKBkkr9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.17", + "@vue/compiler-sfc": "3.5.17", + "@vue/runtime-dom": "3.5.17", + "@vue/server-renderer": "3.5.17", + "@vue/shared": "3.5.17" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.5.1", + "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.1.tgz", + "integrity": "sha512-ogAF3P97NPm8fJsE4by9dwSYtDwXIY1nFY9T6DyQnGHd1E2Da94w9JIolpe42LJGIl0DwOHBi8TcRPlPGwbTtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-router/node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/vuepress": { + "version": "2.0.0-rc.20", + "resolved": "https://registry.npmjs.org/vuepress/-/vuepress-2.0.0-rc.20.tgz", + "integrity": "sha512-rAGD+/OBqBQb/qnKdoMuRPkv0Pcwu+OWrs0dW5vqJpswsa9pArrCwsfQKKGpxZI24BkutxIwnUSgUP5LBAtgIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vuepress/cli": "2.0.0-rc.20", + "@vuepress/client": "2.0.0-rc.20", + "@vuepress/core": "2.0.0-rc.20", + "@vuepress/markdown": "2.0.0-rc.20", + "@vuepress/shared": "2.0.0-rc.20", + "@vuepress/utils": "2.0.0-rc.20", + "vue": "^3.5.13" + }, + "bin": { + "vuepress": "bin/vuepress.js", + "vuepress-vite": "bin/vuepress-vite.js", + "vuepress-webpack": "bin/vuepress-webpack.js" + }, + "engines": { + "node": "^18.19.0 || >=20.4.0" + }, + "peerDependencies": { + "@vuepress/bundler-vite": "2.0.0-rc.20", + "@vuepress/bundler-webpack": "2.0.0-rc.20", + "vue": "^3.5.0" + }, + "peerDependenciesMeta": { + "@vuepress/bundler-vite": { + "optional": true + }, + "@vuepress/bundler-webpack": { + "optional": true + } + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmmirror.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 00000000..4e026001 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,20 @@ +{ + "name": "veadk-python-docs", + "description": "Documents for Volcengine Agent Development Kits in python", + "version": "0.0.1", + "license": "MIT", + "type": "module", + "scripts": { + "docs:build": "vuepress build docs", + "docs:clean-dev": "vuepress dev docs --clean-cache", + "docs:dev": "vuepress dev docs", + "docs:update-package": "npx vp-update" + }, + "devDependencies": { + "@vuepress/bundler-vite": "2.0.0-rc.20", + "@vuepress/theme-default": "2.0.0-rc.88", + "sass-embedded": "^1.86.0", + "vue": "^3.5.13", + "vuepress": "^2.0.0-rc.20" + } +} From e65c164cbb23584d7f687a90375c28653677584d Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 16:50:43 +0800 Subject: [PATCH 02/10] fix: add feat/docs to auto deploy workflow --- .github/workflows/deploy-docs.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index c09889ce..b53d814f 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -4,6 +4,7 @@ on: push: branches: - main + - feat/docs paths: - 'docs/**' - '.github/workflows/deploy-docs.yml' From 6b44f73d49aa53551384a9d448488437349d8026 Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 16:58:19 +0800 Subject: [PATCH 03/10] fix: correct typos in workflow file --- .github/workflows/deploy-docs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index b53d814f..4ed9010a 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -7,7 +7,7 @@ on: - feat/docs paths: - 'docs/**' - - '.github/workflows/deploy-docs.yml' + - '.github/workflows/deploy-docs.yaml' workflow_dispatch: From c9b57599d051bf8b1605115f4bdd546082bfe3b4 Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 17:08:38 +0800 Subject: [PATCH 04/10] chore: remove github pages deploy deps --- .github/workflows/deploy-docs.yaml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 4ed9010a..01e392c4 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -30,7 +30,16 @@ jobs: run: npm run docs:build - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: docs/.vuepress/dist \ No newline at end of file + run: | + cd docs/.vuepress/dist + + git init + git config user.name "GitHub Actions" + git config user.email "action@github.com" + + git add . + git commit -m "Deploy docs from ${{ github.sha }}" + + git push --force --quiet \ + "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git" \ + HEAD:veadk/docs \ No newline at end of file From 592995476735bb970373b800823280b06d0bb934 Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 17:11:12 +0800 Subject: [PATCH 05/10] fix: fix doc pages bugs --- .github/workflows/deploy-docs.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 01e392c4..09b76a58 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -24,10 +24,14 @@ jobs: node-version: '22' - name: Install dependencies - run: npm install + run: | + cd docs + npm install - name: Build documentation - run: npm run docs:build + run: | + cd docs + npm run docs:build - name: Deploy to GitHub Pages run: | @@ -42,4 +46,4 @@ jobs: git push --force --quiet \ "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git" \ - HEAD:veadk/docs \ No newline at end of file + HEAD:docs \ No newline at end of file From d88e75aa7fc6b70b647044d02040ec6e8f9dc679 Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 17:12:19 +0800 Subject: [PATCH 06/10] fix: fix doc pages bugs --- .github/workflows/deploy-docs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 09b76a58..ac45f5be 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -35,7 +35,7 @@ jobs: - name: Deploy to GitHub Pages run: | - cd docs/.vuepress/dist + cd docs/docs/.vuepress/dist git init git config user.name "GitHub Actions" From 54bb884833357be50ecaab322264b3ed3cb51e66 Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 17:33:12 +0800 Subject: [PATCH 07/10] fix: fix doc pages bugs --- .github/workflows/deploy-docs.yaml | 49 ++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index ac45f5be..cc93e3ce 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -33,17 +33,46 @@ jobs: cd docs npm run docs:build - - name: Deploy to GitHub Pages + name: Deploy Docs to GitHub Pages + +on: + push: + branches: + - main + - feat/docs + paths: + - 'docs/**' + - '.github/workflows/deploy-docs.yaml' + workflow_dispatch: + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + + - name: Install dependencies run: | - cd docs/docs/.vuepress/dist + cd docs + npm install - git init - git config user.name "GitHub Actions" - git config user.email "action@github.com" + - name: Build documentation + run: | + cd docs + npm run docs:build - git add . - git commit -m "Deploy docs from ${{ github.sha }}" + - name: Upload artifact for GitHub Pages + uses: actions/upload-pages-artifact@v3 + with: + path: docs/docs/.vuepress/dist - git push --force --quiet \ - "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git" \ - HEAD:docs \ No newline at end of file + - name: Deploy to GitHub Pages + id: deploy + uses: actions/deploy-pages@v4 + \ No newline at end of file From f686f718e4a90606325fe4ba93ccd76f561adec6 Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 17:34:40 +0800 Subject: [PATCH 08/10] fix: fix doc pages bugs --- .github/workflows/deploy-docs.yaml | 35 ------------------------------ 1 file changed, 35 deletions(-) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index cc93e3ce..2000ebfb 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -11,40 +11,6 @@ on: workflow_dispatch: -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '22' - - - name: Install dependencies - run: | - cd docs - npm install - - - name: Build documentation - run: | - cd docs - npm run docs:build - - name: Deploy Docs to GitHub Pages - -on: - push: - branches: - - main - - feat/docs - paths: - - 'docs/**' - - '.github/workflows/deploy-docs.yaml' - workflow_dispatch: - jobs: deploy: runs-on: ubuntu-latest @@ -75,4 +41,3 @@ jobs: - name: Deploy to GitHub Pages id: deploy uses: actions/deploy-pages@v4 - \ No newline at end of file From c608b199f629d3019970d0b69031e2d9023751e8 Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 17:36:42 +0800 Subject: [PATCH 09/10] fix: add permissions to deploy-docs --- .github/workflows/deploy-docs.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/deploy-docs.yaml b/.github/workflows/deploy-docs.yaml index 2000ebfb..c9f488c0 100644 --- a/.github/workflows/deploy-docs.yaml +++ b/.github/workflows/deploy-docs.yaml @@ -11,6 +11,11 @@ on: workflow_dispatch: +permissions: + contents: read + pages: write + id-token: write + jobs: deploy: runs-on: ubuntu-latest From d23b7ce5ab8e1dd209b99057fbac73a15938dcd9 Mon Sep 17 00:00:00 2001 From: "fangyaozheng@bytedance.com" Date: Sun, 3 Aug 2025 17:41:02 +0800 Subject: [PATCH 10/10] fix: add static base for Github Pages static resource --- docs/docs/.vuepress/config.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/docs/.vuepress/config.js b/docs/docs/.vuepress/config.js index a131eb9b..9ce87fa2 100644 --- a/docs/docs/.vuepress/config.js +++ b/docs/docs/.vuepress/config.js @@ -17,4 +17,6 @@ export default defineUserConfig({ }), bundler: viteBundler(), + + base: '/veadk-python/', // GitHub Pages required })