diff --git a/.github/workflows/deploy-to-gh-pages.yml b/.github/workflows/deploy-to-gh-pages.yml index 422f4e7d5..91b767e54 100644 --- a/.github/workflows/deploy-to-gh-pages.yml +++ b/.github/workflows/deploy-to-gh-pages.yml @@ -26,7 +26,7 @@ jobs: - name: Setup Node env uses: actions/setup-node@v4 with: - node-version: '20' + node-version: '22' cache: 'pnpm' - name: Install Dependencies diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 1d02a9f2c..a411d3c9f 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -22,7 +22,7 @@ jobs: - name: Setup Node env uses: actions/setup-node@v4 with: - node-version: '20' + node-version: '22' cache: 'pnpm' - name: Install Dependencies diff --git a/.github/workflows/shared-oss-deploy.yml b/.github/workflows/shared-oss-deploy.yml index ec333078b..761836e27 100644 --- a/.github/workflows/shared-oss-deploy.yml +++ b/.github/workflows/shared-oss-deploy.yml @@ -35,7 +35,7 @@ jobs: - name: Setup Node env uses: actions/setup-node@v4 with: - node-version: '20' + node-version: '22' cache: 'pnpm' - name: Install Dependencies diff --git a/babel.config.js b/babel.config.js deleted file mode 100644 index e00595dae..000000000 --- a/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - presets: [require.resolve('@docusaurus/core/lib/babel/preset')], -}; diff --git a/docs/device/2-create-device.md b/docs/device/2-create-device.md index c35ed939b..fa5a0b34b 100644 --- a/docs/device/2-create-device.md +++ b/docs/device/2-create-device.md @@ -4,29 +4,27 @@ sidebar_position: 2 # 添加设备 -## 权限说明 - :::info 🤖 权限:仅**组织成员**及以上权限可以添加设备 ::: 当组织引入新设备,并期望在平台中创建一台与线下真实设备相对应的设备,可前往组织设备页面进行添加。 -## 添加方式概述 - -平台提供以下 3 种添加新设备到组织的方式: +平台提供以下 3 种设备添加方式: | 添加方式 | 适用场景 | | -------------------- | ------------------------------------------ | -| 在设备端执行命令添加 | 少量设备逐一准入与平台通信 | -| 使用离线安装包添加 | 设备出厂批量准入与平台通信 | -| 填写信息添加 | 快速创建仅用于数据流转的设备,不与平台通信 | +| 在设备端执行命令添加 | 少量设备逐一安装 +| 使用离线安装包添加 | 设备出厂批量安装 +| 填写信息添加 | 快速创建仅用于数据管理的设备,不与平台通信 | ## 在设备端执行命令添加 {#add-device-from-device} ### 适用情况与入口 -此方式适用于少量设备逐次接入平台。用户需手动通过 SSH 登录设备执行命令。入口位于「组织管理」页面的「设备」分页,点击【添加设备】按钮,进入添加设备弹窗 +此方式适用于少量设备逐次接入平台。用户需在真实设备上打开终端,执行相应的注册命令。 + +入口位于「组织管理」页面的「设备」分页,点击【添加设备】按钮,进入添加设备弹窗 ![添加设备入口](./img/4-3-add-device-button.png) @@ -36,21 +34,28 @@ sidebar_position: 2 1. 当前仅支持 Linux 设备,涵盖 arm64 和 x86_64 架构; -2. 暂不支持 Windows 设备,如有 Windows 设备接入需求,请联系刻行团队。 +2. 暂不支持 Windows 设备,如有 Windows 设备接入需求,请联系我们。 ### 设备 ID 配置 -1. 可填写存放设备唯一标识码(如 ID 或 SN)的位置,支持 txt、json、yaml 文本文件类型。 - - - 若为 txt 文件,系统读取整个文件内容。 - - - 若为 json、yaml 文件,需在下方输入框填写 ID 号的变量值(如文件中含 `id:123`,则在此处填写 `id`)。 - -2. 组织管理员可在「组织设备 - 编辑数采规则」中预设 ID 统一存放地址配置,实现弹窗自动填充,且支持二次更改。 +设备 ID 是设备在平台中的唯一标识,注册后不可修改。设备 ID 的生成方式如下: +- 从设备端获取设备的唯一标识码(推荐使用设备 SN) +- 由系统自动生成随机 ID + +1. **从设备端获取 ID**:从设备端指定文件中获取 ID,支持 txt、json、yaml 文本文件类型。 + - txt 文件 + - 系统会读取文件的全部内容作为设备 ID + - 只需填写该文件在设备上的完整路径 + - json、yaml 文件 + - 系统会读取文件中指定的字段作为设备 ID + - 除文件路径外,还需在下方输入框填写字段标识名。(如文件内容为 `id:123`,在此处填写 `id`,则会将 `123` 作为设备 ID)。 + - ID 设置 + - 为提高效率,组织管理员可在「组织设备 - 设备配置」中设置统一的设备 ID 文件路径 + - 设置后,添加设备时将自动填充该路径,用户仍可根据实际情况修改。详见[设备配置](./4-device-collector.md#存储设置mod) ![从设备端获取 ID 位置](./img/4-3-add-device-id-01.png) - 1. 若选择系统生成 ID,平台将生成默认 ID 号,安装后不可修改。 +2. **系统生成 ID**:平台生成默认 ID 号 ![系统生成 ID](./img/4-3-add-device-id-02.png) @@ -58,56 +63,66 @@ sidebar_position: 2 1. **数据采集(coScout)客户端** - 安装后设备可依据项目规则或采集任务采集数据,安装前需管理员配置数采监听目录等信息,详情参考编辑数采规则文档。 + 安装后设备可依据项目规则或采集任务采集数据,使用前需配置数采监听目录等信息,详情参考[设备配置文档](./4-device-collector.md#存储设置mod)。 2. **远程控制(coLink)客户端** - 安装后可实现网页 SSH、结合 [coBridge](https://github.com/coscene-io/coBridge) 实时可视化设备,功能详情参阅远程控制设备[文档](https://docs.coscene.cn/docs/device/device-remote-control); + 安装后可实现网页 SSH、结合 [coBridge](https://github.com/coscene-io/coBridge) 实时可视化设备,功能详情参阅[远程连接设备文档](./5-device-remote-control.md); 3. **初始化客户端配置** - 若设备更换上位机或 ID 后需重新安装注册,勾选【初始化客户端配置】;仅升级客户端版本则取消勾选,更多使用方法参阅换机、升级、卸载流程指南 + - 设备重新安装时: + - 更换上位机或修改设备 ID:请勾选【初始化客户端配置】 + - 仅升级客户端版本:无需勾选【初始化客户端配置】 + - 详细操作步骤请参阅[换机、升级、卸载流程指南](./7-change-device-guide.md) ![安装客户端选择](./img/4-3-install-coscout-colink.png) ### 执行安装命令 +> 注意: +> 设备端执行命令添加时,若以 root 用户执行命令,或在命令前加 `sudo`,会将 coScout 安装在 root 下;若直接使用当前用户执行命令,会将 coScout 安装在当前用户下。 1. 完成设备 ID 及安装客户端选项配置后,系统生成安装命令。用户复制命令至设备端 shell 终端执行。 ![系统生成安装命令](./img/4-3-install-cmd.png) -2. 设备端出现 `Installation completed successfully 🎉` 提示即安装成功。受设备性能影响,安装完成后设备列表页显示可能存在延迟,此时设备已完成注册,后续操作参考设备准入部分 +2. 设备端出现 `Installation completed successfully 🎉` 提示即安装成功(受设备性能影响,安装完成后设备列表页显示可能存在延迟)。此时设备已完成注册,后续操作参考[设备启用文档](./3-manage-device.md#enable-device)。 ![设备端安装成功](./img/4-3-install-successfully.png) - ![管理员到平台中准入设备](./img/4-3-access-device.png) + ![管理员到平台中启用设备](./img/4-3-access-device.png) ## 使用离线安装包添加 ### 适用情况与相关设置 -1. 此方式是相当于把数据采集、远程控制的安装包打包到设备软件版本更新包里,并且在安装包启动脚本里可以预先写好要执行的脚本赋权命令和安装命令,适合大规模的准入,比如设备出厂设置就自带了这两个客户端; +1. 使用离线安装包添加设备:将数据采集和远程控制功能相关的安装包集成到设备的软件更新包中: + - 适用于设备出厂批量部署场景 + - 可实现设备开箱即用,无需单独安装客户端 -2. 此添加方式中的「设备系统」、「设备 ID 配置」、「安装客户端选择」与在设备端执行命令添加的方式相同,可参考对应部分教程。以下重点介绍安装方式区别 +2. 配置说明: + - 基础配置项(设备系统、设备 ID 配置、安装客户端选择)与「在设备端执行命令添加」方式相同,请参考上述章节了解详情 + - 下文将重点说明离线安装包特有的安装步骤 ### 安装步骤 -1. 假设用户位于 `/root` 目录下(切换目录时需注意更改路径),下载安装脚本 **coscene.sh**、离线二进制文件压缩包 **cos_binaries.tar.gz** 至设备端,存放位置分别为 `/root/coscene.sh`, `/root/cos_binaries.tar.gz`。 +1. 下载安装脚本 **install.sh**、安装包 **cos_binaries.tar.gz**,将其存放于至设备端。 + ![下载离线安装包](./img/4-3-download-offline-package.png) -2. 在 root 目录下,给安装脚本赋予执行权限: +2. 打开设备终端,在对应目录下,给安装脚本赋予执行权限: ```plain text - chmod +x /root/coscene.sh + chmod +x install.sh ``` -3. 执行安装命令(以 `cos_binaries.tar.gz` 位于 `/root/cos_binaries.tar.gz` 为例): +3. 在设备终端,执行安装命令: ```plain text - ./coscene.sh --server_url=*** --project_slug=*** --virmesh_endpoint=*** --use_local=/root/cos_binaries.tar.gz + ./install.sh --use_local=./cos_binaries.tar.gz --mod="default" --org_slug="***" --server_url="***" --coLink_endpoint="***" --coLink_network="***" --sn_file="***" --sn_field="***" --remove_config ``` - 其中,参数 `--server_url` ,`--project_slug` ,`--virmesh_endpoint` 请参考网页端添加设备弹窗中的安装命令生成结果替换 `***`,参数 `--use_local` 为离线二进制文件压缩包路径,修改目录位置时需同步修改该参数。 + 其中,参数 `--use_local` 为离线安装包在设备上的路径,需根据实际情况进行修改。 ![使用离线安装包添加](./img/4-3-offline-install-package.png) @@ -115,23 +130,23 @@ sidebar_position: 2 ### 适用情况 -此方式平台数据库创建虚拟设备字段,不与真实设备对应。 +创建虚拟设备字段,仅用于数据管理,不与真实设备对应。 ### 操作步骤 1. 在「添加设备」弹框输入设备 ID 及其他信息(设备 ID 不可重复),点击【添加】即可创建设备。 -2. 若组织管理员设置自定义字段,用户需按页面提示填写完整必填项(如示例中的门店、机型) +2. 若组织管理员设置了设备自定义字段,用户需按页面提示填写必填项(如示例中的门店、机型) -![使用离线安装包添加](./img/4-3-input-information.png) +![填写信息添加](./img/4-3-input-information.png) ## 后续操作 -- [设备准入](./3-manage-device.md#设备准入) -- [将设备添加到项目](./3-manage-device.md#分配设备到项目) - - [手动采集数据](../use-case/1-common-task.md) - - [根据错误码自动采集数据](../use-case/data-diagnosis/2-get-started.md) +- [启用设备](./3-manage-device.md#enable-device) +- [将设备添加到项目](./3-manage-device.md#assign-devices-to-projects) + - [手动采集数据](../use-case/1-common-task.md) + - [根据错误码自动采集数据](../use-case/data-diagnosis/2-get-started.md) - [远程连接设备](./5-device-remote-control.md) - - 实时可视化 - - 网页 SSH - - 远程下发命令 - - 端口映射 \ No newline at end of file + - 实时可视化 + - 网页 SSH + - 远程下发命令 + - 端口映射 diff --git a/docs/device/3-manage-device.md b/docs/device/3-manage-device.md index 784ff4808..658115da3 100644 --- a/docs/device/3-manage-device.md +++ b/docs/device/3-manage-device.md @@ -4,25 +4,23 @@ sidebar_position: 3 # 管理设备 -## 设备管理基础 - -设备在组织层面进行统一管理,只有组织成员及以上权限的用户可进行相关操作。在「组织管理 - 设备」页面能够查看现有的设备列表。 +设备在组织层面进行统一管理,在「组织管理 - 设备」页面可查看组织内的全部设备。 ## 设备信息筛选与表格设置 :::info -🤖 权限:所有**组织用户**均可查看过滤设备信息 +🤖 权限:所有**组织内的用户**均可查看过滤设备信息 ::: ### 过滤设备信息 -系统默认支持对「设备 ID」、「准入状态」、「在线状态」这 3 个字段进行筛选,在「更多」选项中,还能选择设备的自定义字段进行过滤操作,以满足用户更个性化的信息查找需求。 +系统默认支持对「设备 ID」、「客户端状态」、「在线状态」这 3 个字段进行筛选,在「更多」选项中,还能选择设备的自定义字段进行过滤操作,以满足用户更个性化的信息查找需求。 ![组织设备过滤](./img/4-3-device-filter.png) ### 表格设置 -当设备字段较多时,可利用表格右上角的设置按钮,按照个人偏好对表格显示字段进行排序、隐藏等操作,方便用户聚焦关键信息。同时,也可通过【恢复默认】将表格恢复到初始显示状态 +当设备字段较多时,可通过表格右上角的【设置】按钮,按照个人偏好对表格显示字段进行排序、隐藏等操作。同时,也可通过【恢复默认】将表格恢复到初始状态 ![表格显示设置](./img/4-3-device-table-setting.png) @@ -32,15 +30,19 @@ sidebar_position: 3 🤖 权限:仅**组织管理员**拥有设定设备自定义字段的权限 ::: -- **入口:**通过「组织管理 - 设置 - 设备字段配置 - 编辑配置」路径进入设置页面,管理员可依据实际需求添加相关设备字段。保存设置后,设备信息展示中会相应出现这些自定义字段。 +1. 在「组织管理 - 设置 - 自定义字段」页面,定义组织全局字段 + + ![组织自定义字段](./img/4-3-org-fields.png) + +2. 在「设备字段配置」页面,选择设备需要使用的字段 -- **注意事项:**若管理员删除某一设备自定义字段,该字段的所有数据将一并删除且无法恢复,因此操作时务必谨慎。 + ![设置设备自定义字段](./img/4-3-setting-device-fields.png) -![设置设备自定义字段](./img/4-3-setting-device-fields.png) +3. 添加完成后,在创建与查看设备时,会相应出现这些自定义字段 -![设备自定义字段弹窗](./img/4-3-fields-popup.png) + ![带有自定义字段的设备表格](./img/4-3-device-table-fields.png) -![带有自定义字段的设备表格](./img/4-3-device-table-fields.png) +- **注意事项:** 若删除某一设备自定义字段,该字段的所有数据将一并删除且无法恢复,请谨慎操作。 ## 设备信息编辑 @@ -57,12 +59,12 @@ sidebar_position: 3 ## 设备与项目关联操作 :::info -🤖 权限:**组织成员及以上角色**可以分配设备到某个项目中 +🤖 权限:**组织管理员**可以分配设备到某个项目中 ::: -### 分配设备到项目 +### 分配设备到项目 {#assign-devices-to-projects} -设备添加到项目后,若安装了数据采集客户端,客户端将拉取项目中已开启的规则进行自动监听与诊断,也可在项目中创建采集任务采集数据。 +设备添加到项目后,若安装了数据采集客户端,客户端将拉取项目中已启用的规则进行自动监听与诊断,也可在项目中创建采集任务采集数据。 在设备列表选定设备后点击【添加关联项目】按钮; @@ -74,35 +76,37 @@ sidebar_position: 3 ### 从项目移除设备 -若项目不再需要某设备,可在项目中将其【从本项目移除】。移除后设备仍保留在组织项目中,但项目不再接收该设备采集的数据,后续若有需要仍可再次添加该设备到本项目进行数据采集。 +若项目不再需要某设备,可在项目中将其【从本项目移除】。移除后设备仍保留在组织中,但项目不再接收该设备采集的数据,后续若有需要仍可再次添加该设备到项目中。 ![移除项目设备](./img/4-3-delete-project-device.png) -## 设备准入 +## 启用设备 {#enable-device} :::info -🤖 权限:**仅组织管理员**可进行设备准入操作 +🤖 权限:**仅组织管理员**可进行设备启用操作 ::: -完成添加设备后,设备列表会出现【准入】的操作按钮,在设备详情页还可单独准入「数据采集」和「远程控制」模块。 +完成添加设备后,设备列表会出现【启用客户端】的操作按钮。 -![准入设备](./img/4-3-access-device-2.png) +![启用设备](./img/4-3-access-device.png) -「数据采集」准入后,机器端程序将按规则采集数据并自动上传至对应项目; +启用客户端后,若「数据采集」在线,机器端程序将按规则采集数据并自动上传至对应项目;若「远程控制」在线,用户可对机器进行 SSH 连接、结合 [coBridge](https://github.com/coscene-io/coBridge) 实时可视化设备 -「远程控制」准入后,用户可通过刻行平台对机器进行 SSH 连接、实时可视化等操作。 +### 查看客户端信息 -### 查看数采客户端日志 +在设备端执行以下命令,可查看客户端的版本、日志信息。 -在设备端执行以下命令,可查看数据采集客户端的日志信息,方便用户了解数据采集过程中的情况。 - -```go -journalctl --user-unit=cos -f -n 50 -``` +| 名称 | 查看版本 | 查看日志 | +| ---- | -------- | -------- | +| 数据采集(coScout)v1.1.2 及以上 | `~/.local/bin/cos --version` | `tail -f ~/.local/state/cos/logs/cos.log` | +| 数据采集(coScout)v1.1.2 以下 | `~/.local/bin/cos --version` | `journalctl -fu cos` | +| 远程控制(coLink) | `colink --version` | `journalctl -fu colink` | ### 卸载数据采集、远程控制客户端 -在设备端中,执行以下命令可卸载数据采集、远程控制客户端,执行过程中需观察输出直至卸载流程完成 +在设备端中,执行以下命令可卸载数据采集、远程控制客户端,执行过程中需观察输出直至卸载流程完成。 + +注意:若数采客户端安装在 root 用户下,卸载时需切换为 root 用户。 ```yaml /bin/bash -c "$(curl -fsSL https://download.coscene.cn/coscout/uninstall.sh)" @@ -113,18 +117,16 @@ journalctl --user-unit=cos -f -n 50 ## 删除设备 :::info -🤖 权限:当设备**已准入时,只有组织管理员**可删除;若设备**无准入信息,组织成员及以上角色**均可删除 +🤖 权限:若设备**为填写信息添加的设备,组织成员及以上角色**均可删除;其余设备仅组织管理员可删除 ::: 在设备列表选择要删除的设备并点击【删除设备】,经二次确认后即可删除。当删除设备之后 -1. 已准入设备将取消准入,无法自动上传数据 - -2. 组织中将清除该设备及来自设备端的请求 - -3. 记录中将无法添加该设备 - -4. 记录中将无法查看该设备的详细信息 +1. 组织中将清除该设备及来自设备端的请求 +2. 记录中将无法添加该设备 +3. 记录中将无法查看该设备的详细信息 +4. 项目中无法添加该设备 +5. 已添加该设备的项目,在项目设备中将同步被删除 ![删除设备](./img/4-3-device-delete.png) diff --git a/docs/device/4-device-collector.md b/docs/device/4-device-collector.md index 2f8364152..b4359fc9e 100644 --- a/docs/device/4-device-collector.md +++ b/docs/device/4-device-collector.md @@ -2,77 +2,84 @@ sidebar_position: 4 --- -# 数采客户端配置 +# 设备配置 -> 准入的设备可按数据采集规则,将数据自动上传到项目中。数采规则应用于所有设备共用一套配置,如果需要按照项目划分采集规则,请参考[关于数据自动采集与诊断](../use-case/data-diagnosis/1-intro.md) 使用规则引擎来处理满足相关需求。 - -## 关于数采客户端配置 +## 简介
-

🤖 权限:**仅组织管理员**可编辑数采规则,统一对全组织设备进行配置

+

🤖 权限:**仅组织管理员**可编辑设备配置信息


-数据采集配置由组织管理员进行编辑操作,其应用于组织内已安装数据采集客户端的设备。这些设备会依据数采规则自动监听设备上的数据,且全组织设备共用一套数采配置。 -如果需要按照项目划分采集规则,请参考[关于数据自动采集与诊断](../use-case/data-diagnosis/1-intro.md) 使用规则引擎来处理满足相关需求。 +设备配置用于统一管理数采客户端及项目中的相关数采信息,主要包含以下内容: +1. **设备注册信息** + - 用于预定义设备 ID 的获取位置 + - 仅在设备首次注册时生效 + +2. **监听与采集信息** + - 定义监听目录、采集目录 + - 与手动采集、[规则采集](../use-case/data-diagnosis/1-intro.md)配合使用 + +3. **设备属性信息** + - 定义项目规则中可使用的 topic + - 定义从设备文件中读取附加信息 -在数采配置过程中,需定义如设备 ID 获取位置、设备端监听目录、客户端初始化监听时间范围、采集目录、规则触发话题、客户端自动更新机制等关键信息。设备准入后,会主动拉取组织配置的数采规则信息,并依据其在机器端动态运行。 +注意:除设备注册信息外,其他配置项均支持自动更新。已启用的设备客户端会每隔 1 分钟自动同步云端配置。 ## 入口 -在组织管理页面的「设备」分页,点击【编辑数采规则】按钮,即可进入数采客户端配置编辑界面。此处使用 yaml 语言进行编辑操作。 +在组织管理页面的「设备」分页,点击【设备配置】按钮,即可进入配置编辑界面。此处使用 yaml 语言进行编辑操作。 ![org-device](./img/4-3-org-collector.png) -完成配置后点击【保存】,配置将对全组织已准入数采客户端的设备立即生效。 +完成配置后点击【保存】,配置将对全组织已启用客户端的设备生效。 ![org-dev-rule-save](./img/4-3-device-save-collector.png) -## 数采规则格式详解 {#device-collector-format} +## 设备配置内容详解 {#device-collector-format} -数采规则主要对 5 个模块进行设置: +主要对 4 个模块进行设置: | 模块名称 | 功能描述 | | --------------------------- | -------------------------------------------------------------- | -| 数据收集器设置(collector) | 完成数据采集后,是否删除数采客户端在设备端生成的缓存数据 | +| 数据收集器设置(collector) | 上传数据前检查云端是否存在相同文件 | | 存储设置(mod) | 设备 ID 存放位置;监听目录;客户端初始化监听时间范围;采集目录 | | 设备事件属性(device) | 事件的属性值 | | 规则触发话题(topic) | 规则触发话题 | -| 更新设置(updater) | 数采客户端是否开启自动更新 | 示例模板如下: ```yaml collector: - delete_after_interval_in_hours: 48 # 默认 48 小时后自动删除数采客户端在设备端生成的缓存数据,-1 为不删除 + skip_check_same_file: false # 默认检查云端是否存在相同 sha256 的文件,若存在,则不上传,直接引用云端的文件,避免重复上传相同文件 mod: # mod 名称,默认 default,支持监听设备端指定目录下的文件,若有自定义的监听形式,请联系刻行时空 - name: 'default' + name: 'default' conf: # 启用开关,true/false,默认启用 - enabled: true - + enabled: true + # 假设机器端存在 /home/coscene/example.yaml 文件,其内容为 # serial_num: 1234 # # 则对应的配置,在机器注册阶段会读取 example.yaml 的 serial_num 字段的值(1234)作为机器的唯一标识码 sn_file: /home/coscene/example.yaml sn_field: serial_num - + # 设备端的监听目录,作为项目中规则的监听目录 - listen_dirs: + listen_dirs: - /home/bag/ # 当前时间距离文件更新时间超出 {skip_period_hours} 小时的时候,文件不会被监听/采集 skip_period_hours: 2 # 设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录 - collect_dirs: + collect_dirs: - /home/bag/ - /home/log/ @@ -87,34 +94,18 @@ device: - /home/coscene/device2.yaml # 话题,作为项目中规则触发话题的选项来源,以缩小规则匹配的范围 -# 假设存在 error_code 话题 +# 假设存在 /error_code 话题 topics: - - error_code - -# 自动更新 -updater: - # 自动更新开关,true/false,默认关闭 - enabled: false + - /error_code ``` -下面我们一一介绍这些功能及用法: - ### 数据收集器设置(collector) -此模块用于设置完成数据采集后是否删除设备端数据,以有效管理设备端硬盘存储。可配置的参数包括: - -- `delete_after_upload`:默认值为 false,若设置为 true,则上传后删除设备端数据。 - -- `delete_after_interval_in_hours`:-1 为不删除文件;若设置为具体时长(如 48),则默认会删除该时间以前的旧数据(特指数采客户端生成的数据)。 - -- `scan_interval_in_secs`:默认值为 60,即每 60 秒对文件夹扫描一次。 +此模块用于设置是否对待上传的数据进行检查,相同 sha256 的文件会被跳过上传,直接引用云端的文件,减少数据上传量,提升数据采集效率。 ```yaml -# 数据收集器设置 collector: - delete_after_upload: true # 默认值为 false - delete_after_interval_in_hours: 48 # 默认 48 小时后自动删除数采客户端在设备端生成的缓存数据,-1 为不删除 - scan_interval_in_secs: 60 # 默认值:60,即 60s 对文件夹扫描一次 + skip_check_same_file: false # 默认检查云端是否存在相同 sha256 的文件,若存在,则不上传,直接引用云端的文件,避免重复上传相同文件 ``` ### 存储设置(mod) @@ -125,39 +116,48 @@ collector: - `conf`:启用开关,`true/false`,默认启用。 -- `sn_file`:假设机器端存在对应文件(如 `/home/coscene/example.yaml`),其内容包含设备唯一标识码(如 `serial_num: 1234`),则在机器注册阶段会读取该文件指定字段的值(`1234`)作为机器的唯一标识码。 +- `sn_file`: + - 选填项 + - 假设机器端存在对应文件(如 `/home/coscene/example.yaml`),其内容包含设备唯一标识码(如 `serial_num: 1234`),则在机器注册阶段会读取该文件指定字段的值(`1234`)作为机器的唯一标识码。 + +- `sn_field`: + - 选填项 + - 对应标识码字段名 -- `sn_field`:对应标识码字段名。 +- `skip_period_hours`:若当前时间距离文件更新时间超出设定时间,文件不会被监听/采集。 -- `listen_dirs`:设备端的监听目录,作为项目中规则的监听目录。 +- `listen_dirs`: + - 选填项 + - 设备端的监听目录,作为项目中规则的监听目录 + - 若不使用监听文件的方式,可在设备端安装 [coListener](https://github.com/coscene-io/coListener/tree/cpp) 实时监听设备端 topic 数据, - `collect_dirs`:设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录。 ```yaml mod: # mod 名称,默认 default,支持监听设备端指定目录下的文件,若有自定义的监听形式,请联系刻行时空 - name: 'default' + name: 'default' conf: # 启用开关,true/false,默认启用 - enabled: true - + enabled: true + # 假设机器端存在 /home/coscene/example.yaml 文件,其内容为 # serial_num: 1234 # # 则对应的配置,在机器注册阶段会读取 example.yaml 的 serial_num 字段的值(1234)作为机器的唯一标识码 sn_file: /home/coscene/example.yaml sn_field: serial_num - + # 设备端的监听目录,作为项目中规则的监听目录 - listen_dirs: + listen_dirs: - /home/bag/ # 当前时间距离文件更新时间超出 {skip_period_hours} 小时的时候,文件不会被监听/采集 skip_period_hours: 2 # 设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录 - collect_dirs: + collect_dirs: - /home/bag/ - /home/log/ ``` @@ -189,17 +189,6 @@ topics: - error_code ``` -### 更新设置(updater) - -用于设置是否自动更新数采客户端,默认为不自动更新`false`,若改为`true` 则在我们发布新版数采客户端后设备联网将自动更新。 - -```yaml -# 自动更新 -updater: - # 自动更新开关,true/false,默认关闭 - enabled: false -``` - --- 通过以上详细步骤和说明,管理员可全面、准确地对设备数采客户端进行配置,确保设备数据采集工作的高效运行。 diff --git a/docs/device/5-device-remote-control.md b/docs/device/5-device-remote-control.md index 91cbb1fa2..528b6e7a9 100644 --- a/docs/device/5-device-remote-control.md +++ b/docs/device/5-device-remote-control.md @@ -9,9 +9,10 @@ sidebar_position: 5 ## 前提条件 1. 设备端已经安装刻行相关的设备端程序,具体请参考[设备端安装](./2-create-device.md#add-device-from-device)。 -2. 组织管理员已经准入设备,允许进行远程控制设备。[设备准入](./3-manage-device.md#设备准入)请参考相关文档。 +2. 组织管理员已经准入设备,允许进行远程控制设备。[设备准入](./3-manage-device.md#enable-device)请参考相关文档。 ## 实时可视化 + > 前提条件: > > 1. 安装 coBridge 组件 @@ -21,10 +22,9 @@ sidebar_position: 5 > - ROS2:Foxy FitzroyGalactic GeocheloneHumble Hawksbill > - [查看 coBridge 源码(C++)](https://github.com/coscene-io/coBridge) > - 强烈建议使用 coBridge 源码编译出可执行文件(编译流程文档:[CN](https://github.com/coscene-io/coBridge/blob/main/README.zh-CN.md)/[EN](https://github.com/coscene-io/coBridge/blob/main/README.md)),将其整合进机器人软件中,并在机器人启动脚本添加 `ros2 launch cobridge cobridge_launch.xml` (或者 `roslaunch cobridge cobridge_launch.xml`)命令。 -> > 2. coBridge 节点启动后,配合 virmesh 映射的外网地址及端口,可在网页端实现订阅机器人 topic,下发 service 等操作,实现对机器人的远程实时可视化。 -当设备准入后,在「组织管理」里「设备」页面列表查看设备,设备会出现【实时可视化】的按钮,点击之后即可连接到机器实时展示机器的实时情况。 +当设备启用后,在「组织管理」里「设备」页面列表查看设备,设备会出现【实时可视化】的按钮,点击之后即可连接到机器实时展示机器的实时情况。 ![device realtime](./img/4-3-device-realtime.png) @@ -34,7 +34,7 @@ sidebar_position: 5 ## 网页 SSH -当设备准入后,在「组织管理」里「设备」页面列表查看设备,设备会出现【网页 SSH】的按钮,点击之后即可在浏览器中打开新的 Tab 通过 SSH 连接到机器。 +当设备启用后,在「组织管理」里「设备」页面列表查看设备,设备会出现【网页 SSH】的按钮,点击之后即可在浏览器中打开新的 Tab 通过 SSH 连接到机器。 ![device ssh](./img/4-3-device-ssh.png) ![device ssh demo](./img/4-3-device-ssh-demo.png) diff --git a/docs/device/6-batch-device-operations.md b/docs/device/6-batch-device-operations.md index 1e0bfb21a..67beb1448 100644 --- a/docs/device/6-batch-device-operations.md +++ b/docs/device/6-batch-device-operations.md @@ -5,9 +5,9 @@ sidebar_position: 6 # 批量操作设备 可以同时选择多台设备,进行批量操作。 -## 准入数采 {#data-collection-access} -管理员可以选择多台未准入数据采集的设备,点击【准入数采】按钮,批量准入设备。 -![准入数采](./img/7-authorize-data-collection-1.png) +## 启用客户端 {#data-collection-access} +管理员可以选择多台未启用客户端的设备,点击【启用客户端】按钮,批量启用设备。 +![启用数采](./img/7-authorize-data-collection-1.png) ## 添加关联项目 {#add-associated-projects} 选择需要添加的设备,点击【添加关联项目】按钮,选择需要添加的项目,点击【添加】按钮,即可将设备添加到项目中。 diff --git a/docs/device/7-change-device-guide.md b/docs/device/7-change-device-guide.md index 3147df4cb..bdc87e20c 100644 --- a/docs/device/7-change-device-guide.md +++ b/docs/device/7-change-device-guide.md @@ -36,9 +36,9 @@ sidebar_position: 7 ![执行安装命令](./img/4-3-install-successfully.png) -4. 重新准入设备,安装完成后,联系组织管理员在平台设备管理页面,对设备进行重新准入操作,使设备恢复正常使用。 +4. 启用设备,安装完成后,联系组织管理员在平台设备管理页面,对设备进行启用,使设备恢复正常使用。 - ![准入设备](./img/4-3-access-device-2.png) + ![启用设备](./img/4-3-access-device.png) ## 原机版本升级流程 @@ -68,9 +68,9 @@ sidebar_position: 7 ![执行安装命令](./img/4-3-install-successfully.png) -4. 重新准入设备,安装完成后,联系组织管理员在平台设备管理页面,对设备进行重新准入操作,使得升级后的设备正常运行于平台。 +4. 启用设备,安装完成后,联系组织管理员在平台设备管理页面,对设备进行启用,使得升级后的设备正常运行于平台。 - ![准入设备](./img/4-3-access-device-2.png) + ![启用设备](./img/4-3-access-device.png) ## 设备端卸载客户端流程 diff --git a/docs/device/img/4-3-access-device-2.png b/docs/device/img/4-3-access-device-2.png deleted file mode 100644 index 2604b4b91..000000000 Binary files a/docs/device/img/4-3-access-device-2.png and /dev/null differ diff --git a/docs/device/img/4-3-access-device.png b/docs/device/img/4-3-access-device.png index 076a9df56..b538c4d93 100644 Binary files a/docs/device/img/4-3-access-device.png and b/docs/device/img/4-3-access-device.png differ diff --git a/docs/device/img/4-3-device-add-project-01.png b/docs/device/img/4-3-device-add-project-01.png index 3b0f11ff7..4ae1a2048 100644 Binary files a/docs/device/img/4-3-device-add-project-01.png and b/docs/device/img/4-3-device-add-project-01.png differ diff --git a/docs/device/img/4-3-device-delete.png b/docs/device/img/4-3-device-delete.png index 2afb58fb3..3761ace85 100644 Binary files a/docs/device/img/4-3-device-delete.png and b/docs/device/img/4-3-device-delete.png differ diff --git a/docs/device/img/4-3-device-details-edit.png b/docs/device/img/4-3-device-details-edit.png index 750b5bf8d..a56cf57a0 100644 Binary files a/docs/device/img/4-3-device-details-edit.png and b/docs/device/img/4-3-device-details-edit.png differ diff --git a/docs/device/img/4-3-device-filter.png b/docs/device/img/4-3-device-filter.png index b5054a0ad..dface9c10 100644 Binary files a/docs/device/img/4-3-device-filter.png and b/docs/device/img/4-3-device-filter.png differ diff --git a/docs/device/img/4-3-device-save-collector.png b/docs/device/img/4-3-device-save-collector.png index b0b70b671..b222a48d9 100644 Binary files a/docs/device/img/4-3-device-save-collector.png and b/docs/device/img/4-3-device-save-collector.png differ diff --git a/docs/device/img/4-3-device-table-edit.png b/docs/device/img/4-3-device-table-edit.png index 4cd5f67a2..b51a6683d 100644 Binary files a/docs/device/img/4-3-device-table-edit.png and b/docs/device/img/4-3-device-table-edit.png differ diff --git a/docs/device/img/4-3-device-table-setting.png b/docs/device/img/4-3-device-table-setting.png index 156e54844..950b6c7f2 100644 Binary files a/docs/device/img/4-3-device-table-setting.png and b/docs/device/img/4-3-device-table-setting.png differ diff --git a/docs/device/img/4-3-fields-popup.png b/docs/device/img/4-3-fields-popup.png deleted file mode 100644 index 12fafd336..000000000 Binary files a/docs/device/img/4-3-fields-popup.png and /dev/null differ diff --git a/docs/device/img/4-3-org-collector.png b/docs/device/img/4-3-org-collector.png index ebb7f6c45..d1f53cb16 100644 Binary files a/docs/device/img/4-3-org-collector.png and b/docs/device/img/4-3-org-collector.png differ diff --git a/docs/device/img/4-3-org-fields.png b/docs/device/img/4-3-org-fields.png new file mode 100644 index 000000000..1b1287a7b Binary files /dev/null and b/docs/device/img/4-3-org-fields.png differ diff --git a/docs/device/img/4-3-setting-device-fields.png b/docs/device/img/4-3-setting-device-fields.png index e7ebefff4..ac388e6d1 100644 Binary files a/docs/device/img/4-3-setting-device-fields.png and b/docs/device/img/4-3-setting-device-fields.png differ diff --git a/docs/device/img/7-authorize-data-collection-1.png b/docs/device/img/7-authorize-data-collection-1.png index 6687b9dfd..890a8be73 100644 Binary files a/docs/device/img/7-authorize-data-collection-1.png and b/docs/device/img/7-authorize-data-collection-1.png differ diff --git a/docs/get-started/1-quick-start.md b/docs/get-started/1-quick-start.md index 5aece22e5..a67a901f9 100644 --- a/docs/get-started/1-quick-start.md +++ b/docs/get-started/1-quick-start.md @@ -3,136 +3,239 @@ sidebar_position: 1 --- # 快速开始 + +## 平台能力介绍 + +刻行时空是一款基于 **SceneOps 理念**的多模态数据管理平台,提供了**数据采集、存储、管理、标注、审核、分析、可视化**等功能,在帮助用户更高效地管理和分析数据同时,还可以通过平台提供算力实现**云端 EB 级别数据回灌测试、云端仿真验证、算法测试**。 + +- 数据采集:支持设备、传感器、关节等多种数据源,支持手动采集、自动采集、远程采集等多种方式。 +- 数据存储:支持多种数据存储方式,如本地存储、云存储、对象存储等。 +- 数据管理:支持数据的增删改查、权限管理、数据版本控制等,同时**支持对 hdf5、db3、mcap、bag 等主流格式的数据格式之间的相关转换。** +- 数据标注:支持数据的标注、审核、审核结果统计等。 +- 数据分析:支持数据的统计分析、数据挖掘、机器学习等。 +- 云端仿真:支持云端仿真验证、云端 EB 级别数据回灌测试、算法测试等。 +- 可视化:支持数据(mcap,bag,db3 等主流格式)的可视化分析、数据挖掘、机器学习等。 +- 协作:支持多用户协作、多组织协作、多项目协作等。 +- 权限管理:支持用户、组织、项目、记录、文件、一刻等资源的权限管理。 + ## 登录刻行时空 -刻行时空的使用角色分为管理员和普通用户,你可以按照角色,创建或进入组织。 + +刻行时空平台中,我们提供了几个核心维度的角色与权限的划分,可参考下图的组织架构图: +![quick-start](./img/01-quick-start-01.png) + +- 「组织」:组织是刻行时空平台的最高管理单位,相当于一个公司或公司内部的某个团队。 + +- 「项目」:项目是刻行时空平台的第二级管理单位,在不同的应用场景下可以有不同的意义: + + - 在具身智能数采场景中,一个项目可以对应是一个数采工厂,然后通过第三级的记录来区分技能。也可以对应成一个技能,在项目下通过记录来管理归属于此技能的所有数据。 + - 在商清机器人运维领域中,一个项目可以对应是一个型号的机器人的全部运维问题,也可以定义成某个重点客户的运维问题。 + - 在机器人仿真验证场景中,一个项目可以对应是一个型号的机器人的全部仿真验证环境。 + +- 「设备」:设备是刻行时空平台的第二级管理单位,对应的是安装了刻行时空端侧软件的设备,如机器人、无人机等。 + +- 「镜像仓库」:镜像仓库是刻行时空平台的第二级管理单位,用于存放镜像文件,如 Docker 镜像、ROS 镜像等。 + +- 「记录」:记录是刻行时空平台的第三级管理单位,它一定会归属与第二级管理单位'项目',在不同的应用场景下可以有不同的意义: + + - 在具身智能数采场景中,一个记录可以对应是一个数采工厂中的一次数采。 + - 在商清机器人运维场景中,一个记录可以对应是某台机器人的一次现场运维数据的记录。 + - 在仿真验证场景中,一个记录可以对应是一个仿真验证环境。 + +- 「自动化动作/测试程序/测试套件/触发器」:以上单位与记录同级,都需要归属与第二级管理单位'项目',在不同的应用场景下可以自由排列组合获得不同的能力,可查看对应文档获取详细信息。 + +而对于我们每一位用户,**每个组织的创建者(或者首位登录者),会默认成为组织的管理员。** 其余成员可以通过与组织创建者的相同的 OA 办公软件认证登录(例如飞书/钉钉等),用户将自动加入管理员创建的组织。或者由组织管理员邀请用户加入组织(邮箱登录)。 + +每一位用户,在进入组织后,会获得组织成员的权限,可以看到组织内的内部项目/公开项目/以及用户自己创建的私有项目。可以对组织内的设备进行查看和注册,但无管理权限。 + +用户可以创建属于自己的项目,则默认获得项目管理员权限,在该项目中用户可以创建记录、上传文件、创建自动化动作、创建测试程序、创建测试套件、创建触发器等。 ### 管理员 -1. 通过浏览器访问[刻行时空平台 https://www.coscene.cn/](https://www.coscene.cn),点击右上角的【快速登录】,进入登录界面。 - - ![org_2](./img/org_2.png) + +1. 通过浏览器访问[刻行时空平台](https://www.coscene.cn),点击右上角的【快速登录】,进入登录界面。 + + ![org_2](./img/org_2.png) 2. 选择登录方式进入平台:邮箱、飞书、钉钉或谷歌企业邮箱。 - ![org_3](./img/org_3.png) + ![org_3](./img/org_3.png) 3. 填写「组织名称」与「组织 ID」,勾选「同意」,点击【创建组织】按钮。 - - ![org_4](./img/org_4.png) -4. 创建成功后,将自动进入组织首页。可以开始[管理你的组织](../collaboration/organization/1-organizations.md)啦。 + ![org_4](./img/org_4.png) + +4. 创建成功后,将自动进入组织首页。可以开始[管理你的组织](../collaboration/organization/1-organizations.md)。 ### 普通用户 -> 首先请联系组织管理员,邀请你加入组织。 + +> 首先请联系组织管理员,邀请你加入组织。或者通过同一飞书/钉钉/谷歌企业邮箱等办公软件,使用相同的途径登录。 1. 通过浏览器访问[刻行时空平台 https://www.coscene.cn/](https://www.coscene.cn),点击右上角的【快速登录】,进入登录界面。 - - ![org_2](./img/org_2.png) + + ![org_2](./img/org_2.png) 2. 选择与你组织一致的登录方式(邮箱、飞书、钉钉或谷歌企业邮箱)进行登录。 - ![org_3](./img/org_3.png) + ![org_3](./img/org_3.png) -3. 选择组织后,即可进入组织,开始你的数据之旅啦。 +3. 选择组织后,即可进入组织,开始你的数据之旅。 - ![org-welcome](./img/2-1-org-welcome.png) + ![org-welcome](./img/2-1-org-welcome.png) + +## 可视化您的数据与日志 + +**可视化**是刻行时空平台中最核心的能力之一,基于刻行时空强大的能力,用户可以抛弃依赖繁琐的 Rviz/Rviz2 等工具,直观地查看、分析、诊断设备数据、日志、配置文件等数据,帮助用户更高效地管理和分析数据。 -## 管理多模态数据 ### 创建项目 + 项目是数据管理的单元,对于数据的存储、管理、隔离和应用都发生在项目级别。一个项目可以是一个部门、一个项目组或一个业务线。更多关于项目的介绍,请参考[项目](../collaboration/project-collaboration/1-project.md)。 在主页上点击"创建项目"按钮,然后按照指引步骤完成项目创建。 ![create-project](./img/4-2-create-project.png) -### 创建记录并上传文件 -记录是一个描述相似场景的文件集合,用于存储、管理、可视化数据。一条记录中可以存放设备发生一次故障时产生的数据、设备执行一次任务时产生的数据、待标注的一小段数据集,如 ROS Bag、日志、地图、配置文件、图片与视频等。更多关于记录的介绍,请参考[记录](../collaboration/record/1-quick-start-record.md)。 +### 创建记录 + +记录(Record)是描述相关场景的文件集合,用于数据的存储、管理和可视化。记录可以包含: -1. 在项目左侧边栏,选择「记录」,点击【创建记录】按钮。 +- 设备故障数据 +- 任务执行数据 +- 待标注数据集 +- ROS Bag、日志、地图、配置文件等 - ![create-record_1](./img/create-record_1.png) +详细信息请参考[记录](../collaboration/record/1-quick-start-record.md)。 + +1. 在项目左侧导航栏,选择「记录」,点击【创建记录】。 + +![create-record_1](./img/create-record_1.png) 2. 在弹窗中输入记录的名称等相关信息,点击【创建】按钮。 - ![create-record_2](./img/create-record_2.png) +![create-record_2](./img/create-record_2.png) 3. 创建完成后,自动进入记录详情页,点击【上传】按钮上传 bag/mcap 文件,或点击[下载示例文件](https://coscene-artifacts-prod.oss-cn-hangzhou.aliyuncs.com/docs/example/viz/scene-0001.mcap)后上传。 - ![create-record_3](./img/create-record_3.png) +![create-record_3](./img/create-record_3.png) ### 可视化播放记录 + 数据可视化界面通过可配置的「面板」和「布局」,将设备数据以直观的可视化方式呈现,助力用户高效分析与诊断各类问题。更多关于可视化的介绍,请参考[可视化数据](../viz/1-about-viz.md)。 -1. 在记录中上传 bag/mcap 后,点击【播放记录】,进入可视化页面。 +1. 在记录中上传 bag/mcap/db3/hdf5 后,点击【播放记录】,进入可视化页面。 - ![play-record_1](./img/play-record_1.png) +![play-record_1](./img/play-record_1.png) 2. 在可视化页面的布局栏中,选择【从文件导入】,导入示例布局。 - ![play-record_2](./img/play-record_2.png) +![play-record_2](./img/play-record_2.png) 3. 点击底部【播放】按钮开始播放数据。可以通过切换不同的面板(如三维图、曲线图、状态转换图、表格等)来查看数据。更多面板使用说明,请参考[面板介绍](../viz/4-panel/1-panel-overview.md)。 - ![play-record_3](./img/play-record_3.png) - +![play-record_3](./img/play-record_3.png) + ### 创建并分享一刻 + 在可视化界面播放数据时,你可以通过创建「一刻」来标记重要的时间点或时间段。「一刻」可以帮助你追踪关键数据变化(如设备异常、性能波动)等值得关注的信息,方便后续查看和分析。更多关于一刻的介绍,请参考[一刻](../viz/5-create-moment-viz.md)。 1. 在可视化播放记录时,点击左下角【创建一刻】,可标记一刻的起点。 - ![创建一刻起点](./img/2-4-create-moment-start.png) +![创建一刻起点](./img/2-4-create-moment-start.png) 2. 再次点击【创建一刻】以标记一刻的终点。此时会自动弹出创建一刻的窗口,蓝色区域表示一刻的时间范围。 - ![创建一刻终点](./img/2-4-create-moment-end.png) +![创建一刻终点](./img/2-4-create-moment-end.png) 3. 填写相关信息后,点击【创建一刻】即可完成。在左侧的一刻面板中查看当前记录的所有一刻。 - ![查看一刻面板](./img/2-4-view-moment-panel.png) +![查看一刻面板](./img/2-4-view-moment-panel.png) 4. 点击分享按钮可将当前一刻的链接分享给其他成员,方便协作分析。 - ![分享一刻](./img/2-4-share-moment.png) +![分享一刻](./img/2-4-share-moment.png) ## 远程连接设备 -设备可以与真实设备建立联系,详见[设备](../device/1-device.md) + +用户可以与现场正在运行的设备建立联系,详见[设备](../device/1-device.md) + +通过远程连接设备,可以实时查看设备的运行状态与各传感器的信息,还可以通过网页 SSH 远程连接设备,进行调试和操作。在机器人的远程运维与操作方面有极大的助力。 ### 添加设备 + > 前提条件:支持 Linux 设备,arm64 和 x86_64 架构 1. 通过右上角「我的」,进入「组织管理-设备」页面,点击【添加设备】按钮。 - ![添加设备入口](./img/device_1.png) +![添加设备入口](./img/device_1.png) + +2. 在弹框中,选择【系统生成 ID】,点击【复制】按钮,复制安装命令。 + - 若要使用自定义的 ID,参见[设备 ID 配置](../device/2-create-device.md#设备-id-配置) -2. 在弹框中,选择【系统生成 ID】,勾选【远程控制】,点击【复制】按钮,复制安装命令。 - - 若要使用自定义的 ID,参见[设备 ID 配置](../device/2-create-device.md#设备-id-配置) - - device_2 +![添加设备入口](./img/device_2.png) +**刻行时空强烈建议用户使用自定义的 ID,避免出现后续设备重复注册的问题。** 3. 在真实设备上打开 shell 终端,执行安装命令,设备端出现 `Installation completed successfully 🎉` 即表示安装成功。 -4. 等待 1-2 分钟,设备会自动展示在设备列表中。联系组织管理员,准入设备的使用权限。 +4. 等待 1-2 分钟,设备会自动展示在设备列表中。联系组织管理员,启用设备的使用权限。 - ![准入设备](./img/4-3-access-device-2.png) +![启用设备](./img/4-3-access-device.png) ### 网页 SSH -当设备准入后,在「组织管理-设备」页面找到该设备,点击【网页 SSH】按钮即可在浏览器中打开新标签页,远程连接到设备。更多详情请参考[网页 SSH](../device/5-device-remote-control.md#网页-ssh)。 + +当设备启用后,在「组织管理-设备」页面找到该设备,点击【网页 SSH】按钮即可在浏览器中打开新标签页,远程连接到设备。更多详情请参考[网页 SSH](../device/5-device-remote-control.md#网页-ssh)。 ![device ssh](./img/4-3-device-ssh.png) ![device ssh demo](./img/4-3-device-ssh-demo.png) ### 实时可视化 + +通过实时可视化的功能,用户可以实时查看设备的运行状态和数据,实时查看机器人传感器的状态与数据,还可以调用机器人端提供的service,发布 rostopic,订阅 rostopic,调用服务等。实现实时的**远程运维**。 + > 前提条件: > > 1. 安装 coBridge 组件 > - coBridge 是一个独立的 ROS 节点,负责通过 WebSocket 协议将设备数据实时传输到前端 > - 支持的 ROS 版本: > - ROS1:Noetic NinjemysMelodic Morenia -> - ROS2:Foxy FitzroyGalactic GeocheloneHumble Hawksbill -> - [查看 coBridge 源码(C++)](https://github.com/coscene-io/coBridge) -> +> - ROS2:Foxy FitzroyGalactic GeocheloneHumbleHawksbill + +安装方法: + +- 导入公钥: + +```bash +curl -fsSL https://download.coscene.cn/coscene-apt-source/coscene.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/coscene.gpg +``` + +- 添加源: + +```bash +echo "deb [signed-by=/etc/apt/trusted.gpg.d/coscene.gpg] https://download.coscene.cn/coscene-apt-source $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/coscene.list +``` + +- 更新与安装: + +```bash +sudo apt update +# CAUTION: ${ROS_DISTRO} need to be replaced by 'noetic', 'foxy' or 'humble', if ROS_DISTRO not in your env +sudo apt install ros-${ROS_DISTRO}-cobridge -y +``` + +- 运行与启动: + +```bash +source /opt/ros/${ROS_DISTRO}/setup.bash #根据您的 ros 版本替换 ${ROS_DISTRO} + +# for ros 1 distribution +roslaunch cobridge cobridge.launch + +# for ros 2 distribution +ros2 launch cobridge cobridge_launch.xml +``` + +\*\* 我们的代码是完全开源的,支持您后续根据您的需求直接基于我们的 cobridge 代码进行二次开发,并合入您的专属软件包中,可查看[ coBridge](https://github.com/coscene-io/coBridge) 源码(C++) + > 2. 启动 coBridge 节点后,即可在网页端查看设备的实时数据 -当设备准入后,在「组织管理-设备」页面找到该设备,点击【实时可视化】按钮即可在浏览器中实时查看设备的运行状态和数据。更多详情请参考[实时可视化](../device/5-device-remote-control.md#实时可视化)。 +当设备启用后,在「组织管理-设备」页面找到该设备,点击【实时可视化】按钮即可在浏览器中实时查看设备的运行状态和数据。更多详情请参考[实时可视化](../device/5-device-remote-control.md#实时可视化)。 ![device realtime](./img/4-3-device-realtime.png) @@ -141,148 +244,246 @@ sidebar_position: 1 ![device realtime demo](./img/4-3-device-realtime-demo.png) ## 采集设备数据 -设备可以与真实设备建立连接,作为数据采集的目标对象。在相关记录中,能够额外添加设备信息,进而实现对该设备上传数据的精准检索与全面统计,详见[设备](../device/1-device.md)。 + +平台可以与真实设备建立连接,通用主动在平台上下发任务的方式,去采集用户需要上传到平台上的数据。 ### 添加设备 + > 前提条件:支持 Linux 设备,arm64 和 x86_64 架构。 1. 通过右上角「我的」,进入「组织管理-设备」页面,点击【添加设备】按钮。 - ![添加设备入口](./img/device_1.png) +![添加设备入口](./img/device_1.png) 2. 在弹框中,选择【系统生成 ID】,点击【复制】按钮,复制安装命令。 - - 若要使用自定义的 ID,参见[设备 ID 配置](../device/2-create-device.md#设备-id-配置) - - ![添加设备](./img/device_2.png) + - 若要使用自定义的 ID,参见[设备 ID 配置](../device/2-create-device.md#设备-id-配置) + +![添加设备](./img/device_2.png) 3. 在真实设备上打开 shell 终端,执行安装命令,设备端出现 `Installation completed successfully 🎉` 即表示安装成功。 -4. 等待 1-2 分钟,设备会自动展示在设备列表中。联系组织管理员,准入设备的使用权限。 +4. 等待 1-2 分钟,设备会自动展示在设备列表中。联系组织管理员,启用设备的使用权限。 - ![准入设备](./img/4-3-access-device-2.png) +![启用设备](./img/4-3-access-device.png) ### 手动采集数据 + 1. **将设备添加到项目**:进入「项目设备」页,点击【添加设备】按钮,选择需要采集数据的设备。 - ![添加设备](./img/4-3-device-add-project-02.png) +![添加设备](./img/4-3-device-add-project-02.png) 2. **配置采集目录**:进入组织设备配置页,设置采集目录 `collect_dirs` 为设备上存储数据的目录,如:`/home/bag/` 和 `/home/log/`。 - ![配置采集目录](./img/device-config_1.png) +![配置采集目录](./img/device-config_1.png) +**注意:在您配置采集目录时,请确保您需要被采集的数据直接存放在该目录下。** - ```yaml - mod: - name: 'default' - conf: - enabled: true - # 设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录 - collect_dirs: - - /home/bag/ - - /home/log/ - ``` +```yaml +mod: + name: 'default' + conf: + enabled: true + # 设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录 + collect_dirs: + - /home/bag/ + - /home/log/ +``` 3. **创建采集任务**:进入「项目-任务-采集任务」页面,创建采集任务。 - - 选择要采集数据的设备 - - 选择要采集的时间范围:在目标数据路径下,采集「文件更新时间」在指定时间段内的文件 - - 目标数据路径:默认值取自设备配置中的 `collect_dirs`,也可以自定义路径。若填写为文件夹,则采集该文件夹下符合时间范围的文件;若填写为文件,则采集该文件。 - - 任务名称:自定义名称 + - 选择要采集数据的设备 + - 选择要采集的时间范围:在目标数据路径下,采集「文件更新时间」在指定时间段内的文件 + - 目标数据路径:默认值取自设备配置中的 `collect_dirs`,也可以自定义路径。若填写为文件夹,则采集该文件夹下符合时间范围的文件;若填写为文件,则采集该文件。 + - 任务名称:自定义名称 - ![创建采集任务](./img/collect_1.png) +![创建采集任务](./img/collect_1.png) 4. **查看采集结果**:进入「项目-任务-采集任务」页面,点击任务名称查看采集结果,采集完成的数据将自动保存到记录中。 - ![查看采集任务](./img/collect_2.png) - ![查看采集记录](./img/collect_3.png) +![查看采集任务](./img/collect_2.png) +![查看采集记录](./img/collect_3.png) ### 自动采集数据 -自动采集数据是通过预定义的规则持续监测设备日志,在触发特定条件时自动采集相关数据,从而实现设备故障的自动分析和潜在风险的预警。详情请参考[数采&诊断](../use-case/data-diagnosis/3-add-rule.md)。 -1. **将设备添加到项目**:进入「项目设备」页,点击【添加设备】按钮,选择需要采集数据的设备。 +自动采集数据是通过预定义的规则持续监测设备日志,或者监听特定的 topic,在触发特定条件时自动采集相关数据,从而实现运维故障数据的自动上传。详情请参考[数采&诊断](../use-case/data-diagnosis/3-add-rule.md)。 - ![添加设备](./img/4-3-device-add-project-02.png) +#### 1. **将设备添加到项目**:进入「项目设备」页,点击【添加设备】按钮,选择需要采集数据的设备。 -2. **配置监听与采集目录**:进入组织设备配置页,设置监听目录`listen_dirs` 与采集目录 `collect_dirs` +![添加设备](./img/4-3-device-add-project-02.png) - ![配置采集目录](./img/device-config_1.png) +#### 2. **配置监听与采集目录**:进入组织设备配置页,设置监听目录`listen_dirs` 与采集目录 `collect_dirs` - ```yaml - mod: - name: 'default' - conf: - enabled: true - # 设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录 - collect_dirs: - - /home/bag/ +**注意:在您配置采集目录时,请确保您需要被采集的数据直接存放在该目录下,暂不支持自动遍历目录下的子目录,如果是存放在子目录下,需要配置完整路径。** - # 设备端的监听目录,作为项目中规则的监听目录 - listen_dirs: - - /home/bag/ +**注意:如果我们是基于监听 topic 的方式作为基础规则,那么需要在此处配置 topics ,参考如下示例。** +![配置采集目录](./img/device-config_1.png) - # 设置文件监听的时效性:若文件的最后更新时间距离当前时间超过 2 小时,则不会被系统监听 - skip_period_hours: 2 - ``` +```yaml +mod: + name: 'default' + conf: + enabled: true + # 设备端的采集目录,作为项目中数据采集任务与规则采集的指定目录 + collect_dirs: + - /home/bag/ -3. **创建规则**:进入「项目-数采&诊断」页面,创建规则。 + # 设备端的监听目录,作为项目中规则的监听目录。刻行时空的端侧软件将监控此目录下的文件(文件类型支持 mcap, bag , log 等)里是否包含您设置的 topics ,若有则触发采集 + listen_dirs: + - /home/bag/ - ![创建规则](./img/rule_1.png) + # 设置文件监听的时效性:若文件的最后更新时间距离当前时间超过 2 小时,则不会被系统监听 + skip_period_hours: 2 + #监听的 topic 名称,例如您的机器人会持续发布一个叫 /error_status 的 topic 来表示出现了告警可能需要采集数据,您可以在规则中配置监听该 topic + topics: + - /error_status +``` -4. **定义规则**:定义规则的触发条件和采集行为。以下是一个示例规则,当检测到 mcap 文件中 /spawn_entity node 状态为 inactive 时,自动上传数据: +#### 3. **规则组** - - mcap 文件中的消息: +规则组是规则的集合,用于对规则进行分类管理。 - rule_2 +##### 添加规则组 - - 规则名称:检测 /spawn_entity node 状态 - - 事件匹配条件:msg["nodes"][3]["state"] 包含 INACTIVE - - 触发操作:采集数据、诊断数据 - - 采集数据:采集触发时间点前后一段时间的数据,保存到记录中;采集目录为设备配置中的 `collect_dirs`;文件的时间取自文件的时间戳,若需采集的时间段与文件有交集,则将上传整个文件 - - 诊断数据:在触发时间点创建一刻 +在项目中,进入「数采&诊断规则」分页,点击【添加规则组】,添加成功后,可在该规则组内添加具体规则。 - ![定义规则](./img/rule_3.png) - ![定义规则](./img/rule_4.png) +![添加规则组](./img/add-rule-group.png) -5. **确认规则**:确认规则已启用,且目标设备已拉取到最新的规则配置。 - - 启用规则组:点击规则组右侧的启用按钮 +##### 规则组的启用与关闭 - ![启用规则组](./img/rule_5.png) +新添加的规则组默认处于「关闭状态」,若要让项目设备使用其中的规则进行数据监听,需手动开启; - - 在设备端执行以下命令,查看是否拉取到最新的规则配置,即出现关键词 `Updated rules`、`listen_dirs`、`collect_dirs` +若暂时不需要使用,但后续还会用到,也可将其设为「关闭状态」。 - ```bash - # 查看数采客户端日志 - tail -f ~/.local/state/cos/logs/cos.log - ``` +![规则组启用与关闭](./img/rule-group-toggle.png) + +#### 4. 规则组管理 + +在更多操作中,可进行规则组的重命名和删除操作。 + +![规则组管理](./img/rule-group-management.png) + +#### 5.**规则创建与配置** + +规则是规则组中的单个规则,用于定义触发数据采集与诊断的条件,以及触发后的操作。 + +##### 添加规则 + +在规则组中,可通过点击【创建空白规则】或【从规则模板创建】来添加新规则,下面主要介绍创建空白规则的步骤。 + +![添加规则](./img/add-rule.png) + +为规则命名,规则名称用于区分不同规则,方便后续管理和识别。 + +![规则基础信息](./img/rule-basic-info.png) + +##### 设备事件监听 + +> 此模块是对项目设备进行监控,当预先设定的监听目录里的文件有匹配到您设定的监听话题时,将自动上报事件并记录到当前项目的仪表盘中。 + +![设备事件监听](./img/device-event-monitoring.png) + +###### 关注的话题 + +- 设置关注的触发话题能缩小规则匹配范围,提高规则诊断的性能、速度和准确度。 + +- 若想监听设备中日志类型的文件,请选择`/error_status`。 + +- 其他话题选项可在组织的设备配置中设置,详情可参考[ 4-设备配置](../device/4-device-collector.md)文档。 + +###### 匹配事件码表 + +- 在事件码表中,可定义事件的 code 值、事件名称、等级、解决方案等信息。事件码表必须包含 code 列,作为事件的唯一标识符。 + +- 上传事件码表(支持 JSON 或 CSV 文件)后,系统会自动解析,还支持预览、下载、删除操作。若要修改表内容,可先下载到本地电脑修改后再上传。 + +![事件码表](./img/event-code-table.png) + +###### 事件匹配条件 + +- 根据设备消息字段与某个值的匹配关系判断事件是否触发。 + +- 点击【切换】按钮可在 code 表头和具体值输入框之间切换。 + +- 在预定义输入框中,设定了事件码表中的 code 值作为匹配变量。 + +- 在具体值输入框中,直接输入文字信息。 - ![查看日志](./img/rule_6.png) +- 若要检测 log 文件中是否有关键词 error 1,则需填写:msg.message 包含 error 1,并且「关注的话题」一栏需要选择 /error_status(这里参考我们第二步中配置的 topic 名称)。 -6. **触发规则**:在设备的 `listen_dirs` 与 `collect_dirs` 目录下,创建 mcap 文件,触发规则 +- 若要检测 bag 文件的 /error_status 话题(消息类型为 std_msgs/string)中的 msg.data 消息字段中有关键词 error 1,则需要填写:msg.data 包含 error 1。 - - 在设备端,进入 `listen_dirs` 与 `collect_dirs` 目录,执行命令下载 [mcap 文件](https://coscene-artifacts-prod.oss-cn-hangzhou.aliyuncs.com/sample_data/rule_sample.mcap) +- 多行逻辑判断条件之间是并且关系,需同时满足才生效。 - ```bash - # 进入 listen_dirs 目录 - cd /home/bag/ - # 下载 mcap 文件 - wget https://coscene-artifacts-prod.oss-cn-hangzhou.aliyuncs.com/sample_data/rule_sample.mcap - ``` - - - 执行命令查看数采客户端日志,查看是否触发规则并上传数据,即出现关键词 `triggered`、`upload all files successfully` +![事件匹配条件](./img/event-match-condition.png) - ```bash +###### 事件去重时长 + +- 若新事件(同一事件)在上次合并事件后的设定时间内发生,则与原事件合并。每次新事件发生时,都重置时间,直到超出时间窗口都无新事件发生时,完成合并。 + +- 支持范围设置在 1 秒 \~ 86400 秒(1 天)之间。 + +![事件去重设置](./img/event-deduplication.png) + +当 log 文件中出现:1001、1002 或 1003 时(即事件码表中的 code 列任一行值),即可判断为事件匹配成功。 + +触发操作是指规则条件满足后触发后的操作,目前支持了采集数据、诊断数据两个模块。 + +##### 采集数据 + +- 规则条件在设备端触发后,会在本项目中自动创建一条采集任务,采集对应时间的设备数据,采集完成后在记录中生成一条记录,包含触发条件满足时的数据。 + +![采集数据配置1](./img/data-collection-1.png) + +![采集数据配置2](./img/data-collection-2.png) + +- 可以设定上传文件的时间范围、记录名称、记录描述、记录标签、采集限制。 + +- 上传文件指上传数采目录中符合时间范围的所有文件。 + +- 记录名称、记录描述支持使用代码变量(使用 `{scope.表头名称}` 的格式)与正文穿插书写。 + +![采集数据配置3](./img/data-collection-3.png) + +- 在更多设置中,可利用[文件通配符](https://www.malikbrowne.com/blog/a-beginners-guide-glob-patterns/)进行二次筛选。 + +- 若有具体的附加文件,如地图文件,可在此处写明具体文件所在地址。 + +![采集数据配置4](./img/data-collection-4.png) + +##### 诊断数据 + +- 对已经采集到平台中的记录执行数据诊断动作,符合触发条件的时间点将自动创建一刻,可在采集后的记录中查看相关一刻。 + +![诊断数据配置](./img/data-diagnosis.png) + +- 支持设定一刻名称、一刻描述、一刻的属性值,以及是否为诊断出的一刻创建关联的通用任务进行流转。 + +- 一刻名称、一刻描述、一刻的属性值支持使用代码变量(使用 `{scope.表头名称}` 的格式)与正文穿插书写。 + +![诊断数据设置](./img/diagnosis-settings.png) + +#### 6.**确认规则**:确认规则已启用,且目标设备已拉取到最新的规则配置。 + +- 启用规则组:点击规则组右侧的启用按钮 + +![启用规则组](./img/rule_5.png) + +- 在设备端执行以下命令,查看是否拉取到最新的规则配置,即出现关键词 `Updated rules`、`listen_dirs`、`collect_dirs` + +```bash # 查看数采客户端日志 tail -f ~/.local/state/cos/logs/cos.log - ``` +``` - ![查看日志](./img/rule_7.png) +![查看日志](./img/rule_6.png) -7. **查看采集结果**:在「项目-记录」页面,查看设备自动创建的记录。点击记录名称进入详情,查看文件与一刻信息。通过播放记录,在[可视化](../viz/1-about-viz.md)页面查看采集的数据。 +#### 7.**查看采集结果**:在「项目-记录」页面,查看设备自动创建的记录。点击记录名称进入详情,查看文件与一刻信息。通过播放记录,在[可视化](../viz/1-about-viz.md)页面查看采集的数据。 - ![查看采集结果](./img/rule_8.png) - | 内容 | 示例 | - | :---: | :---: | - | 文件 | rule_9 | - | 一刻 | rule_10 | +![查看采集结果](./img/rule_8.png) +| 内容 | 示例 | +| :---: | :---: | +| 文件 | rule_9 | +| 一刻 | rule_10 | ## 了解更多 + - [自动化处理数据](../workflow/1-quick-start-workflow.md) -- [更新日志](https://docs.coscene.cn/changelog) \ No newline at end of file +- [更新日志](https://docs.coscene.cn/changelog) diff --git a/docs/get-started/img/01-quick-start-01.png b/docs/get-started/img/01-quick-start-01.png new file mode 100644 index 000000000..0ef9d5eea Binary files /dev/null and b/docs/get-started/img/01-quick-start-01.png differ diff --git a/docs/get-started/img/4-3-access-device-2.png b/docs/get-started/img/4-3-access-device-2.png deleted file mode 100644 index 2604b4b91..000000000 Binary files a/docs/get-started/img/4-3-access-device-2.png and /dev/null differ diff --git a/docs/get-started/img/4-3-access-device.png b/docs/get-started/img/4-3-access-device.png new file mode 100644 index 000000000..b538c4d93 Binary files /dev/null and b/docs/get-started/img/4-3-access-device.png differ diff --git a/docs/get-started/img/9-4-click-rule-set.png b/docs/get-started/img/9-4-click-rule-set.png new file mode 100644 index 000000000..6e803f0d3 Binary files /dev/null and b/docs/get-started/img/9-4-click-rule-set.png differ diff --git a/docs/get-started/img/9-4-disable-rule-set-confirm.png b/docs/get-started/img/9-4-disable-rule-set-confirm.png new file mode 100644 index 000000000..f0ad7b660 Binary files /dev/null and b/docs/get-started/img/9-4-disable-rule-set-confirm.png differ diff --git a/docs/get-started/img/9-4-enable-rule-set.png b/docs/get-started/img/9-4-enable-rule-set.png new file mode 100644 index 000000000..6f73b04c7 Binary files /dev/null and b/docs/get-started/img/9-4-enable-rule-set.png differ diff --git a/docs/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete-2.png b/docs/get-started/img/9-4-pro-rule-manage-delete-2.png similarity index 100% rename from docs/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete-2.png rename to docs/get-started/img/9-4-pro-rule-manage-delete-2.png diff --git a/docs/get-started/img/9-4-pro-rule-manage-delete.png b/docs/get-started/img/9-4-pro-rule-manage-delete.png new file mode 100644 index 000000000..510b129b0 Binary files /dev/null and b/docs/get-started/img/9-4-pro-rule-manage-delete.png differ diff --git a/docs/get-started/img/9-add-rule-set.png b/docs/get-started/img/9-add-rule-set.png new file mode 100644 index 000000000..85a9f098e Binary files /dev/null and b/docs/get-started/img/9-add-rule-set.png differ diff --git a/docs/use-case/data-diagnosis/img/9-add-rule.png b/docs/get-started/img/9-add-rule.png similarity index 100% rename from docs/use-case/data-diagnosis/img/9-add-rule.png rename to docs/get-started/img/9-add-rule.png diff --git a/docs/get-started/img/9-enable-rule-set.png b/docs/get-started/img/9-enable-rule-set.png new file mode 100644 index 000000000..800f7ac87 Binary files /dev/null and b/docs/get-started/img/9-enable-rule-set.png differ diff --git a/docs/get-started/img/add-rule-group.png b/docs/get-started/img/add-rule-group.png new file mode 100644 index 000000000..6db004667 Binary files /dev/null and b/docs/get-started/img/add-rule-group.png differ diff --git a/docs/get-started/img/add-rule.png b/docs/get-started/img/add-rule.png new file mode 100644 index 000000000..fbb4e46e9 Binary files /dev/null and b/docs/get-started/img/add-rule.png differ diff --git a/docs/get-started/img/add-rule_1.png b/docs/get-started/img/add-rule_1.png new file mode 100644 index 000000000..6db004667 Binary files /dev/null and b/docs/get-started/img/add-rule_1.png differ diff --git a/docs/get-started/img/add-rule_10.png b/docs/get-started/img/add-rule_10.png new file mode 100644 index 000000000..77921a640 Binary files /dev/null and b/docs/get-started/img/add-rule_10.png differ diff --git a/docs/get-started/img/add-rule_11.png b/docs/get-started/img/add-rule_11.png new file mode 100644 index 000000000..c8de96204 Binary files /dev/null and b/docs/get-started/img/add-rule_11.png differ diff --git a/docs/get-started/img/add-rule_12.png b/docs/get-started/img/add-rule_12.png new file mode 100644 index 000000000..3209b0fac Binary files /dev/null and b/docs/get-started/img/add-rule_12.png differ diff --git a/docs/get-started/img/add-rule_13.png b/docs/get-started/img/add-rule_13.png new file mode 100644 index 000000000..0530e1b9f Binary files /dev/null and b/docs/get-started/img/add-rule_13.png differ diff --git a/docs/get-started/img/add-rule_14.png b/docs/get-started/img/add-rule_14.png new file mode 100644 index 000000000..3db1e7b38 Binary files /dev/null and b/docs/get-started/img/add-rule_14.png differ diff --git a/docs/get-started/img/add-rule_15.png b/docs/get-started/img/add-rule_15.png new file mode 100644 index 000000000..5962bdf80 Binary files /dev/null and b/docs/get-started/img/add-rule_15.png differ diff --git a/docs/get-started/img/add-rule_16.png b/docs/get-started/img/add-rule_16.png new file mode 100644 index 000000000..9a13360dd Binary files /dev/null and b/docs/get-started/img/add-rule_16.png differ diff --git a/docs/get-started/img/add-rule_17.png b/docs/get-started/img/add-rule_17.png new file mode 100644 index 000000000..fbd6ac80f Binary files /dev/null and b/docs/get-started/img/add-rule_17.png differ diff --git a/docs/get-started/img/add-rule_18.png b/docs/get-started/img/add-rule_18.png new file mode 100644 index 000000000..834e1a2c2 Binary files /dev/null and b/docs/get-started/img/add-rule_18.png differ diff --git a/docs/get-started/img/add-rule_19.png b/docs/get-started/img/add-rule_19.png new file mode 100644 index 000000000..5df9d491c Binary files /dev/null and b/docs/get-started/img/add-rule_19.png differ diff --git a/docs/get-started/img/add-rule_2.png b/docs/get-started/img/add-rule_2.png new file mode 100644 index 000000000..a697571a0 Binary files /dev/null and b/docs/get-started/img/add-rule_2.png differ diff --git a/docs/get-started/img/add-rule_20.png b/docs/get-started/img/add-rule_20.png new file mode 100644 index 000000000..2332ff8ef Binary files /dev/null and b/docs/get-started/img/add-rule_20.png differ diff --git a/docs/get-started/img/add-rule_21.png b/docs/get-started/img/add-rule_21.png new file mode 100644 index 000000000..3626c388c Binary files /dev/null and b/docs/get-started/img/add-rule_21.png differ diff --git a/docs/get-started/img/add-rule_22.png b/docs/get-started/img/add-rule_22.png new file mode 100644 index 000000000..3ab91c38b Binary files /dev/null and b/docs/get-started/img/add-rule_22.png differ diff --git a/docs/get-started/img/add-rule_3.png b/docs/get-started/img/add-rule_3.png new file mode 100644 index 000000000..2a2fe88ed Binary files /dev/null and b/docs/get-started/img/add-rule_3.png differ diff --git a/docs/get-started/img/add-rule_4.png b/docs/get-started/img/add-rule_4.png new file mode 100644 index 000000000..fbb4e46e9 Binary files /dev/null and b/docs/get-started/img/add-rule_4.png differ diff --git a/docs/get-started/img/add-rule_5.png b/docs/get-started/img/add-rule_5.png new file mode 100644 index 000000000..393d056a4 Binary files /dev/null and b/docs/get-started/img/add-rule_5.png differ diff --git a/docs/get-started/img/add-rule_6.png b/docs/get-started/img/add-rule_6.png new file mode 100644 index 000000000..a9760c38f Binary files /dev/null and b/docs/get-started/img/add-rule_6.png differ diff --git a/docs/get-started/img/add-rule_7.png b/docs/get-started/img/add-rule_7.png new file mode 100644 index 000000000..dffeef049 Binary files /dev/null and b/docs/get-started/img/add-rule_7.png differ diff --git a/docs/get-started/img/add-rule_8.png b/docs/get-started/img/add-rule_8.png new file mode 100644 index 000000000..dbacf725a Binary files /dev/null and b/docs/get-started/img/add-rule_8.png differ diff --git a/docs/get-started/img/add-rule_9.png b/docs/get-started/img/add-rule_9.png new file mode 100644 index 000000000..1ea2b8ba8 Binary files /dev/null and b/docs/get-started/img/add-rule_9.png differ diff --git a/docs/get-started/img/auto-record-1.png b/docs/get-started/img/auto-record-1.png new file mode 100644 index 000000000..bfc87775f Binary files /dev/null and b/docs/get-started/img/auto-record-1.png differ diff --git a/docs/get-started/img/auto-record-2.png b/docs/get-started/img/auto-record-2.png new file mode 100644 index 000000000..d206be751 Binary files /dev/null and b/docs/get-started/img/auto-record-2.png differ diff --git a/docs/get-started/img/auto-record-3.png b/docs/get-started/img/auto-record-3.png new file mode 100644 index 000000000..c4883455f Binary files /dev/null and b/docs/get-started/img/auto-record-3.png differ diff --git a/docs/get-started/img/data-collection-1.png b/docs/get-started/img/data-collection-1.png new file mode 100644 index 000000000..5962bdf80 Binary files /dev/null and b/docs/get-started/img/data-collection-1.png differ diff --git a/docs/get-started/img/data-collection-2.png b/docs/get-started/img/data-collection-2.png new file mode 100644 index 000000000..9a13360dd Binary files /dev/null and b/docs/get-started/img/data-collection-2.png differ diff --git a/docs/get-started/img/data-collection-3.png b/docs/get-started/img/data-collection-3.png new file mode 100644 index 000000000..8edf07d3a Binary files /dev/null and b/docs/get-started/img/data-collection-3.png differ diff --git a/docs/get-started/img/data-collection-4.png b/docs/get-started/img/data-collection-4.png new file mode 100644 index 000000000..89889b40c Binary files /dev/null and b/docs/get-started/img/data-collection-4.png differ diff --git a/docs/get-started/img/data-diagnosis.png b/docs/get-started/img/data-diagnosis.png new file mode 100644 index 000000000..834e1a2c2 Binary files /dev/null and b/docs/get-started/img/data-diagnosis.png differ diff --git a/docs/get-started/img/dev-install-1.png b/docs/get-started/img/dev-install-1.png new file mode 100644 index 000000000..65abd8109 Binary files /dev/null and b/docs/get-started/img/dev-install-1.png differ diff --git a/docs/get-started/img/device-event-monitoring.png b/docs/get-started/img/device-event-monitoring.png new file mode 100644 index 000000000..a9760c38f Binary files /dev/null and b/docs/get-started/img/device-event-monitoring.png differ diff --git a/docs/get-started/img/device_2.png b/docs/get-started/img/device_2.png index eee552ff3..65c3a0aa7 100644 Binary files a/docs/get-started/img/device_2.png and b/docs/get-started/img/device_2.png differ diff --git a/docs/get-started/img/diagnosis-settings.png b/docs/get-started/img/diagnosis-settings.png new file mode 100644 index 000000000..fbd6ac80f Binary files /dev/null and b/docs/get-started/img/diagnosis-settings.png differ diff --git a/docs/get-started/img/event-code-table.png b/docs/get-started/img/event-code-table.png new file mode 100644 index 000000000..dffeef049 Binary files /dev/null and b/docs/get-started/img/event-code-table.png differ diff --git a/docs/get-started/img/event-deduplication.png b/docs/get-started/img/event-deduplication.png new file mode 100644 index 000000000..0530e1b9f Binary files /dev/null and b/docs/get-started/img/event-deduplication.png differ diff --git a/docs/get-started/img/event-match-condition.png b/docs/get-started/img/event-match-condition.png new file mode 100644 index 000000000..dbacf725a Binary files /dev/null and b/docs/get-started/img/event-match-condition.png differ diff --git a/docs/use-case/data-diagnosis/img/org-device-1.png b/docs/get-started/img/org-device-1.png similarity index 100% rename from docs/use-case/data-diagnosis/img/org-device-1.png rename to docs/get-started/img/org-device-1.png diff --git a/docs/get-started/img/org-device-2.png b/docs/get-started/img/org-device-2.png new file mode 100644 index 000000000..905022e66 Binary files /dev/null and b/docs/get-started/img/org-device-2.png differ diff --git a/docs/get-started/img/org-device-3.png b/docs/get-started/img/org-device-3.png new file mode 100644 index 000000000..ecc3f428a Binary files /dev/null and b/docs/get-started/img/org-device-3.png differ diff --git a/docs/get-started/img/org-device-4.png b/docs/get-started/img/org-device-4.png new file mode 100644 index 000000000..0271d870b Binary files /dev/null and b/docs/get-started/img/org-device-4.png differ diff --git a/docs/get-started/img/org-device-5.png b/docs/get-started/img/org-device-5.png new file mode 100644 index 000000000..dba897d77 Binary files /dev/null and b/docs/get-started/img/org-device-5.png differ diff --git a/docs/get-started/img/org-device-6.png b/docs/get-started/img/org-device-6.png new file mode 100644 index 000000000..106ddb58a Binary files /dev/null and b/docs/get-started/img/org-device-6.png differ diff --git a/docs/use-case/data-diagnosis/img/org-device-7.png b/docs/get-started/img/org-device-7.png similarity index 100% rename from docs/use-case/data-diagnosis/img/org-device-7.png rename to docs/get-started/img/org-device-7.png diff --git a/docs/get-started/img/org-device-add.png b/docs/get-started/img/org-device-add.png new file mode 100644 index 000000000..970236746 Binary files /dev/null and b/docs/get-started/img/org-device-add.png differ diff --git a/docs/use-case/data-diagnosis/img/org-device-authorize.png b/docs/get-started/img/org-device-authorize.png similarity index 100% rename from docs/use-case/data-diagnosis/img/org-device-authorize.png rename to docs/get-started/img/org-device-authorize.png diff --git a/docs/get-started/img/org-device-authorized.png b/docs/get-started/img/org-device-authorized.png new file mode 100644 index 000000000..1c015b466 Binary files /dev/null and b/docs/get-started/img/org-device-authorized.png differ diff --git a/docs/use-case/data-diagnosis/img/org-device-copy-command.png b/docs/get-started/img/org-device-copy-command.png similarity index 100% rename from docs/use-case/data-diagnosis/img/org-device-copy-command.png rename to docs/get-started/img/org-device-copy-command.png diff --git a/docs/get-started/img/org-device-install.png b/docs/get-started/img/org-device-install.png new file mode 100644 index 000000000..24fb03970 Binary files /dev/null and b/docs/get-started/img/org-device-install.png differ diff --git a/docs/get-started/img/org-device-paste-command.png b/docs/get-started/img/org-device-paste-command.png new file mode 100644 index 000000000..144fd49ab Binary files /dev/null and b/docs/get-started/img/org-device-paste-command.png differ diff --git a/docs/get-started/img/org-role.png b/docs/get-started/img/org-role.png new file mode 100644 index 000000000..72e68a980 Binary files /dev/null and b/docs/get-started/img/org-role.png differ diff --git a/docs/get-started/img/pro-1.png b/docs/get-started/img/pro-1.png new file mode 100644 index 000000000..f9856ea9c Binary files /dev/null and b/docs/get-started/img/pro-1.png differ diff --git a/docs/get-started/img/pro-device-add-1.png b/docs/get-started/img/pro-device-add-1.png new file mode 100644 index 000000000..331be8b17 Binary files /dev/null and b/docs/get-started/img/pro-device-add-1.png differ diff --git a/docs/get-started/img/pro-device-add-2.png b/docs/get-started/img/pro-device-add-2.png new file mode 100644 index 000000000..9c8428532 Binary files /dev/null and b/docs/get-started/img/pro-device-add-2.png differ diff --git a/docs/get-started/img/pro-rule-action-create-moment.png b/docs/get-started/img/pro-rule-action-create-moment.png new file mode 100644 index 000000000..88a390370 Binary files /dev/null and b/docs/get-started/img/pro-rule-action-create-moment.png differ diff --git a/docs/get-started/img/pro-rule-action-upload.png b/docs/get-started/img/pro-rule-action-upload.png new file mode 100644 index 000000000..7aac9c6af Binary files /dev/null and b/docs/get-started/img/pro-rule-action-upload.png differ diff --git a/docs/get-started/img/pro-rule-base-info.png b/docs/get-started/img/pro-rule-base-info.png new file mode 100644 index 000000000..7705cd39b Binary files /dev/null and b/docs/get-started/img/pro-rule-base-info.png differ diff --git a/docs/get-started/img/pro-rule-base-rule-1.png b/docs/get-started/img/pro-rule-base-rule-1.png new file mode 100644 index 000000000..a98b08fd5 Binary files /dev/null and b/docs/get-started/img/pro-rule-base-rule-1.png differ diff --git a/docs/get-started/img/pro-rule-base-rule-2.png b/docs/get-started/img/pro-rule-base-rule-2.png new file mode 100644 index 000000000..159cca250 Binary files /dev/null and b/docs/get-started/img/pro-rule-base-rule-2.png differ diff --git a/docs/get-started/img/pro-rule-condition.png b/docs/get-started/img/pro-rule-condition.png new file mode 100644 index 000000000..f22195ad3 Binary files /dev/null and b/docs/get-started/img/pro-rule-condition.png differ diff --git a/docs/get-started/img/pro-rule-limit.png b/docs/get-started/img/pro-rule-limit.png new file mode 100644 index 000000000..9acef0369 Binary files /dev/null and b/docs/get-started/img/pro-rule-limit.png differ diff --git a/docs/get-started/img/pro-rule-manage-disable-2.png b/docs/get-started/img/pro-rule-manage-disable-2.png new file mode 100644 index 000000000..4814efef3 Binary files /dev/null and b/docs/get-started/img/pro-rule-manage-disable-2.png differ diff --git a/docs/get-started/img/pro-rule-manage-disable.png b/docs/get-started/img/pro-rule-manage-disable.png new file mode 100644 index 000000000..5ad3f690e Binary files /dev/null and b/docs/get-started/img/pro-rule-manage-disable.png differ diff --git a/docs/get-started/img/pro-rule-manage-edit.png b/docs/get-started/img/pro-rule-manage-edit.png new file mode 100644 index 000000000..f0ca7810d Binary files /dev/null and b/docs/get-started/img/pro-rule-manage-edit.png differ diff --git a/docs/get-started/img/pro-rule-save-success.png b/docs/get-started/img/pro-rule-save-success.png new file mode 100644 index 000000000..4afc53896 Binary files /dev/null and b/docs/get-started/img/pro-rule-save-success.png differ diff --git a/docs/get-started/img/pro-rule-template-edit-action-create-moment.png b/docs/get-started/img/pro-rule-template-edit-action-create-moment.png new file mode 100644 index 000000000..60c734a66 Binary files /dev/null and b/docs/get-started/img/pro-rule-template-edit-action-create-moment.png differ diff --git a/docs/get-started/img/pro-rule-template-edit-condition.png b/docs/get-started/img/pro-rule-template-edit-condition.png new file mode 100644 index 000000000..a360290ee Binary files /dev/null and b/docs/get-started/img/pro-rule-template-edit-condition.png differ diff --git a/docs/get-started/img/pro-rule-template-edit-rule-name.png b/docs/get-started/img/pro-rule-template-edit-rule-name.png new file mode 100644 index 000000000..1f8d2f524 Binary files /dev/null and b/docs/get-started/img/pro-rule-template-edit-rule-name.png differ diff --git a/docs/get-started/img/pro-rule-template-edit-template.png b/docs/get-started/img/pro-rule-template-edit-template.png new file mode 100644 index 000000000..6da51d48d Binary files /dev/null and b/docs/get-started/img/pro-rule-template-edit-template.png differ diff --git a/docs/get-started/img/pro-rule-template-success-effect.png b/docs/get-started/img/pro-rule-template-success-effect.png new file mode 100644 index 000000000..7f68bd2ca Binary files /dev/null and b/docs/get-started/img/pro-rule-template-success-effect.png differ diff --git a/docs/get-started/img/pro-rule-template.png b/docs/get-started/img/pro-rule-template.png new file mode 100644 index 000000000..930d5ec8c Binary files /dev/null and b/docs/get-started/img/pro-rule-template.png differ diff --git a/docs/get-started/img/pro-rule-test-1.png b/docs/get-started/img/pro-rule-test-1.png new file mode 100644 index 000000000..0208e1988 Binary files /dev/null and b/docs/get-started/img/pro-rule-test-1.png differ diff --git a/docs/get-started/img/pro-rule-test-2.png b/docs/get-started/img/pro-rule-test-2.png new file mode 100644 index 000000000..aab7a47a8 Binary files /dev/null and b/docs/get-started/img/pro-rule-test-2.png differ diff --git a/docs/get-started/img/pro-rule-test-3.png b/docs/get-started/img/pro-rule-test-3.png new file mode 100644 index 000000000..09124b085 Binary files /dev/null and b/docs/get-started/img/pro-rule-test-3.png differ diff --git a/docs/get-started/img/pro-rule-test-4.png b/docs/get-started/img/pro-rule-test-4.png new file mode 100644 index 000000000..1371f444d Binary files /dev/null and b/docs/get-started/img/pro-rule-test-4.png differ diff --git a/docs/get-started/img/pro-trigger-add.png b/docs/get-started/img/pro-trigger-add.png new file mode 100644 index 000000000..a285a80d2 Binary files /dev/null and b/docs/get-started/img/pro-trigger-add.png differ diff --git a/docs/get-started/img/pro-trigger-edit.png b/docs/get-started/img/pro-trigger-edit.png new file mode 100644 index 000000000..0a5aff6fd Binary files /dev/null and b/docs/get-started/img/pro-trigger-edit.png differ diff --git a/docs/get-started/img/rule-basic-info.png b/docs/get-started/img/rule-basic-info.png new file mode 100644 index 000000000..393d056a4 Binary files /dev/null and b/docs/get-started/img/rule-basic-info.png differ diff --git a/docs/get-started/img/rule-group-management.png b/docs/get-started/img/rule-group-management.png new file mode 100644 index 000000000..2a2fe88ed Binary files /dev/null and b/docs/get-started/img/rule-group-management.png differ diff --git a/docs/get-started/img/rule-group-toggle.png b/docs/get-started/img/rule-group-toggle.png new file mode 100644 index 000000000..a697571a0 Binary files /dev/null and b/docs/get-started/img/rule-group-toggle.png differ diff --git a/docs/get-started/img/rule-log-1.png b/docs/get-started/img/rule-log-1.png new file mode 100644 index 000000000..e83c8bdfb Binary files /dev/null and b/docs/get-started/img/rule-log-1.png differ diff --git a/docs/get-started/img/rule-log-2.png b/docs/get-started/img/rule-log-2.png new file mode 100644 index 000000000..15b47b198 Binary files /dev/null and b/docs/get-started/img/rule-log-2.png differ diff --git a/docs/use-case/1-common-task.md b/docs/use-case/1-common-task.md index 5015d580e..9f73e8001 100644 --- a/docs/use-case/1-common-task.md +++ b/docs/use-case/1-common-task.md @@ -38,9 +38,9 @@ sidebar_position: 1 ## 配置采集规则 -1. 进入【组织管理】-【设备】-【编辑数采规则】,配置整体的数采规则信息。 +1. 进入【组织管理】-【设备】-【设备配置】,配置整体的数采规则信息。 -![device-collector](./img/common-task-1.png) +![配置采集目录](./img/device-config_1.png) ```yaml mod: @@ -57,24 +57,17 @@ mod: collect_dirs: - /home/bag/ - /home/log/ - -# 自动更新 -updater: - # 数采客户端自动更新开关,true/false,默认关闭 - enabled: false ``` -2. 具体的配置文件信息介绍,请查看文档[数采规则](../device/4-device-collector.md) +2. 具体的配置文件信息介绍,请查看文档[设备配置](../device/4-device-collector.md) ## 安装设备 Agent 1. 编辑数据采集规则之后,需要安装对应设备agent。首先进入【组织管理】-【设备】-【添加设备】,获取设备 Agent 安装命令。 ![device-command](./img/common-task-2.png) -2. 安装命令支持指定相关的设备 ID 文件路径以及关联字段名,若不设定则会随机生成 ID 绑定当前设备。最后复制下图位置的命令行,添加到对应的设备,即可连接。 -![device-install-command](./img//device-install-command.png) - - +2. 安装命令支持指定相关的设备 ID 文件路径以及关联字段名,若不设定则可使用系统生成 ID 绑定当前设备。最后复制下图位置的命令行,添加到对应的设备,即可连接。 +![device_2](./img//device_2.png) ## 添加设备至项目 @@ -90,8 +83,8 @@ updater: ## 跟踪文件上传进度 -1. 创建完任务后,机器端 Agent 获取对应的任务信息后依据任务的时间段和配置的文件地址信息进行处理,然后上传符合要求的文件至刻行平台。依据机器端的网络速度和上传文件的数量,单次任务完成时间长短不同,请耐心等待。 -2. 在设备端执行 'journalctl --user-unit=cos -f -n 50' 命令,即可查看数采客户端的实时日志,跟踪文件上传进度。 +1. 创建完任务后,机器端 Agent 获取对应的任务信息后依据任务的时间段和配置的文件地址信息进行处理,然后上传符合要求的文件至平台。依据机器端的网络速度和上传文件的数量,单次任务完成时间长短不同,请耐心等待。 +2. 在设备端执行 'tail -f ~/.local/state/cos/logs/cos.log' 命令,即可查看数采客户端的实时日志,跟踪文件上传进度。 3. 在任务采集完成之后,任务详情中关联了此次任务关联的 record 信息,点击查看 record 即可查看相关的文件信息。单次的数据采集任务就完成了,就是如此的简单。 ![task-record](./img/task-record.png) @@ -106,7 +99,7 @@ updater: ### 配置解压触发器 -1. 在【自动化】-【触发器】-【创建触发器】中,创建新的触发器。文件通配符填写 `*.tar.gz` 和 `finish.flag`, 其中判断存在压缩包,而且文件上传结束后触发(Agent 在文件上传结束会上传 finish.flag 标记文件标识文件上传过程结束)。 +1. 在【自动化】-【触发器】-【创建触发器】中,创建新的触发器。当上传文件到记录时,且文件通配符满足 `*.tar.gz`, 则文件上传后会自动解压缩。 ![decompress](./img/decompress-files.png) ### 触发解压 @@ -128,4 +121,4 @@ updater: ## 总结 -上面介绍了一个用户创建采集任务,机器端 Agent 依据任务信息自动上传相关的文件至刻行平台的场景流程。结合刻行平台的自动化能力,可以搭配创建数据诊断、数据处理等流程,快速的搭建一套符合自身业务的数据流转流程,大幅提升研发效率。 +上面介绍了一个用户创建采集任务,机器端 Agent 依据任务信息自动上传相关的文件至刻行平台的场景流程。结合刻行时空平台的自动化能力,可以搭配创建数据诊断、数据处理等流程,快速的搭建一套符合自身业务的数据流转流程,大幅提升研发效率。 diff --git a/docs/use-case/3-automated-data-processing.md b/docs/use-case/3-automated-data-processing.md index d7265859d..4b793d411 100644 --- a/docs/use-case/3-automated-data-processing.md +++ b/docs/use-case/3-automated-data-processing.md @@ -98,10 +98,10 @@ extract_frames(input_folder, output_folder) ## 登录镜像仓库 -1. 登录[刻行时空平台](https://www.coscene.cn/),在右上角用户设置下拉面板中,访问【个人设置】,在【个人设置】页面中,访问【安全】页面 +1. 登录[刻行时空平台](https://www.coscene.cn/),在右上角用户设置下拉面板中,访问「组织管理-镜像」页面 + ![login-mirror-0](./img/4-13-docker-images-page.png) 2. 点击生成访问命令,获取登录刻行镜像仓库的命令和密码 - ![login-mirror-1](./img/3-login-mirror-1.png) - ![login-mirror-2](./img/3-login-mirror-2.png) + ![login-mirror-1](./img/4-13-generate-docker-auth.png) 3. 在本机命令行中,输入用户名与密码,登录刻行时空的镜像仓库 ![login-mirror-3](./img/3-login-mirror-3.png) 4. 复制推送镜像命令中的镜像仓库地址,如下图为:`cr.coscene.cn/coscene` diff --git a/docs/use-case/4-online-simulation-test.md b/docs/use-case/4-online-simulation-test.md new file mode 100644 index 000000000..936e6a59d --- /dev/null +++ b/docs/use-case/4-online-simulation-test.md @@ -0,0 +1,195 @@ +--- +sidebar_position: 4 +--- + +# 云端仿真自动化算法验证 + +## 背景 + +在泛机器人研发过程中,针对算法和软件的反复测试与验证,是日常工作中最耗时、最容易出错的一环。 + +你是不是也经历过这样的日常? + +- 算法改了一行代码,结果测了一整天 +- 本地仿真环境突然坏掉,重装又踩坑 +- 多人协作,各测各的,结果对不上… + +尤其对于**移动机器人、具身智能**等领域的研发人员来说: + +- 软件迭代频繁,需要持续验证 +- 仿真环境配置复杂,维护成本高 +- 测试标准不统一,结果难以量化 +- 本地计算资源有限,测试任务排队严重 + +这些问题导致本地测试效率低下、协作困难。 + +--- + +刻行时空一直在思考:有没有一种方法,只要修改完算法,就可以随时进行无痛进行效果验证,还能把测试结果标准输出? + +刻行时空在**数据闭环**与**生产力工具**搭建方面拥有丰富经验,基于我们先进的 **ScenenOps 理念**,提供了一站式云端仿真平台: +**简单五步,完成平台搭建,你只需上传程序,平台自动运行测试、生成可视化结果,全流程在线、零依赖!** +![4-online-simulation-test-1](./img/4-online-simulation-test-1.png) + +本文以 Ubuntu 22.04 + ROS 2 Humble + Gazebo 环境为例,介绍如何在完成算法修改后,通过刻行时空平台进行云端仿真测试。 + +更多仿真软件的支持,请关注刻行时空官网:[刻行时空平台](https://www.coscene.cn/)。 + +--- + +## 🧱 Step 1:构建属于你自己的算法与软件测试底座 + +我们知道,每支团队的技术栈都不一样。 +因此,我们支持用户基于自己的系统依赖构建专属镜像并上传。 + +你可以使用如下 Dockerfile 模板来构建环境: + +```Dockerfile +# syntax = docker/dockerfile:1.2 +ARG BASE_IMAGE=osrf/ros:humble-desktop-full +FROM ${BASE_IMAGE} as base +... +WORKDIR /action/ros2_ws +``` + +开源示例项目 👉 [Regression_Test-Sample](https://github.com/coscene-io/Regression_Test-Sample/blob/main/Dockerfile) + +构建完成后,打包推送至平台镜像仓库,全公司同事可复用这个稳定的测试环境,无需本地重复搭建。 + +1. 登录刻行时空平台,进入组织管理获取专属镜像仓库地址 + ![4-online-simulation-test-2](./img/4-online-simulation-test-2.PNG) + ![4-online-simulation-test-3](./img/4-online-simulation-test-3.PNG) + ![4-online-simulation-test-4](./img/4-online-simulation-test-4.PNG) + +2. 登录 Docker 并打包推送镜像 + ![4-online-simulation-test-5](./img/4-online-simulation-test-5.PNG) + +3. 登录平台查看镜像并获取链接 + ![4-online-simulation-test-6](./img/4-online-simulation-test-6.png) + +完成上述操作后,相当于为后续的各种仿真算法测试验证,搭建了一套完整的运行环境底座,里面包含了所有需要的测试软件依赖环境。 + +--- + +## 📦 Step 2:上传你的算法与测试程序 + +算法/软件代码修改完成后,对代码进行编译。 +![4-online-simulation-test-7](./img/4-online-simulation-test-7.png) + +将其压缩为 `.zip` 或 `.tar.gz` 上传至平台,建议上传 `install` 目录的压缩包: + +```bash +tar -czvf install.tar.gz ./install +``` + +进入平台项目,点击上传程序按钮,平台将自动解压并在后续执行测试时,在对应容器中运行。 +![4-online-simulation-test-8](./img/4-online-simulation-test-8.png) +![4-online-simulation-test-9](./img/4-online-simulation-test-9.png) +![4-online-simulation-test-10](./img/4-online-simulation-test-10.png) +![4-online-simulation-test-11](./img/4-online-simulation-test-11.png) + +同时支持: + +- 源码构建与编译后的可执行程序 + +可参考平台文档 👉 https://docs.coscene.cn/docs/sim-and-tests/regression/test-bundle-management + +**_对于企业用户,还支持 GitHub / GitLab 持续集成上传构建产物,跳过手动上传过程。_** + +--- + +## 🧪 Step 3:准备你的测试用例 + +平台支持通过 `组织 → 项目 → 记录` 的结构,配置多条测试用例。 + +每条测试记录就像一个预设的虚拟测试现场: + +- 地图:`map.pgm` + `map.yaml` +- 机器人模型:如 `turtlebot3_waffle_pi` +- 配置文件:如 `case.yaml` +- Gazebo world 文件:定义仿真环境 +- 其他测试依赖资源 + +测试记录文件结构示例: + +``` +test_case/ +├── map.pgm +├── map.yaml +├── case.yaml +├── world.world +├── extra_configs/ +``` + +![4-online-simulation-test-12](./img/4-online-simulation-test-12.png) + +:::info 重要说明 + +### 文件结构规范 + +请严格遵循[平台规定的路径结构](https://docs.coscene.cn/docs/sim-and-tests/regression/intro): + +![文件结构示意图](./img/4-online-simulation-test-13.png) + +::: + +### 标签管理 + +为记录添加标签(如 `Navigation_Error`)用于测试筛选,具体步骤如下: + +![步骤 1:进入标签管理](./img/4-online-simulation-test-14.png) +![步骤 2:创建新标签](./img/4-online-simulation-test-15.png) +![步骤 3:设置标签属性](./img/4-online-simulation-test-16.png) +![步骤 4:应用标签](./img/4-online-simulation-test-17.png) + +完成上述配置后,您可以在下一步使用这些标签(如 `Navigation_Error`)来筛选测试用例。 + +## ⚙️ Step 4:配置测试触发逻辑 + +每个项目都可以配置自动化触发策略: + +- 每次上传算法自动触发测试 +- 手动选择记录执行 +- 按标签或版本筛选测试集 + +详细配置参考 👉 https://docs.coscene.cn/docs/sim-and-tests/regression/config-management +![4-online-simulation-test-18](./img/4-online-simulation-test-18.png) +![4-online-simulation-test-19](./img/4-online-simulation-test-19.png) +![4-online-simulation-test-20](./img/4-online-simulation-test-20.png) + +--- + +## 📊 Step 5:运行测试,观测测试过程与结果 + +测试运行过程中支持: + +- 实时查看可视化页面中机器人运行状态,支持导入 gazebo环境同步查看。 +- 自动录制测试过程数据。 +- 输出标准化测试报告。 + +![4-online-simulation-test-21](./img/4-online-simulation-test-21.png) +![4-online-simulation-test-22](./img/4-online-simulation-test-22.png) +![4-online-simulation-test-23](./img/4-online-simulation-test-23.gif) + +报告内容: + +- 📍 机器人运行轨迹 +- ✅ 成功 / 失败评分指标 +- 🪵 日志输出 / 异常信息 +- 🖼️ 可视化图表与统计 + ![4-online-simulation-test-24](./img/4-online-simulation-test-24.png) + ![4-online-simulation-test-25](./img/4-online-simulation-test-25.png) + +--- + +## 🚀 结语:把繁琐的测试交给刻行时空,轻装上阵搞研发 + +每次代码更新之后,你不再需要: + +- 反复搭环境 +- 重复运行脚本 +- 对比日志找结果 + +只需一键上传,平台自动完成验证,全流程标准化、自动化,帮助你把更多时间投入到真正重要的工作中! + +👉 欢迎注册体验:https://www.coscene.cn/ diff --git a/docs/use-case/5-heterogeneous-robot-data-factory.md b/docs/use-case/5-heterogeneous-robot-data-factory.md new file mode 100644 index 000000000..2ac8cf127 --- /dev/null +++ b/docs/use-case/5-heterogeneous-robot-data-factory.md @@ -0,0 +1,258 @@ +--- +sidebar_position: 5 +--- + +# 异构机器人数据采集工厂接入刻行时空平台 + +## 背景 + +在具身智能领域,数据对于训练和优化智能体的行为、决策能力至关重要。当具身智能数据完成采集并整理好记录后,为了让这些数据能够精准地用于模型训练、算法优化等工作,需要对数据进行标注以便理解数据背后的含义,同时要经过审核保证数据的准确性和质量。刻行时空平台对此提供了一套完整的解决方案,兼容各种异构机器人,并支持多种数据的上传。 + +本文主要介绍如下方法: + +- **如何在机器人本体端安装集成刻行时空的端侧软件,以满足机器人本体接入平台。** +- **任务管理系统的搭建** +- **如何在机器人可视化的页面上进行数据采集与上传的操作。** + +## 前提条件 + +1. **设备注册** + 参考如下官方链接:[登录刻行时空](../get-started/1-quick-start.md),完成**登录刻行时空**部分 + 参考如下官方链接:[设备注册](../device/2-create-device.md) + + - 安装命令(**以下代码仅供参考示例,请务必在您的组织中复制安装指令后再添加。**): + ```bash + /bin/bash -c "$(curl -fsSL https://download.coscene.cn/coscout/v2/install.sh)" -s --mod="default" --org_slug="codemo" --server_url="https://openapi.coscene.cn" --coLink_endpoint="https://coordinator.coscene.cn/api" --coLink_network="fb899ea7-d71b-4cec-b531-0a5fb0015c61" --sn_file="/foo/bar/sn.txt" --sn_field="sn" --remove_config --beta + ``` + - sn_file:表示为机器的序列号文件存放的地址,需要手动配置,同时确保文件存在。 sn_field:表示在上一个文件里表示机器序列号的字段,举个例子,我的机器人序列号文件的路径是 /root/robot/sn.txt, sn.txt文件里的内容是sn:123456, 那么这里我需要配置的是: --sn_file="/root/robot/sn.txt" --sn_field="sn" + +2. **安装 cobridge** + + - 下载 deb 包:[cobridge](https://github.com/coscene-io/cobridge/actions/runs/15103306677?pr=25) 根据机器人本体的计算平台选择对应的 deb 安装包(**注意科学上网进入 github 下载**) + - 安装命令: + ```bash + sudo dpkg -i ros-humble-cobridge_1.0.7-0focal_arm64.deb #以实际下载的 deb 文件为准。 + ``` + - 也可参考[使用 APT 源安装刻行端侧软件](../client/2-apt-source-install.md) + +3. **对设备进行准入** + + 登录平台后,在首页即可看到“**前往组织管理**”的按钮,参考文档支持[设备准入](../device/3-manage-device.md#enable-device) + +4. **创建项目** + + 登录平台后,在首页即可看到“**新建项目**”的按钮,参考文档支持[新建项目](../collaboration/project-collaboration/1-project.md) + +5. **项目中添加采集设备** + + 完成以上动作后,我们需要将机器人本体关联到我们的项目中,参考文档支持[新建项目](../collaboration/project-collaboration/1-project.md) + +--- + +## 准备与启动 ROS node + +- 机器人本体上需要有可以提供 **service** 的**数据录制节点**,并且提供 **开始录制** (如/start_record), **取消录制** (如/cancel_record), **结束录制** (如/stop_record)之类的服务供刻行时空调用。 + -- **注意:**: 目前只支持**service** 类型的消息。 +- 启动 coBridge 前需 source **数据录制节点** 的 workspace 环境变量。 +- 示例启动脚本(请根据实际情况修改): + ```bash + #!/bin/bash + set -e + source ~/cos_ws/devel/setup.bash # 请根据实际情况修改 + roslaunch cobridge cobridge.launch & + sleep 3 + roslaunch record_ctrl record.launch & # 请根据实际情况修改,实际启动的是您的录包节点 + sleep 3 + ``` + +--- + +## 配置可视化布局 + +在进入实时可视化页面后,默认情况下是没有布局的,需要根据您的不同采集需求,将可视化面板添加至页面中。 +若想快速开始,也可以联系刻行时空提供官方示例配置文件,按如下方法导入。 +![05-data-collect-01](./img/05-data-collect-01.png) + +1. 进入实时可视化页面(方法参考[实时可视化](../device/5-device-remote-control.md)),点击【创建新布局】。 + ![05-data-collect-02](./img/05-data-collect-02.png) + +2. 选择【数据采集】面板及其他所需面板(如三维、原始消息)。 + ![05-data-collect-03](./img/05-data-collect-03.png) + ![05-data-collect-04](./img/05-data-collect-04.png) + +3. 拖拽面板标题栏调整布局,拖动分界线调整大小。 + ![05-data-collect-05](./img/05-data-collect-05.png) + ![05-data-collect-06](./img/05-data-collect-06.png) + 经过上述调整可以获得初步的可视化布局。 + +### 配置三维面板: + +- 点击右上角【设置】,自定义图层可设置 URDF。 + ![05-data-collect-07](./img/05-data-collect-07.png) + ![05-data-collect-08](./img/05-data-collect-08.png) + +### 配置原始消息面板: + +- 顶部选择关注的消息,可拆分/添加新面板。 + ![05-data-collect-09](./img/05-data-collect-09.png) + ![05-data-collect-10](./img/05-data-collect-10.png) + ![05-data-collect-11](./img/05-data-collect-11.png) + ![05-data-collect-12](./img/05-data-collect-12.png) + +### 配置采集数据面板: + +- 选择数据采集面板后,设置数据保存项目、记录标签、服务名称(如/start_record、/cancel_record、/stop_record)。 + ![05-data-collect-13](./img/05-data-collect-13.png) + ![05-data-collect-15](./img/05-data-collect-15.png) +- **服务名称,需要根据机器人本体上运行的数据录制节点提供的服务名称为准!** + +### 布局管理 + +配置完成后可保存、重命名、与团队共享。推荐个将配置好的布局设置为**项目默认布局**。 +![05-data-collect-16](./img/05-data-collect-16.png) +![05-data-collect-17](./img/05-data-collect-17.png) + +--- + +## 任务配置与管理 + +我们需要根据不同的业务需求,配置不同的任务管理系统,以支持我们的业务需求。刻行时空为不同的应用场景提供了灵活可配的字段、触发器、动作管理能力。 +![05-data-collect-24](./img/05-data-collect-24.png) + +### 为任务系统配置自定义字段 + +在我们任务管理系统中,我们需要针对不同的任务配置不同的字段,以满足我们的业务需求。 +以采集任务为例,我们需要配置如下字段: + +- 采集员 +- 任务类型 +- 任务状态 +- 采集的技能名称 +- 任务截止日期 +- 采集数量 +- etc + +登录平台后,在首页即可看到"**前往组织管理**"的按钮,点击进入组织管理,进去 **设置** 的界面,在左侧导航栏中选择 **自定义字段**。在页面中对各个字段进行自定义配置,且可配置是否为必填项。 +![05-data-collect-23](./img/05-data-collect-23.png) + +此页面还可配置自定义的设备关联字段,以支持我们在任务管理系统中关联的设备,配置部分特定的筛选字段。 + +在完成组织全局字段的配置后,进入项目设置-高级页面,编辑项目字段配置,选择记录、任务、一刻需要使用的字段。 + +![05-project-fields_1](./img/05-project-fields_1.png) + +![05-project-fields_2](./img/05-project-fields_2.png) + +添加完成后,即可在对应的页面使用该字段。 + +### 为任务系统配置自动化流转触发器 + +触发器定义了动作的触发条件,当满足触发时机时,触发器会依据配置进行检查,并执行对应的动作。 + +在我们数据采集的场景中,通常我们需要根据任务的状态的变化来触发任务的流转。 +以典型的异构数据采集任务为例,我们需要配置如下触发器: + +- 采集员将任务状态修改为"完成"时,自动调用创建标注任务的动作。 + 参考下图: + +![05-data-collect-25](./img/05-data-collect-25.png) + +![05-trigger-assignee](./img/05-trigger-assignee.png) + +关于触发器的配置,具体可参考 [自动化-触发器](../workflow/3-trigger.md) + +### 为任务系统配置自动化动作 + +如我们在上一步中配置的自动化流转触发器,当采集员将任务状态修改为"完成"时,会自动调用创建标注任务的动作。 + +刻行时空提供了适用于数据工厂的部分自动化动作:**创建通用任务**,以支持我们的数据工厂的业务需求。同时我们也支持自定义的自动化动作,以支持更适合您的工作流。 +可参考文档:[自动化-动作](/docs/category/action) + +**刻行时空后续将推出任务配置导入/导出功能,同时提供更丰富的官方任务系统模板。敬请期待!** + +## 数据采集、标注、审核操作指南 + +### 采集数据 + +- 管理员登录平台后,进入相应的项目中,完成如下工作: + + - 任务配置与管理 + - 将设备与成员关联到项目中,参考文档:[项目设备/成员](../collaboration/project-collaboration/1-project.md) + - 点击左侧导航栏中的**任务**,创建**通用任务**。(**注意!在此应用场景请创建通用任务,采集任务与标注任务无法满足实际需求。**) + ![05-data-collect-26](./img/05-data-collect-26.png) + +- 采集员登录平台后,可以在**主页** ➡️ **我的任务** ➡️ **指派给我的** 中查看待采集的任务。点击此任务,即可进入任务详情页。 + ![05-data-collect-29](./img/05-data-collect-28.png) + 进入详情页面,点击**关联设备**,选择采集设备,点击**实时可视化**,进入可视化页面,即可看到我们配置好的采集布局。 + ![05-data-collect-29](./img/05-data-collect-29.png) + +- 点击【开始采集】,日志提示"开始采集成功"即设备开始录制。(**具体日志内容,以服务提供的反馈为准!**) + ![05-data-collect-18](./img/05-data-collect-18.png) + +- 采集员操作机器人完成目标任务。 + +- 任务完成后点击【结束采集】,日志提示"结束采集成功"并自动上传数据。(**具体日志内容,以服务提供的反馈为准!**) + ![05-data-collect-18](./img/05-data-collect-18.png) + + - 刻行时空在这里提供了数据上传的日志提示:日志报出「结束采集成功」---「开始上传」---「文件上传中 X / N」---「文件上传完成」即完成了数据采集在采集日志中,可查看记录链接、上传文件进度。 + ![05-data-collect-19](./img/05-data-collect-19.png) + +- 若误操作可点击【取消采集】丢弃数据。 + ![05-data-collect-19](./img/05-data-collect-20.png) + +- 项目中可查看采集记录及数据。 + ![05-data-collect-21](./img/05-data-collect-21.png) + + ![05-data-collect-22](./img/05-data-collect-22.png) + +- 完成采集后,采集员在任务中添加关联记录(根据设备名称与创建时间过滤出采集上来的记录) + + ![05-task-link-record](./img/05-task-link-record.png) + +--- + +### 数据标注 + +标注员登录平台后,可以在**主页** ➡️ **我的任务** ➡️ **指派给我的** 中查看待标注的任务。 +![05-data-collect-27](./img/05-data-collect-27.png) + +点击该任务,即可查看待标记的数据记录,点击记录,进入详情页面,点击**播放记录**开始对数据进行标注。 +![05-data-collect-30](./img/05-data-collect-30.png) + +![05-data-collect-31](./img/05-data-collect-31.png) + +标注员完成标注工作后,将标注任务标记为"完成",即可完成标注任务。同时根据管理员设置的自动化流转触发器,此时系统会自动创建审核任务,给到审核员,系统进入下一阶段。 + +### 数据审核 + +审核员登录平台后,可以在**主页** ➡️ **我的任务** ➡️ **指派给我的** 中查看待审核的任务。 +![05-data-collect-32](./img/05-data-collect-32.png) + +点击该任务,即可查看待标记的数据记录,点击记录,进入详情页面,点击**播放记录**开始对数据进行审核。 +![05-data-collect-33](./img/05-data-collect-33.png) +![05-data-collect-34](./img/05-data-collect-34.png) + +审核员完成审核工作后,将审核任务标记为"完成",即可完成审核任务。 + +若审核员发现数据采集有误、标注有误,可标注为**审核不通过**,并在备注中填写原因。同时,根据管理员设置的自动化流转触发器,此时系统会自动创建重新标注任务或采集任务,给到标注员或采集员,系统进入下一阶段。 + +## 数据应用 + +当我们需要使用审核通过的数据时,我们可以在**项目**中查看数据,通过**标签** 、 **自定义字段** 实现对数据的筛选点击,选择记录后 点击**下载**,即可下载数据(大于 2G 的数据请使用 [coCLI](/docs/category/cocli) 下载),也可分享给其他团队成员。 + +![05-data-collect-35](./img/05-data-collect-35.png) + +## 常见问题解答 + +- **Q:采集数据面板的 service 可以自定义吗?** + A:可以,平台提供模板,用户可自定义。 + +- **Q:还有哪些面板支持实时可视化?** + A:所有面板均支持,只要机器人发出对应消息。 + +- **Q:还有哪些采集方式?** + A:平台支持按时间范围采集、自动发现采集等,详见[相关文档](/docs/category/use-case)。 + +--- + +以上为异构机器人数据采集工厂接入刻行时空平台的全部流程,如有疑问欢迎联系我们。 diff --git a/docs/use-case/data-diagnosis/1-intro.md b/docs/use-case/data-diagnosis/1-intro.md index b765a11d1..a65c56f7c 100644 --- a/docs/use-case/data-diagnosis/1-intro.md +++ b/docs/use-case/data-diagnosis/1-intro.md @@ -18,5 +18,5 @@ sidebar_position: 1 1. **配置规则**:定义触发数据采集与诊断的条件,以及触发后的操作 2. **配置数采设备信息**:定义需要监控的设备日志所在目录、设备信息文件的存放目录等 -3. **注册设备**:将设备注册到刻行平台,设备准入后即可按照规则采集数据 +3. **注册设备**:将设备注册到刻行平台,设备启用后即可按照规则采集数据 4. **查看实例**:在项目中查看自动采集的数据,以及诊断结果 diff --git a/docs/use-case/data-diagnosis/2-get-started.md b/docs/use-case/data-diagnosis/2-get-started.md index e045e336b..6fbb319ec 100644 --- a/docs/use-case/data-diagnosis/2-get-started.md +++ b/docs/use-case/data-diagnosis/2-get-started.md @@ -28,14 +28,10 @@ sidebar_position: 2 ![pro-1](./img/pro-1.png) -2. 在项目中,进入「数采&诊断规则」分页,点击【添加规则组】 +2. 在项目中,进入「数采&诊断规则」分页,点击【添加规则组】,添加成功后,可在该规则组内添加具体规则。 ![data-2-1](./img/9-add-rule-set.png) -3. 更改规则组名称后,点击【添加空白规则】 - - ![data-2-2](./img/9-add-rule.png) - 4. 更改规则名称,关注的话题选择`/external_log`,事件匹配条件输入:msg.message 包含 error 1,勾选触发操作中的采集数据和诊断数据,更改一刻名称为 `触发了 error 1`,点击【创建】 ![pro-rule-base-rule](./img/pro-rule-base-rule-1.png) @@ -52,21 +48,15 @@ sidebar_position: 2 ## 在项目中添加数据诊断触发器 -1. 进入 auto-upload 项目 - - ![pro-1](./img/pro-1.png) - -2. 在项目中,进入「自动化-触发器」页面,点击【创建触发器】 +1. 进入 auto-upload 项目的「自动化-触发器」页面,点击【创建触发器】 ![pro-trigger-add](./img/pro-trigger-add.png) -3. 编辑触发器内容 +2. 编辑触发器:当上传文件到记录中时,自动对文件进行诊断 -- 编辑触发器名称为「数据诊断」, -- 选择关联动作为「系统动作」, -- 从系统动作下拉框中「数据诊断」 -- 编辑文件通配符模式为`**/*` (格式使用 Glob,详细可查看[参考文档](https://www.malikbrowne.com/blog/a-beginners-guide-glob-patterns/)) -- 点击【创建触发器】 +- 触发器名称:数据诊断 +- 关联动作:系统动作-数据诊断 +- 文件通配符:`**/*` (格式使用 Glob,详细可查看[参考文档](https://www.malikbrowne.com/blog/a-beginners-guide-glob-patterns/)) ![pro-trigger-base](./img/pro-trigger-edit.png) @@ -74,15 +64,13 @@ sidebar_position: 2 ## 配置数采设备信息 -1. 进入组织管理页面的「设备」分页,点击【编辑数采规则】按钮 +1. 进入【组织管理】-【设备】-【设备配置】,配置整体的数采规则信息。 - ![org-device-1](./img/org-device-1.png) +![配置采集目录](./img/device-config_1.png) -2. 清空规则中的默认内容后,复制下述规则,粘贴在编辑器中 +2. 清空规则中的默认内容后,复制下述规则,粘贴在编辑器中,保存编辑 ```yaml - collector: - delete_after_interval_in_hours: 48 mod: conf: collect_dirs: @@ -92,19 +80,13 @@ sidebar_position: 2 - /root/logs skip_period_hours: 2 name: default - updater: - enabled: false ``` - 更多配置参见[数采规则格式](../../device/4-device-collector.md#device-collector-format) - -3. 点击【保存编辑】按钮 - - ![org-device-7](./img/org-device-7.png) + 更多配置参见[设备配置格式](../../device/4-device-collector.md#device-collector-format)
-## 准入设备 +## 启用设备 > 以 linux 设备为例。 @@ -122,27 +104,27 @@ sidebar_position: 2 mkdir logs ``` -3. 在刻行平台,进入组织管理页面的「设备」分页, 点击【添加设备】 +3. 在刻行时空平台,进入组织管理页面的「设备」分页, 点击【添加设备】 ![org-device](./img/org-device-add.png) 4. 在弹窗中选择【从设备端添加】,复制安装命令,以 root 账户粘贴到设备终端 - ![org-device-copy-command](./img/org-device-copy-command.png) + ![org-device-copy-command](./img/device_2.png) 5. 在设备终端执行命令,查看日志 ``` - journalctl -fu cos + tail -f ~/.local/state/cos/logs/cos.log ``` - 当日志中出现如下字段时,表示已安装完毕,设备正在等待管理员审核 ![dev-install-1](./img/dev-install-1.png) -6. 在组织管理页面的「设备」分页,找到需要审核的设备,点击【准入数采】 +6. 在组织管理页面的「设备」分页,找到需要审核的设备,点击【启用客户端】 - ![org-device-authorize](./img/org-device-authorize.png) + ![org-device-authorize](./img/4-3-access-device.png)
diff --git a/docs/use-case/data-diagnosis/3-add-rule.md b/docs/use-case/data-diagnosis/3-add-rule.md index 5d5796539..f6b7dc562 100644 --- a/docs/use-case/data-diagnosis/3-add-rule.md +++ b/docs/use-case/data-diagnosis/3-add-rule.md @@ -82,7 +82,7 @@ sidebar_position: 3 - 若想监听设备中日志类型的文件,请选择`/external_log`。 -- 其他话题选项可在组织的数采客户端配置中设置,详情可参考[ 4-数采客户端配置](https://coscene0.feishu.cn/wiki/S3kvw7wYmic1LxkzBPxcLExHntc?fromScene=spaceOverview)文档。 +- 其他话题选项可在组织的设备配置中设置,详情可参考[ 4-设备配置](../../device/4-device-collector.md)文档。 #### 3.2 匹配事件码表 @@ -179,7 +179,7 @@ sidebar_position: 3 采集数据模块中包含:上传文件的时间范围、记录信息、采集限制、更多设置。其中: - 上传文件的时间范围 - - 定义需要采集触发时间点前后多长时间范围的文件,采集目录的设置参考[数采客户端-存储设置](https://docs.coscene.cn/docs/recipes/device/device-collector#%E5%AD%98%E5%82%A8%E8%AE%BE%E7%BD%AEmod) + - 定义需要采集触发时间点前后多长时间范围的文件,采集目录的设置参考[设备配置-存储设置](../../device/4-device-collector.md#存储设置mod) - 记录信息 - 定义保存数据的记录名称、描述与标签信息,其中名称与描述支持使用变量(如:`{scope.code}`,详见下文) - 当数据上传完成后,将自动在记录中添加「上传完成」标签 diff --git a/docs/use-case/data-diagnosis/4-manage-rule-group.md b/docs/use-case/data-diagnosis/4-manage-rule-group.md index 2e82311b0..6c3a22f00 100644 --- a/docs/use-case/data-diagnosis/4-manage-rule-group.md +++ b/docs/use-case/data-diagnosis/4-manage-rule-group.md @@ -15,13 +15,13 @@ sidebar_position: 4 下面是启用规则组的操作步骤: -- 进入「数采&诊断规则」分页,选择需要启用的规则组,点击对应的【状态】按钮。 +- 进入项目「数采&诊断规则」分页,选择需要启用的规则组,启用开关。 ![9-4-enable-rule-set](./img/9-4-enable-rule-set.png) 下面是禁用规则组的操作步骤: -- 进入「数采&诊断规则」分页,选择需要禁用的规则组,点击对应的【状态】按钮。 +- 进入「数采&诊断规则」分页,选择需要禁用的规则组,关闭开关。 - 弹窗选择【确定】。 ![9-4-disable-rule-set-confirm](./img/9-4-disable-rule-set-confirm.png) @@ -32,7 +32,7 @@ sidebar_position: 4 进入编辑规则组页面的操作如下图,具体编辑规则组规则的操作请参见[规则](./3-add-rule.md#rule-group)。 -- 进入「数采&诊断规则」页面,选择需要编辑的规则组,点击规则组名称(下图例:`规则组样例`)。 +- 进入「数采&诊断规则」页面,选择需要编辑的规则,点击规则名称。 ![9-4-click-rule-set](./img/9-4-click-rule-set.png) @@ -64,8 +64,7 @@ sidebar_position: 4 下面是删除规则组的操作步骤: -- 进入「管理项目-数采与诊断规则」页面,选择需要删除的规则组,点击对应右侧的 `...` 按钮,选择【删除】。 -- 弹窗选择【确定】。 +- 进入「数采与诊断规则」页面,选择需要删除的规则,点击对应右侧的 `...` 按钮,选择【删除】。 +- 二次确认弹窗选择【确定】。 ![9-4-pro-rule-manage-delete](./img/9-4-pro-rule-manage-delete.png) -![9-4-pro-rule-manage-delete-2](./img/9-4-pro-rule-manage-delete-2.png) diff --git a/docs/use-case/data-diagnosis/img/4-3-access-device.png b/docs/use-case/data-diagnosis/img/4-3-access-device.png new file mode 100644 index 000000000..b538c4d93 Binary files /dev/null and b/docs/use-case/data-diagnosis/img/4-3-access-device.png differ diff --git a/docs/use-case/data-diagnosis/img/9-4-click-rule-set.png b/docs/use-case/data-diagnosis/img/9-4-click-rule-set.png index 6e803f0d3..1917dcb48 100644 Binary files a/docs/use-case/data-diagnosis/img/9-4-click-rule-set.png and b/docs/use-case/data-diagnosis/img/9-4-click-rule-set.png differ diff --git a/docs/use-case/data-diagnosis/img/9-4-disable-rule-set-confirm.png b/docs/use-case/data-diagnosis/img/9-4-disable-rule-set-confirm.png index f0ad7b660..b17780523 100644 Binary files a/docs/use-case/data-diagnosis/img/9-4-disable-rule-set-confirm.png and b/docs/use-case/data-diagnosis/img/9-4-disable-rule-set-confirm.png differ diff --git a/docs/use-case/data-diagnosis/img/9-4-enable-rule-set.png b/docs/use-case/data-diagnosis/img/9-4-enable-rule-set.png index 6f73b04c7..f02360a8e 100644 Binary files a/docs/use-case/data-diagnosis/img/9-4-enable-rule-set.png and b/docs/use-case/data-diagnosis/img/9-4-enable-rule-set.png differ diff --git a/docs/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete.png b/docs/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete.png index 510b129b0..d9e33d987 100644 Binary files a/docs/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete.png and b/docs/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete.png differ diff --git a/docs/use-case/data-diagnosis/img/device-config_1.png b/docs/use-case/data-diagnosis/img/device-config_1.png new file mode 100644 index 000000000..d7cb94756 Binary files /dev/null and b/docs/use-case/data-diagnosis/img/device-config_1.png differ diff --git a/docs/use-case/data-diagnosis/img/device_2.png b/docs/use-case/data-diagnosis/img/device_2.png new file mode 100644 index 000000000..65c3a0aa7 Binary files /dev/null and b/docs/use-case/data-diagnosis/img/device_2.png differ diff --git a/docs/use-case/data-diagnosis/img/pro-1.png b/docs/use-case/data-diagnosis/img/pro-1.png index f9856ea9c..384d87271 100644 Binary files a/docs/use-case/data-diagnosis/img/pro-1.png and b/docs/use-case/data-diagnosis/img/pro-1.png differ diff --git a/docs/use-case/data-diagnosis/img/pro-trigger-edit.png b/docs/use-case/data-diagnosis/img/pro-trigger-edit.png index 0a5aff6fd..b82181b26 100644 Binary files a/docs/use-case/data-diagnosis/img/pro-trigger-edit.png and b/docs/use-case/data-diagnosis/img/pro-trigger-edit.png differ diff --git a/docs/use-case/img/05-data-collect-01.png b/docs/use-case/img/05-data-collect-01.png new file mode 100644 index 000000000..1f6f0d1f7 Binary files /dev/null and b/docs/use-case/img/05-data-collect-01.png differ diff --git a/docs/use-case/img/05-data-collect-02.png b/docs/use-case/img/05-data-collect-02.png new file mode 100644 index 000000000..1b70b851e Binary files /dev/null and b/docs/use-case/img/05-data-collect-02.png differ diff --git a/docs/use-case/img/05-data-collect-03.png b/docs/use-case/img/05-data-collect-03.png new file mode 100644 index 000000000..cf77af1be Binary files /dev/null and b/docs/use-case/img/05-data-collect-03.png differ diff --git a/docs/use-case/img/05-data-collect-04.png b/docs/use-case/img/05-data-collect-04.png new file mode 100644 index 000000000..f58e6fdb5 Binary files /dev/null and b/docs/use-case/img/05-data-collect-04.png differ diff --git a/docs/use-case/img/05-data-collect-05.png b/docs/use-case/img/05-data-collect-05.png new file mode 100644 index 000000000..3b95744ce Binary files /dev/null and b/docs/use-case/img/05-data-collect-05.png differ diff --git a/docs/use-case/img/05-data-collect-06.png b/docs/use-case/img/05-data-collect-06.png new file mode 100644 index 000000000..7d55b7b05 Binary files /dev/null and b/docs/use-case/img/05-data-collect-06.png differ diff --git a/docs/use-case/img/05-data-collect-07.png b/docs/use-case/img/05-data-collect-07.png new file mode 100644 index 000000000..ed97c96e8 Binary files /dev/null and b/docs/use-case/img/05-data-collect-07.png differ diff --git a/docs/use-case/img/05-data-collect-08.png b/docs/use-case/img/05-data-collect-08.png new file mode 100644 index 000000000..2e63187e8 Binary files /dev/null and b/docs/use-case/img/05-data-collect-08.png differ diff --git a/docs/use-case/img/05-data-collect-09.png b/docs/use-case/img/05-data-collect-09.png new file mode 100644 index 000000000..83c72bc25 Binary files /dev/null and b/docs/use-case/img/05-data-collect-09.png differ diff --git a/docs/use-case/img/05-data-collect-10.png b/docs/use-case/img/05-data-collect-10.png new file mode 100644 index 000000000..6bea0a002 Binary files /dev/null and b/docs/use-case/img/05-data-collect-10.png differ diff --git a/docs/use-case/img/05-data-collect-11.png b/docs/use-case/img/05-data-collect-11.png new file mode 100644 index 000000000..b9bb5f06a Binary files /dev/null and b/docs/use-case/img/05-data-collect-11.png differ diff --git a/docs/use-case/img/05-data-collect-12.png b/docs/use-case/img/05-data-collect-12.png new file mode 100644 index 000000000..e3e33974e Binary files /dev/null and b/docs/use-case/img/05-data-collect-12.png differ diff --git a/docs/use-case/img/05-data-collect-13.png b/docs/use-case/img/05-data-collect-13.png new file mode 100644 index 000000000..cb788a8a5 Binary files /dev/null and b/docs/use-case/img/05-data-collect-13.png differ diff --git a/docs/use-case/img/05-data-collect-14.png b/docs/use-case/img/05-data-collect-14.png new file mode 100644 index 000000000..4eb94d95a Binary files /dev/null and b/docs/use-case/img/05-data-collect-14.png differ diff --git a/docs/use-case/img/05-data-collect-15.png b/docs/use-case/img/05-data-collect-15.png new file mode 100644 index 000000000..82d086463 Binary files /dev/null and b/docs/use-case/img/05-data-collect-15.png differ diff --git a/docs/use-case/img/05-data-collect-16.png b/docs/use-case/img/05-data-collect-16.png new file mode 100644 index 000000000..be1d7fb79 Binary files /dev/null and b/docs/use-case/img/05-data-collect-16.png differ diff --git a/docs/use-case/img/05-data-collect-17.png b/docs/use-case/img/05-data-collect-17.png new file mode 100644 index 000000000..0002ba1f5 Binary files /dev/null and b/docs/use-case/img/05-data-collect-17.png differ diff --git a/docs/use-case/img/05-data-collect-18.png b/docs/use-case/img/05-data-collect-18.png new file mode 100644 index 000000000..92a72b28c Binary files /dev/null and b/docs/use-case/img/05-data-collect-18.png differ diff --git a/docs/use-case/img/05-data-collect-19.png b/docs/use-case/img/05-data-collect-19.png new file mode 100644 index 000000000..2e4df129b Binary files /dev/null and b/docs/use-case/img/05-data-collect-19.png differ diff --git a/docs/use-case/img/05-data-collect-20.png b/docs/use-case/img/05-data-collect-20.png new file mode 100644 index 000000000..35e75c2ee Binary files /dev/null and b/docs/use-case/img/05-data-collect-20.png differ diff --git a/docs/use-case/img/05-data-collect-21.png b/docs/use-case/img/05-data-collect-21.png new file mode 100644 index 000000000..94c334566 Binary files /dev/null and b/docs/use-case/img/05-data-collect-21.png differ diff --git a/docs/use-case/img/05-data-collect-22.png b/docs/use-case/img/05-data-collect-22.png new file mode 100644 index 000000000..649ddd340 Binary files /dev/null and b/docs/use-case/img/05-data-collect-22.png differ diff --git a/docs/use-case/img/05-data-collect-23.png b/docs/use-case/img/05-data-collect-23.png new file mode 100644 index 000000000..5715873be Binary files /dev/null and b/docs/use-case/img/05-data-collect-23.png differ diff --git a/docs/use-case/img/05-data-collect-24.png b/docs/use-case/img/05-data-collect-24.png new file mode 100644 index 000000000..7e0b5e658 Binary files /dev/null and b/docs/use-case/img/05-data-collect-24.png differ diff --git a/docs/use-case/img/05-data-collect-25.png b/docs/use-case/img/05-data-collect-25.png new file mode 100644 index 000000000..b875daf3d Binary files /dev/null and b/docs/use-case/img/05-data-collect-25.png differ diff --git a/docs/use-case/img/05-data-collect-26.png b/docs/use-case/img/05-data-collect-26.png new file mode 100644 index 000000000..36d2fa678 Binary files /dev/null and b/docs/use-case/img/05-data-collect-26.png differ diff --git a/docs/use-case/img/05-data-collect-27.png b/docs/use-case/img/05-data-collect-27.png new file mode 100644 index 000000000..0eb09bbf6 Binary files /dev/null and b/docs/use-case/img/05-data-collect-27.png differ diff --git a/docs/use-case/img/05-data-collect-28.png b/docs/use-case/img/05-data-collect-28.png new file mode 100644 index 000000000..a67cadcd5 Binary files /dev/null and b/docs/use-case/img/05-data-collect-28.png differ diff --git a/docs/use-case/img/05-data-collect-29.png b/docs/use-case/img/05-data-collect-29.png new file mode 100644 index 000000000..f337ea10c Binary files /dev/null and b/docs/use-case/img/05-data-collect-29.png differ diff --git a/docs/use-case/img/05-data-collect-30.png b/docs/use-case/img/05-data-collect-30.png new file mode 100644 index 000000000..11470c77c Binary files /dev/null and b/docs/use-case/img/05-data-collect-30.png differ diff --git a/docs/use-case/img/05-data-collect-31.png b/docs/use-case/img/05-data-collect-31.png new file mode 100644 index 000000000..44227ff38 Binary files /dev/null and b/docs/use-case/img/05-data-collect-31.png differ diff --git a/docs/use-case/img/05-data-collect-32.png b/docs/use-case/img/05-data-collect-32.png new file mode 100644 index 000000000..e34e5d3dc Binary files /dev/null and b/docs/use-case/img/05-data-collect-32.png differ diff --git a/docs/use-case/img/05-data-collect-33.png b/docs/use-case/img/05-data-collect-33.png new file mode 100644 index 000000000..0cc32278a Binary files /dev/null and b/docs/use-case/img/05-data-collect-33.png differ diff --git a/docs/use-case/img/05-data-collect-34.png b/docs/use-case/img/05-data-collect-34.png new file mode 100644 index 000000000..8817fe304 Binary files /dev/null and b/docs/use-case/img/05-data-collect-34.png differ diff --git a/docs/use-case/img/05-data-collect-35.png b/docs/use-case/img/05-data-collect-35.png new file mode 100644 index 000000000..b7755f434 Binary files /dev/null and b/docs/use-case/img/05-data-collect-35.png differ diff --git a/docs/use-case/img/05-project-fields_1.png b/docs/use-case/img/05-project-fields_1.png new file mode 100644 index 000000000..85113ad9c Binary files /dev/null and b/docs/use-case/img/05-project-fields_1.png differ diff --git a/docs/use-case/img/05-project-fields_2.png b/docs/use-case/img/05-project-fields_2.png new file mode 100644 index 000000000..85b9b0c02 Binary files /dev/null and b/docs/use-case/img/05-project-fields_2.png differ diff --git a/docs/use-case/img/05-task-link-record.png b/docs/use-case/img/05-task-link-record.png new file mode 100644 index 000000000..4b1997b9b Binary files /dev/null and b/docs/use-case/img/05-task-link-record.png differ diff --git a/docs/use-case/img/05-trigger-assignee.png b/docs/use-case/img/05-trigger-assignee.png new file mode 100644 index 000000000..5949abe10 Binary files /dev/null and b/docs/use-case/img/05-trigger-assignee.png differ diff --git a/docs/use-case/img/3-create-trigger-2.png b/docs/use-case/img/3-create-trigger-2.png index a1d0949a7..2886b7628 100644 Binary files a/docs/use-case/img/3-create-trigger-2.png and b/docs/use-case/img/3-create-trigger-2.png differ diff --git a/docs/use-case/img/3-login-mirror-1.png b/docs/use-case/img/3-login-mirror-1.png deleted file mode 100644 index ba1b3ee8b..000000000 Binary files a/docs/use-case/img/3-login-mirror-1.png and /dev/null differ diff --git a/docs/use-case/img/3-login-mirror-2.png b/docs/use-case/img/3-login-mirror-2.png deleted file mode 100644 index 98a0fd7dd..000000000 Binary files a/docs/use-case/img/3-login-mirror-2.png and /dev/null differ diff --git a/docs/use-case/img/4-13-docker-images-page.png b/docs/use-case/img/4-13-docker-images-page.png new file mode 100644 index 000000000..b343bee9f Binary files /dev/null and b/docs/use-case/img/4-13-docker-images-page.png differ diff --git a/docs/use-case/img/4-13-generate-docker-auth.png b/docs/use-case/img/4-13-generate-docker-auth.png new file mode 100644 index 000000000..202fff6f1 Binary files /dev/null and b/docs/use-case/img/4-13-generate-docker-auth.png differ diff --git a/docs/use-case/img/4-online-simulation-test-1.png b/docs/use-case/img/4-online-simulation-test-1.png new file mode 100644 index 000000000..237a9dc60 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-1.png differ diff --git a/docs/use-case/img/4-online-simulation-test-10.png b/docs/use-case/img/4-online-simulation-test-10.png new file mode 100644 index 000000000..5aa6aa25a Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-10.png differ diff --git a/docs/use-case/img/4-online-simulation-test-11.png b/docs/use-case/img/4-online-simulation-test-11.png new file mode 100644 index 000000000..8aa9d3dc2 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-11.png differ diff --git a/docs/use-case/img/4-online-simulation-test-12.png b/docs/use-case/img/4-online-simulation-test-12.png new file mode 100644 index 000000000..d542f4bb4 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-12.png differ diff --git a/docs/use-case/img/4-online-simulation-test-13.png b/docs/use-case/img/4-online-simulation-test-13.png new file mode 100644 index 000000000..e2510b75b Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-13.png differ diff --git a/docs/use-case/img/4-online-simulation-test-14.png b/docs/use-case/img/4-online-simulation-test-14.png new file mode 100644 index 000000000..cfea2d7a9 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-14.png differ diff --git a/docs/use-case/img/4-online-simulation-test-15.png b/docs/use-case/img/4-online-simulation-test-15.png new file mode 100644 index 000000000..21583cb81 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-15.png differ diff --git a/docs/use-case/img/4-online-simulation-test-16.png b/docs/use-case/img/4-online-simulation-test-16.png new file mode 100644 index 000000000..1899e6c16 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-16.png differ diff --git a/docs/use-case/img/4-online-simulation-test-17.png b/docs/use-case/img/4-online-simulation-test-17.png new file mode 100644 index 000000000..fa10bf436 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-17.png differ diff --git a/docs/use-case/img/4-online-simulation-test-18.png b/docs/use-case/img/4-online-simulation-test-18.png new file mode 100644 index 000000000..2d33cb3c4 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-18.png differ diff --git a/docs/use-case/img/4-online-simulation-test-19.png b/docs/use-case/img/4-online-simulation-test-19.png new file mode 100644 index 000000000..9c294971a Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-19.png differ diff --git a/docs/use-case/img/4-online-simulation-test-2.PNG b/docs/use-case/img/4-online-simulation-test-2.PNG new file mode 100644 index 000000000..cf265fe5d Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-2.PNG differ diff --git a/docs/use-case/img/4-online-simulation-test-20.png b/docs/use-case/img/4-online-simulation-test-20.png new file mode 100644 index 000000000..34b3faefb Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-20.png differ diff --git a/docs/use-case/img/4-online-simulation-test-21.png b/docs/use-case/img/4-online-simulation-test-21.png new file mode 100644 index 000000000..2ece08bee Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-21.png differ diff --git a/docs/use-case/img/4-online-simulation-test-22.png b/docs/use-case/img/4-online-simulation-test-22.png new file mode 100644 index 000000000..c1ca9a44c Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-22.png differ diff --git a/docs/use-case/img/4-online-simulation-test-23.gif b/docs/use-case/img/4-online-simulation-test-23.gif new file mode 100644 index 000000000..7161a785c Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-23.gif differ diff --git a/docs/use-case/img/4-online-simulation-test-24.png b/docs/use-case/img/4-online-simulation-test-24.png new file mode 100644 index 000000000..dfc92d798 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-24.png differ diff --git a/docs/use-case/img/4-online-simulation-test-25.png b/docs/use-case/img/4-online-simulation-test-25.png new file mode 100644 index 000000000..8438f75d7 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-25.png differ diff --git a/docs/use-case/img/4-online-simulation-test-3.PNG b/docs/use-case/img/4-online-simulation-test-3.PNG new file mode 100644 index 000000000..0f8bf476c Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-3.PNG differ diff --git a/docs/use-case/img/4-online-simulation-test-4.PNG b/docs/use-case/img/4-online-simulation-test-4.PNG new file mode 100644 index 000000000..261e4e8d4 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-4.PNG differ diff --git a/docs/use-case/img/4-online-simulation-test-5.PNG b/docs/use-case/img/4-online-simulation-test-5.PNG new file mode 100644 index 000000000..23990a1a1 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-5.PNG differ diff --git a/docs/use-case/img/4-online-simulation-test-6.png b/docs/use-case/img/4-online-simulation-test-6.png new file mode 100644 index 000000000..1fe7bcdd8 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-6.png differ diff --git a/docs/use-case/img/4-online-simulation-test-7.png b/docs/use-case/img/4-online-simulation-test-7.png new file mode 100644 index 000000000..07c86eaad Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-7.png differ diff --git a/docs/use-case/img/4-online-simulation-test-8.png b/docs/use-case/img/4-online-simulation-test-8.png new file mode 100644 index 000000000..28d211646 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-8.png differ diff --git a/docs/use-case/img/4-online-simulation-test-9.png b/docs/use-case/img/4-online-simulation-test-9.png new file mode 100644 index 000000000..2d33cb3c4 Binary files /dev/null and b/docs/use-case/img/4-online-simulation-test-9.png differ diff --git a/docs/use-case/img/decompress-files.png b/docs/use-case/img/decompress-files.png index e057b0f0a..285975f14 100644 Binary files a/docs/use-case/img/decompress-files.png and b/docs/use-case/img/decompress-files.png differ diff --git a/docs/use-case/img/device-config_1.png b/docs/use-case/img/device-config_1.png new file mode 100644 index 000000000..d7cb94756 Binary files /dev/null and b/docs/use-case/img/device-config_1.png differ diff --git a/docs/use-case/img/device-install-command.png b/docs/use-case/img/device-install-command.png deleted file mode 100644 index f91cb68fc..000000000 Binary files a/docs/use-case/img/device-install-command.png and /dev/null differ diff --git a/docs/use-case/img/device_2.png b/docs/use-case/img/device_2.png new file mode 100644 index 000000000..65c3a0aa7 Binary files /dev/null and b/docs/use-case/img/device_2.png differ diff --git a/docs/use-case/img/use-2-1.png b/docs/use-case/img/use-2-1.png index e28c867c4..629a1f155 100644 Binary files a/docs/use-case/img/use-2-1.png and b/docs/use-case/img/use-2-1.png differ diff --git a/docs/workflow/action/2-create-action.md b/docs/workflow/action/2-create-action.md index 7a4cf1b3f..e0feb054b 100644 --- a/docs/workflow/action/2-create-action.md +++ b/docs/workflow/action/2-create-action.md @@ -82,7 +82,15 @@ sidebar_position: 2 } ``` - - 其中,`{{task.title}}` 和 `{{record.link}}` 为平台内置的变量,分别代表任务名称和记录链接。 + - 其中,有部分平台内置的变量: + | 变量 | 说明 | + | ---- | ---- | + | `{{task.title}}` | 任务名称 | + | `{{record.link}}` | 记录链接 | + | `{{device.id}}` | 设备 ID | + | `{{device.display_name}}` | 设备名称 | + | `{{task.create_time}}` | 任务创建时间 | + - 此动作一般用于发送任务完成通知,可根据实际需求修改请求体内容,详见钉钉的[帮助文档](https://open.dingtalk.com/document/orgapp/custom-bot-send-message-type) ![action-http_2](./img/action-http_2.png) diff --git a/docusaurus.config.js b/docusaurus.config.js index d97fa1bfa..731c84d87 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -13,6 +13,10 @@ const excludeInEn = []; /** @type {import('@docusaurus/types').Config} */ const config = { + future: { + v4: true, + experimental_faster: true, + }, title: 'coScene', staticDirectories: ['public', 'static'], tagline: 'User Docs', @@ -40,19 +44,7 @@ const config = { organizationName: 'coScene', // Usually your GitHub org/user name. projectName: 'docs', // Usually your repo name. - plugins: [ - async function myPlugin(context, options) { - return { - name: 'docusaurus-tailwindcss', - configurePostCss(postcssOptions) { - // Appends TailwindCSS and AutoPrefixer. - postcssOptions.plugins.push(require('tailwindcss')); - postcssOptions.plugins.push(require('autoprefixer')); - return postcssOptions; - }, - }; - }, - ], + plugins: [require.resolve('./tailwind.plugin.js')], presets: [ [ diff --git a/i18n/en/code.json b/i18n/en/code.json index e722da6e4..b54f72aff 100644 --- a/i18n/en/code.json +++ b/i18n/en/code.json @@ -572,9 +572,15 @@ "home.catalogue.automated-data-processing": { "message": "Automated Data Processing" }, + "home.catalogue.online-simulation-test": { + "message": "Online Simulation Test" + }, "home.catalogue.data-collection-and-diagnosis": { "message": "Data Collection and Diagnose" }, + "home.catalogue.embodied-intelligence-data-collection-solution": { + "message": "Heterogeneous Robot Data Collection Factory Integration with coScene Platform" + }, "home.catalogue.docker-images": { "message": "Docker Images" }, diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/2-create-device.md b/i18n/en/docusaurus-plugin-content-docs/current/device/2-create-device.md index 7a36d7f70..57cca8288 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/device/2-create-device.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/device/2-create-device.md @@ -76,7 +76,7 @@ This method is suitable for adding a small number of devices to the platform one ![System Generated Installation Command](./img/4-3-install-cmd.png) -2. When `Installation completed successfully 🎉` appears on the device side, the installation is successful. Due to device performance impacts, there may be a delay in the device list page display after installation completion. At this point, the device has completed registration. For subsequent operations, refer to the Device Admission section. +2. When `Installation completed successfully 🎉` appears on the device side, the installation is successful. Due to device performance impacts, there may be a delay in the device list page display after installation completion. At this point, the device has completed registration. For subsequent operations, refer to the [Enable Device](./3-manage-device.md#enable-device). ![Device Installation Success](./img/4-3-install-successfully.png) @@ -105,10 +105,10 @@ This method is suitable for adding a small number of devices to the platform one 3. Execute the installation command (using `cos_binaries.tar.gz` located at `/root/cos_binaries.tar.gz` as an example): ```plain text - ./coscene.sh --server_url=*** --project_slug=*** --virmesh_endpoint=*** --use_local=/root/cos_binaries.tar.gz + ./install.sh --use_local=./cos_binaries.tar.gz --mod="default" --org_slug="***" --server_url="***" --coLink_endpoint="***" --coLink_network="***" --sn_file="***" --sn_field="***" --remove_config ``` - For the parameters `--server_url`, `--project_slug`, and `--virmesh_endpoint`, please refer to the installation command generated in the web page popup to replace `***`. The parameter `--use_local` is the path to the offline binary file compression package, and you need to modify this parameter when changing the directory location. + The `--use_local` parameter indicates the local path to the offline installation package on the target device, which must be adjusted based on your specific environment. ![Add Using Offline Installation Package](./img/4-3-offline-install-package.png) @@ -127,7 +127,7 @@ This method creates virtual device fields in the platform database, which do not ![Add by Filling in Information](./img/4-3-input-information.png) ## Next Steps -- [Device Admission](./3-manage-device.md#device-admission) +- [Enable Device](./3-manage-device.md#enable-device) - [Add Device to Project](./3-manage-device.md#assign-devices-to-projects) - [Manual Data Collection](../use-case/1-common-task.md) - [Automatic Data Collection Based on Error Codes](../use-case/data-diagnosis/2-get-started.md) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/3-manage-device.md b/i18n/en/docusaurus-plugin-content-docs/current/device/3-manage-device.md index 350cf0c14..9c9d27553 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/device/3-manage-device.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/device/3-manage-device.md @@ -16,7 +16,7 @@ Devices are managed at the organization level, and only users with organization ### Filter Device Information -The system by default supports filtering by "Device ID", "Access Status", and "Online Status" - these 3 fields. In the "More" option, you can also select custom device fields for filtering operations to meet more personalized information search needs. +The system by default supports filtering by "Device ID", "Client Status", and "Online Status" - these 3 fields. In the "More" option, you can also select custom device fields for filtering operations to meet more personalized information search needs. ![Organization Device Filtering](./img/4-3-device-filter.png) @@ -32,15 +32,19 @@ When there are many device fields, you can use the settings button in the upper 🤖 Permission: Only **organization administrators** have the authority to set device custom fields ::: -- **Entry:** Through the "Organization Management - Settings - Device Field Configuration - Edit Configuration" path to enter the settings page, administrators can add relevant device fields according to actual needs. After saving the settings, these custom fields will appear in the device information display. +1. Define organization-wide fields in Organization Management → Settings → Custom Fields -- **Notes:** If an administrator deletes a device custom field, all data for that field will be deleted and cannot be recovered, so operation must be done with caution. + ![Set Device Custom Fields](./img/4-3-setting-device-fields.png) + +2. Select fields for devices in Device Field Configuration -![Set Device Custom Fields](./img/4-3-setting-device-fields.png) + ![Device Custom Fields Popup](./img/4-3-fields-popup.png) -![Device Custom Fields Popup](./img/4-3-fields-popup.png) +3. These custom fields will appear when creating/viewing devices + + ![Device Table with Custom Fields](./img/4-3-device-table-fields.png) -![Device Table with Custom Fields](./img/4-3-device-table-fields.png) +- **Notes:** If an administrator deletes a device custom field, all data for that field will be deleted and cannot be recovered, so operation must be done with caution. ## Edit Device Information @@ -60,7 +64,7 @@ You can modify various information about the device by selecting the device you 🤖 Permission: **Organization members and above roles** can assign devices to projects ::: -### Assign Devices to Projects +### Assign Devices to Projects {#assign-devices-to-projects} After a device is added to a project, if a data collection client is installed, the client will pull the rules that have been enabled in the project for automatic monitoring and diagnosis, and data collection tasks can also be created in the project to collect data. @@ -78,32 +82,42 @@ If a project no longer needs a certain device, you can [Remove from this Project ![Remove Project Device](./img/4-3-delete-project-device.png) -## Device Admission +## Device Admission {#enable-device} :::info -🤖 Permission: **Only organization administrators** can perform device admission operations +🤖 Permission: **Only organization administrators** can perform enable device operations ::: -After completing device addition, the [Admit] operation button will appear in the device list. On the device details page, you can separately admit the "Data Collection" and "Remote Control" modules. +After completing device addition, an [Enable Client] action button will appear in the device list. -![Admit Device](./img/4-3-access-device-2.png) +![Admit Device](./img/4-3-access-device.png) -After "Data Collection" admission, the machine-side program will collect data according to rules and automatically upload it to the corresponding project; +Once the client is enabled: -After "Remote Control" admission, users can perform SSH connections, real-time visualization, and other operations on the machine through the coScene platform. +- If Data Collection is online: + The machine-side program will collect data according to configured rules and automatically upload to the corresponding project. -### View Data Collection Client Logs +- If Remote Control is online: + Users can: + - Establish SSH connections to the machine + - Perform real-time device visualization using [coBridge](https://github.com/coscene-io/coBridge) -Execute the following command on the device side to view the log information of the data collection client, making it convenient for users to understand the situation during the data collection process. +### View Client Information -```go -journalctl --user-unit=cos -f -n 50 -``` + +On the device side, execute the following command to view the client version and log information. +| Name | View Version | View Logs | +| ---- | -------- | -------- | +| Data Collection (coScout) ≥ v1.1.2 | `~/.local/bin/cos --version` | `tail -f ~/.local/state/cos/logs/cos.log` | +| Data Collection (coScout) < v1.1.2 - | `~/.local/bin/cos --version` | `journalctl -fu cos` | +| Remote Control (coLink) | `colink --version` | `journalctl -fu colink` | ### Uninstall Data Collection and Remote Control Clients On the device side, execute the following command to uninstall the data collection and remote control clients. During execution, observe the output until the uninstallation process is complete. +Note: If the coScout client is installed under the root user, you need to switch to the root user when uninstalling. + ```yaml /bin/bash -c "$(curl -fsSL https://download.coscene.cn/coscout/uninstall_en.sh)" ``` @@ -118,13 +132,11 @@ On the device side, execute the following command to uninstall the data collecti Select the device you want to delete in the device list and click [Delete Device], and confirm twice to delete. After deleting the device: -1. Admitted devices will have their admission canceled and will not be able to automatically upload data - -2. The device and requests from the device side will be cleared in the organization - -3. The device cannot be added to records - -4. Detailed information about the device cannot be viewed in records +1. All requests from the device will be removed from the organization. +2. The device will be removed from the records. +3. In the records, the detailed information of this device will not be viewable. +4. Unable to add this device to the project. +5. Already added devices in the project will be synchronized and removed from the project devices. ![Delete Device](./img/4-3-device-delete.png) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/4-device-collector.md b/i18n/en/docusaurus-plugin-content-docs/current/device/4-device-collector.md index 8c9a40c3d..ab314bc1e 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/device/4-device-collector.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/device/4-device-collector.md @@ -23,7 +23,7 @@ During collection configuration, you need to define key information such as devi ## Entry -On the "Devices" tab of the organization management page, click the [Edit Collection Rules] button to enter the data collection client configuration editing interface. YAML language is used for editing here. +On the "Devices" tab of the organization management page, click the [Device Configuration] button to enter the data collection client configuration editing interface. YAML language is used for editing here. ![org-device](./img/4-3-org-collector.png) @@ -33,89 +33,74 @@ After completing the configuration, click [Save], and the configuration will tak ## Collection Rule Format Details -Collection rules primarily configure 5 modules: +Collection rules primarily configure 4 modules: | Module Name | Function Description | | ----------- | ------------------- | -| Data Collector Settings (collector) | Whether to delete cache data generated by the data collection client on the device side after data collection | +| Data Collector Settings (collector) | Check if the same file exists in the cloud before uploading data | | Storage Settings (mod) | Device ID storage location; monitoring directory; client initialization monitoring time range; collection directory | | Device Event Properties (device) | Event attribute values | | Rule Trigger Topics (topic) | Rule trigger topics | -| Update Settings (updater) | Whether to enable auto-update for the current program | Example template as follows: ```yaml collector: - delete_after_interval_in_hours: 48 # By default, cache data generated by the data collection client on the device side will be automatically deleted after 48 hours, -1 means no deletion + skip_check_same_file: false # By default, checks if a file with the same sha256 exists in the cloud. If it exists, skips upload and directly references the cloud file to avoid duplicate uploads mod: - # mod name, default is 'default', supports monitoring files in specified device directories - # For custom monitoring methods, please contact coScene - name: 'default' + # mod name, default is 'default', supports monitoring files in specified directories on the device side. For custom monitoring methods, please contact coScene + name: 'default' conf: # Enable switch, true/false, enabled by default - enabled: true - - # Assuming there's a file /home/coscene/example.yaml on the machine end with content: + enabled: true + + # Assuming there's a file /home/coscene/example.yaml on the machine side with content: # serial_num: 1234 # - # Then during machine registration, it will read the serial_num field value (1234) from example.yaml as the machine's unique identifier + # The corresponding configuration will read the value of the serial_num field (1234) from example.yaml as the machine's unique identifier during the machine registration phase sn_file: /home/coscene/example.yaml sn_field: serial_num - - # Device monitoring directories, used as rule monitoring directories in projects - listen_dirs: + + # Monitoring directories on the device side, used as the monitoring directories for rules in the project + listen_dirs: - /home/bag/ - # Files won't be monitored/collected when the time difference between current time and file update time exceeds {skip_period_hours} + # When the current time exceeds the file update time by more than {skip_period_hours} hours, the file will not be monitored or collected skip_period_hours: 2 - # Device collection directories, used as specified directories for project data collection tasks and rule collection - collect_dirs: + # Collection directories on the device side, used as specified directories for data collection tasks and rule collection in the project + collect_dirs: - /home/bag/ - /home/log/ -# Assuming there's a file /home/coscene/device.yaml on the machine end with content: +# Assuming the machine has a /home/coscene/device.yaml file with the following content: # soft_version: v1.0 # -# After device rule triggering, it will read soft_version: v1.0 from device.yaml as the generated event's attribute value +# When the device triggers a rule, it will read the value of soft_version: v1.0 from the device.yaml file as an attribute for the generated event. # To view the event statistics panel, please contact coScene device: extra_files: - /home/coscene/device1.yaml - /home/coscene/device2.yaml -# Topics serve as options for rule trigger topics in projects to narrow down rule matching scope -# Assuming there's an error_code topic +# Topics, used as the source of options for rule trigger topics in the project to narrow down the scope of rule matching +# Assuming there's an /error_code topic topics: - - error_code + - /error_code -# Auto update -updater: - # Auto update switch, true/false, disabled by default - enabled: false ``` Let's go through each function and its usage: ### Data Collector Settings (collector) -This module is used to configure whether to delete device-end data after collection is complete, effectively managing device storage. Configurable parameters include: - -- `delete_after_upload`: Default value is false. If set to true, device-end data will be deleted after upload. - -- `delete_after_interval_in_hours`: # By default, cache data generated by the data collection client on the device side will be automatically deleted after 48 hours, -1 means no deletion - -- `scan_interval_in_secs`: Default value is 60, meaning the folder is scanned every 60 seconds. +This module is used to set whether to check the data to be uploaded. Files with the same sha256 will be skipped and directly referenced to the cloud file, reducing the amount of data uploaded and improving data collection efficiency. ```yaml -# Data collector settings collector: - delete_after_upload: true # Default value is false - delete_after_interval_in_hours: 48 # By default, cache data generated by the data collection client on the device side will be automatically deleted after 48 hours, -1 means no deletion - scan_interval_in_secs: 60 # Default value: 60, scans folder every 60s + skip_check_same_file: false # By default, checks if a file with the same sha256 exists in the cloud. If it exists, skips upload and directly references the cloud file to avoid duplicate uploads ``` ### Storage Settings (mod) @@ -132,6 +117,8 @@ Mainly responsible for configuring device-end data storage location information: - `listen_dirs`: Device monitoring directories, used as rule monitoring directories in projects. +- `skip_period_hours`: Files won't be monitored/collected when the time difference between current time and file update time exceeds `{skip_period_hours}`. + - `collect_dirs`: Device collection directories, used as specified directories for project data collection tasks and rule collection. ```yaml @@ -191,17 +178,6 @@ topics: - error_code ``` -### Update Settings (updater) - -Used to configure whether to auto-update the data collection client. Default is `false` (no auto-update). If changed to `true`, the device will automatically update when connected to the internet after we release a new version of the data collection client. - -```yaml -# Auto update -updater: - # Auto update switch, true/false, disabled by default - enabled: false -``` - --- Through these detailed steps and instructions, administrators can comprehensively and accurately configure the device data collection client, ensuring efficient operation of device data collection. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/5-device-remote-control.md b/i18n/en/docusaurus-plugin-content-docs/current/device/5-device-remote-control.md index 1a488d68c..3513808aa 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/device/5-device-remote-control.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/device/5-device-remote-control.md @@ -9,7 +9,7 @@ The coScene platform enables real-time remote device operations, such as remote ## Prerequisites 1. The device has coScene client programs installed. For details, please refer to [Device Installation](./2-create-device.md#add-device-from-device). -2. The organization administrator has granted device access and permitted remote control operations. For details, please refer to [Device Admission](./3-manage-device.md#device-admission). +2. The organization administrator has granted device access and permitted remote control operations. For details, please refer to [Enable Device](./3-manage-device.md#enable-device). ## Real-time Visualization @@ -17,7 +17,7 @@ Before device visualization, you need to install the coBridge component on the t coScene provides [coBridge source code (C++)](https://github.com/coscene-io/coBridge), which currently supports ROS distributions including ROS1 Noetic Ninjemys, Melodic Morenia; ROS2 Foxy Fitzroy, Galactic Geochelone, Humble Hawksbill. For other version requirements, please contact the coScene team. -We strongly recommend users to compile the executable using the source code provided by coScene (compilation process documentation: [CN](https://github.com/coscene-io/coBridge/blob/main/README.zh-CN.md)/[EN](https://github.com/coscene-io/coBridge/blob/main/README.md)), integrate it into the robot software, and add the command `ros2 launch cobridge cobridge_launch.xml` (or `roslaunch cobridge cobridge_launch.xml`) to the robot startup script. +We strongly recommend users to compile the executable using the source code provided by coScene [compilation process documentation](https://github.com/coscene-io/coBridge/blob/main/README.md)), integrate it into the robot software, and add the command `ros2 launch cobridge cobridge_launch.xml` (or `roslaunch cobridge cobridge_launch.xml`) to the robot startup script. After the coBridge node starts, combined with the public network address and port mapped by virmesh, you can subscribe to robot topics and issue services through the web interface, achieving remote real-time visualization of the robot. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/6-batch-device-operations.md b/i18n/en/docusaurus-plugin-content-docs/current/device/6-batch-device-operations.md index de1ffd943..f691af34b 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/device/6-batch-device-operations.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/device/6-batch-device-operations.md @@ -6,7 +6,7 @@ sidebar_position: 6 You can select multiple devices simultaneously for batch operations. ## Data Collection Access {#data-collection-access} -Administrators can select multiple devices that have not been granted data collection access, and click the [Authorize Data Collection] button to authorize devices in batch. +Administrators can select multiple devices that do not have the client enabled and click the [Enable Client] button to enable the devices in batches. ![Authorize Data Coll.](./img/7-authorize-data-collection-1.png) ## Add Associated Projects {#add-associated-projects} diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/7-change-device-guide.md b/i18n/en/docusaurus-plugin-content-docs/current/device/7-change-device-guide.md index b16f8fbe5..57914535a 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/device/7-change-device-guide.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/device/7-change-device-guide.md @@ -36,9 +36,9 @@ When replacing a device's host computer or modifying device ID, follow this proc ![Execute Installation Command](./img/4-3-install-successfully.png) -4. Re-grant Device Access. After installation, contact the organization administrator to re-grant device access on the platform's device management page to restore normal device operation. +4. Enable device client. After installation, contact the organization administrator to re-grant device access on the platform's device management page to restore normal device operation. - ![Grant Device Access](./img/4-3-access-device-2.png) + ![Grant Device Access](./img/4-3-access-device.png) ## In-place Version Upgrade Process @@ -68,9 +68,9 @@ When only software version upgrade is needed, without changing the host computer ![Execute Installation Command](./img/4-3-install-successfully.png) -4. Re-grant Device Access. After installation, contact the organization administrator to re-grant device access on the platform's device management page to ensure normal operation of the upgraded device. +4. Enable device client. After installation, contact the organization administrator to re-grant device access on the platform's device management page to ensure normal operation of the upgraded device. - ![Grant Device Access](./img/4-3-access-device-2.png) + ![Grant Device Access](./img/4-3-access-device.png) ## Client Uninstallation Process diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-access-device-2.png b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-access-device-2.png deleted file mode 100644 index 29d412cd1..000000000 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-access-device-2.png and /dev/null differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-access-device.png b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-access-device.png index 61d2e68e4..9f6c2ebbb 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-access-device.png and b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-access-device.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-details-edit.png b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-details-edit.png index e58386da4..6b98dc968 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-details-edit.png and b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-details-edit.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-filter.png b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-filter.png index 6e568c3de..d7440503d 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-filter.png and b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-filter.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-table-edit.png b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-table-edit.png index f23e39f26..39f6e2795 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-table-edit.png and b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-table-edit.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-table-fields.png b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-table-fields.png index 3e582c9c3..7461ec0e4 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-table-fields.png and b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-device-table-fields.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-fields-popup.png b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-fields-popup.png index 06248b2a7..df44315e6 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-fields-popup.png and b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-fields-popup.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-setting-device-fields.png b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-setting-device-fields.png index c5d664d53..7423e6d28 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-setting-device-fields.png and b/i18n/en/docusaurus-plugin-content-docs/current/device/img/4-3-setting-device-fields.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/device/img/7-authorize-data-collection-1.png b/i18n/en/docusaurus-plugin-content-docs/current/device/img/7-authorize-data-collection-1.png index 03a16904d..03f19f175 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/device/img/7-authorize-data-collection-1.png and b/i18n/en/docusaurus-plugin-content-docs/current/device/img/7-authorize-data-collection-1.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/get-started/1-quick-start.md b/i18n/en/docusaurus-plugin-content-docs/current/get-started/1-quick-start.md index befe661d1..1dd446279 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/get-started/1-quick-start.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/get-started/1-quick-start.md @@ -112,7 +112,7 @@ Devices can establish connections with real devices, see [Device](../device/1-de 4. Wait for 1-2 minutes, the device will automatically appear in the device list. Contact the organization administrator to grant device usage permissions. - ![access-device](./img/4-3-access-device-2.png) + ![access-device](./img/4-3-access-device.png) ### Web SSH After the device is granted access, find the device on the "Organization Management-Devices" page and click the【Web SSH】button to open a new tab in the browser for remote device connection. For more details, please refer to [Web SSH](../device/5-device-remote-control.md#web-ssh). @@ -159,7 +159,7 @@ Devices can establish connections with real devices as data collection targets. 4. Wait for 1-2 minutes, the device will automatically appear in the device list. Contact the organization administrator to grant device usage permissions. - ![access-device](./img/4-3-access-device-2.png) + ![access-device](./img/4-3-access-device.png) ### Manual Data Collection 1. **Add Device to Project**: Enter the "Project Devices" page, click the【Add Device】button to select the device for data collection. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/get-started/img/4-3-access-device.png b/i18n/en/docusaurus-plugin-content-docs/current/get-started/img/4-3-access-device.png new file mode 100644 index 000000000..9f6c2ebbb Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/get-started/img/4-3-access-device.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/1-common-task.md b/i18n/en/docusaurus-plugin-content-docs/current/use-case/1-common-task.md index 0f1d74a94..7be3e313a 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-case/1-common-task.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-case/1-common-task.md @@ -8,7 +8,7 @@ The coScene platform provides a general data collection scheme for uploading mac ## Configure Collection Rules -Go to [Organization Management] - [Device] - [Edit Collection Rules] to configure the overall collection rule information. +Go to [Organization Management] - [Device] - [Device Configuration] to configure the overall collection rule information. ![device-collector](./img/common-task-1.png) @@ -31,17 +31,17 @@ updater: enabled: false ``` -For detailed information on the configuration file, please refer to the document [Collection Rules](../device/4-device-collector.md) +For detailed information on the configuration file, please refer to the document [Device Configuration](../device/4-device-collector.md) ## Install Agent on Device Go to [Organization Management] - [Device] - [Add Device] to get the Agent installation command for the device. ![device-command](./img/common-task-2.png) -The installation command supports specifying the relevant device ID file path and associated field name. If not set, a random ID will be generated to bind to the current device. +The installation command supports specifying the relevant device ID file path and associated field name. If not set, a system ID will be generated to bind to the current device. ![device-install-command](./img/device-install-command.png) -Open the command line terminal on the machine, paste the copied installation command from the above image, and add the `--mod=task` parameter at the end of the command to install the coScene Agent on the machine. After waiting for a few minutes, you can view the corresponding device information in the organization device list. +Open the command line terminal on the machine, paste the copied installation command from the above image to install the coScene Agent on the machine. After waiting for a few minutes, you can view the corresponding device information in the organization device list. ![device-install-command-2](./img/device-install-command-2.png) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/3-automated-data-processing.md b/i18n/en/docusaurus-plugin-content-docs/current/use-case/3-automated-data-processing.md index 6bd90cbc3..b9fee626a 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-case/3-automated-data-processing.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-case/3-automated-data-processing.md @@ -65,5 +65,5 @@ You've now set up an automated workflow that: This example demonstrates just one possibility of coScene's automation capabilities. For more advanced use cases and features, explore the following resources: -- [Automation Documentation](https://docs.coscene.cn/docs/category/%E8%87%AA%E5%8A%A8%E5%8C%96/) -- [Image Registry Guide](https://docs.coscene.cn/docs/category/%E9%95%9C%E5%83%8F/) +- [Automation Documentation](../workflow/1-quick-start-workflow.md) +- [Image Registry Guide](../image/1-about-docker-image.md) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/5-heterogeneous-robot-data-factory.md b/i18n/en/docusaurus-plugin-content-docs/current/use-case/5-heterogeneous-robot-data-factory.md new file mode 100644 index 000000000..28f0d5fd7 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-case/5-heterogeneous-robot-data-factory.md @@ -0,0 +1,258 @@ +--- +sidebar_position: 5 +--- + +# Heterogeneous Robot Data Collection Factory Integration with coScene Platform + +## Background + +In the field of embodied intelligence, data is crucial for training and optimizing the behavior and decision-making capabilities of intelligent agents. After embodied intelligence data is collected and organized into records, in order to precisely use this data for model training, algorithm optimization, and other tasks, the data needs to be annotated to understand its underlying meaning, and it must undergo review to ensure data accuracy and quality. The coScene platform provides a complete solution for this, compatible with various heterogeneous robots and supporting multiple types of data uploads. + +This article mainly introduces the following methods: + +- **How to install and integrate coScene's edge software on the robot itself to meet the requirements for robot platform integration.** +- **Building a task management system** +- **How to perform data collection and upload operations on the robot visualization interface.** + +## Prerequisites + +1. **Device Registration** + Refer to the official link: [Login to coScene](../get-started/1-quick-start.md), complete the **Login to coScene** section + Refer to the official link: [Device Registration](../device/2-create-device.md) + + - Installation command (**The following code is for reference only. Please make sure to copy the installation command from your organization before adding.**): + ```bash + /bin/bash -c "$(curl -fsSL https://download.coscene.cn/coscout/v2/install.sh)" -s --mod="default" --org_slug="codemo" --server_url="https://openapi.coscene.cn" --coLink_endpoint="https://coordinator.coscene.cn/api" --coLink_network="fb899ea7-d71b-4cec-b531-0a5fb0015c61" --sn_file="/foo/bar/sn.txt" --sn_field="sn" --remove_config --beta + ``` + - sn_file: Represents the storage path of the machine's serial number file, which needs to be manually configured and the file must exist. sn_field: Represents the field that indicates the machine serial number in the above file. For example, if my robot's serial number file path is /root/robot/sn.txt, and the content in sn.txt is sn:123456, then I need to configure: --sn_file="/root/robot/sn.txt" --sn_field="sn" + +2. **Install coBridge** + + - Download the deb package: [coBridge](https://github.com/coscene-io/cobridge/actions/runs/15103306677?pr=25) Choose the corresponding deb installation package according to the robot's computing platform (**Note: VPN access required to enter GitHub for download**) + - Installation command: + ```bash + sudo dpkg -i ros-humble-cobridge_1.0.7-0focal_arm64.deb # Use the actual downloaded deb file. + ``` + - You can also refer to [Installing coScene Edge Software Using APT Repository](../client/2-apt-source-install.md) + +3. **Device Admission** + + After logging into the platform, you can see the "**Go to Organization Management**" button on the homepage. Refer to the documentation for [Device Admission](../device/3-manage-device.md#enable-device) + +4. **Create Project** + + After logging into the platform, you can see the "**New Project**" button on the homepage. Refer to the documentation for [Create New Project](../collaboration/project-collaboration/1-project.md) + +5. **Add Collection Device to Project** + + After completing the above actions, we need to associate the robot with our project. Refer to the documentation for [Create New Project](../collaboration/project-collaboration/1-project.md) + +--- + +## Prepare and Start ROS Node + +- The robot needs to have a **data recording node** that can provide **services**, and provide services such as **start recording** (e.g., /start_record), **cancel recording** (e.g., /cancel_record), **stop recording** (e.g., /stop_record) for coScene to call. + -- **Note**: Currently only **service** type messages are supported. +- Before starting coBridge, you need to source the workspace environment variables of the **data recording node**. +- Example startup script (please modify according to actual situation): + ```bash + #!/bin/bash + set -e + source ~/cos_ws/devel/setup.bash # Please modify according to actual situation + roslaunch cobridge cobridge.launch & + sleep 3 + roslaunch record_ctrl record.launch & # Please modify according to actual situation, this actually starts your recording node + sleep 3 + ``` + +--- + +## Configure Visualization Layout + +After entering the real-time visualization page, there is no layout by default, and you need to add visualization panels to the page according to your different collection requirements. +If you want to get started quickly, you can also contact coScene to provide official example configuration files and import them as follows. +![05-data-collect-01](./img/05-data-collect-01.png) + +1. Enter the real-time visualization page (refer to [Real-time Visualization](../device/5-device-remote-control.md) for method), click [Create New Layout]. + ![05-data-collect-02](./img/05-data-collect-02.png) + +2. Select [Data Collection] panel and other required panels (such as 3D, Raw Messages). + ![05-data-collect-03](./img/05-data-collect-03.png) + ![05-data-collect-04](./img/05-data-collect-04.png) + +3. Drag the panel title bar to adjust the layout, drag the divider to adjust the size. + ![05-data-collect-05](./img/05-data-collect-05.png) + ![05-data-collect-06](./img/05-data-collect-06.png) + After the above adjustments, you can get a preliminary visualization layout. + +### Configure 3D Panel: + +- Click [Settings] in the upper right corner, custom layers can set URDF. + ![05-data-collect-07](./img/05-data-collect-07.png) + ![05-data-collect-08](./img/05-data-collect-08.png) + +### Configure Raw Messages Panel: + +- Select the messages of interest at the top, can split/add new panels. + ![05-data-collect-09](./img/05-data-collect-09.png) + ![05-data-collect-10](./img/05-data-collect-10.png) + ![05-data-collect-11](./img/05-data-collect-11.png) + ![05-data-collect-12](./img/05-data-collect-12.png) + +### Configure Data Collection Panel: + +- After selecting the data collection panel, set the data save project, record tags, service names (such as /start_record, /cancel_record, /stop_record). + ![05-data-collect-13](./img/05-data-collect-13.png) + ![05-data-collect-15](./img/05-data-collect-15.png) +- **Service names must be based on the service names provided by the data recording node running on the robot!** + +### Layout Management + +After configuration, you can save, rename, and share with the team. It is recommended to set the configured layout as the **project default layout**. +![05-data-collect-16](./img/05-data-collect-16.png) +![05-data-collect-17](./img/05-data-collect-17.png) + +--- + +## Task Configuration and Management + +We need to configure different task management systems according to different business requirements to support our business needs. coScene provides flexible and configurable field, trigger, and action management capabilities for different application scenarios. +![05-data-collect-24](./img/05-data-collect-24.png) + +### Configure Custom Fields for Task System + +In our task management system, we need to configure different fields for different tasks to meet our business requirements. +Taking collection tasks as an example, we need to configure the following fields: + +- Collector +- Task Type +- Task Status +- Collected Skill Name +- Task Deadline +- Collection Quantity +- etc + +After logging into the platform, you can see the "**Go to Organization Management**" button on the homepage. Click to enter organization management, go to the **Settings** interface, and select **Custom Fields** in the left navigation bar. Configure each field on the page and set whether it is required. +![05-data-collect-23](./img/05-data-collect-23.png) + +This page can also configure custom device-related fields to support devices associated in our task management system and configure some specific filtering fields. + +After completing the configuration of organization-wide fields, enter Project Settings - Advanced page, edit project field configuration, and select the fields that records, tasks, and moments need to use. + +![05-project-fields_1](./img/05-project-fields_1.png) + +![05-project-fields_2](./img/05-project-fields_2.png) + +After adding, you can use these fields on the corresponding pages. + +### Configure Automated Flow Triggers for Task System + +Triggers define the trigger conditions for actions. When the trigger timing is met, the trigger will check according to the configuration and execute the corresponding actions. + +In our data collection scenario, we usually need to trigger task flow based on changes in task status. +Taking a typical heterogeneous data collection task as an example, we need to configure the following triggers: + +- When the collector changes the task status to "Complete", automatically call the action to create an annotation task. + Refer to the figure below: + +![05-data-collect-25](./img/05-data-collect-25.png) + +![05-trigger-assignee](./img/05-trigger-assignee.png) + +For trigger configuration details, please refer to [Automation - Triggers](../workflow/3-trigger.md) + +### Configure Automated Actions for Task System + +As we configured automated flow triggers in the previous step, when the collector changes the task status to "Complete", it will automatically call the action to create an annotation task. + +coScene provides some automated actions suitable for data factories: **Create General Task**, to support our data factory business needs. We also support custom automated actions to support workflows that are more suitable for you. +Please refer to the documentation: [Automation - Actions](/docs/category/action) + +**coScene will launch task configuration import/export functionality in the future, along with richer official task system templates. Stay tuned!** + +## Data Collection, Annotation, and Review Operation Guide + +### Data Collection + +- After the administrator logs into the platform, enter the corresponding project and complete the following work: + + - Task configuration and management + - Associate devices and members to the project, refer to documentation: [Project Devices/Members](../collaboration/project-collaboration/1-project.md) + - Click **Tasks** in the left navigation bar and create a **General Task**. (**Note! Please create general tasks in this application scenario, as collection tasks and annotation tasks cannot meet actual requirements.**) + ![05-data-collect-26](./img/05-data-collect-26.png) + +- After the collector logs into the platform, they can view pending collection tasks in **Homepage** ➡️ **My Tasks** ➡️ **Assigned to Me**. Click on this task to enter the task details page. + ![05-data-collect-29](./img/05-data-collect-28.png) + Enter the details page, click **Associated Device**, select the collection device, click **Real-time Visualization** to enter the visualization page, where you can see our configured collection layout. + ![05-data-collect-29](./img/05-data-collect-29.png) + +- Click [Start Collection], log prompt "Start collection successful" means the device starts recording. (**Specific log content depends on the feedback provided by the service!**) + ![05-data-collect-18](./img/05-data-collect-18.png) + +- The collector operates the robot to complete the target task. + +- After the task is completed, click [End Collection], log prompt "End collection successful" and automatically upload data. (**Specific log content depends on the feedback provided by the service!**) + ![05-data-collect-18](./img/05-data-collect-18.png) + + - coScene provides data upload log prompts here: Log shows "End collection successful" --- "Start upload" --- "File uploading X / N" --- "File upload complete" to complete data collection. In the collection log, you can view record links and upload file progress. + ![05-data-collect-19](./img/05-data-collect-19.png) + +- If there's a misoperation, you can click [Cancel Collection] to discard the data. + ![05-data-collect-19](./img/05-data-collect-20.png) + +- Collection records and data can be viewed in the project. + ![05-data-collect-21](./img/05-data-collect-21.png) + + ![05-data-collect-22](./img/05-data-collect-22.png) + +- After completing collection, the collector adds associated records in the task (filter out the collected records based on device name and creation time) + + ![05-task-link-record](./img/05-task-link-record.png) + +--- + +### Data Annotation + +After the annotator logs into the platform, they can view pending annotation tasks in **Homepage** ➡️ **My Tasks** ➡️ **Assigned to Me**. +![05-data-collect-27](./img/05-data-collect-27.png) + +Click on the task to view the data records to be annotated, click on the record to enter the details page, click **Play Record** to start annotating the data. +![05-data-collect-30](./img/05-data-collect-30.png) + +![05-data-collect-31](./img/05-data-collect-31.png) + +After the annotator completes the annotation work, mark the annotation task as "Complete" to finish the annotation task. According to the automated flow trigger set by the administrator, the system will automatically create a review task and assign it to the reviewer, and the system enters the next stage. + +### Data Review + +After the reviewer logs into the platform, they can view pending review tasks in **Homepage** ➡️ **My Tasks** ➡️ **Assigned to Me**. +![05-data-collect-32](./img/05-data-collect-32.png) + +Click on the task to view the data records to be reviewed, click on the record to enter the details page, click **Play Record** to start reviewing the data. +![05-data-collect-33](./img/05-data-collect-33.png) +![05-data-collect-34](./img/05-data-collect-34.png) + +After the reviewer completes the review work, mark the review task as "Complete" to finish the review task. + +If the reviewer finds errors in data collection or annotation, they can mark it as **Review Failed** and fill in the reason in the comments. According to the automated flow trigger set by the administrator, the system will automatically create a re-annotation task or collection task and assign it to the annotator or collector, and the system enters the next stage. + +## Data Application + +When we need to use reviewed and approved data, we can view the data in the **Project**, filter the data through **Tags** and **Custom Fields**, select records and click **Download** to download the data (please use [coCLI](/docs/category/cocli) to download data larger than 2G), or share it with other team members. + +![05-data-collect-35](./img/05-data-collect-35.png) + +## Frequently Asked Questions + +- **Q: Can the service in the data collection panel be customized?** + A: Yes, the platform provides templates and users can customize them. + +- **Q: What other panels support real-time visualization?** + A: All panels support it, as long as the robot sends corresponding messages. + +- **Q: What other collection methods are available?** + A: The platform supports time range collection, automatic discovery collection, etc. For details, see [related documentation](/docs/category/use-case). + +--- + +The above is the complete process for heterogeneous robot data collection factory integration with the coScene platform. If you have any questions, please feel free to contact us. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/2-get-started.md b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/2-get-started.md index 2029e9d30..371ba6c44 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/2-get-started.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/2-get-started.md @@ -56,7 +56,7 @@ Using the following scenario as an example, let's setup your automatic data coll ## Configure Data Collection Device Information -1. Go to the "Devices" tab on the organization management page, and click the "Edit Data Collection Rules" button. +1. Go to the "Devices" tab on the organization management page, and click the "Device Configuration" button. ![org-device-1](./img/device-config_1.png) @@ -113,7 +113,7 @@ Using the following scenario as an example, let's setup your automatic data coll 5. Run the script, and checkout the system logs ``` - journalctl -fu cos + tail -f ~/.local/state/cos/logs/cos.log ``` - when you see the following logs, the installation is completed and wait to be permitted by the admins diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/4-manage-rule-group.md b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/4-manage-rule-group.md index efed22b14..c5cf7df9c 100644 --- a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/4-manage-rule-group.md +++ b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/4-manage-rule-group.md @@ -15,15 +15,15 @@ An enabled rule group will be shown in blue in the rule group status list, while To enable/disable a rule group: -- Go to the "Manage Project - Data Collection and Diagnostic Rules" page, select the rule group, and toggle the corresponding **[Status]** button. +- Go to the "Data Collection and Diagnostic Rules" page, select the rule group, and toggle the corresponding **[Status]** button. -![pro-rule-manage-enable](./img/pro-rule-manage-enable.png) +![pro-rule-manage-enable](./img/9-4-enable-rule-set.png) ## Edit The operations to enter the edit rule group page are shown below, for specific operations to edit the rules in the rule group, please refer to [Rules](./3-add-rule.md#rule-group). -- Go to the "Manage Project - Data Collection and Diagnostic Rules" page, select the rule group to be edited, and click the name of the rule group (Example in image: `Demo Rule Group 2`). +- Go to the "Data Collection and Diagnostic Rules" page, select the rule group to be edited, and click the name of the rule group (Example in image: `Demo Rule Group 2`). ![pro-rule-manage-edit](./img/pro-rule-manage-edit.png) @@ -35,8 +35,7 @@ If the rules within a rule group are no longer needed, the rule group can be del Here are the steps to delete a rule group: -- Go to the "Manage Project - Data Collection and Diagnostic Rules" page, select the rule group to be deleted, click the corresponding `...` button on the right, and choose **[Delete]**. +- Go to the "Data Collection and Diagnostic Rules" page, select the rule to be deleted, click the corresponding `...` button on the right, and choose **[Delete]**. - In the popup, select **[OK]**. -![pro-rule-manage-delete](./img/pro-rule-manage-delete.png) -![pro-rule-manage-delete-2](./img/pro-rule-manage-delete-2.png) +![pro-rule-manage-delete](./img/9-4-pro-rule-manage-delete.png) diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-click-rule-set.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-click-rule-set.png index 6e803f0d3..10402df74 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-click-rule-set.png and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-click-rule-set.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-disable-rule-set-confirm.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-disable-rule-set-confirm.png index f0ad7b660..f36fcd86b 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-disable-rule-set-confirm.png and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-disable-rule-set-confirm.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-enable-rule-set.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-enable-rule-set.png index 6f73b04c7..eb5260b47 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-enable-rule-set.png and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-enable-rule-set.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete-2.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete-2.png deleted file mode 100644 index cc684ba08..000000000 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete-2.png and /dev/null differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete.png index 510b129b0..6448a82bb 100644 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete.png and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/9-4-pro-rule-manage-delete.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/pro-rule-manage-delete-2.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/pro-rule-manage-delete-2.png deleted file mode 100644 index c855f6525..000000000 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/pro-rule-manage-delete-2.png and /dev/null differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/pro-rule-manage-delete.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/pro-rule-manage-delete.png deleted file mode 100644 index 657942a4a..000000000 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/pro-rule-manage-delete.png and /dev/null differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/pro-rule-manage-enable.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/pro-rule-manage-enable.png deleted file mode 100644 index f7e460299..000000000 Binary files a/i18n/en/docusaurus-plugin-content-docs/current/use-case/data-diagnosis/img/pro-rule-manage-enable.png and /dev/null differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-01.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-01.png new file mode 100644 index 000000000..1f6f0d1f7 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-01.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-02.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-02.png new file mode 100644 index 000000000..1b70b851e Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-02.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-03.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-03.png new file mode 100644 index 000000000..cf77af1be Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-03.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-04.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-04.png new file mode 100644 index 000000000..f58e6fdb5 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-04.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-05.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-05.png new file mode 100644 index 000000000..3b95744ce Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-05.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-06.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-06.png new file mode 100644 index 000000000..7d55b7b05 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-06.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-07.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-07.png new file mode 100644 index 000000000..ed97c96e8 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-07.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-08.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-08.png new file mode 100644 index 000000000..2e63187e8 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-08.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-09.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-09.png new file mode 100644 index 000000000..83c72bc25 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-09.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-10.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-10.png new file mode 100644 index 000000000..6bea0a002 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-10.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-11.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-11.png new file mode 100644 index 000000000..b9bb5f06a Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-11.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-12.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-12.png new file mode 100644 index 000000000..e3e33974e Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-12.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-13.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-13.png new file mode 100644 index 000000000..cb788a8a5 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-13.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-14.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-14.png new file mode 100644 index 000000000..4eb94d95a Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-14.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-15.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-15.png new file mode 100644 index 000000000..82d086463 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-15.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-16.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-16.png new file mode 100644 index 000000000..be1d7fb79 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-16.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-17.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-17.png new file mode 100644 index 000000000..0002ba1f5 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-17.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-18.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-18.png new file mode 100644 index 000000000..92a72b28c Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-18.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-19.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-19.png new file mode 100644 index 000000000..2e4df129b Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-19.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-20.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-20.png new file mode 100644 index 000000000..35e75c2ee Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-20.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-21.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-21.png new file mode 100644 index 000000000..94c334566 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-21.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-22.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-22.png new file mode 100644 index 000000000..649ddd340 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-22.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-23.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-23.png new file mode 100644 index 000000000..5715873be Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-23.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-24.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-24.png new file mode 100644 index 000000000..7e0b5e658 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-24.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-25.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-25.png new file mode 100644 index 000000000..b875daf3d Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-25.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-26.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-26.png new file mode 100644 index 000000000..36d2fa678 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-26.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-27.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-27.png new file mode 100644 index 000000000..0eb09bbf6 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-27.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-28.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-28.png new file mode 100644 index 000000000..a67cadcd5 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-28.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-29.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-29.png new file mode 100644 index 000000000..f337ea10c Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-29.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-30.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-30.png new file mode 100644 index 000000000..11470c77c Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-30.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-31.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-31.png new file mode 100644 index 000000000..44227ff38 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-31.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-32.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-32.png new file mode 100644 index 000000000..e34e5d3dc Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-32.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-33.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-33.png new file mode 100644 index 000000000..0cc32278a Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-33.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-34.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-34.png new file mode 100644 index 000000000..8817fe304 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-34.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-35.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-35.png new file mode 100644 index 000000000..b7755f434 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-data-collect-35.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-project-fields_1.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-project-fields_1.png new file mode 100644 index 000000000..85113ad9c Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-project-fields_1.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-project-fields_2.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-project-fields_2.png new file mode 100644 index 000000000..85b9b0c02 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-project-fields_2.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-task-link-record.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-task-link-record.png new file mode 100644 index 000000000..4b1997b9b Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-task-link-record.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-trigger-assignee.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-trigger-assignee.png new file mode 100644 index 000000000..5949abe10 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/05-trigger-assignee.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-1.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-1.png new file mode 100644 index 000000000..237a9dc60 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-1.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-10.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-10.png new file mode 100644 index 000000000..5aa6aa25a Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-10.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-11.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-11.png new file mode 100644 index 000000000..8aa9d3dc2 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-11.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-12.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-12.png new file mode 100644 index 000000000..d542f4bb4 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-12.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-13.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-13.png new file mode 100644 index 000000000..e2510b75b Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-13.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-14.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-14.png new file mode 100644 index 000000000..cfea2d7a9 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-14.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-15.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-15.png new file mode 100644 index 000000000..21583cb81 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-15.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-16.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-16.png new file mode 100644 index 000000000..1899e6c16 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-16.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-17.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-17.png new file mode 100644 index 000000000..fa10bf436 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-17.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-18.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-18.png new file mode 100644 index 000000000..2d33cb3c4 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-18.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-19.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-19.png new file mode 100644 index 000000000..9c294971a Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-19.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-2.PNG b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-2.PNG new file mode 100644 index 000000000..cf265fe5d Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-2.PNG differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-20.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-20.png new file mode 100644 index 000000000..34b3faefb Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-20.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-21.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-21.png new file mode 100644 index 000000000..2ece08bee Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-21.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-22.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-22.png new file mode 100644 index 000000000..c1ca9a44c Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-22.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-23.gif b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-23.gif new file mode 100644 index 000000000..7161a785c Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-23.gif differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-24.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-24.png new file mode 100644 index 000000000..dfc92d798 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-24.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-25.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-25.png new file mode 100644 index 000000000..8438f75d7 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-25.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-3.PNG b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-3.PNG new file mode 100644 index 000000000..0f8bf476c Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-3.PNG differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-4.PNG b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-4.PNG new file mode 100644 index 000000000..261e4e8d4 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-4.PNG differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-5.PNG b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-5.PNG new file mode 100644 index 000000000..23990a1a1 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-5.PNG differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-6.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-6.png new file mode 100644 index 000000000..1fe7bcdd8 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-6.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-7.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-7.png new file mode 100644 index 000000000..07c86eaad Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-7.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-8.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-8.png new file mode 100644 index 000000000..28d211646 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-8.png differ diff --git a/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-9.png b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-9.png new file mode 100644 index 000000000..2d33cb3c4 Binary files /dev/null and b/i18n/en/docusaurus-plugin-content-docs/current/use-case/img/4-online-simulation-test-9.png differ diff --git a/i18n/en/docusaurus-plugin-content-pages/changelog.md b/i18n/en/docusaurus-plugin-content-pages/changelog.md index cc69920a0..fc80a5482 100644 --- a/i18n/en/docusaurus-plugin-content-pages/changelog.md +++ b/i18n/en/docusaurus-plugin-content-pages/changelog.md @@ -5,6 +5,102 @@ id: changelog # Release History +## [25.24.0] - 2025-06-13 + +### [Added] + +- Added "LAN Real-time Visualization" feature: + - coStudio automatically detects LAN connections and uses local network for data transfer to reduce visualization latency (requires devices and clients on same LAN) +- Added "Project Common Resources Management": + - Upload configuration files (URDF/TF/maps) in Project Common Resources page + - Directly reference URDF models from Common Resources in 3D visualization panel +- Added "Multi-select Field Type": + - Support configuring multi-select type when defining global custom fields in Organization Settings +- Added "Task Dependency Visualization": + - View tasks that reference current task in Task Details page + +### [Improved] + +- Enhanced "Custom Field Filtering": + - Added support for filtering by numeric/multi-select/time/personnel field types +- Upgraded "Data Collection Panel": + - Added auto-scrolling for collection logs + +--- + +## [25.22.0] - 2025-5-30 + +### [Added] + +- Added automation trigger mechanism: + - New trigger conditions: When record changes/When general task changes + - Support automatic creation of general tasks through triggers +- Added HDF5 and MCAP format conversion actions: Can invoke system actions to convert HDF5 to MCAP, or MCAP to HDF5 +- Added automation action template variables + - In automation actions, support using device ID, device name, and task creation time as variables for HTTP request steps, namely: `{{device.id}}`, `{{device.display_name}}`, `{{task.create_time}}` +- Added real-time data collection feature: Added "Data Collection" panel in visualization page, supporting real-time data collection +- Added user roles: + - Added organization-level "External Member" role (limited to accessing joined projects only) + - Added project-level roles: Collector, Annotator, Auditor +- Added "Testing Audit" feature: + - In Organization Management-Audit page, support filtering testing audit events: download test bundle, download artifacts, download test output events + +### [Improved] + +- Enhanced field management functionality: + - Support configuring global custom fields in organization settings, applicable to devices, records, tasks, and moment scenes +- Enhanced task management functionality: + - Support quick task creation in general tasks page + - Support linking devices with tasks in task management +- Optimized device registration process: In project devices page, can directly copy commands to register devices and add them to projects + +### [Fixed] + +- Fixed the issue where example project creation was not logging audit records +- Fixed the overlapping display issue when previewing long text logs + +--- + +## [25.18.0] - 2025-4-28 + +### [Added] + +- Added visualization plugin, supporting customized panels in the visualization interface. See [Visualization Extensions](/docs/viz/extensions/introduction) +- Added playback support for files in subfolders within batch test outputs + +### [Improved] + +- Enhanced file preview functionality, supporting up/down/left/right image movement +- Improved personal token validity period settings, supporting 1-day and 360-day options +- Enhanced coCLI functionality, supporting download of moment files from records + +### [Fixed] + +- Fixed the issue where .active files in batch test outputs couldn't be played +- Fixed the issue where files generated from bag file map extraction and static coordinate extraction lacked file formats +- Fixed the issue where personal user organization switching cookies expired in 1 day, changed to 30 days + +--- + +## [25.15.0] - 2025-4-10 + +### [Added] + +- Added multi-tier subscription plans: supporting Free, Starter, Team, Enterprise, and other [subscription plans](https://www.coscene.io/pricing) +- Added public project copying feature: allowing logged-in users to copy public projects to their organizations + +### [Improved] + +- Optimized device access process, merged operations into: + - Enable client: simultaneously enable data collection and remote access + - Disable client: simultaneously disable data collection and remote access + +### [Fixed] + +- Fixed compatibility issues when reading device ID from files during device registration (now supporting pure numeric format) + +--- + ## [25.12.0] - 2025-3-19 ### [Added] diff --git a/package.json b/package.json index f0d2e3187..31bc554d4 100644 --- a/package.json +++ b/package.json @@ -15,26 +15,27 @@ "format:write": "prettier --write --loglevel warn \"./**/*.{js,jsx,ts,tsx,css,md,json}\" " }, "dependencies": { - "@docusaurus/core": "^3.7.0", - "@docusaurus/preset-classic": "^3.7.0", - "@docusaurus/theme-common": "^3.7.0", - "@docusaurus/theme-mermaid": "^3.7.0", + "@docusaurus/core": "^3.8.1", + "@docusaurus/preset-classic": "^3.8.1", + "@docusaurus/theme-common": "^3.8.1", + "@docusaurus/theme-mermaid": "^3.8.1", "@mdx-js/react": "^3.1.0", "autoprefixer": "^10.4.21", - "postcss": "^8.5.3", + "postcss": "^8.5.4", "prism-react-renderer": "^2.4.1", "react": "^19.0.0", "react-dom": "^19.0.0", "tailwindcss": "^3.4.17" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^3.7.0", - "@docusaurus/tsconfig": "^3.7.0", - "@docusaurus/types": "^3.7.0", + "@docusaurus/faster": "^3.8.1", + "@docusaurus/module-type-aliases": "^3.8.1", + "@docusaurus/tsconfig": "^3.8.1", + "@docusaurus/types": "^3.8.1", "@tsconfig/docusaurus": "^2.0.3", "@types/react": "^19.0.12", "prettier": "^3.5.3", - "typescript": "^5.8.2" + "typescript": "^5.8.3" }, "browserslist": { "production": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2f47cffe6..d11d083fa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,26 +9,26 @@ importers: .: dependencies: '@docusaurus/core': - specifier: ^3.7.0 - version: 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + specifier: ^3.8.1 + version: 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) '@docusaurus/preset-classic': - specifier: ^3.7.0 - version: 3.7.0(@algolia/client-search@5.21.0)(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)(typescript@5.8.2) + specifier: ^3.8.1 + version: 3.8.1(@algolia/client-search@5.21.0)(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)(typescript@5.8.3) '@docusaurus/theme-common': - specifier: ^3.7.0 - version: 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^3.8.1 + version: 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@docusaurus/theme-mermaid': - specifier: ^3.7.0 - version: 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) + specifier: ^3.8.1 + version: 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) '@mdx-js/react': specifier: ^3.1.0 version: 3.1.0(@types/react@19.0.12)(react@19.0.0) autoprefixer: specifier: ^10.4.21 - version: 10.4.21(postcss@8.5.3) + version: 10.4.21(postcss@8.5.4) postcss: - specifier: ^8.5.3 - version: 8.5.3 + specifier: ^8.5.4 + version: 8.5.4 prism-react-renderer: specifier: ^2.4.1 version: 2.4.1(react@19.0.0) @@ -42,15 +42,18 @@ importers: specifier: ^3.4.17 version: 3.4.17 devDependencies: + '@docusaurus/faster': + specifier: ^3.8.1 + version: 3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) '@docusaurus/module-type-aliases': - specifier: ^3.7.0 - version: 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^3.8.1 + version: 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@docusaurus/tsconfig': - specifier: ^3.7.0 - version: 3.7.0 + specifier: ^3.8.1 + version: 3.8.1 '@docusaurus/types': - specifier: ^3.7.0 - version: 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^3.8.1 + version: 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@tsconfig/docusaurus': specifier: ^2.0.3 version: 2.0.3 @@ -61,8 +64,8 @@ importers: specifier: ^3.5.3 version: 3.5.3 typescript: - specifier: ^5.8.2 - version: 5.8.2 + specifier: ^5.8.3 + version: 5.8.3 packages: @@ -737,47 +740,47 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@csstools/cascade-layer-name-parser@2.0.4': - resolution: {integrity: sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==} + '@csstools/cascade-layer-name-parser@2.0.5': + resolution: {integrity: sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 '@csstools/color-helpers@5.0.2': resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} engines: {node: '>=18'} - '@csstools/css-calc@2.1.2': - resolution: {integrity: sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==} + '@csstools/css-calc@2.1.4': + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-color-parser@3.0.8': - resolution: {integrity: sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==} + '@csstools/css-color-parser@3.0.10': + resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-parser-algorithms@3.0.4': - resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-tokenizer': ^3.0.4 - '@csstools/css-tokenizer@3.0.3': - resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} - '@csstools/media-query-list-parser@4.0.2': - resolution: {integrity: sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==} + '@csstools/media-query-list-parser@4.0.3': + resolution: {integrity: sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==} engines: {node: '>=18'} peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.4 - '@csstools/css-tokenizer': ^3.0.3 + '@csstools/css-parser-algorithms': ^3.0.5 + '@csstools/css-tokenizer': ^3.0.4 '@csstools/postcss-cascade-layers@5.0.1': resolution: {integrity: sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==} @@ -785,26 +788,32 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-function@4.0.8': - resolution: {integrity: sha512-9dUvP2qpZI6PlGQ/sob+95B3u5u7nkYt9yhZFCC7G9HBRHBxj+QxS/wUlwaMGYW0waf+NIierI8aoDTssEdRYw==} + '@csstools/postcss-color-function@4.0.10': + resolution: {integrity: sha512-4dY0NBu7NVIpzxZRgh/Q/0GPSz/jLSw0i/u3LTUor0BkQcz/fNhN10mSWBDsL0p9nDb0Ky1PD6/dcGbhACuFTQ==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + + '@csstools/postcss-color-mix-function@3.0.10': + resolution: {integrity: sha512-P0lIbQW9I4ShE7uBgZRib/lMTf9XMjJkFl/d6w4EMNHu2qvQ6zljJGEcBkw/NsBtq/6q3WrmgxSS8kHtPMkK4Q==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-color-mix-function@3.0.8': - resolution: {integrity: sha512-yuZpgWUzqZWQhEqfvtJufhl28DgO9sBwSbXbf/59gejNuvZcoUTRGQZhzhwF4ccqb53YAGB+u92z9+eSKoB4YA==} + '@csstools/postcss-color-mix-variadic-function-arguments@1.0.0': + resolution: {integrity: sha512-Z5WhouTyD74dPFPrVE7KydgNS9VvnjB8qcdes9ARpCOItb4jTnm7cHp4FhxCRUoyhabD0WVv43wbkJ4p8hLAlQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-content-alt-text@2.0.4': - resolution: {integrity: sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==} + '@csstools/postcss-content-alt-text@2.0.6': + resolution: {integrity: sha512-eRjLbOjblXq+byyaedQRSrAejKGNAFued+LcbzT+LCL78fabxHkxYjBbxkroONxHHYu2qxhFK2dBStTLPG3jpQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-exponential-functions@2.0.7': - resolution: {integrity: sha512-XTb6Mw0v2qXtQYRW9d9duAjDnoTbBpsngD7sRNLmYDjvwU2ebpIHplyxgOeo6jp/Kr52gkLi5VaK5RDCqzMzZQ==} + '@csstools/postcss-exponential-functions@2.0.9': + resolution: {integrity: sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -815,26 +824,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-gamut-mapping@2.0.8': - resolution: {integrity: sha512-/K8u9ZyGMGPjmwCSIjgaOLKfic2RIGdFHHes84XW5LnmrvdhOTVxo255NppHi3ROEvoHPW7MplMJgjZK5Q+TxA==} + '@csstools/postcss-gamut-mapping@2.0.10': + resolution: {integrity: sha512-QDGqhJlvFnDlaPAfCYPsnwVA6ze+8hhrwevYWlnUeSjkkZfBpcCO42SaUD8jiLlq7niouyLgvup5lh+f1qessg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-gradients-interpolation-method@5.0.8': - resolution: {integrity: sha512-CoHQ/0UXrvxLovu0ZeW6c3/20hjJ/QRg6lyXm3dZLY/JgvRU6bdbQZF/Du30A4TvowfcgvIHQmP1bNXUxgDrAw==} + '@csstools/postcss-gradients-interpolation-method@5.0.10': + resolution: {integrity: sha512-HHPauB2k7Oits02tKFUeVFEU2ox/H3OQVrP3fSOKDxvloOikSal+3dzlyTZmYsb9FlY9p5EUpBtz0//XBmy+aw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-hwb-function@4.0.8': - resolution: {integrity: sha512-LpFKjX6hblpeqyych1cKmk+3FJZ19QmaJtqincySoMkbkG/w2tfbnO5oE6mlnCTXcGUJ0rCEuRHvTqKK0nHYUQ==} + '@csstools/postcss-hwb-function@4.0.10': + resolution: {integrity: sha512-nOKKfp14SWcdEQ++S9/4TgRKchooLZL0TUFdun3nI4KPwCjETmhjta1QT4ICQcGVWQTvrsgMM/aLB5We+kMHhQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-ic-unit@4.0.0': - resolution: {integrity: sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==} + '@csstools/postcss-ic-unit@4.0.2': + resolution: {integrity: sha512-lrK2jjyZwh7DbxaNnIUjkeDmU8Y6KyzRBk91ZkI5h8nb1ykEfZrtIVArdIjX4DHMIBGpdHrgP0n4qXDr7OHaKA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -845,14 +854,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-is-pseudo-class@5.0.1': - resolution: {integrity: sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==} + '@csstools/postcss-is-pseudo-class@5.0.3': + resolution: {integrity: sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-light-dark-function@2.0.7': - resolution: {integrity: sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==} + '@csstools/postcss-light-dark-function@2.0.9': + resolution: {integrity: sha512-1tCZH5bla0EAkFAI2r0H33CDnIBeLUaJh1p+hvvsylJ4svsv2wOmJjJn+OXwUZLXef37GYbRIVKX+X+g6m+3CQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -881,20 +890,20 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-logical-viewport-units@3.0.3': - resolution: {integrity: sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==} + '@csstools/postcss-logical-viewport-units@3.0.4': + resolution: {integrity: sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-minmax@2.0.7': - resolution: {integrity: sha512-LB6tIP7iBZb5CYv8iRenfBZmbaG3DWNEziOnPjGoQX5P94FBPvvTBy68b/d9NnS5PELKwFmmOYsAEIgEhDPCHA==} + '@csstools/postcss-media-minmax@2.0.9': + resolution: {integrity: sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4': - resolution: {integrity: sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==} + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5': + resolution: {integrity: sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -911,26 +920,26 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-oklab-function@4.0.8': - resolution: {integrity: sha512-+5aPsNWgxohXoYNS1f+Ys0x3Qnfehgygv3qrPyv+Y25G0yX54/WlVB+IXprqBLOXHM1gsVF+QQSjlArhygna0Q==} + '@csstools/postcss-oklab-function@4.0.10': + resolution: {integrity: sha512-ZzZUTDd0fgNdhv8UUjGCtObPD8LYxMH+MJsW9xlZaWTV8Ppr4PtxlHYNMmF4vVWGl0T6f8tyWAKjoI6vePSgAg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-progressive-custom-properties@4.0.0': - resolution: {integrity: sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==} + '@csstools/postcss-progressive-custom-properties@4.1.0': + resolution: {integrity: sha512-YrkI9dx8U4R8Sz2EJaoeD9fI7s7kmeEBfmO+UURNeL6lQI7VxF6sBE+rSqdCBn4onwqmxFdBU3lTwyYb/lCmxA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-random-function@1.0.3': - resolution: {integrity: sha512-dbNeEEPHxAwfQJ3duRL5IPpuD77QAHtRl4bAHRs0vOVhVbHrsL7mHnwe0irYjbs9kYwhAHZBQTLBgmvufPuRkA==} + '@csstools/postcss-random-function@2.0.1': + resolution: {integrity: sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-relative-color-syntax@3.0.8': - resolution: {integrity: sha512-eGE31oLnJDoUysDdjS9MLxNZdtqqSxjDXMdISpLh80QMaYrKs7VINpid34tWQ+iU23Wg5x76qAzf1Q/SLLbZVg==} + '@csstools/postcss-relative-color-syntax@3.0.10': + resolution: {integrity: sha512-8+0kQbQGg9yYG8hv0dtEpOMLwB9M+P7PhacgIzVzJpixxV4Eq9AUQtQw8adMmAJU1RBBmIlpmtmm3XTRd/T00g==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -941,14 +950,14 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-sign-functions@1.1.2': - resolution: {integrity: sha512-4EcAvXTUPh7n6UoZZkCzgtCf/wPzMlTNuddcKg7HG8ozfQkUcHsJ2faQKeLmjyKdYPyOUn4YA7yDPf8K/jfIxw==} + '@csstools/postcss-sign-functions@1.1.4': + resolution: {integrity: sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - '@csstools/postcss-stepped-value-functions@4.0.7': - resolution: {integrity: sha512-rdrRCKRnWtj5FyRin0u/gLla7CIvZRw/zMGI1fVJP0Sg/m1WGicjPVHRANL++3HQtsiXKAbPrcPr+VkyGck0IA==} + '@csstools/postcss-stepped-value-functions@4.0.9': + resolution: {integrity: sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -959,8 +968,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/postcss-trigonometric-functions@4.0.7': - resolution: {integrity: sha512-qTrZgLju3AV7Djhzuh2Bq/wjFqbcypnk0FhHjxW8DWJQcZLS1HecIus4X2/RLch1ukX7b+YYCdqbEnpIQO5ccg==} + '@csstools/postcss-trigonometric-functions@4.0.9': + resolution: {integrity: sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -971,8 +980,8 @@ packages: peerDependencies: postcss: ^8.4 - '@csstools/selector-resolve-nested@3.0.0': - resolution: {integrity: sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==} + '@csstools/selector-resolve-nested@3.1.0': + resolution: {integrity: sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==} engines: {node: '>=18'} peerDependencies: postcss-selector-parser: ^7.0.0 @@ -1013,12 +1022,12 @@ packages: search-insights: optional: true - '@docusaurus/babel@3.7.0': - resolution: {integrity: sha512-0H5uoJLm14S/oKV3Keihxvh8RV+vrid+6Gv+2qhuzbqHanawga8tYnsdpjEyt36ucJjqlby2/Md2ObWjA02UXQ==} + '@docusaurus/babel@3.8.1': + resolution: {integrity: sha512-3brkJrml8vUbn9aeoZUlJfsI/GqyFcDgQJwQkmBtclJgWDEQBKKeagZfOgx0WfUQhagL1sQLNW0iBdxnI863Uw==} engines: {node: '>=18.0'} - '@docusaurus/bundler@3.7.0': - resolution: {integrity: sha512-CUUT9VlSGukrCU5ctZucykvgCISivct+cby28wJwCC/fkQFgAHRp/GKv2tx38ZmXb7nacrKzFTcp++f9txUYGg==} + '@docusaurus/bundler@3.8.1': + resolution: {integrity: sha512-/z4V0FRoQ0GuSLToNjOSGsk6m2lQUG4FRn8goOVoZSRsTrU8YR2aJacX5K3RG18EaX9b+52pN4m1sL3MQZVsQA==} engines: {node: '>=18.0'} peerDependencies: '@docusaurus/faster': '*' @@ -1026,8 +1035,8 @@ packages: '@docusaurus/faster': optional: true - '@docusaurus/core@3.7.0': - resolution: {integrity: sha512-b0fUmaL+JbzDIQaamzpAFpTviiaU4cX3Qz8cuo14+HGBCwa0evEK0UYCBFY3n4cLzL8Op1BueeroUD2LYAIHbQ==} + '@docusaurus/core@3.8.1': + resolution: {integrity: sha512-ENB01IyQSqI2FLtOzqSI3qxG2B/jP4gQPahl2C3XReiLebcVh5B5cB9KYFvdoOqOWPyr5gXK4sjgTKv7peXCrA==} engines: {node: '>=18.0'} hasBin: true peerDependencies: @@ -1035,93 +1044,103 @@ packages: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/cssnano-preset@3.7.0': - resolution: {integrity: sha512-X9GYgruZBSOozg4w4dzv9uOz8oK/EpPVQXkp0MM6Tsgp/nRIU9hJzJ0Pxg1aRa3xCeEQTOimZHcocQFlLwYajQ==} + '@docusaurus/cssnano-preset@3.8.1': + resolution: {integrity: sha512-G7WyR2N6SpyUotqhGznERBK+x84uyhfMQM2MmDLs88bw4Flom6TY46HzkRkSEzaP9j80MbTN8naiL1fR17WQug==} + engines: {node: '>=18.0'} + + '@docusaurus/faster@3.8.1': + resolution: {integrity: sha512-XYrj3qnTm+o2d5ih5drCq9s63GJoM8vZ26WbLG5FZhURsNxTSXgHJcx11Qo7nWPUStCQkuqk1HvItzscCUnd4A==} engines: {node: '>=18.0'} + peerDependencies: + '@docusaurus/types': '*' - '@docusaurus/logger@3.7.0': - resolution: {integrity: sha512-z7g62X7bYxCYmeNNuO9jmzxLQG95q9QxINCwpboVcNff3SJiHJbGrarxxOVMVmAh1MsrSfxWkVGv4P41ktnFsA==} + '@docusaurus/logger@3.8.1': + resolution: {integrity: sha512-2wjeGDhKcExEmjX8k1N/MRDiPKXGF2Pg+df/bDDPnnJWHXnVEZxXj80d6jcxp1Gpnksl0hF8t/ZQw9elqj2+ww==} engines: {node: '>=18.0'} - '@docusaurus/mdx-loader@3.7.0': - resolution: {integrity: sha512-OFBG6oMjZzc78/U3WNPSHs2W9ZJ723ewAcvVJaqS0VgyeUfmzUV8f1sv+iUHA0DtwiR5T5FjOxj6nzEE8LY6VA==} + '@docusaurus/mdx-loader@3.8.1': + resolution: {integrity: sha512-DZRhagSFRcEq1cUtBMo4TKxSNo/W6/s44yhr8X+eoXqCLycFQUylebOMPseHi5tc4fkGJqwqpWJLz6JStU9L4w==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/module-type-aliases@3.7.0': - resolution: {integrity: sha512-g7WdPqDNaqA60CmBrr0cORTrsOit77hbsTj7xE2l71YhBn79sxdm7WMK7wfhcaafkbpIh7jv5ef5TOpf1Xv9Lg==} + '@docusaurus/module-type-aliases@3.8.1': + resolution: {integrity: sha512-6xhvAJiXzsaq3JdosS7wbRt/PwEPWHr9eM4YNYqVlbgG1hSK3uQDXTVvQktasp3VO6BmfYWPozueLWuj4gB+vg==} peerDependencies: react: '*' react-dom: '*' - '@docusaurus/plugin-content-blog@3.7.0': - resolution: {integrity: sha512-EFLgEz6tGHYWdPU0rK8tSscZwx+AsyuBW/r+tNig2kbccHYGUJmZtYN38GjAa3Fda4NU+6wqUO5kTXQSRBQD3g==} + '@docusaurus/plugin-content-blog@3.8.1': + resolution: {integrity: sha512-vNTpMmlvNP9n3hGEcgPaXyvTljanAKIUkuG9URQ1DeuDup0OR7Ltvoc8yrmH+iMZJbcQGhUJF+WjHLwuk8HSdw==} engines: {node: '>=18.0'} peerDependencies: '@docusaurus/plugin-content-docs': '*' react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-content-docs@3.7.0': - resolution: {integrity: sha512-GXg5V7kC9FZE4FkUZA8oo/NrlRb06UwuICzI6tcbzj0+TVgjq/mpUXXzSgKzMS82YByi4dY2Q808njcBCyy6tQ==} + '@docusaurus/plugin-content-docs@3.8.1': + resolution: {integrity: sha512-oByRkSZzeGNQByCMaX+kif5Nl2vmtj2IHQI2fWjCfCootsdKZDPFLonhIp5s3IGJO7PLUfe0POyw0Xh/RrGXJA==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-content-pages@3.7.0': - resolution: {integrity: sha512-YJSU3tjIJf032/Aeao8SZjFOrXJbz/FACMveSMjLyMH4itQyZ2XgUIzt4y+1ISvvk5zrW4DABVT2awTCqBkx0Q==} + '@docusaurus/plugin-content-pages@3.8.1': + resolution: {integrity: sha512-a+V6MS2cIu37E/m7nDJn3dcxpvXb6TvgdNI22vJX8iUTp8eoMoPa0VArEbWvCxMY/xdC26WzNv4wZ6y0iIni/w==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-debug@3.7.0': - resolution: {integrity: sha512-Qgg+IjG/z4svtbCNyTocjIwvNTNEwgRjSXXSJkKVG0oWoH0eX/HAPiu+TS1HBwRPQV+tTYPWLrUypYFepfujZA==} + '@docusaurus/plugin-css-cascade-layers@3.8.1': + resolution: {integrity: sha512-VQ47xRxfNKjHS5ItzaVXpxeTm7/wJLFMOPo1BkmoMG4Cuz4nuI+Hs62+RMk1OqVog68Swz66xVPK8g9XTrBKRw==} + engines: {node: '>=18.0'} + + '@docusaurus/plugin-debug@3.8.1': + resolution: {integrity: sha512-nT3lN7TV5bi5hKMB7FK8gCffFTBSsBsAfV84/v293qAmnHOyg1nr9okEw8AiwcO3bl9vije5nsUvP0aRl2lpaw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-google-analytics@3.7.0': - resolution: {integrity: sha512-otIqiRV/jka6Snjf+AqB360XCeSv7lQC+DKYW+EUZf6XbuE8utz5PeUQ8VuOcD8Bk5zvT1MC4JKcd5zPfDuMWA==} + '@docusaurus/plugin-google-analytics@3.8.1': + resolution: {integrity: sha512-Hrb/PurOJsmwHAsfMDH6oVpahkEGsx7F8CWMjyP/dw1qjqmdS9rcV1nYCGlM8nOtD3Wk/eaThzUB5TSZsGz+7Q==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-google-gtag@3.7.0': - resolution: {integrity: sha512-M3vrMct1tY65ModbyeDaMoA+fNJTSPe5qmchhAbtqhDD/iALri0g9LrEpIOwNaoLmm6lO88sfBUADQrSRSGSWA==} + '@docusaurus/plugin-google-gtag@3.8.1': + resolution: {integrity: sha512-tKE8j1cEZCh8KZa4aa80zpSTxsC2/ZYqjx6AAfd8uA8VHZVw79+7OTEP2PoWi0uL5/1Is0LF5Vwxd+1fz5HlKg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-google-tag-manager@3.7.0': - resolution: {integrity: sha512-X8U78nb8eiMiPNg3jb9zDIVuuo/rE1LjGDGu+5m5CX4UBZzjMy+klOY2fNya6x8ACyE/L3K2erO1ErheP55W/w==} + '@docusaurus/plugin-google-tag-manager@3.8.1': + resolution: {integrity: sha512-iqe3XKITBquZq+6UAXdb1vI0fPY5iIOitVjPQ581R1ZKpHr0qe+V6gVOrrcOHixPDD/BUKdYwkxFjpNiEN+vBw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-sitemap@3.7.0': - resolution: {integrity: sha512-bTRT9YLZ/8I/wYWKMQke18+PF9MV8Qub34Sku6aw/vlZ/U+kuEuRpQ8bTcNOjaTSfYsWkK4tTwDMHK2p5S86cA==} + '@docusaurus/plugin-sitemap@3.8.1': + resolution: {integrity: sha512-+9YV/7VLbGTq8qNkjiugIelmfUEVkTyLe6X8bWq7K5qPvGXAjno27QAfFq63mYfFFbJc7z+pudL63acprbqGzw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/plugin-svgr@3.7.0': - resolution: {integrity: sha512-HByXIZTbc4GV5VAUkZ2DXtXv1Qdlnpk3IpuImwSnEzCDBkUMYcec5282hPjn6skZqB25M1TYCmWS91UbhBGxQg==} + '@docusaurus/plugin-svgr@3.8.1': + resolution: {integrity: sha512-rW0LWMDsdlsgowVwqiMb/7tANDodpy1wWPwCcamvhY7OECReN3feoFwLjd/U4tKjNY3encj0AJSTxJA+Fpe+Gw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/preset-classic@3.7.0': - resolution: {integrity: sha512-nPHj8AxDLAaQXs+O6+BwILFuhiWbjfQWrdw2tifOClQoNfuXDjfjogee6zfx6NGHWqshR23LrcN115DmkHC91Q==} + '@docusaurus/preset-classic@3.8.1': + resolution: {integrity: sha512-yJSjYNHXD8POMGc2mKQuj3ApPrN+eG0rO1UPgSx7jySpYU+n4WjBikbrA2ue5ad9A7aouEtMWUoiSRXTH/g7KQ==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 @@ -1132,58 +1151,58 @@ packages: peerDependencies: react: '*' - '@docusaurus/theme-classic@3.7.0': - resolution: {integrity: sha512-MnLxG39WcvLCl4eUzHr0gNcpHQfWoGqzADCly54aqCofQX6UozOS9Th4RK3ARbM9m7zIRv3qbhggI53dQtx/hQ==} + '@docusaurus/theme-classic@3.8.1': + resolution: {integrity: sha512-bqDUCNqXeYypMCsE1VcTXSI1QuO4KXfx8Cvl6rYfY0bhhqN6d2WZlRkyLg/p6pm+DzvanqHOyYlqdPyP0iz+iw==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/theme-common@3.7.0': - resolution: {integrity: sha512-8eJ5X0y+gWDsURZnBfH0WabdNm8XMCXHv8ENy/3Z/oQKwaB/EHt5lP9VsTDTf36lKEp0V6DjzjFyFIB+CetL0A==} + '@docusaurus/theme-common@3.8.1': + resolution: {integrity: sha512-UswMOyTnPEVRvN5Qzbo+l8k4xrd5fTFu2VPPfD6FcW/6qUtVLmJTQCktbAL3KJ0BVXGm5aJXz/ZrzqFuZERGPw==} engines: {node: '>=18.0'} peerDependencies: '@docusaurus/plugin-content-docs': '*' react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/theme-mermaid@3.7.0': - resolution: {integrity: sha512-7kNDvL7hm+tshjxSxIqYMtsLUPsEBYnkevej/ext6ru9xyLgCed+zkvTfGzTWNeq8rJIEe2YSS8/OV5gCVaPCw==} + '@docusaurus/theme-mermaid@3.8.1': + resolution: {integrity: sha512-IWYqjyTPjkNnHsFFu9+4YkeXS7PD1xI3Bn2shOhBq+f95mgDfWInkpfBN4aYvx4fTT67Am6cPtohRdwh4Tidtg==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/theme-search-algolia@3.7.0': - resolution: {integrity: sha512-Al/j5OdzwRU1m3falm+sYy9AaB93S1XF1Lgk9Yc6amp80dNxJVplQdQTR4cYdzkGtuQqbzUA8+kaoYYO0RbK6g==} + '@docusaurus/theme-search-algolia@3.8.1': + resolution: {integrity: sha512-NBFH5rZVQRAQM087aYSRKQ9yGEK9eHd+xOxQjqNpxMiV85OhJDD4ZGz6YJIod26Fbooy54UWVdzNU0TFeUUUzQ==} engines: {node: '>=18.0'} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/theme-translations@3.7.0': - resolution: {integrity: sha512-Ewq3bEraWDmienM6eaNK7fx+/lHMtGDHQyd1O+4+3EsDxxUmrzPkV7Ct3nBWTuE0MsoZr3yNwQVKjllzCMuU3g==} + '@docusaurus/theme-translations@3.8.1': + resolution: {integrity: sha512-OTp6eebuMcf2rJt4bqnvuwmm3NVXfzfYejL+u/Y1qwKhZPrjPoKWfk1CbOP5xH5ZOPkiAsx4dHdQBRJszK3z2g==} engines: {node: '>=18.0'} - '@docusaurus/tsconfig@3.7.0': - resolution: {integrity: sha512-vRsyj3yUZCjscgfgcFYjIsTcAru/4h4YH2/XAE8Rs7wWdnng98PgWKvP5ovVc4rmRpRg2WChVW0uOy2xHDvDBQ==} + '@docusaurus/tsconfig@3.8.1': + resolution: {integrity: sha512-XBWCcqhRHhkhfolnSolNL+N7gj3HVE3CoZVqnVjfsMzCoOsuQw2iCLxVVHtO+rePUUfouVZHURDgmqIySsF66A==} - '@docusaurus/types@3.7.0': - resolution: {integrity: sha512-kOmZg5RRqJfH31m+6ZpnwVbkqMJrPOG5t0IOl4i/+3ruXyNfWzZ0lVtVrD0u4ONc/0NOsS9sWYaxxWNkH1LdLQ==} + '@docusaurus/types@3.8.1': + resolution: {integrity: sha512-ZPdW5AB+pBjiVrcLuw3dOS6BFlrG0XkS2lDGsj8TizcnREQg3J8cjsgfDviszOk4CweNfwo1AEELJkYaMUuOPg==} peerDependencies: react: ^18.0.0 || ^19.0.0 react-dom: ^18.0.0 || ^19.0.0 - '@docusaurus/utils-common@3.7.0': - resolution: {integrity: sha512-IZeyIfCfXy0Mevj6bWNg7DG7B8G+S6o6JVpddikZtWyxJguiQ7JYr0SIZ0qWd8pGNuMyVwriWmbWqMnK7Y5PwA==} + '@docusaurus/utils-common@3.8.1': + resolution: {integrity: sha512-zTZiDlvpvoJIrQEEd71c154DkcriBecm4z94OzEE9kz7ikS3J+iSlABhFXM45mZ0eN5pVqqr7cs60+ZlYLewtg==} engines: {node: '>=18.0'} - '@docusaurus/utils-validation@3.7.0': - resolution: {integrity: sha512-w8eiKk8mRdN+bNfeZqC4nyFoxNyI1/VExMKAzD9tqpJfLLbsa46Wfn5wcKH761g9WkKh36RtFV49iL9lh1DYBA==} + '@docusaurus/utils-validation@3.8.1': + resolution: {integrity: sha512-gs5bXIccxzEbyVecvxg6upTwaUbfa0KMmTj7HhHzc016AGyxH2o73k1/aOD0IFrdCsfJNt37MqNI47s2MgRZMA==} engines: {node: '>=18.0'} - '@docusaurus/utils@3.7.0': - resolution: {integrity: sha512-e7zcB6TPnVzyUaHMJyLSArKa2AG3h9+4CfvKXKKWNx6hRs+p0a+u7HHTJBgo6KW2m+vqDnuIHK4X+bhmoghAFA==} + '@docusaurus/utils@3.8.1': + resolution: {integrity: sha512-P1ml0nvOmEFdmu0smSXOqTS1sxU5tqvnc0dA4MTKV39kye+bhQnjkIKEE18fNOvxjyB86k8esoCIFM3x4RykOQ==} engines: {node: '>=18.0'} '@hapi/hoek@9.3.0': @@ -1243,8 +1262,26 @@ packages: '@types/react': '>=16' react: '>=16' - '@mermaid-js/parser@0.3.0': - resolution: {integrity: sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==} + '@mermaid-js/parser@0.4.0': + resolution: {integrity: sha512-wla8XOWvQAwuqy+gxiZqY+c7FokraOTHRWMsbB4AgRx9Sy7zKslNyejy7E+a77qHfey5GXw/ik3IXv/NHMJgaA==} + + '@module-federation/error-codes@0.14.3': + resolution: {integrity: sha512-sBJ3XKU9g5Up31jFeXPFsD8AgORV7TLO/cCSMuRewSfgYbG/3vSKLJmfHrO6+PvjZSb9VyV2UaF02ojktW65vw==} + + '@module-federation/runtime-core@0.14.3': + resolution: {integrity: sha512-xMFQXflLVW/AJTWb4soAFP+LB4XuhE7ryiLIX8oTyUoBBgV6U2OPghnFljPjeXbud72O08NYlQ1qsHw1kN/V8Q==} + + '@module-federation/runtime-tools@0.14.3': + resolution: {integrity: sha512-QBETX7iMYXdSa3JtqFlYU+YkpymxETZqyIIRiqg0gW+XGpH3jgU68yjrme2NBJp7URQi/CFZG8KWtfClk0Pjgw==} + + '@module-federation/runtime@0.14.3': + resolution: {integrity: sha512-7ZHpa3teUDVhraYdxQGkfGHzPbjna4LtwbpudgzAxSLLFxLDNanaxCuSeIgSM9c+8sVUNC9kvzUgJEZB0krPJw==} + + '@module-federation/sdk@0.14.3': + resolution: {integrity: sha512-THJZMfbXpqjQOLblCQ8jjcBFFXsGRJwUWE9l/Q4SmuCSKMgAwie7yLT0qSGrHmyBYrsUjAuy+xNB4nfKP0pnGw==} + + '@module-federation/webpack-bundler-runtime@0.14.3': + resolution: {integrity: sha512-hIyJFu34P7bY2NeMIUHAS/mYUHEY71VTAsN0A0AqEJFSVPszheopu9VdXq0VDLrP9KQfuXT8SDxeYeJXyj0mgA==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -1277,6 +1314,67 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + '@rspack/binding-darwin-arm64@1.3.15': + resolution: {integrity: sha512-f+DnVRENRdVe+ufpZeqTtWAUDSTnP48jVo7x9KWsXf8XyJHUi+eHKEPrFoy1HvL1/k5yJ3HVnFBh1Hb9cNIwSg==} + cpu: [arm64] + os: [darwin] + + '@rspack/binding-darwin-x64@1.3.15': + resolution: {integrity: sha512-TfUvEIBqYUT2OK01BYXb2MNcZeZIhAnJy/5aj0qV0uy4KlvwW63HYcKWa1sFd4Ac7bnGShDkanvP3YEuHOFOyg==} + cpu: [x64] + os: [darwin] + + '@rspack/binding-linux-arm64-gnu@1.3.15': + resolution: {integrity: sha512-D/YjYk9snKvYm1Elotq8/GsEipB4ZJWVv/V8cZ+ohhFNOPzygENi6JfyI06TryBTQiN0/JDZqt/S9RaWBWnMqw==} + cpu: [arm64] + os: [linux] + + '@rspack/binding-linux-arm64-musl@1.3.15': + resolution: {integrity: sha512-lJbBsPMOiR0hYPCSM42yp7QiZjfo0ALtX7ws2wURpsQp3BMfRVAmXU3Ixpo2XCRtG1zj8crHaCmAWOJTS0smsA==} + cpu: [arm64] + os: [linux] + + '@rspack/binding-linux-x64-gnu@1.3.15': + resolution: {integrity: sha512-qGB8ucHklrzNg6lsAS36VrBsCbOw0acgpQNqTE5cuHWrp1Pu3GFTRiFEogenxEmzoRbohMZt0Ev5grivrcgKBQ==} + cpu: [x64] + os: [linux] + + '@rspack/binding-linux-x64-musl@1.3.15': + resolution: {integrity: sha512-qRn6e40fLQP+N2rQD8GAj/h4DakeTIho32VxTIaHRVuzw68ZD7VmKkwn55ssN370ejmey35ZdoNFNE12RBrMZA==} + cpu: [x64] + os: [linux] + + '@rspack/binding-win32-arm64-msvc@1.3.15': + resolution: {integrity: sha512-7uJ7dWhO1nWXJiCss6Rslz8hoAxAhFpwpbWja3eHgRb7O4NPHg6MWw63AQSI2aFVakreenfu9yXQqYfpVWJ2dA==} + cpu: [arm64] + os: [win32] + + '@rspack/binding-win32-ia32-msvc@1.3.15': + resolution: {integrity: sha512-UsaWTYCjDiSCB0A0qETgZk4QvhwfG8gCrO4SJvA+QSEWOmgSai1YV70prFtLLIiyT9mDt1eU3tPWl1UWPRU/EQ==} + cpu: [ia32] + os: [win32] + + '@rspack/binding-win32-x64-msvc@1.3.15': + resolution: {integrity: sha512-ZnDIc9Es8EF94MirPDN+hOMt7tkb8nMEbRJFKLMmNd0ElNPgsql+1cY5SqyGRH1hsKB87KfSUQlhFiKZvzbfIg==} + cpu: [x64] + os: [win32] + + '@rspack/binding@1.3.15': + resolution: {integrity: sha512-utNPuJglLO5lW9XbwIqjB7+2ilMo6JkuVLTVdnNVKU94FW7asn9F/qV+d+MgjUVqU1QPCGm0NuGO9xhbgeJ7pg==} + + '@rspack/core@1.3.15': + resolution: {integrity: sha512-QuElIC8jXSKWAp0LSx18pmbhA7NiA5HGoVYesmai90UVxz98tud0KpMxTVCg+0lrLrnKZfCWN9kwjCxM5pGnrA==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@swc/helpers': '>=0.5.1' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@rspack/lite-tapable@1.0.1': + resolution: {integrity: sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==} + engines: {node: '>=16.0.0'} + '@sideway/address@4.1.5': resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} @@ -1384,6 +1482,145 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} + '@swc/core-darwin-arm64@1.12.0': + resolution: {integrity: sha512-usLr8kC80GDv3pwH2zoEaS279kxtWY0MY3blbMFw7zA8fAjqxa8IDxm3WcgyNLNWckWn4asFfguEwz/Weem3nA==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.12.0': + resolution: {integrity: sha512-Cvv4sqDcTY7QF2Dh1vn2Xbt/1ENYQcpmrGHzITJrXzxA2aBopsz/n4yQDiyRxTR0t802m4xu0CzMoZIHvVruWQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.12.0': + resolution: {integrity: sha512-seM4/XMJMOupkzfLfHl8sRa3NdhsVZp+XgwA/vVeYZYJE4wuWUxVzhCYzwmNftVY32eF2IiRaWnhG6ho6jusnQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.12.0': + resolution: {integrity: sha512-Al0x33gUVxNY5tutEYpSyv7mze6qQS1ONa0HEwoRxcK9WXsX0NHLTiOSGZoCUS1SsXM37ONlbA6/Bsp1MQyP+g==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.12.0': + resolution: {integrity: sha512-OeFHz/5Hl9v75J9TYA5jQxNIYAZMqaiPpd9dYSTK2Xyqa/ZGgTtNyPhIwVfxx+9mHBf6+9c1mTlXUtACMtHmaQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.12.0': + resolution: {integrity: sha512-ltIvqNi7H0c5pRawyqjeYSKEIfZP4vv/datT3mwT6BW7muJtd1+KIDCPFLMIQ4wm/h76YQwPocsin3fzmnFdNA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.12.0': + resolution: {integrity: sha512-Z/DhpjehaTK0uf+MhNB7mV9SuewpGs3P/q9/8+UsJeYoFr7yuOoPbAvrD6AqZkf6Bh7MRZ5OtG+KQgG5L+goiA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.12.0': + resolution: {integrity: sha512-wHnvbfHIh2gfSbvuFT7qP97YCMUDh+fuiso+pcC6ug8IsMxuViNapHET4o0ZdFNWHhXJ7/s0e6w7mkOalsqQiQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.12.0': + resolution: {integrity: sha512-88umlXwK+7J2p4DjfWHXQpmlZgCf1ayt6Ssj+PYlAfMCR0aBiJoAMwHWrvDXEozyOrsyP1j2X6WxbmA861vL5Q==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.12.0': + resolution: {integrity: sha512-KR9TSRp+FEVOhbgTU6c94p/AYpsyBk7dIvlKQiDp8oKScUoyHG5yjmMBFN/BqUyTq4kj6zlgsY2rFE4R8/yqWg==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.12.0': + resolution: {integrity: sha512-/C0kiMHPY/HnLfqXYGMGxGck3A5Y3mqwxfv+EwHTPHGjAVRfHpWAEEBTSTF5C88vVY6CvwBEkhR2TX7t8Mahcw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '>=0.5.17' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/html-darwin-arm64@1.12.0': + resolution: {integrity: sha512-okpx8G7xGSPiSekxS4FQu3aR8k+q8nZJCfVKzanQxdZUaCm7YDVUci2Unqp9TvpgZJRA0GOWs1U3QMu2vdr0sQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/html-darwin-x64@1.12.0': + resolution: {integrity: sha512-OWvHTNcnfIbrLWMq7JMmPRQh/Dx23+CX3WaRubotlBuXfKZf9cHKbbeOmW5t0h6gTQGGX3q4vEC8LQb7g6++Cg==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/html-linux-arm-gnueabihf@1.12.0': + resolution: {integrity: sha512-l+gvFFgqFUlsHH1zoaYPjpNi2/6MSGmdsQfeC7juW1h7G+UhnKGyZKUxkXL2imV/+VQjN875S8G/gv2Z4tBg+g==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/html-linux-arm64-gnu@1.12.0': + resolution: {integrity: sha512-ImZLbghifCPqQhwbEprv2zojieD0j/RGJ+tkNpJ6DyGqcf5qVFfPgGDe/WDPEHCMbJlAodvp1iKTdLSAdTfaLg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/html-linux-arm64-musl@1.12.0': + resolution: {integrity: sha512-9TzNRjcRQWUSt2LX0MR5seibGimgGhXfHcPNH6w1ysa6N0Idu7Jpl3LB7B1K584LXjmZ47wFq5IOs6QHdKshXw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/html-linux-x64-gnu@1.12.0': + resolution: {integrity: sha512-IVFXgsyn0/8e9nfVrQXAdGDFboom0nls7KSOJ/+oXMmdK917wrnYLDt7M4DyRT2c+xJmMxgR6tyaTW8KLAl02w==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/html-linux-x64-musl@1.12.0': + resolution: {integrity: sha512-QWNaGWES553AuGr46CXHLyfBBktnRWv32D87alvn3IBb/iJNHOqmcN2tUSFWiGCgWoylZWSa5OBWGj2ulk6AHg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/html-win32-arm64-msvc@1.12.0': + resolution: {integrity: sha512-MUmXWGnbngXeO/kARz26MLKxqLe5VYo+1EmkvxTfBajlcVnjdSZW1oFtP7d6eqxQSmVqU4mTtM9gELe2BnAbIQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/html-win32-ia32-msvc@1.12.0': + resolution: {integrity: sha512-k9pRORyAaL5fbMR2Isn3y2v+9tYElZ1XZp/Ff2RGNlKj/Y2IgDp+i4eUNPQzrcslAZKs7lTG1Rdax49uC8Wqzw==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/html-win32-x64-msvc@1.12.0': + resolution: {integrity: sha512-vBFdG6x8A+NrPv+f2d01kBkUuD1O1bcoOLtwBegYK2W1lvRQCjUIwfM9eumPqUpaXsImZ1UMTW0n5tLJY7IoAA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/html@1.12.0': + resolution: {integrity: sha512-DBQ9bnNexbVUYkjpSkFA+t+QXmG7N0x8Xuv3fiNRGuEsCgtS1y3BZuoy9wTCettd2LL0d8QWCXXHnCxNl6WSvw==} + engines: {node: '>=14'} + + '@swc/types@0.1.23': + resolution: {integrity: sha512-u1iIVZV9Q0jxY+yM2vw/hZGDNudsN85bBpTqzAQ9rzkxW9D+e3aEM4Han+ow518gSewkXgjmEK0BD79ZcNVgPw==} + '@szmarczak/http-timer@5.0.1': resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} @@ -1584,9 +1821,6 @@ packages: '@types/node@22.13.10': resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} - '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} - '@types/prismjs@1.26.5': resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==} @@ -1812,10 +2046,6 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} - autoprefixer@10.4.21: resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} @@ -1897,6 +2127,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.25.0: + resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} @@ -1953,6 +2188,9 @@ packages: caniuse-lite@1.0.30001706: resolution: {integrity: sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==} + caniuse-lite@1.0.30001722: + resolution: {integrity: sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==} + ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -2162,10 +2400,6 @@ packages: cose-base@2.2.0: resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} - cosmiconfig@6.0.0: - resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} - engines: {node: '>=8'} - cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -2262,8 +2496,8 @@ packages: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} - cssdb@8.2.4: - resolution: {integrity: sha512-3KSCVkjZJe/QxicVXnbyYSY26WsFc1YoMY7jep1ZKWMEVc7jEm6V2Xq2r+MX8WKQIuB7ofGbnr5iVI+aZpoSzg==} + cssdb@8.3.0: + resolution: {integrity: sha512-c7bmItIg38DgGjSwDPZOYF/2o0QU/sSgkWOMyl8votOfgFuyiFKWPesmCGEsrGLxEA9uL540cp8LdaGEjUGsZQ==} cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} @@ -2515,10 +2749,6 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} - delaunator@5.0.1: resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} @@ -2538,14 +2768,13 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + engines: {node: '>=8'} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} - detect-port-alt@1.1.6: - resolution: {integrity: sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==} - engines: {node: '>= 4.2.1'} - hasBin: true - detect-port@1.6.1: resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} engines: {node: '>= 4.0.0'} @@ -2620,6 +2849,9 @@ packages: electron-to-chromium@1.5.123: resolution: {integrity: sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==} + electron-to-chromium@1.5.166: + resolution: {integrity: sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2825,10 +3057,6 @@ packages: peerDependencies: webpack: ^4.0.0 || ^5.0.0 - filesize@8.0.7: - resolution: {integrity: sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==} - engines: {node: '>= 0.4.0'} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -2841,14 +3069,6 @@ packages: resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} engines: {node: '>=14.16'} - find-up@3.0.0: - resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} - engines: {node: '>=6'} - - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - find-up@6.3.0: resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2870,20 +3090,6 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - fork-ts-checker-webpack-plugin@6.5.3: - resolution: {integrity: sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==} - engines: {node: '>=10', yarn: '>=1.0.0'} - peerDependencies: - eslint: '>= 6' - typescript: '>= 2.7' - vue-template-compiler: '*' - webpack: '>= 4' - peerDependenciesMeta: - eslint: - optional: true - vue-template-compiler: - optional: true - form-data-encoder@2.1.4: resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} engines: {node: '>= 14.17'} @@ -2907,10 +3113,6 @@ packages: resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} - fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} - fs-monkey@1.0.6: resolution: {integrity: sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==} @@ -2970,14 +3172,6 @@ packages: resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} engines: {node: '>=10'} - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -3175,14 +3369,11 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - image-size@1.2.0: - resolution: {integrity: sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==} + image-size@2.0.2: + resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} engines: {node: '>=16.x'} hasBin: true - immer@9.0.21: - resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} - import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -3230,10 +3421,6 @@ packages: resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} engines: {node: '>=12'} - interpret@1.4.0: - resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} - engines: {node: '>= 0.10'} - invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -3313,10 +3500,6 @@ packages: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} @@ -3337,10 +3520,6 @@ packages: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} engines: {node: '>=0.10.0'} - is-root@2.1.0: - resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} - engines: {node: '>=6'} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -3453,8 +3632,8 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} - langium@3.0.0: - resolution: {integrity: sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==} + langium@3.3.1: + resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} engines: {node: '>=16.0.0'} latest-version@7.0.0: @@ -3474,6 +3653,70 @@ packages: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.30.1: + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.30.1: + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.30.1: + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.30.1: + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.30.1: + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.30.1: + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.30.1: + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.30.1: + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.30.1: + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} + engines: {node: '>= 12.0.0'} + lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -3489,22 +3732,10 @@ packages: resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} engines: {node: '>=8.9.0'} - loader-utils@3.3.1: - resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} - engines: {node: '>= 12.13.0'} - local-pkg@1.1.1: resolution: {integrity: sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==} engines: {node: '>=14'} - locate-path@3.0.0: - resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} - engines: {node: '>=6'} - - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - locate-path@7.2.0: resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3641,8 +3872,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - mermaid@11.5.0: - resolution: {integrity: sha512-IYhyukID3zzDj1EihKiN1lp+PXNImoJ3Iyz73qeDAgnus4BNGsJV1n471P4PyeGxPVONerZxignwGxGTSwZnlg==} + mermaid@11.6.0: + resolution: {integrity: sha512-PE8hGUy1LDlWIHWBP05SFdqUHGmRcCcK4IzpOKPE35eOw+G9zZgcnMpyunJVUEOgb//KBORPjysKndw8bFLuRg==} methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} @@ -3963,26 +4194,14 @@ packages: resolution: {integrity: sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==} engines: {node: '>=12.20'} - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} p-limit@4.0.0: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-locate@3.0.0: - resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} - engines: {node: '>=6'} - - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - p-locate@6.0.0: resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -3991,13 +4210,17 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + p-retry@4.6.2: resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} engines: {node: '>=8'} - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} @@ -4042,14 +4265,6 @@ packages: path-data-parser@0.1.0: resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} - path-exists@3.0.0: - resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} - engines: {node: '>=4'} - - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - path-exists@5.0.0: resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -4113,10 +4328,6 @@ packages: pkg-types@2.1.0: resolution: {integrity: sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==} - pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} - points-on-curve@0.2.0: resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} @@ -4141,8 +4352,8 @@ packages: peerDependencies: postcss: ^8.4.6 - postcss-color-functional-notation@7.0.8: - resolution: {integrity: sha512-S/TpMKVKofNvsxfau/+bw+IA6cSfB6/kmzFj5szUofHOVnFFMB2WwK+Zu07BeMD8T0n+ZnTO5uXiMvAKe2dPkA==} + postcss-color-functional-notation@7.0.10: + resolution: {integrity: sha512-k9qX+aXHBiLTRrWoCJuUFI6F1iF6QJQUXNVWJVSbqZgj57jDhBlOvD8gNUGl35tgqDivbGLhZeW3Ongz4feuKA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4171,20 +4382,20 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-custom-media@11.0.5: - resolution: {integrity: sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==} + postcss-custom-media@11.0.6: + resolution: {integrity: sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - postcss-custom-properties@14.0.4: - resolution: {integrity: sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==} + postcss-custom-properties@14.0.6: + resolution: {integrity: sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 - postcss-custom-selectors@8.0.4: - resolution: {integrity: sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==} + postcss-custom-selectors@8.0.5: + resolution: {integrity: sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4225,8 +4436,8 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss-double-position-gradients@6.0.0: - resolution: {integrity: sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==} + postcss-double-position-gradients@6.0.2: + resolution: {integrity: sha512-7qTqnL7nfLRyJK/AHSVrrXOuvDDzettC+wGoienURV8v2svNbu6zJC52ruZtHaO6mfcagFmuTGFdzRsJKB3k5Q==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4272,8 +4483,8 @@ packages: peerDependencies: postcss: ^8.4.21 - postcss-lab-function@7.0.8: - resolution: {integrity: sha512-plV21I86Hg9q8omNz13G9fhPtLopIWH06bt/Cb5cs1XnaGU2kUtEitvVd4vtQb/VqCdNUHK5swKn3QFmMRbpDg==} + postcss-lab-function@7.0.10: + resolution: {integrity: sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4375,8 +4586,8 @@ packages: peerDependencies: postcss: ^8.2.14 - postcss-nesting@13.0.1: - resolution: {integrity: sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==} + postcss-nesting@13.0.2: + resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4464,8 +4675,8 @@ packages: peerDependencies: postcss: ^8.4 - postcss-preset-env@10.1.5: - resolution: {integrity: sha512-LQybafF/K7H+6fAs4SIkgzkSCixJy0/h0gubDIAP3Ihz+IQBRwsjyvBnAZ3JUHD+A/ITaxVRPDxn//a3Qy4pDw==} + postcss-preset-env@10.2.3: + resolution: {integrity: sha512-zlQN1yYmA7lFeM1wzQI14z97mKoM8qGng+198w1+h6sCud/XxOjcKtApY9jWr7pXNS3yHDEafPlClSsWnkY8ow==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 @@ -4540,8 +4751,8 @@ packages: peerDependencies: postcss: ^8.4.31 - postcss@8.5.3: - resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + postcss@8.5.4: + resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} engines: {node: ^10 || ^12 || >=14} prettier@3.5.3: @@ -4606,9 +4817,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue@6.0.2: - resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} - quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -4632,35 +4840,22 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - react-dev-utils@12.0.1: - resolution: {integrity: sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=2.7' - webpack: '>=4' - peerDependenciesMeta: - typescript: - optional: true - react-dom@19.0.0: resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} peerDependencies: react: ^19.0.0 - react-error-overlay@6.1.0: - resolution: {integrity: sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==} - react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-json-view-lite@1.5.0: - resolution: {integrity: sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==} - engines: {node: '>=14'} + react-json-view-lite@2.4.1: + resolution: {integrity: sha512-fwFYknRIBxjbFm0kBDrzgBy1xa5tDg2LyXXBepC5f1b+MY3BUClMCsvanMPn089JbV1Eg3nZcrp0VCuH43aXnA==} + engines: {node: '>=18'} peerDependencies: - react: ^16.13.1 || ^17.0.0 || ^18.0.0 + react: ^18.0.0 || ^19.0.0 react-loadable-ssr-addon-v5-slorber@1.0.1: resolution: {integrity: sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==} @@ -4703,13 +4898,6 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} - - rechoir@0.6.2: - resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} - engines: {node: '>= 0.10'} - recma-build-jsx@1.0.0: resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} @@ -4722,10 +4910,6 @@ packages: recma-stringify@1.0.0: resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} - recursive-readdir@2.2.3: - resolution: {integrity: sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==} - engines: {node: '>=6.0.0'} - regenerate-unicode-properties@10.2.0: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} @@ -4874,9 +5058,8 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - schema-utils@2.7.0: - resolution: {integrity: sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==} - engines: {node: '>= 8.9.0'} + schema-dts@1.1.5: + resolution: {integrity: sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==} schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} @@ -4960,11 +5143,6 @@ packages: resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} engines: {node: '>= 0.4'} - shelljs@0.8.5: - resolution: {integrity: sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==} - engines: {node: '>=4'} - hasBin: true - side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -5150,15 +5328,17 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + swc-loader@0.2.6: + resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + tailwindcss@3.4.17: resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} engines: {node: '>=14.0.0'} hasBin: true - tapable@1.1.3: - resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} - engines: {node: '>=6'} - tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -5184,9 +5364,6 @@ packages: engines: {node: '>=10'} hasBin: true - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -5206,6 +5383,10 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinypool@1.1.0: + resolution: {integrity: sha512-7CotroY9a8DKsKprEy/a14aCCm8jYVmR7aFy4fpkZM8sdpNJbKkixuNjgM50yCmip2ezc8z4N7k3oe2+rfRJCQ==} + engines: {node: ^18.0.0 || >=20.0.0} + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -5253,8 +5434,8 @@ packages: typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - typescript@5.8.2: - resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + typescript@5.8.3: + resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} engines: {node: '>=14.17'} hasBin: true @@ -5468,10 +5649,6 @@ packages: resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} engines: {node: '>=0.8.0'} - which@1.3.1: - resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} - hasBin: true - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -5533,19 +5710,11 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - yaml@2.7.0: resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - yocto-queue@1.2.0: resolution: {integrity: sha512-KHBC7z61OJeaMGnF3wqNZj+GGNXOyypZviiKpQeiHirG5Ib1ImwcLBH70rbMSkKfSmUNBsdf2PwaEJtKvgmkNw==} engines: {node: '>=12.20'} @@ -6437,247 +6606,256 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@csstools/cascade-layer-name-parser@2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/cascade-layer-name-parser@2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 '@csstools/color-helpers@5.0.2': {} - '@csstools/css-calc@2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-color-parser@3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: '@csstools/color-helpers': 5.0.2 - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-tokenizer': 3.0.4 - '@csstools/css-tokenizer@3.0.3': {} + '@csstools/css-tokenizer@3.0.4': {} - '@csstools/media-query-list-parser@4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + '@csstools/media-query-list-parser@4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 - '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.3)': + '@csstools/postcss-cascade-layers@5.0.1(postcss@8.5.4)': dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - '@csstools/postcss-color-function@4.0.8(postcss@8.5.3)': + '@csstools/postcss-color-function@4.0.10(postcss@8.5.4)': + dependencies: + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 + + '@csstools/postcss-color-mix-function@3.0.10(postcss@8.5.4)': dependencies: - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - '@csstools/postcss-color-mix-function@3.0.8(postcss@8.5.3)': + '@csstools/postcss-color-mix-variadic-function-arguments@1.0.0(postcss@8.5.4)': dependencies: - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - '@csstools/postcss-content-alt-text@2.0.4(postcss@8.5.3)': + '@csstools/postcss-content-alt-text@2.0.6(postcss@8.5.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - '@csstools/postcss-exponential-functions@2.0.7(postcss@8.5.3)': + '@csstools/postcss-exponential-functions@2.0.9(postcss@8.5.4)': dependencies: - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.4 - '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.3)': + '@csstools/postcss-font-format-keywords@4.0.0(postcss@8.5.4)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - '@csstools/postcss-gamut-mapping@2.0.8(postcss@8.5.3)': + '@csstools/postcss-gamut-mapping@2.0.10(postcss@8.5.4)': dependencies: - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.3 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.4 - '@csstools/postcss-gradients-interpolation-method@5.0.8(postcss@8.5.3)': + '@csstools/postcss-gradients-interpolation-method@5.0.10(postcss@8.5.4)': dependencies: - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - '@csstools/postcss-hwb-function@4.0.8(postcss@8.5.3)': + '@csstools/postcss-hwb-function@4.0.10(postcss@8.5.4)': dependencies: - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - '@csstools/postcss-ic-unit@4.0.0(postcss@8.5.3)': + '@csstools/postcss-ic-unit@4.0.2(postcss@8.5.4)': dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - '@csstools/postcss-initial@2.0.1(postcss@8.5.3)': + '@csstools/postcss-initial@2.0.1(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - '@csstools/postcss-is-pseudo-class@5.0.1(postcss@8.5.3)': + '@csstools/postcss-is-pseudo-class@5.0.3(postcss@8.5.4)': dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - '@csstools/postcss-light-dark-function@2.0.7(postcss@8.5.3)': + '@csstools/postcss-light-dark-function@2.0.9(postcss@8.5.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.3)': + '@csstools/postcss-logical-float-and-clear@3.0.0(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.3)': + '@csstools/postcss-logical-overflow@2.0.0(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.3)': + '@csstools/postcss-logical-overscroll-behavior@2.0.0(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.3)': + '@csstools/postcss-logical-resize@3.0.0(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - '@csstools/postcss-logical-viewport-units@3.0.3(postcss@8.5.3)': + '@csstools/postcss-logical-viewport-units@3.0.4(postcss@8.5.4)': dependencies: - '@csstools/css-tokenizer': 3.0.3 - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-tokenizer': 3.0.4 + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - '@csstools/postcss-media-minmax@2.0.7(postcss@8.5.3)': + '@csstools/postcss-media-minmax@2.0.9(postcss@8.5.4)': dependencies: - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.5.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + postcss: 8.5.4 - '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.4(postcss@8.5.3)': + '@csstools/postcss-media-queries-aspect-ratio-number-values@3.0.5(postcss@8.5.4)': dependencies: - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.5.3 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + postcss: 8.5.4 - '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.3)': + '@csstools/postcss-nested-calc@4.0.0(postcss@8.5.4)': dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.3)': + '@csstools/postcss-normalize-display-values@4.0.0(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - '@csstools/postcss-oklab-function@4.0.8(postcss@8.5.3)': + '@csstools/postcss-oklab-function@4.0.10(postcss@8.5.4)': dependencies: - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - '@csstools/postcss-progressive-custom-properties@4.0.0(postcss@8.5.3)': + '@csstools/postcss-progressive-custom-properties@4.1.0(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - '@csstools/postcss-random-function@1.0.3(postcss@8.5.3)': + '@csstools/postcss-random-function@2.0.1(postcss@8.5.4)': dependencies: - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.4 - '@csstools/postcss-relative-color-syntax@3.0.8(postcss@8.5.3)': + '@csstools/postcss-relative-color-syntax@3.0.10(postcss@8.5.4)': dependencies: - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.3)': + '@csstools/postcss-scope-pseudo-class@4.0.1(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - '@csstools/postcss-sign-functions@1.1.2(postcss@8.5.3)': + '@csstools/postcss-sign-functions@1.1.4(postcss@8.5.4)': dependencies: - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.4 - '@csstools/postcss-stepped-value-functions@4.0.7(postcss@8.5.3)': + '@csstools/postcss-stepped-value-functions@4.0.9(postcss@8.5.4)': dependencies: - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.4 - '@csstools/postcss-text-decoration-shorthand@4.0.2(postcss@8.5.3)': + '@csstools/postcss-text-decoration-shorthand@4.0.2(postcss@8.5.4)': dependencies: '@csstools/color-helpers': 5.0.2 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - '@csstools/postcss-trigonometric-functions@4.0.7(postcss@8.5.3)': + '@csstools/postcss-trigonometric-functions@4.0.9(postcss@8.5.4)': dependencies: - '@csstools/css-calc': 2.1.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.3 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.4 - '@csstools/postcss-unset-value@4.0.0(postcss@8.5.3)': + '@csstools/postcss-unset-value@4.0.0(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - '@csstools/selector-resolve-nested@3.0.0(postcss-selector-parser@7.1.0)': + '@csstools/selector-resolve-nested@3.1.0(postcss-selector-parser@7.1.0)': dependencies: postcss-selector-parser: 7.1.0 @@ -6685,9 +6863,9 @@ snapshots: dependencies: postcss-selector-parser: 7.1.0 - '@csstools/utilities@2.0.0(postcss@8.5.3)': + '@csstools/utilities@2.0.0(postcss@8.5.4)': dependencies: - postcss: 8.5.3 + postcss: 8.5.4 '@discoveryjs/json-ext@0.5.7': {} @@ -6707,7 +6885,7 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@docusaurus/babel@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/babel@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@babel/core': 7.26.10 '@babel/generator': 7.26.10 @@ -6719,8 +6897,8 @@ snapshots: '@babel/runtime': 7.26.10 '@babel/runtime-corejs3': 7.26.10 '@babel/traverse': 7.26.10 - '@docusaurus/logger': 3.7.0 - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/logger': 3.8.1 + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) babel-plugin-dynamic-import-node: 2.3.3 fs-extra: 11.3.0 tslib: 2.8.1 @@ -6734,33 +6912,34 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/bundler@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/bundler@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: '@babel/core': 7.26.10 - '@docusaurus/babel': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/cssnano-preset': 3.7.0 - '@docusaurus/logger': 3.7.0 - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0) + '@docusaurus/babel': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/cssnano-preset': 3.8.1 + '@docusaurus/logger': 3.8.1 + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + babel-loader: 9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.12.0)) clean-css: 5.3.3 - copy-webpack-plugin: 11.0.0(webpack@5.98.0) - css-loader: 6.11.0(webpack@5.98.0) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.98.0) - cssnano: 6.1.2(postcss@8.5.3) - file-loader: 6.2.0(webpack@5.98.0) + copy-webpack-plugin: 11.0.0(webpack@5.98.0(@swc/core@1.12.0)) + css-loader: 6.11.0(@rspack/core@1.3.15)(webpack@5.98.0(@swc/core@1.12.0)) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.98.0(@swc/core@1.12.0)) + cssnano: 6.1.2(postcss@8.5.4) + file-loader: 6.2.0(webpack@5.98.0(@swc/core@1.12.0)) html-minifier-terser: 7.2.0 - mini-css-extract-plugin: 2.9.2(webpack@5.98.0) - null-loader: 4.0.1(webpack@5.98.0) - postcss: 8.5.3 - postcss-loader: 7.3.4(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0) - postcss-preset-env: 10.1.5(postcss@8.5.3) - react-dev-utils: 12.0.1(typescript@5.8.2)(webpack@5.98.0) - terser-webpack-plugin: 5.3.14(webpack@5.98.0) + mini-css-extract-plugin: 2.9.2(webpack@5.98.0(@swc/core@1.12.0)) + null-loader: 4.0.1(webpack@5.98.0(@swc/core@1.12.0)) + postcss: 8.5.4 + postcss-loader: 7.3.4(postcss@8.5.4)(typescript@5.8.3)(webpack@5.98.0(@swc/core@1.12.0)) + postcss-preset-env: 10.2.3(postcss@8.5.4) + terser-webpack-plugin: 5.3.14(@swc/core@1.12.0)(webpack@5.98.0(@swc/core@1.12.0)) tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.98.0))(webpack@5.98.0) - webpack: 5.98.0 - webpackbar: 6.0.1(webpack@5.98.0) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.98.0(@swc/core@1.12.0)))(webpack@5.98.0(@swc/core@1.12.0)) + webpack: 5.98.0(@swc/core@1.12.0) + webpackbar: 6.0.1(webpack@5.98.0(@swc/core@1.12.0)) + optionalDependencies: + '@docusaurus/faster': 3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)) transitivePeerDependencies: - '@parcel/css' - '@rspack/core' @@ -6769,25 +6948,23 @@ snapshots: - acorn - csso - esbuild - - eslint - lightningcss - react - react-dom - supports-color - typescript - uglify-js - - vue-template-compiler - webpack-cli - '@docusaurus/core@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/core@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@docusaurus/babel': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/bundler': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/logger': 3.7.0 - '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/babel': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/bundler': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/logger': 3.8.1 + '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mdx-js/react': 3.1.0(@types/react@19.0.12)(react@19.0.0) boxen: 6.2.1 chalk: 4.1.2 @@ -6796,35 +6973,35 @@ snapshots: combine-promises: 1.2.0 commander: 5.1.0 core-js: 3.41.0 - del: 6.1.1 detect-port: 1.6.1 escape-html: 1.0.3 eta: 2.2.0 eval: 0.1.8 + execa: 5.1.1 fs-extra: 11.3.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.3(webpack@5.98.0) + html-webpack-plugin: 5.6.3(@rspack/core@1.3.15)(webpack@5.98.0(@swc/core@1.12.0)) leven: 3.1.0 lodash: 4.17.21 + open: 8.4.2 p-map: 4.0.0 prompts: 2.4.2 react: 19.0.0 - react-dev-utils: 12.0.1(typescript@5.8.2)(webpack@5.98.0) react-dom: 19.0.0(react@19.0.0) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)' react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.0.0)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.0.0))(webpack@5.98.0) + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@19.0.0))(webpack@5.98.0(@swc/core@1.12.0)) react-router: 5.3.4(react@19.0.0) react-router-config: 5.1.1(react-router@5.3.4(react@19.0.0))(react@19.0.0) react-router-dom: 5.3.4(react@19.0.0) semver: 7.7.1 serve-handler: 6.1.6 - shelljs: 0.8.5 + tinypool: 1.1.0 tslib: 2.8.1 update-notifier: 6.0.2 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 4.15.2(webpack@5.98.0) + webpack-dev-server: 4.15.2(webpack@5.98.0(@swc/core@1.12.0)) webpack-merge: 6.0.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -6837,39 +7014,54 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/cssnano-preset@3.7.0': + '@docusaurus/cssnano-preset@3.8.1': dependencies: - cssnano-preset-advanced: 6.1.2(postcss@8.5.3) - postcss: 8.5.3 - postcss-sort-media-queries: 5.2.0(postcss@8.5.3) + cssnano-preset-advanced: 6.1.2(postcss@8.5.4) + postcss: 8.5.4 + postcss-sort-media-queries: 5.2.0(postcss@8.5.4) tslib: 2.8.1 - '@docusaurus/logger@3.7.0': + '@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0))': + dependencies: + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@rspack/core': 1.3.15 + '@swc/core': 1.12.0 + '@swc/html': 1.12.0 + browserslist: 4.25.0 + lightningcss: 1.30.1 + swc-loader: 0.2.6(@swc/core@1.12.0)(webpack@5.98.0(@swc/core@1.12.0)) + tslib: 2.8.1 + webpack: 5.98.0(@swc/core@1.12.0) + transitivePeerDependencies: + - '@swc/helpers' + - esbuild + - uglify-js + - webpack-cli + + '@docusaurus/logger@3.8.1': dependencies: chalk: 4.1.2 tslib: 2.8.1 - '@docusaurus/mdx-loader@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/mdx-loader@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/logger': 3.7.0 - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/logger': 3.8.1 + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mdx-js/mdx': 3.1.0(acorn@8.14.1) '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.3.2 - file-loader: 6.2.0(webpack@5.98.0) + file-loader: 6.2.0(webpack@5.98.0(@swc/core@1.12.0)) fs-extra: 11.3.0 - image-size: 1.2.0 + image-size: 2.0.2 mdast-util-mdx: 3.0.0 mdast-util-to-string: 4.0.0 react: 19.0.0 @@ -6883,9 +7075,9 @@ snapshots: tslib: 2.8.1 unified: 11.0.5 unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.98.0))(webpack@5.98.0) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.98.0(@swc/core@1.12.0)))(webpack@5.98.0(@swc/core@1.12.0)) vfile: 6.0.3 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) transitivePeerDependencies: - '@swc/core' - acorn @@ -6894,9 +7086,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/module-type-aliases@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/history': 4.7.11 '@types/react': 19.0.12 '@types/react-router-config': 5.0.11 @@ -6913,29 +7105,29 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-content-blog@3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': - dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/logger': 3.7.0 - '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/plugin-content-blog@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': + dependencies: + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/logger': 3.8.1 + '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) cheerio: 1.0.0-rc.12 feed: 4.2.2 fs-extra: 11.3.0 lodash: 4.17.21 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - reading-time: 1.5.0 + schema-dts: 1.1.5 srcset: 4.0.0 tslib: 2.8.1 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -6948,26 +7140,24 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': - dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/logger': 3.7.0 - '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/module-type-aliases': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': + dependencies: + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/logger': 3.8.1 + '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.3.0 @@ -6975,9 +7165,10 @@ snapshots: lodash: 4.17.21 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) + schema-dts: 1.1.5 tslib: 2.8.1 utility-types: 3.11.0 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -6990,27 +7181,51 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-pages@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-content-pages@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fs-extra: 11.3.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) tslib: 2.8.1 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) + transitivePeerDependencies: + - '@docusaurus/faster' + - '@mdx-js/react' + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - acorn + - bufferutil + - csso + - debug + - esbuild + - lightningcss + - supports-color + - typescript + - uglify-js + - utf-8-validate + - webpack-cli + + '@docusaurus/plugin-css-cascade-layers@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': + dependencies: + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -7023,24 +7238,24 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss + - react + - react-dom - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-debug@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-debug@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fs-extra: 11.3.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - react-json-view-lite: 1.5.0(react@19.0.0) + react-json-view-lite: 2.4.1(react@19.0.0) tslib: 2.8.1 transitivePeerDependencies: - '@docusaurus/faster' @@ -7054,20 +7269,18 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-analytics@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-google-analytics@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) tslib: 2.8.1 @@ -7083,20 +7296,18 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-gtag@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-google-gtag@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/gtag.js': 0.0.12 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -7113,20 +7324,18 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-google-tag-manager@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) tslib: 2.8.1 @@ -7142,23 +7351,21 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-sitemap@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-sitemap@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/logger': 3.7.0 - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/logger': 3.8.1 + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fs-extra: 11.3.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) @@ -7176,27 +7383,25 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/plugin-svgr@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/plugin-svgr@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@svgr/core': 8.1.0(typescript@5.8.2) - '@svgr/webpack': 8.1.0(typescript@5.8.2) + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@svgr/core': 8.1.0(typescript@5.8.3) + '@svgr/webpack': 8.1.0(typescript@5.8.3) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) tslib: 2.8.1 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) transitivePeerDependencies: - '@docusaurus/faster' - '@mdx-js/react' @@ -7209,31 +7414,30 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/preset-classic@3.7.0(@algolia/client-search@5.21.0)(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)(typescript@5.8.2)': - dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-blog': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-pages': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-debug': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-google-analytics': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-google-gtag': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-google-tag-manager': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-sitemap': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-svgr': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-classic': 3.7.0(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/theme-search-algolia': 3.7.0(@algolia/client-search@5.21.0)(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)(typescript@5.8.2) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/preset-classic@3.8.1(@algolia/client-search@5.21.0)(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)(typescript@5.8.3)': + dependencies: + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-content-blog': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-content-pages': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-css-cascade-layers': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-debug': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-google-analytics': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-google-gtag': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-google-tag-manager': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-sitemap': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-svgr': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/theme-classic': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@rspack/core@1.3.15)(@swc/core@1.12.0)(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/theme-search-algolia': 3.8.1(@algolia/client-search@5.21.0)(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)(typescript@5.8.3) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react: 19.0.0 react-dom: 19.0.0(react@19.0.0) transitivePeerDependencies: @@ -7250,14 +7454,12 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - search-insights - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli '@docusaurus/react-loadable@6.0.0(react@19.0.0)': @@ -7265,28 +7467,28 @@ snapshots: '@types/react': 19.0.12 react: 19.0.0 - '@docusaurus/theme-classic@3.7.0(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': - dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/logger': 3.7.0 - '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/module-type-aliases': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/plugin-content-blog': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/plugin-content-pages': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/theme-translations': 3.7.0 - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/theme-classic@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@rspack/core@1.3.15)(@swc/core@1.12.0)(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': + dependencies: + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/logger': 3.8.1 + '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/plugin-content-blog': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/plugin-content-pages': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/theme-translations': 3.8.1 + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@mdx-js/react': 3.1.0(@types/react@19.0.12)(react@19.0.0) clsx: 2.1.1 copy-text-to-clipboard: 3.2.0 infima: 0.2.0-alpha.45 lodash: 4.17.21 nprogress: 0.2.0 - postcss: 8.5.3 + postcss: 8.5.4 prism-react-renderer: 2.4.1(react@19.0.0) prismjs: 1.30.0 react: 19.0.0 @@ -7307,22 +7509,20 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/theme-common@3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/theme-common@3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/mdx-loader': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/module-type-aliases': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/mdx-loader': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@types/history': 4.7.11 '@types/react': 19.0.12 '@types/react-router-config': 5.0.11 @@ -7341,14 +7541,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-mermaid@3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2)': + '@docusaurus/theme-mermaid@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3)': dependencies: - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/module-type-aliases': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - mermaid: 11.5.0 + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/module-type-aliases': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + mermaid: 11.6.0 react: 19.0.0 react-dom: 19.0.0(react@19.0.0) tslib: 2.8.1 @@ -7365,25 +7565,23 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/theme-search-algolia@3.7.0(@algolia/client-search@5.21.0)(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)(typescript@5.8.2)': + '@docusaurus/theme-search-algolia@3.8.1(@algolia/client-search@5.21.0)(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(@types/react@19.0.12)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)(typescript@5.8.3)': dependencies: '@docsearch/react': 3.9.0(@algolia/client-search@5.21.0)(@types/react@19.0.12)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0) - '@docusaurus/core': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/logger': 3.7.0 - '@docusaurus/plugin-content-docs': 3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2) - '@docusaurus/theme-common': 3.7.0(@docusaurus/plugin-content-docs@3.7.0(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.2))(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/theme-translations': 3.7.0 - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-validation': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/core': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/logger': 3.8.1 + '@docusaurus/plugin-content-docs': 3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3) + '@docusaurus/theme-common': 3.8.1(@docusaurus/plugin-content-docs@3.8.1(@docusaurus/faster@3.8.1(@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)))(@mdx-js/react@3.1.0(@types/react@19.0.12)(react@19.0.0))(@rspack/core@1.3.15)(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(typescript@5.8.3))(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/theme-translations': 3.8.1 + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-validation': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) algoliasearch: 5.21.0 algoliasearch-helper: 3.24.2(algoliasearch@5.21.0) clsx: 2.1.1 @@ -7408,24 +7606,22 @@ snapshots: - csso - debug - esbuild - - eslint - lightningcss - search-insights - supports-color - typescript - uglify-js - utf-8-validate - - vue-template-compiler - webpack-cli - '@docusaurus/theme-translations@3.7.0': + '@docusaurus/theme-translations@3.8.1': dependencies: fs-extra: 11.3.0 tslib: 2.8.1 - '@docusaurus/tsconfig@3.7.0': {} + '@docusaurus/tsconfig@3.8.1': {} - '@docusaurus/types@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/types@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@mdx-js/mdx': 3.1.0(acorn@8.14.1) '@types/history': 4.7.11 @@ -7436,7 +7632,7 @@ snapshots: react-dom: 19.0.0(react@19.0.0) react-helmet-async: '@slorber/react-helmet-async@1.3.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)' utility-types: 3.11.0 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) webpack-merge: 5.10.0 transitivePeerDependencies: - '@swc/core' @@ -7446,9 +7642,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/utils-common@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) tslib: 2.8.1 transitivePeerDependencies: - '@swc/core' @@ -7460,11 +7656,11 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-validation@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/utils-validation@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/logger': 3.7.0 - '@docusaurus/utils': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/logger': 3.8.1 + '@docusaurus/utils': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) fs-extra: 11.3.0 joi: 17.13.3 js-yaml: 4.1.0 @@ -7480,13 +7676,14 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + '@docusaurus/utils@3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: - '@docusaurus/logger': 3.7.0 - '@docusaurus/types': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@docusaurus/utils-common': 3.7.0(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/logger': 3.8.1 + '@docusaurus/types': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@docusaurus/utils-common': 3.8.1(@swc/core@1.12.0)(acorn@8.14.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.98.0) + execa: 5.1.1 + file-loader: 6.2.0(webpack@5.98.0(@swc/core@1.12.0)) fs-extra: 11.3.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -7495,13 +7692,13 @@ snapshots: js-yaml: 4.1.0 lodash: 4.17.21 micromatch: 4.0.8 + p-queue: 6.6.2 prompts: 2.4.2 resolve-pathname: 3.0.0 - shelljs: 0.8.5 tslib: 2.8.1 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.98.0))(webpack@5.98.0) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.98.0(@swc/core@1.12.0)))(webpack@5.98.0(@swc/core@1.12.0)) utility-types: 3.11.0 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) transitivePeerDependencies: - '@swc/core' - acorn @@ -7615,9 +7812,34 @@ snapshots: '@types/react': 19.0.12 react: 19.0.0 - '@mermaid-js/parser@0.3.0': + '@mermaid-js/parser@0.4.0': + dependencies: + langium: 3.3.1 + + '@module-federation/error-codes@0.14.3': {} + + '@module-federation/runtime-core@0.14.3': + dependencies: + '@module-federation/error-codes': 0.14.3 + '@module-federation/sdk': 0.14.3 + + '@module-federation/runtime-tools@0.14.3': + dependencies: + '@module-federation/runtime': 0.14.3 + '@module-federation/webpack-bundler-runtime': 0.14.3 + + '@module-federation/runtime@0.14.3': dependencies: - langium: 3.0.0 + '@module-federation/error-codes': 0.14.3 + '@module-federation/runtime-core': 0.14.3 + '@module-federation/sdk': 0.14.3 + + '@module-federation/sdk@0.14.3': {} + + '@module-federation/webpack-bundler-runtime@0.14.3': + dependencies: + '@module-federation/runtime': 0.14.3 + '@module-federation/sdk': 0.14.3 '@nodelib/fs.scandir@2.1.5': dependencies: @@ -7648,6 +7870,53 @@ snapshots: '@polka/url@1.0.0-next.28': {} + '@rspack/binding-darwin-arm64@1.3.15': + optional: true + + '@rspack/binding-darwin-x64@1.3.15': + optional: true + + '@rspack/binding-linux-arm64-gnu@1.3.15': + optional: true + + '@rspack/binding-linux-arm64-musl@1.3.15': + optional: true + + '@rspack/binding-linux-x64-gnu@1.3.15': + optional: true + + '@rspack/binding-linux-x64-musl@1.3.15': + optional: true + + '@rspack/binding-win32-arm64-msvc@1.3.15': + optional: true + + '@rspack/binding-win32-ia32-msvc@1.3.15': + optional: true + + '@rspack/binding-win32-x64-msvc@1.3.15': + optional: true + + '@rspack/binding@1.3.15': + optionalDependencies: + '@rspack/binding-darwin-arm64': 1.3.15 + '@rspack/binding-darwin-x64': 1.3.15 + '@rspack/binding-linux-arm64-gnu': 1.3.15 + '@rspack/binding-linux-arm64-musl': 1.3.15 + '@rspack/binding-linux-x64-gnu': 1.3.15 + '@rspack/binding-linux-x64-musl': 1.3.15 + '@rspack/binding-win32-arm64-msvc': 1.3.15 + '@rspack/binding-win32-ia32-msvc': 1.3.15 + '@rspack/binding-win32-x64-msvc': 1.3.15 + + '@rspack/core@1.3.15': + dependencies: + '@module-federation/runtime-tools': 0.14.3 + '@rspack/binding': 1.3.15 + '@rspack/lite-tapable': 1.0.1 + + '@rspack/lite-tapable@1.0.1': {} + '@sideway/address@4.1.5': dependencies: '@hapi/hoek': 9.3.0 @@ -7722,12 +7991,12 @@ snapshots: '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.10) '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.10) - '@svgr/core@8.1.0(typescript@5.8.2)': + '@svgr/core@8.1.0(typescript@5.8.3)': dependencies: '@babel/core': 7.26.10 '@svgr/babel-preset': 8.1.0(@babel/core@7.26.10) camelcase: 6.3.0 - cosmiconfig: 8.3.6(typescript@5.8.2) + cosmiconfig: 8.3.6(typescript@5.8.3) snake-case: 3.0.4 transitivePeerDependencies: - supports-color @@ -7738,39 +8007,136 @@ snapshots: '@babel/types': 7.26.10 entities: 4.5.0 - '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.8.2))': + '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.8.3))': dependencies: '@babel/core': 7.26.10 '@svgr/babel-preset': 8.1.0(@babel/core@7.26.10) - '@svgr/core': 8.1.0(typescript@5.8.2) + '@svgr/core': 8.1.0(typescript@5.8.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.8.2))(typescript@5.8.2)': + '@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0(typescript@5.8.3))(typescript@5.8.3)': dependencies: - '@svgr/core': 8.1.0(typescript@5.8.2) - cosmiconfig: 8.3.6(typescript@5.8.2) + '@svgr/core': 8.1.0(typescript@5.8.3) + cosmiconfig: 8.3.6(typescript@5.8.3) deepmerge: 4.3.1 svgo: 3.3.2 transitivePeerDependencies: - typescript - '@svgr/webpack@8.1.0(typescript@5.8.2)': + '@svgr/webpack@8.1.0(typescript@5.8.3)': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-constant-elements': 7.25.9(@babel/core@7.26.10) '@babel/preset-env': 7.26.9(@babel/core@7.26.10) '@babel/preset-react': 7.26.3(@babel/core@7.26.10) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.10) - '@svgr/core': 8.1.0(typescript@5.8.2) - '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.8.2)) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.8.2))(typescript@5.8.2) + '@svgr/core': 8.1.0(typescript@5.8.3) + '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3)) + '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0(typescript@5.8.3))(typescript@5.8.3) transitivePeerDependencies: - supports-color - typescript + '@swc/core-darwin-arm64@1.12.0': + optional: true + + '@swc/core-darwin-x64@1.12.0': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.12.0': + optional: true + + '@swc/core-linux-arm64-gnu@1.12.0': + optional: true + + '@swc/core-linux-arm64-musl@1.12.0': + optional: true + + '@swc/core-linux-x64-gnu@1.12.0': + optional: true + + '@swc/core-linux-x64-musl@1.12.0': + optional: true + + '@swc/core-win32-arm64-msvc@1.12.0': + optional: true + + '@swc/core-win32-ia32-msvc@1.12.0': + optional: true + + '@swc/core-win32-x64-msvc@1.12.0': + optional: true + + '@swc/core@1.12.0': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.23 + optionalDependencies: + '@swc/core-darwin-arm64': 1.12.0 + '@swc/core-darwin-x64': 1.12.0 + '@swc/core-linux-arm-gnueabihf': 1.12.0 + '@swc/core-linux-arm64-gnu': 1.12.0 + '@swc/core-linux-arm64-musl': 1.12.0 + '@swc/core-linux-x64-gnu': 1.12.0 + '@swc/core-linux-x64-musl': 1.12.0 + '@swc/core-win32-arm64-msvc': 1.12.0 + '@swc/core-win32-ia32-msvc': 1.12.0 + '@swc/core-win32-x64-msvc': 1.12.0 + + '@swc/counter@0.1.3': {} + + '@swc/html-darwin-arm64@1.12.0': + optional: true + + '@swc/html-darwin-x64@1.12.0': + optional: true + + '@swc/html-linux-arm-gnueabihf@1.12.0': + optional: true + + '@swc/html-linux-arm64-gnu@1.12.0': + optional: true + + '@swc/html-linux-arm64-musl@1.12.0': + optional: true + + '@swc/html-linux-x64-gnu@1.12.0': + optional: true + + '@swc/html-linux-x64-musl@1.12.0': + optional: true + + '@swc/html-win32-arm64-msvc@1.12.0': + optional: true + + '@swc/html-win32-ia32-msvc@1.12.0': + optional: true + + '@swc/html-win32-x64-msvc@1.12.0': + optional: true + + '@swc/html@1.12.0': + dependencies: + '@swc/counter': 0.1.3 + optionalDependencies: + '@swc/html-darwin-arm64': 1.12.0 + '@swc/html-darwin-x64': 1.12.0 + '@swc/html-linux-arm-gnueabihf': 1.12.0 + '@swc/html-linux-arm64-gnu': 1.12.0 + '@swc/html-linux-arm64-musl': 1.12.0 + '@swc/html-linux-x64-gnu': 1.12.0 + '@swc/html-linux-x64-musl': 1.12.0 + '@swc/html-win32-arm64-msvc': 1.12.0 + '@swc/html-win32-ia32-msvc': 1.12.0 + '@swc/html-win32-x64-msvc': 1.12.0 + + '@swc/types@0.1.23': + dependencies: + '@swc/counter': 0.1.3 + '@szmarczak/http-timer@5.0.1': dependencies: defer-to-connect: 2.0.1 @@ -8011,8 +8377,6 @@ snapshots: dependencies: undici-types: 6.20.0 - '@types/parse-json@4.0.2': {} - '@types/prismjs@1.26.5': {} '@types/qs@6.9.18': {} @@ -8044,7 +8408,7 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 17.0.45 + '@types/node': 22.13.10 '@types/send@0.17.4': dependencies: @@ -8275,24 +8639,22 @@ snapshots: astring@1.9.0: {} - at-least-node@1.0.0: {} - - autoprefixer@10.4.21(postcss@8.5.3): + autoprefixer@10.4.21(postcss@8.5.4): dependencies: browserslist: 4.24.4 caniuse-lite: 1.0.30001706 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0): + babel-loader@9.2.1(@babel/core@7.26.10)(webpack@5.98.0(@swc/core@1.12.0)): dependencies: '@babel/core': 7.26.10 find-cache-dir: 4.0.0 schema-utils: 4.3.0 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -8398,6 +8760,13 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) + browserslist@4.25.0: + dependencies: + caniuse-lite: 1.0.30001722 + electron-to-chromium: 1.5.166 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.25.0) + buffer-from@1.1.2: {} bytes@3.0.0: {} @@ -8455,6 +8824,8 @@ snapshots: caniuse-lite@1.0.30001706: {} + caniuse-lite@1.0.30001722: {} + ccount@2.0.1: {} chalk@4.1.2: @@ -8630,7 +9001,7 @@ snapshots: copy-text-to-clipboard@3.2.0: {} - copy-webpack-plugin@11.0.0(webpack@5.98.0): + copy-webpack-plugin@11.0.0(webpack@5.98.0(@swc/core@1.12.0)): dependencies: fast-glob: 3.3.3 glob-parent: 6.0.2 @@ -8638,7 +9009,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.3.0 serialize-javascript: 6.0.2 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) core-js-compat@3.41.0: dependencies: @@ -8658,22 +9029,14 @@ snapshots: dependencies: layout-base: 2.0.1 - cosmiconfig@6.0.0: - dependencies: - '@types/parse-json': 4.0.2 - import-fresh: 3.3.1 - parse-json: 5.2.0 - path-type: 4.0.0 - yaml: 1.10.2 - - cosmiconfig@8.3.6(typescript@5.8.2): + cosmiconfig@8.3.6(typescript@5.8.3): dependencies: import-fresh: 3.3.1 js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 optionalDependencies: - typescript: 5.8.2 + typescript: 5.8.3 cross-spawn@7.0.6: dependencies: @@ -8685,50 +9048,51 @@ snapshots: dependencies: type-fest: 1.4.0 - css-blank-pseudo@7.0.1(postcss@8.5.3): + css-blank-pseudo@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - css-declaration-sorter@7.2.0(postcss@8.5.3): + css-declaration-sorter@7.2.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - css-has-pseudo@7.0.2(postcss@8.5.3): + css-has-pseudo@7.0.2(postcss@8.5.4): dependencies: '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - css-loader@6.11.0(webpack@5.98.0): + css-loader@6.11.0(@rspack/core@1.3.15)(webpack@5.98.0(@swc/core@1.12.0)): dependencies: - icss-utils: 5.1.0(postcss@8.5.3) - postcss: 8.5.3 - postcss-modules-extract-imports: 3.1.0(postcss@8.5.3) - postcss-modules-local-by-default: 4.2.0(postcss@8.5.3) - postcss-modules-scope: 3.2.1(postcss@8.5.3) - postcss-modules-values: 4.0.0(postcss@8.5.3) + icss-utils: 5.1.0(postcss@8.5.4) + postcss: 8.5.4 + postcss-modules-extract-imports: 3.1.0(postcss@8.5.4) + postcss-modules-local-by-default: 4.2.0(postcss@8.5.4) + postcss-modules-scope: 3.2.1(postcss@8.5.4) + postcss-modules-values: 4.0.0(postcss@8.5.4) postcss-value-parser: 4.2.0 semver: 7.7.1 optionalDependencies: - webpack: 5.98.0 + '@rspack/core': 1.3.15 + webpack: 5.98.0(@swc/core@1.12.0) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.98.0): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.98.0(@swc/core@1.12.0)): dependencies: '@jridgewell/trace-mapping': 0.3.25 - cssnano: 6.1.2(postcss@8.5.3) + cssnano: 6.1.2(postcss@8.5.4) jest-worker: 29.7.0 - postcss: 8.5.3 + postcss: 8.5.4 schema-utils: 4.3.0 serialize-javascript: 6.0.2 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) optionalDependencies: clean-css: 5.3.3 - css-prefers-color-scheme@10.0.0(postcss@8.5.3): + css-prefers-color-scheme@10.0.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 css-select@4.3.0: dependencies: @@ -8758,64 +9122,64 @@ snapshots: css-what@6.1.0: {} - cssdb@8.2.4: {} + cssdb@8.3.0: {} cssesc@3.0.0: {} - cssnano-preset-advanced@6.1.2(postcss@8.5.3): + cssnano-preset-advanced@6.1.2(postcss@8.5.4): dependencies: - autoprefixer: 10.4.21(postcss@8.5.3) + autoprefixer: 10.4.21(postcss@8.5.4) browserslist: 4.24.4 - cssnano-preset-default: 6.1.2(postcss@8.5.3) - postcss: 8.5.3 - postcss-discard-unused: 6.0.5(postcss@8.5.3) - postcss-merge-idents: 6.0.3(postcss@8.5.3) - postcss-reduce-idents: 6.0.3(postcss@8.5.3) - postcss-zindex: 6.0.2(postcss@8.5.3) + cssnano-preset-default: 6.1.2(postcss@8.5.4) + postcss: 8.5.4 + postcss-discard-unused: 6.0.5(postcss@8.5.4) + postcss-merge-idents: 6.0.3(postcss@8.5.4) + postcss-reduce-idents: 6.0.3(postcss@8.5.4) + postcss-zindex: 6.0.2(postcss@8.5.4) - cssnano-preset-default@6.1.2(postcss@8.5.3): + cssnano-preset-default@6.1.2(postcss@8.5.4): dependencies: browserslist: 4.24.4 - css-declaration-sorter: 7.2.0(postcss@8.5.3) - cssnano-utils: 4.0.2(postcss@8.5.3) - postcss: 8.5.3 - postcss-calc: 9.0.1(postcss@8.5.3) - postcss-colormin: 6.1.0(postcss@8.5.3) - postcss-convert-values: 6.1.0(postcss@8.5.3) - postcss-discard-comments: 6.0.2(postcss@8.5.3) - postcss-discard-duplicates: 6.0.3(postcss@8.5.3) - postcss-discard-empty: 6.0.3(postcss@8.5.3) - postcss-discard-overridden: 6.0.2(postcss@8.5.3) - postcss-merge-longhand: 6.0.5(postcss@8.5.3) - postcss-merge-rules: 6.1.1(postcss@8.5.3) - postcss-minify-font-values: 6.1.0(postcss@8.5.3) - postcss-minify-gradients: 6.0.3(postcss@8.5.3) - postcss-minify-params: 6.1.0(postcss@8.5.3) - postcss-minify-selectors: 6.0.4(postcss@8.5.3) - postcss-normalize-charset: 6.0.2(postcss@8.5.3) - postcss-normalize-display-values: 6.0.2(postcss@8.5.3) - postcss-normalize-positions: 6.0.2(postcss@8.5.3) - postcss-normalize-repeat-style: 6.0.2(postcss@8.5.3) - postcss-normalize-string: 6.0.2(postcss@8.5.3) - postcss-normalize-timing-functions: 6.0.2(postcss@8.5.3) - postcss-normalize-unicode: 6.1.0(postcss@8.5.3) - postcss-normalize-url: 6.0.2(postcss@8.5.3) - postcss-normalize-whitespace: 6.0.2(postcss@8.5.3) - postcss-ordered-values: 6.0.2(postcss@8.5.3) - postcss-reduce-initial: 6.1.0(postcss@8.5.3) - postcss-reduce-transforms: 6.0.2(postcss@8.5.3) - postcss-svgo: 6.0.3(postcss@8.5.3) - postcss-unique-selectors: 6.0.4(postcss@8.5.3) - - cssnano-utils@4.0.2(postcss@8.5.3): - dependencies: - postcss: 8.5.3 - - cssnano@6.1.2(postcss@8.5.3): - dependencies: - cssnano-preset-default: 6.1.2(postcss@8.5.3) + css-declaration-sorter: 7.2.0(postcss@8.5.4) + cssnano-utils: 4.0.2(postcss@8.5.4) + postcss: 8.5.4 + postcss-calc: 9.0.1(postcss@8.5.4) + postcss-colormin: 6.1.0(postcss@8.5.4) + postcss-convert-values: 6.1.0(postcss@8.5.4) + postcss-discard-comments: 6.0.2(postcss@8.5.4) + postcss-discard-duplicates: 6.0.3(postcss@8.5.4) + postcss-discard-empty: 6.0.3(postcss@8.5.4) + postcss-discard-overridden: 6.0.2(postcss@8.5.4) + postcss-merge-longhand: 6.0.5(postcss@8.5.4) + postcss-merge-rules: 6.1.1(postcss@8.5.4) + postcss-minify-font-values: 6.1.0(postcss@8.5.4) + postcss-minify-gradients: 6.0.3(postcss@8.5.4) + postcss-minify-params: 6.1.0(postcss@8.5.4) + postcss-minify-selectors: 6.0.4(postcss@8.5.4) + postcss-normalize-charset: 6.0.2(postcss@8.5.4) + postcss-normalize-display-values: 6.0.2(postcss@8.5.4) + postcss-normalize-positions: 6.0.2(postcss@8.5.4) + postcss-normalize-repeat-style: 6.0.2(postcss@8.5.4) + postcss-normalize-string: 6.0.2(postcss@8.5.4) + postcss-normalize-timing-functions: 6.0.2(postcss@8.5.4) + postcss-normalize-unicode: 6.1.0(postcss@8.5.4) + postcss-normalize-url: 6.0.2(postcss@8.5.4) + postcss-normalize-whitespace: 6.0.2(postcss@8.5.4) + postcss-ordered-values: 6.0.2(postcss@8.5.4) + postcss-reduce-initial: 6.1.0(postcss@8.5.4) + postcss-reduce-transforms: 6.0.2(postcss@8.5.4) + postcss-svgo: 6.0.3(postcss@8.5.4) + postcss-unique-selectors: 6.0.4(postcss@8.5.4) + + cssnano-utils@4.0.2(postcss@8.5.4): + dependencies: + postcss: 8.5.4 + + cssnano@6.1.2(postcss@8.5.4): + dependencies: + cssnano-preset-default: 6.1.2(postcss@8.5.4) lilconfig: 3.1.3 - postcss: 8.5.3 + postcss: 8.5.4 csso@5.0.5: dependencies: @@ -9051,17 +9415,6 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - del@6.1.1: - dependencies: - globby: 11.1.0 - graceful-fs: 4.2.11 - is-glob: 4.0.3 - is-path-cwd: 2.2.0 - is-path-inside: 3.0.3 - p-map: 4.0.0 - rimraf: 3.0.2 - slash: 3.0.0 - delaunator@5.0.1: dependencies: robust-predicates: 3.0.2 @@ -9074,14 +9427,9 @@ snapshots: destroy@1.2.0: {} - detect-node@2.1.0: {} + detect-libc@2.0.4: {} - detect-port-alt@1.1.6: - dependencies: - address: 1.2.2 - debug: 2.6.9 - transitivePeerDependencies: - - supports-color + detect-node@2.1.0: {} detect-port@1.6.1: dependencies: @@ -9171,6 +9519,8 @@ snapshots: electron-to-chromium@1.5.123: {} + electron-to-chromium@1.5.166: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -9391,13 +9741,11 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - file-loader@6.2.0(webpack@5.98.0): + file-loader@6.2.0(webpack@5.98.0(@swc/core@1.12.0)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.98.0 - - filesize@8.0.7: {} + webpack: 5.98.0(@swc/core@1.12.0) fill-range@7.1.1: dependencies: @@ -9420,15 +9768,6 @@ snapshots: common-path-prefix: 3.0.0 pkg-dir: 7.0.0 - find-up@3.0.0: - dependencies: - locate-path: 3.0.0 - - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - find-up@6.3.0: dependencies: locate-path: 7.2.0 @@ -9443,24 +9782,6 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@6.5.3(typescript@5.8.2)(webpack@5.98.0): - dependencies: - '@babel/code-frame': 7.26.2 - '@types/json-schema': 7.0.15 - chalk: 4.1.2 - chokidar: 3.6.0 - cosmiconfig: 6.0.0 - deepmerge: 4.3.1 - fs-extra: 9.1.0 - glob: 7.2.3 - memfs: 3.5.3 - minimatch: 3.1.2 - schema-utils: 2.7.0 - semver: 7.7.1 - tapable: 1.1.3 - typescript: 5.8.2 - webpack: 5.98.0 - form-data-encoder@2.1.4: {} format@0.2.2: {} @@ -9477,13 +9798,6 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@9.1.0: - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.1 - fs-monkey@1.0.6: {} fs.realpath@1.0.0: {} @@ -9551,16 +9865,6 @@ snapshots: dependencies: ini: 2.0.0 - global-modules@2.0.0: - dependencies: - global-prefix: 3.0.0 - - global-prefix@3.0.0: - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - globals@11.12.0: {} globals@15.15.0: {} @@ -9775,7 +10079,7 @@ snapshots: html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.3(webpack@5.98.0): + html-webpack-plugin@5.6.3(@rspack/core@1.3.15)(webpack@5.98.0(@swc/core@1.12.0)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -9783,7 +10087,8 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.98.0 + '@rspack/core': 1.3.15 + webpack: 5.98.0(@swc/core@1.12.0) htmlparser2@6.1.0: dependencies: @@ -9855,17 +10160,13 @@ snapshots: dependencies: safer-buffer: 2.1.2 - icss-utils@5.1.0(postcss@8.5.3): + icss-utils@5.1.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 ignore@5.3.2: {} - image-size@1.2.0: - dependencies: - queue: 6.0.2 - - immer@9.0.21: {} + image-size@2.0.2: {} import-fresh@3.3.1: dependencies: @@ -9899,8 +10200,6 @@ snapshots: internmap@2.0.3: {} - interpret@1.4.0: {} - invariant@2.2.4: dependencies: loose-envify: 1.4.0 @@ -9959,8 +10258,6 @@ snapshots: is-obj@2.0.0: {} - is-path-cwd@2.2.0: {} - is-path-inside@3.0.3: {} is-plain-obj@3.0.0: {} @@ -9973,8 +10270,6 @@ snapshots: is-regexp@1.0.0: {} - is-root@2.1.0: {} - is-stream@2.0.1: {} is-typedarray@1.0.0: {} @@ -10078,7 +10373,7 @@ snapshots: kolorist@1.8.0: {} - langium@3.0.0: + langium@3.3.1: dependencies: chevrotain: 11.0.3 chevrotain-allstar: 0.3.1(chevrotain@11.0.3) @@ -10101,6 +10396,51 @@ snapshots: leven@3.1.0: {} + lightningcss-darwin-arm64@1.30.1: + optional: true + + lightningcss-darwin-x64@1.30.1: + optional: true + + lightningcss-freebsd-x64@1.30.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.30.1: + optional: true + + lightningcss-linux-arm64-gnu@1.30.1: + optional: true + + lightningcss-linux-arm64-musl@1.30.1: + optional: true + + lightningcss-linux-x64-gnu@1.30.1: + optional: true + + lightningcss-linux-x64-musl@1.30.1: + optional: true + + lightningcss-win32-arm64-msvc@1.30.1: + optional: true + + lightningcss-win32-x64-msvc@1.30.1: + optional: true + + lightningcss@1.30.1: + dependencies: + detect-libc: 2.0.4 + optionalDependencies: + lightningcss-darwin-arm64: 1.30.1 + lightningcss-darwin-x64: 1.30.1 + lightningcss-freebsd-x64: 1.30.1 + lightningcss-linux-arm-gnueabihf: 1.30.1 + lightningcss-linux-arm64-gnu: 1.30.1 + lightningcss-linux-arm64-musl: 1.30.1 + lightningcss-linux-x64-gnu: 1.30.1 + lightningcss-linux-x64-musl: 1.30.1 + lightningcss-win32-arm64-msvc: 1.30.1 + lightningcss-win32-x64-msvc: 1.30.1 + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -10113,23 +10453,12 @@ snapshots: emojis-list: 3.0.0 json5: 2.2.3 - loader-utils@3.3.1: {} - local-pkg@1.1.1: dependencies: mlly: 1.7.4 pkg-types: 2.1.0 quansync: 0.2.10 - locate-path@3.0.0: - dependencies: - p-locate: 3.0.0 - path-exists: 3.0.0 - - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - locate-path@7.2.0: dependencies: p-locate: 6.0.0 @@ -10378,11 +10707,11 @@ snapshots: merge2@1.4.1: {} - mermaid@11.5.0: + mermaid@11.6.0: dependencies: '@braintree/sanitize-url': 7.1.1 '@iconify/utils': 2.3.0 - '@mermaid-js/parser': 0.3.0 + '@mermaid-js/parser': 0.4.0 '@types/d3': 7.4.3 cytoscape: 3.31.1 cytoscape-cose-bilkent: 4.1.0(cytoscape@3.31.1) @@ -10729,11 +11058,11 @@ snapshots: mimic-response@4.0.0: {} - mini-css-extract-plugin@2.9.2(webpack@5.98.0): + mini-css-extract-plugin@2.9.2(webpack@5.98.0(@swc/core@1.12.0)): dependencies: schema-utils: 4.3.0 tapable: 2.2.1 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) minimalistic-assert@1.0.1: {} @@ -10813,11 +11142,11 @@ snapshots: dependencies: boolbase: 1.0.0 - null-loader@4.0.1(webpack@5.98.0): + null-loader@4.0.1(webpack@5.98.0(@swc/core@1.12.0)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) object-assign@4.1.1: {} @@ -10862,26 +11191,12 @@ snapshots: p-cancelable@3.0.0: {} - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 + p-finally@1.0.0: {} p-limit@4.0.0: dependencies: yocto-queue: 1.2.0 - p-locate@3.0.0: - dependencies: - p-limit: 2.3.0 - - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - p-locate@6.0.0: dependencies: p-limit: 4.0.0 @@ -10890,12 +11205,19 @@ snapshots: dependencies: aggregate-error: 3.1.0 + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + p-retry@4.6.2: dependencies: '@types/retry': 0.12.0 retry: 0.13.1 - p-try@2.2.0: {} + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 package-json-from-dist@1.0.1: {} @@ -10956,10 +11278,6 @@ snapshots: path-data-parser@0.1.0: {} - path-exists@3.0.0: {} - - path-exists@4.0.0: {} - path-exists@5.0.0: {} path-is-absolute@1.0.1: {} @@ -11011,10 +11329,6 @@ snapshots: exsolve: 1.0.4 pathe: 2.0.3 - pkg-up@3.1.0: - dependencies: - find-up: 3.0.0 - points-on-curve@0.2.0: {} points-on-path@0.2.1: @@ -11022,423 +11336,424 @@ snapshots: path-data-parser: 0.1.0 points-on-curve: 0.2.0 - postcss-attribute-case-insensitive@7.0.1(postcss@8.5.3): + postcss-attribute-case-insensitive@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-calc@9.0.1(postcss@8.5.3): + postcss-calc@9.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 6.1.2 postcss-value-parser: 4.2.0 - postcss-clamp@4.1.0(postcss@8.5.3): + postcss-clamp@4.1.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-color-functional-notation@7.0.8(postcss@8.5.3): + postcss-color-functional-notation@7.0.10(postcss@8.5.4): dependencies: - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - postcss-color-hex-alpha@10.0.0(postcss@8.5.3): + postcss-color-hex-alpha@10.0.0(postcss@8.5.4): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-color-rebeccapurple@10.0.0(postcss@8.5.3): + postcss-color-rebeccapurple@10.0.0(postcss@8.5.4): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-colormin@6.1.0(postcss@8.5.3): + postcss-colormin@6.1.0(postcss@8.5.4): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-convert-values@6.1.0(postcss@8.5.3): + postcss-convert-values@6.1.0(postcss@8.5.4): dependencies: browserslist: 4.24.4 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-custom-media@11.0.5(postcss@8.5.3): + postcss-custom-media@11.0.6(postcss@8.5.4): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/media-query-list-parser': 4.0.2(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - postcss: 8.5.3 + '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 4.0.3(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + postcss: 8.5.4 - postcss-custom-properties@14.0.4(postcss@8.5.3): + postcss-custom-properties@14.0.6(postcss@8.5.4): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-custom-selectors@8.0.4(postcss@8.5.3): + postcss-custom-selectors@8.0.5(postcss@8.5.4): dependencies: - '@csstools/cascade-layer-name-parser': 2.0.4(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - postcss: 8.5.3 + '@csstools/cascade-layer-name-parser': 2.0.5(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-dir-pseudo-class@9.0.1(postcss@8.5.3): + postcss-dir-pseudo-class@9.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-discard-comments@6.0.2(postcss@8.5.3): + postcss-discard-comments@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-discard-duplicates@6.0.3(postcss@8.5.3): + postcss-discard-duplicates@6.0.3(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-discard-empty@6.0.3(postcss@8.5.3): + postcss-discard-empty@6.0.3(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-discard-overridden@6.0.2(postcss@8.5.3): + postcss-discard-overridden@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-discard-unused@6.0.5(postcss@8.5.3): + postcss-discard-unused@6.0.5(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 6.1.2 - postcss-double-position-gradients@6.0.0(postcss@8.5.3): + postcss-double-position-gradients@6.0.2(postcss@8.5.4): dependencies: - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-focus-visible@10.0.1(postcss@8.5.3): + postcss-focus-visible@10.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-focus-within@9.0.1(postcss@8.5.3): + postcss-focus-within@9.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-font-variant@5.0.0(postcss@8.5.3): + postcss-font-variant@5.0.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-gap-properties@6.0.0(postcss@8.5.3): + postcss-gap-properties@6.0.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-image-set-function@7.0.0(postcss@8.5.3): + postcss-image-set-function@7.0.0(postcss@8.5.4): dependencies: - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-import@15.1.0(postcss@8.5.3): + postcss-import@15.1.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.5.3): + postcss-js@4.0.1(postcss@8.5.4): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.3 + postcss: 8.5.4 - postcss-lab-function@7.0.8(postcss@8.5.3): + postcss-lab-function@7.0.10(postcss@8.5.4): dependencies: - '@csstools/css-color-parser': 3.0.8(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) - '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) - '@csstools/css-tokenizer': 3.0.3 - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/utilities': 2.0.0(postcss@8.5.3) - postcss: 8.5.3 + '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/utilities': 2.0.0(postcss@8.5.4) + postcss: 8.5.4 - postcss-load-config@4.0.2(postcss@8.5.3): + postcss-load-config@4.0.2(postcss@8.5.4): dependencies: lilconfig: 3.1.3 yaml: 2.7.0 optionalDependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-loader@7.3.4(postcss@8.5.3)(typescript@5.8.2)(webpack@5.98.0): + postcss-loader@7.3.4(postcss@8.5.4)(typescript@5.8.3)(webpack@5.98.0(@swc/core@1.12.0)): dependencies: - cosmiconfig: 8.3.6(typescript@5.8.2) + cosmiconfig: 8.3.6(typescript@5.8.3) jiti: 1.21.7 - postcss: 8.5.3 + postcss: 8.5.4 semver: 7.7.1 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) transitivePeerDependencies: - typescript - postcss-logical@8.1.0(postcss@8.5.3): + postcss-logical@8.1.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-merge-idents@6.0.3(postcss@8.5.3): + postcss-merge-idents@6.0.3(postcss@8.5.4): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 4.0.2(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-merge-longhand@6.0.5(postcss@8.5.3): + postcss-merge-longhand@6.0.5(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - stylehacks: 6.1.1(postcss@8.5.3) + stylehacks: 6.1.1(postcss@8.5.4) - postcss-merge-rules@6.1.1(postcss@8.5.3): + postcss-merge-rules@6.1.1(postcss@8.5.4): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 - cssnano-utils: 4.0.2(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 4.0.2(postcss@8.5.4) + postcss: 8.5.4 postcss-selector-parser: 6.1.2 - postcss-minify-font-values@6.1.0(postcss@8.5.3): + postcss-minify-font-values@6.1.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-minify-gradients@6.0.3(postcss@8.5.3): + postcss-minify-gradients@6.0.3(postcss@8.5.4): dependencies: colord: 2.9.3 - cssnano-utils: 4.0.2(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 4.0.2(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-minify-params@6.1.0(postcss@8.5.3): + postcss-minify-params@6.1.0(postcss@8.5.4): dependencies: browserslist: 4.24.4 - cssnano-utils: 4.0.2(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 4.0.2(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-minify-selectors@6.0.4(postcss@8.5.3): + postcss-minify-selectors@6.0.4(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 6.1.2 - postcss-modules-extract-imports@3.1.0(postcss@8.5.3): + postcss-modules-extract-imports@3.1.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-modules-local-by-default@4.2.0(postcss@8.5.3): + postcss-modules-local-by-default@4.2.0(postcss@8.5.4): dependencies: - icss-utils: 5.1.0(postcss@8.5.3) - postcss: 8.5.3 + icss-utils: 5.1.0(postcss@8.5.4) + postcss: 8.5.4 postcss-selector-parser: 7.1.0 postcss-value-parser: 4.2.0 - postcss-modules-scope@3.2.1(postcss@8.5.3): + postcss-modules-scope@3.2.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-modules-values@4.0.0(postcss@8.5.3): + postcss-modules-values@4.0.0(postcss@8.5.4): dependencies: - icss-utils: 5.1.0(postcss@8.5.3) - postcss: 8.5.3 + icss-utils: 5.1.0(postcss@8.5.4) + postcss: 8.5.4 - postcss-nested@6.2.0(postcss@8.5.3): + postcss-nested@6.2.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 6.1.2 - postcss-nesting@13.0.1(postcss@8.5.3): + postcss-nesting@13.0.2(postcss@8.5.4): dependencies: - '@csstools/selector-resolve-nested': 3.0.0(postcss-selector-parser@7.1.0) + '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0) '@csstools/selector-specificity': 5.0.0(postcss-selector-parser@7.1.0) - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-normalize-charset@6.0.2(postcss@8.5.3): + postcss-normalize-charset@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-normalize-display-values@6.0.2(postcss@8.5.3): + postcss-normalize-display-values@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-positions@6.0.2(postcss@8.5.3): + postcss-normalize-positions@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@6.0.2(postcss@8.5.3): + postcss-normalize-repeat-style@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-string@6.0.2(postcss@8.5.3): + postcss-normalize-string@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@6.0.2(postcss@8.5.3): + postcss-normalize-timing-functions@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@6.1.0(postcss@8.5.3): + postcss-normalize-unicode@6.1.0(postcss@8.5.4): dependencies: browserslist: 4.24.4 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-url@6.0.2(postcss@8.5.3): + postcss-normalize-url@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@6.0.2(postcss@8.5.3): + postcss-normalize-whitespace@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-opacity-percentage@3.0.0(postcss@8.5.3): + postcss-opacity-percentage@3.0.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-ordered-values@6.0.2(postcss@8.5.3): + postcss-ordered-values@6.0.2(postcss@8.5.4): dependencies: - cssnano-utils: 4.0.2(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 4.0.2(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-overflow-shorthand@6.0.0(postcss@8.5.3): + postcss-overflow-shorthand@6.0.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-page-break@3.0.4(postcss@8.5.3): + postcss-page-break@3.0.4(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-place@10.0.0(postcss@8.5.3): + postcss-place@10.0.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-preset-env@10.1.5(postcss@8.5.3): - dependencies: - '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.3) - '@csstools/postcss-color-function': 4.0.8(postcss@8.5.3) - '@csstools/postcss-color-mix-function': 3.0.8(postcss@8.5.3) - '@csstools/postcss-content-alt-text': 2.0.4(postcss@8.5.3) - '@csstools/postcss-exponential-functions': 2.0.7(postcss@8.5.3) - '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.3) - '@csstools/postcss-gamut-mapping': 2.0.8(postcss@8.5.3) - '@csstools/postcss-gradients-interpolation-method': 5.0.8(postcss@8.5.3) - '@csstools/postcss-hwb-function': 4.0.8(postcss@8.5.3) - '@csstools/postcss-ic-unit': 4.0.0(postcss@8.5.3) - '@csstools/postcss-initial': 2.0.1(postcss@8.5.3) - '@csstools/postcss-is-pseudo-class': 5.0.1(postcss@8.5.3) - '@csstools/postcss-light-dark-function': 2.0.7(postcss@8.5.3) - '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.3) - '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.3) - '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.3) - '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.3) - '@csstools/postcss-logical-viewport-units': 3.0.3(postcss@8.5.3) - '@csstools/postcss-media-minmax': 2.0.7(postcss@8.5.3) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.4(postcss@8.5.3) - '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.3) - '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.3) - '@csstools/postcss-oklab-function': 4.0.8(postcss@8.5.3) - '@csstools/postcss-progressive-custom-properties': 4.0.0(postcss@8.5.3) - '@csstools/postcss-random-function': 1.0.3(postcss@8.5.3) - '@csstools/postcss-relative-color-syntax': 3.0.8(postcss@8.5.3) - '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.3) - '@csstools/postcss-sign-functions': 1.1.2(postcss@8.5.3) - '@csstools/postcss-stepped-value-functions': 4.0.7(postcss@8.5.3) - '@csstools/postcss-text-decoration-shorthand': 4.0.2(postcss@8.5.3) - '@csstools/postcss-trigonometric-functions': 4.0.7(postcss@8.5.3) - '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.3) - autoprefixer: 10.4.21(postcss@8.5.3) - browserslist: 4.24.4 - css-blank-pseudo: 7.0.1(postcss@8.5.3) - css-has-pseudo: 7.0.2(postcss@8.5.3) - css-prefers-color-scheme: 10.0.0(postcss@8.5.3) - cssdb: 8.2.4 - postcss: 8.5.3 - postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.3) - postcss-clamp: 4.1.0(postcss@8.5.3) - postcss-color-functional-notation: 7.0.8(postcss@8.5.3) - postcss-color-hex-alpha: 10.0.0(postcss@8.5.3) - postcss-color-rebeccapurple: 10.0.0(postcss@8.5.3) - postcss-custom-media: 11.0.5(postcss@8.5.3) - postcss-custom-properties: 14.0.4(postcss@8.5.3) - postcss-custom-selectors: 8.0.4(postcss@8.5.3) - postcss-dir-pseudo-class: 9.0.1(postcss@8.5.3) - postcss-double-position-gradients: 6.0.0(postcss@8.5.3) - postcss-focus-visible: 10.0.1(postcss@8.5.3) - postcss-focus-within: 9.0.1(postcss@8.5.3) - postcss-font-variant: 5.0.0(postcss@8.5.3) - postcss-gap-properties: 6.0.0(postcss@8.5.3) - postcss-image-set-function: 7.0.0(postcss@8.5.3) - postcss-lab-function: 7.0.8(postcss@8.5.3) - postcss-logical: 8.1.0(postcss@8.5.3) - postcss-nesting: 13.0.1(postcss@8.5.3) - postcss-opacity-percentage: 3.0.0(postcss@8.5.3) - postcss-overflow-shorthand: 6.0.0(postcss@8.5.3) - postcss-page-break: 3.0.4(postcss@8.5.3) - postcss-place: 10.0.0(postcss@8.5.3) - postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.3) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.3) - postcss-selector-not: 8.0.1(postcss@8.5.3) - - postcss-pseudo-class-any-link@10.0.1(postcss@8.5.3): - dependencies: - postcss: 8.5.3 + postcss-preset-env@10.2.3(postcss@8.5.4): + dependencies: + '@csstools/postcss-cascade-layers': 5.0.1(postcss@8.5.4) + '@csstools/postcss-color-function': 4.0.10(postcss@8.5.4) + '@csstools/postcss-color-mix-function': 3.0.10(postcss@8.5.4) + '@csstools/postcss-color-mix-variadic-function-arguments': 1.0.0(postcss@8.5.4) + '@csstools/postcss-content-alt-text': 2.0.6(postcss@8.5.4) + '@csstools/postcss-exponential-functions': 2.0.9(postcss@8.5.4) + '@csstools/postcss-font-format-keywords': 4.0.0(postcss@8.5.4) + '@csstools/postcss-gamut-mapping': 2.0.10(postcss@8.5.4) + '@csstools/postcss-gradients-interpolation-method': 5.0.10(postcss@8.5.4) + '@csstools/postcss-hwb-function': 4.0.10(postcss@8.5.4) + '@csstools/postcss-ic-unit': 4.0.2(postcss@8.5.4) + '@csstools/postcss-initial': 2.0.1(postcss@8.5.4) + '@csstools/postcss-is-pseudo-class': 5.0.3(postcss@8.5.4) + '@csstools/postcss-light-dark-function': 2.0.9(postcss@8.5.4) + '@csstools/postcss-logical-float-and-clear': 3.0.0(postcss@8.5.4) + '@csstools/postcss-logical-overflow': 2.0.0(postcss@8.5.4) + '@csstools/postcss-logical-overscroll-behavior': 2.0.0(postcss@8.5.4) + '@csstools/postcss-logical-resize': 3.0.0(postcss@8.5.4) + '@csstools/postcss-logical-viewport-units': 3.0.4(postcss@8.5.4) + '@csstools/postcss-media-minmax': 2.0.9(postcss@8.5.4) + '@csstools/postcss-media-queries-aspect-ratio-number-values': 3.0.5(postcss@8.5.4) + '@csstools/postcss-nested-calc': 4.0.0(postcss@8.5.4) + '@csstools/postcss-normalize-display-values': 4.0.0(postcss@8.5.4) + '@csstools/postcss-oklab-function': 4.0.10(postcss@8.5.4) + '@csstools/postcss-progressive-custom-properties': 4.1.0(postcss@8.5.4) + '@csstools/postcss-random-function': 2.0.1(postcss@8.5.4) + '@csstools/postcss-relative-color-syntax': 3.0.10(postcss@8.5.4) + '@csstools/postcss-scope-pseudo-class': 4.0.1(postcss@8.5.4) + '@csstools/postcss-sign-functions': 1.1.4(postcss@8.5.4) + '@csstools/postcss-stepped-value-functions': 4.0.9(postcss@8.5.4) + '@csstools/postcss-text-decoration-shorthand': 4.0.2(postcss@8.5.4) + '@csstools/postcss-trigonometric-functions': 4.0.9(postcss@8.5.4) + '@csstools/postcss-unset-value': 4.0.0(postcss@8.5.4) + autoprefixer: 10.4.21(postcss@8.5.4) + browserslist: 4.25.0 + css-blank-pseudo: 7.0.1(postcss@8.5.4) + css-has-pseudo: 7.0.2(postcss@8.5.4) + css-prefers-color-scheme: 10.0.0(postcss@8.5.4) + cssdb: 8.3.0 + postcss: 8.5.4 + postcss-attribute-case-insensitive: 7.0.1(postcss@8.5.4) + postcss-clamp: 4.1.0(postcss@8.5.4) + postcss-color-functional-notation: 7.0.10(postcss@8.5.4) + postcss-color-hex-alpha: 10.0.0(postcss@8.5.4) + postcss-color-rebeccapurple: 10.0.0(postcss@8.5.4) + postcss-custom-media: 11.0.6(postcss@8.5.4) + postcss-custom-properties: 14.0.6(postcss@8.5.4) + postcss-custom-selectors: 8.0.5(postcss@8.5.4) + postcss-dir-pseudo-class: 9.0.1(postcss@8.5.4) + postcss-double-position-gradients: 6.0.2(postcss@8.5.4) + postcss-focus-visible: 10.0.1(postcss@8.5.4) + postcss-focus-within: 9.0.1(postcss@8.5.4) + postcss-font-variant: 5.0.0(postcss@8.5.4) + postcss-gap-properties: 6.0.0(postcss@8.5.4) + postcss-image-set-function: 7.0.0(postcss@8.5.4) + postcss-lab-function: 7.0.10(postcss@8.5.4) + postcss-logical: 8.1.0(postcss@8.5.4) + postcss-nesting: 13.0.2(postcss@8.5.4) + postcss-opacity-percentage: 3.0.0(postcss@8.5.4) + postcss-overflow-shorthand: 6.0.0(postcss@8.5.4) + postcss-page-break: 3.0.4(postcss@8.5.4) + postcss-place: 10.0.0(postcss@8.5.4) + postcss-pseudo-class-any-link: 10.0.1(postcss@8.5.4) + postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.4) + postcss-selector-not: 8.0.1(postcss@8.5.4) + + postcss-pseudo-class-any-link@10.0.1(postcss@8.5.4): + dependencies: + postcss: 8.5.4 postcss-selector-parser: 7.1.0 - postcss-reduce-idents@6.0.3(postcss@8.5.3): + postcss-reduce-idents@6.0.3(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-reduce-initial@6.1.0(postcss@8.5.3): + postcss-reduce-initial@6.1.0(postcss@8.5.4): dependencies: browserslist: 4.24.4 caniuse-api: 3.0.0 - postcss: 8.5.3 + postcss: 8.5.4 - postcss-reduce-transforms@6.0.2(postcss@8.5.3): + postcss-reduce-transforms@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - postcss-replace-overflow-wrap@4.0.0(postcss@8.5.3): + postcss-replace-overflow-wrap@4.0.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss-selector-not@8.0.1(postcss@8.5.3): + postcss-selector-not@8.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.1.0 postcss-selector-parser@6.1.2: @@ -11451,29 +11766,29 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-sort-media-queries@5.2.0(postcss@8.5.3): + postcss-sort-media-queries@5.2.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 sort-css-media-queries: 2.2.0 - postcss-svgo@6.0.3(postcss@8.5.3): + postcss-svgo@6.0.3(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 svgo: 3.3.2 - postcss-unique-selectors@6.0.4(postcss@8.5.3): + postcss-unique-selectors@6.0.4(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 6.1.2 postcss-value-parser@4.2.0: {} - postcss-zindex@6.0.2(postcss@8.5.3): + postcss-zindex@6.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 - postcss@8.5.3: + postcss@8.5.4: dependencies: nanoid: 3.3.11 picocolors: 1.1.1 @@ -11534,10 +11849,6 @@ snapshots: queue-microtask@1.2.3: {} - queue@6.0.2: - dependencies: - inherits: 2.0.4 - quick-lru@5.1.1: {} randombytes@2.1.0: @@ -11562,60 +11873,24 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dev-utils@12.0.1(typescript@5.8.2)(webpack@5.98.0): - dependencies: - '@babel/code-frame': 7.26.2 - address: 1.2.2 - browserslist: 4.24.4 - chalk: 4.1.2 - cross-spawn: 7.0.6 - detect-port-alt: 1.1.6 - escape-string-regexp: 4.0.0 - filesize: 8.0.7 - find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(typescript@5.8.2)(webpack@5.98.0) - global-modules: 2.0.0 - globby: 11.1.0 - gzip-size: 6.0.0 - immer: 9.0.21 - is-root: 2.1.0 - loader-utils: 3.3.1 - open: 8.4.2 - pkg-up: 3.1.0 - prompts: 2.4.2 - react-error-overlay: 6.1.0 - recursive-readdir: 2.2.3 - shell-quote: 1.8.2 - strip-ansi: 6.0.1 - text-table: 0.2.0 - webpack: 5.98.0 - optionalDependencies: - typescript: 5.8.2 - transitivePeerDependencies: - - eslint - - supports-color - - vue-template-compiler - react-dom@19.0.0(react@19.0.0): dependencies: react: 19.0.0 scheduler: 0.25.0 - react-error-overlay@6.1.0: {} - react-fast-compare@3.2.2: {} react-is@16.13.1: {} - react-json-view-lite@1.5.0(react@19.0.0): + react-json-view-lite@2.4.1(react@19.0.0): dependencies: react: 19.0.0 - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.0.0))(webpack@5.98.0): + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@19.0.0))(webpack@5.98.0(@swc/core@1.12.0)): dependencies: '@babel/runtime': 7.26.10 react-loadable: '@docusaurus/react-loadable@6.0.0(react@19.0.0)' - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) react-router-config@5.1.1(react-router@5.3.4(react@19.0.0))(react@19.0.0): dependencies: @@ -11673,12 +11948,6 @@ snapshots: dependencies: picomatch: 2.3.1 - reading-time@1.5.0: {} - - rechoir@0.6.2: - dependencies: - resolve: 1.22.10 - recma-build-jsx@1.0.0: dependencies: '@types/estree': 1.0.6 @@ -11709,10 +11978,6 @@ snapshots: unified: 11.0.5 vfile: 6.0.3 - recursive-readdir@2.2.3: - dependencies: - minimatch: 3.1.2 - regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 @@ -11884,7 +12149,7 @@ snapshots: dependencies: escalade: 3.2.0 picocolors: 1.1.1 - postcss: 8.5.3 + postcss: 8.5.4 strip-json-comments: 3.1.1 run-parallel@1.2.0: @@ -11903,11 +12168,7 @@ snapshots: scheduler@0.25.0: {} - schema-utils@2.7.0: - dependencies: - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) + schema-dts@1.1.5: {} schema-utils@3.3.0: dependencies: @@ -12024,12 +12285,6 @@ snapshots: shell-quote@1.8.2: {} - shelljs@0.8.5: - dependencies: - glob: 7.2.3 - interpret: 1.4.0 - rechoir: 0.6.2 - side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -12197,10 +12452,10 @@ snapshots: dependencies: inline-style-parser: 0.2.4 - stylehacks@6.1.1(postcss@8.5.3): + stylehacks@6.1.1(postcss@8.5.4): dependencies: browserslist: 4.24.4 - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 6.1.2 stylis@4.3.6: {} @@ -12237,6 +12492,12 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 + swc-loader@0.2.6(@swc/core@1.12.0)(webpack@5.98.0(@swc/core@1.12.0)): + dependencies: + '@swc/core': 1.12.0 + '@swc/counter': 0.1.3 + webpack: 5.98.0(@swc/core@1.12.0) + tailwindcss@3.4.17: dependencies: '@alloc/quick-lru': 5.2.0 @@ -12253,29 +12514,29 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.3 - postcss-import: 15.1.0(postcss@8.5.3) - postcss-js: 4.0.1(postcss@8.5.3) - postcss-load-config: 4.0.2(postcss@8.5.3) - postcss-nested: 6.2.0(postcss@8.5.3) + postcss: 8.5.4 + postcss-import: 15.1.0(postcss@8.5.4) + postcss-js: 4.0.1(postcss@8.5.4) + postcss-load-config: 4.0.2(postcss@8.5.4) + postcss-nested: 6.2.0(postcss@8.5.4) postcss-selector-parser: 6.1.2 resolve: 1.22.10 sucrase: 3.35.0 transitivePeerDependencies: - ts-node - tapable@1.1.3: {} - tapable@2.2.1: {} - terser-webpack-plugin@5.3.14(webpack@5.98.0): + terser-webpack-plugin@5.3.14(@swc/core@1.12.0)(webpack@5.98.0(@swc/core@1.12.0)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 4.3.0 serialize-javascript: 6.0.2 terser: 5.39.0 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) + optionalDependencies: + '@swc/core': 1.12.0 terser@5.39.0: dependencies: @@ -12284,8 +12545,6 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - text-table@0.2.0: {} - thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -12302,6 +12561,8 @@ snapshots: tinyexec@0.3.2: {} + tinypool@1.1.0: {} + to-regex-range@5.0.1: dependencies: is-number: 7.0.0 @@ -12335,7 +12596,7 @@ snapshots: dependencies: is-typedarray: 1.0.0 - typescript@5.8.2: {} + typescript@5.8.3: {} ufo@1.5.4: {} @@ -12405,6 +12666,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.1.3(browserslist@4.25.0): + dependencies: + browserslist: 4.25.0 + escalade: 3.2.0 + picocolors: 1.1.1 + update-notifier@6.0.2: dependencies: boxen: 7.1.1 @@ -12426,14 +12693,14 @@ snapshots: dependencies: punycode: 2.3.1 - url-loader@4.1.1(file-loader@6.2.0(webpack@5.98.0))(webpack@5.98.0): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.98.0(@swc/core@1.12.0)))(webpack@5.98.0(@swc/core@1.12.0)): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) optionalDependencies: - file-loader: 6.2.0(webpack@5.98.0) + file-loader: 6.2.0(webpack@5.98.0(@swc/core@1.12.0)) util-deprecate@1.0.2: {} @@ -12512,16 +12779,16 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@5.3.4(webpack@5.98.0): + webpack-dev-middleware@5.3.4(webpack@5.98.0(@swc/core@1.12.0)): dependencies: colorette: 2.0.20 memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.3.0 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) - webpack-dev-server@4.15.2(webpack@5.98.0): + webpack-dev-server@4.15.2(webpack@5.98.0(@swc/core@1.12.0)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -12551,10 +12818,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.98.0) + webpack-dev-middleware: 5.3.4(webpack@5.98.0(@swc/core@1.12.0)) ws: 8.18.1 optionalDependencies: - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) transitivePeerDependencies: - bufferutil - debug @@ -12575,7 +12842,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.98.0: + webpack@5.98.0(@swc/core@1.12.0): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.6 @@ -12597,7 +12864,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.14(webpack@5.98.0) + terser-webpack-plugin: 5.3.14(@swc/core@1.12.0)(webpack@5.98.0(@swc/core@1.12.0)) watchpack: 2.4.2 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -12605,7 +12872,7 @@ snapshots: - esbuild - uglify-js - webpackbar@6.0.1(webpack@5.98.0): + webpackbar@6.0.1(webpack@5.98.0(@swc/core@1.12.0)): dependencies: ansi-escapes: 4.3.2 chalk: 4.1.2 @@ -12614,7 +12881,7 @@ snapshots: markdown-table: 2.0.0 pretty-time: 1.1.0 std-env: 3.8.1 - webpack: 5.98.0 + webpack: 5.98.0(@swc/core@1.12.0) wrap-ansi: 7.0.0 websocket-driver@0.7.4: @@ -12625,10 +12892,6 @@ snapshots: websocket-extensions@0.1.4: {} - which@1.3.1: - dependencies: - isexe: 2.0.0 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -12672,12 +12935,8 @@ snapshots: yallist@3.1.1: {} - yaml@1.10.2: {} - yaml@2.7.0: {} - yocto-queue@0.1.0: {} - yocto-queue@1.2.0: {} zwitch@2.0.4: {} diff --git a/src/components/homeCatalogue/catalogue.ts b/src/components/homeCatalogue/catalogue.ts index 052b58c8e..918ab6dd2 100644 --- a/src/components/homeCatalogue/catalogue.ts +++ b/src/components/homeCatalogue/catalogue.ts @@ -54,12 +54,12 @@ export const CATALOGUE = (local: string) => [ }, ...(local === 'zh' ? [ - { docLink: '/category/extensions', title: translate({ id: 'home.catalogue.extensions', message: '插件' }) }, - { - docLink: '/viz/message-schemas', - title: translate({ id: 'home.catalogue.message-schemas', message: '消息架构' }), - }, - ] + { docLink: '/category/extensions', title: translate({ id: 'home.catalogue.extensions', message: '插件' }) }, + { + docLink: '/viz/message-schemas', + title: translate({ id: 'home.catalogue.message-schemas', message: '消息架构' }), + }, + ] : []), ], }, @@ -77,7 +77,7 @@ export const CATALOGUE = (local: string) => [ }, { docLink: '/device/device-collector', - title: translate({ id: 'home.catalogue.device-collector', message: '数采客户端配置' }), + title: translate({ id: 'home.catalogue.device-collector', message: '设备配置' }), }, { docLink: '/device/device-remote-control', @@ -133,10 +133,18 @@ export const CATALOGUE = (local: string) => [ docLink: '/use-case/automated-data-processing', title: translate({ id: 'home.catalogue.automated-data-processing', message: '自动化处理数据' }), }, + { + docLink: '/use-case/online-simulation-test', + title: translate({ id: 'home.catalogue.online-simulation-test', message: '云端仿真自动化算法验证' }), + }, { docLink: '/category/data-collection-and-diagnosis', title: translate({ id: 'home.catalogue.data-collection-and-diagnosis', message: '数据自动采集与诊断' }), }, + { + docLink: '/use-case/heterogeneous-robot-data-factory', + title: translate({ id: 'home.catalogue.embodied-intelligence-data-collection-solution', message: '异构机器人数据采集工厂接入' }), + }, ], }, { diff --git a/src/pages/changelog.md b/src/pages/changelog.md index ba4a7d51e..5a179e3e7 100644 --- a/src/pages/changelog.md +++ b/src/pages/changelog.md @@ -5,6 +5,97 @@ id: changelog # 发布历史 +## [25.24.0] - 2025-6-13 + +### 【新增】 + +- 新增「局域网实时可视化」功能:[coStudio](https://www.coscene.cn/download) 支持自动探测局域网连接,可使用本地网络传输数据,降低实时可视化延迟(需设备与客户端在同一局域网)。 +- 新增「项目通用资源管理」功能: + - 在项目「通用资源」页面,可上传 URDF、TF、地图等配置文件 + - 可视化播放时,在三维面板中可直接调用通用资源中的 URDF 模型 +- 新增「多选类型字段」功能:在组织设置中定义全局自定义字段时,支持配置多选类型的字段 +- 新增「被关联任务」功能:在任务详情页,可查看当前任务被其他任务关联的情况 + +### 【改进】 + +- 改进「自定义字段过滤」功能:支持对数值、多选、时间、人员类型字段进行过滤 +- 改进「数据采集面板」功能:采集日志支持滚动播放 + +--- + +## [25.22.0] - 2025-5-30 + +### 【新增】 + +- 新增自动化触发机制: + - 新增触发条件:当记录变更时/当通用任务变更时 + - 支持通过触发器自动创建通用任务 +- 新增 HDF5 与 MCAP 格式互转动作:可调用系统动作,将 HDF5 转为 MCAP,或将 MCAP 转为 HDF5 +- 新增自动化动作模板变量 + - 在自动化的动作中,支持将设备 ID、设备名称、任务创建时间作为 HTTP 请求步骤的变量,即:`{{device.id}}`、`{{device.display_name}}`、`{{task.create_time}}` +- 新增实时采集数据功能:可视化页面新增「数据采集」面板,支持数据的实时采集 +- 新增用户角色: + - 新增组织级「外部人员」角色(仅限访问已加入的项目) + - 新增项目级角色:采集员,标注员,审核员 +- 新增「批量测试审计」功能: + - 在组织管理-审计页面,支持筛选批量测试的审计事件:下载测试程序、下载 Artifact、下载测试输出事件 + +### 【改进】 + +- 改进字段管理功能: + - 支持在组织设置中配置全局自定义字段,可应用于设备、记录、任务及一刻场景 +- 改进任务管理功能: + - 通用任务页面支持快速创建任务 + - 支持在任务中关联设备与任务 +- 优化设备注册流程:在项目设备页面,可直接复制命令将设备注册并添加到项目中 + +### 【修复】 + +- 修复示例项目创建未记录审计日志的问题 +- 修复长文本日志预览时的显示重叠问题 + +--- + +## [25.18.0] - 2025-4-28 + +### 【新增】 + +- 新增可视化插件,支持在可视化界面自定义面板。详见[可视化插件文档](/docs/viz/extensions/introduction) +- 新增批量测试输出中子文件夹内文件的播放功能 + +### 【改进】 + +- 改进预览文件功能,支持上下左右移动图片 +- 改进个人令牌有效期设置,支持 1 天、360 天 +- 改进 coCLI 功能,支持下载记录中的一刻文件 + +### 【修复】 + +- 修复批量测试输出中 .active 文件无法播放的问题 +- 修复 bag 文件提取地图、提取静态坐标生成的文件未带文件格式的问题 +- 修复个人用户切换组织时 cookie 仅 1 天就过期的问题,修改为 30 天过期 + +--- + +## [25.15.0] - 2025-4-10 + +### 【新增】 + +- 新增多级订阅方案:支持免费版、入门版、团队版、企业版等不同[订阅方案](https://www.coscene.cn/pricing) +- 新增公开项目复制功能:支持登录用户复制公开项目至所属组织 + +### 【改进】 + +- 优化设备准入流程,合并操作为: + - 启用客户端:同时准入数采与远程 + - 关闭客户端:同时停用数采与远程 + +### 【修复】 + +- 修复设备注册时从文件读取设备 ID 的兼容性问题(现支持纯数字格式) + +--- + ## [25.12.0] - 2025-3-19 ### 【新增】 diff --git a/tailwind.plugin.js b/tailwind.plugin.js new file mode 100644 index 000000000..577700c93 --- /dev/null +++ b/tailwind.plugin.js @@ -0,0 +1,12 @@ +// tailwind-plugin.js +module.exports = async function myPlugin(context, options) { + return { + name: 'docusaurus-tailwindcss', + configurePostCss(postcssOptions) { + // Appends TailwindCSS and AutoPrefixer. + postcssOptions.plugins.push(require('tailwindcss')); + postcssOptions.plugins.push(require('autoprefixer')); + return postcssOptions; + }, + }; +};