| @@ -0,0 +1,29 @@ | |||
| import { useEffect, useLayoutEffect } from "react"; | |||
| import { useLocation } from "rspress/runtime"; | |||
| export default function PluginTongji() { | |||
| const { pathname } = useLocation(); | |||
| // useEffect(() => { | |||
| // setTimeout(() => { | |||
| // console.log(pathname); | |||
| // }, 0); | |||
| // }, [pathname]); | |||
| useLayoutEffect(() => { | |||
| // const script = document.createElement("script"); | |||
| // script.src = "https://hm.baidu.com/hm.js?bad2b636058313c698986f4096bb5742"; | |||
| // script.async = true; | |||
| // document.body.appendChild(script); | |||
| // return () => { | |||
| // document.body.removeChild(script); | |||
| // }; | |||
| // console.log(pathname); | |||
| if (typeof _hmt !== 'undefined') { | |||
| _hmt.push(['_trackPageview', pathname]); | |||
| } | |||
| }, [pathname]); | |||
| return null; | |||
| } | |||
| @@ -48,3 +48,4 @@ sidebar: false | |||
| * 新兴且活跃: 作为一个较新的项目,`dora-rs` 的中文社区虽然不像 ROS 等成熟框架那样庞大,但活跃度高,且与项目发展紧密相连。随着具身智能(Embodied AI)和人工智能应用的普及,这个社区有望快速成长。 | |||
| `dora-rs` 中文社区是一个充满活力、正在快速成长的开发者群体。如果你对机器人、`AI` 和高性能系统开发充满热情,现在正是加入并共同塑造其未来的好时机。 | |||
| @@ -430,3 +430,4 @@ Dora yolov8 目标检测示例代码:https://pan.baidu.com/s/1uXXjFkpgeT_iHdNJ | |||
| ```bash | |||
| $ pip install numpy opencv-python pyarrow ultralytics | |||
| ``` | |||
| @@ -37,3 +37,4 @@ | |||
| ## `dora-rs`流程图 | |||
|  | |||
| @@ -9,54 +9,54 @@ import { Tab, Tabs } from 'rspress/theme'; | |||
| 在命令行中运行以下命令 (不要带上 `$` 符号): | |||
| <Tabs> | |||
| <Tab label="pip"> | |||
| ```py | |||
| $ pip install dora-rs-cli | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Linux"> | |||
| ```bash | |||
| $ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dora-rs/dora/releases/latest/download/dora-cli-installer.sh | sh | |||
| ``` | |||
| </Tab> | |||
| <Tab label="macOS"> | |||
| ```bash | |||
| $ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dora-rs/dora/releases/latest/download/dora-cli-installer.sh | sh | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Windows"> | |||
| ```bash | |||
| PS C:\> powershell -ExecutionPolicy ByPass -c "irm https://github.com/dora-rs/dorareleases/latest/download/dora-cli-installer.ps1 | iex" | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Cargo"> | |||
| ```bash | |||
| $ cargo install dora-cli # In case of issues, try: `--locked` | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Docker"> | |||
| * pull | |||
| ```bash | |||
| $ docker pull ghcr.io/dora-rs/dora-slim | |||
| ``` | |||
| * run | |||
| ```bash | |||
| $ docker run ghcr.io/dora-rs/dora-slim dora --help | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Source"> | |||
| 1. 安装`Rust`,详细参考:[https://echoli.cn/getting-started/install.html](https://echoli.cn/getting-started/install.html) | |||
| 2. 克隆源码和编译 | |||
| ```bash | |||
| $ git clone https://github.com/dora-rs/dora | |||
| $ cd dora | |||
| $ cargo build --release -p dora-cli | |||
| # 在 `target\release` 目录下找到 `dora` 可执行文件,放在系统环境目录中 | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Download"> | |||
| [下载地址](https://github.com/dora-rs/dora/releases/latest) 直接下载当前系统的版本即可 | |||
| </Tab> | |||
| <Tab label="pip"> | |||
| ```py | |||
| $ pip install dora-rs-cli | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Linux"> | |||
| ```bash | |||
| $ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dora-rs/dora/releases/latest/download/dora-cli-installer.sh | sh | |||
| ``` | |||
| </Tab> | |||
| <Tab label="macOS"> | |||
| ```bash | |||
| $ curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dora-rs/dora/releases/latest/download/dora-cli-installer.sh | sh | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Windows"> | |||
| ```bash | |||
| PS C:\> powershell -ExecutionPolicy ByPass -c "irm https://github.com/dora-rs/dorareleases/latest/download/dora-cli-installer.ps1 | iex" | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Cargo"> | |||
| ```bash | |||
| $ cargo install dora-cli # In case of issues, try: `--locked` | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Docker"> | |||
| * pull | |||
| ```bash | |||
| $ docker pull ghcr.io/dora-rs/dora-slim | |||
| ``` | |||
| * run | |||
| ```bash | |||
| $ docker run ghcr.io/dora-rs/dora-slim dora --help | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Source"> | |||
| 1. 安装`Rust`,详细参考:[https://echoli.cn/getting-started/install.html](https://echoli.cn/getting-started/install.html) | |||
| 2. 克隆源码和编译 | |||
| ```bash | |||
| $ git clone https://github.com/dora-rs/dora | |||
| $ cd dora | |||
| $ cargo build --release -p dora-cli | |||
| # 在 `target\release` 目录下找到 `dora` 可执行文件,放在系统环境目录中 | |||
| ``` | |||
| </Tab> | |||
| <Tab label="Download"> | |||
| [下载地址](https://github.com/dora-rs/dora/releases/latest) 直接下载当前系统的版本即可 | |||
| </Tab> | |||
| </Tabs> | |||
| ## 运行`dora` | |||
| @@ -1,4 +1,4 @@ | |||
| # API 绑定 | |||
| # 多语言支持:API 绑定 | |||
| 作者: [李扬](https://echoli.cn) | |||
| @@ -4,7 +4,7 @@ | |||
| 欢迎回到 `dora` 教程!在[事件流](./event-stream)中,我们学习了节点和操作符通过事件流接收信息,包括携带数据的 INPUT 事件。但是,这些数据在事件内部是什么样的? `dora` 又是如何高效地传输这些数据的,尤其是对于图像或传感器读数等大数据项? | |||
| 本章深入探讨 `dora` 数据处理的核心: **`数据消息`** 及其对 **`Apache Arrow`** 格式的使用。 | |||
| 本章深入探讨 `dora` 数据处理的核心: **`数据信息`** 及其对 **`Apache Arrow`** 格式的使用。 | |||
| ## 对速度的需求:处理大数据 | |||
| @@ -17,9 +17,9 @@ | |||
| 我们需要一种以最小的开销在进程之间共享或移动这些数据的方法。 | |||
| ## 数据消息和 `Apache Arrow` | |||
| ## 数据信息和 `Apache Arrow` | |||
| 在 `dora` 中,当数据到达输入时,它是 `INPUT` 事件的一部分, `dora` 实际的数据有效负载被包装在数据消息中。`dora` 使用称为 `Apache Arrow` 的强大标准来表示大多数数据消息中的数据。 | |||
| 在 `dora` 中,当数据到达输入时,它是 `INPUT` 事件的一部分, `dora` 实际的数据有效负载被包装在数据信息中。`dora` 使用称为 `Apache Arrow` 的强大标准来表示大多数数据信息中的数据。 | |||
| `Apache Arrow` 是一种高度优化、标准化的内存数据组织方式。`Arrow` 并非只是提供每个人都必须以不同方式解释的原始字节流,而是为数字列表、数组、表等常见数据类型提供了定义的结构。 | |||
| @@ -80,7 +80,7 @@ for event in node: | |||
| 对于较大的数据有效载荷(超过一定的大小阈值,由核心代码中的 `ZERO_COPY_THRESHOLD` 定义,当前为 4KB), `dora` 使用共享内存 。 | |||
| 以下是 `节点A` 向 `节点B` 发送大数据消息时的简化流程: | |||
| 以下是 `节点A` 向 `节点B` 发送大数据信息时的简化流程: | |||
| 1. `节点 A` 以 `Apache Arrow` 格式准备数据。 | |||
| 2. `节点 A` 告诉 `dora 运行时`(通过控制通道)它想要在特定的输出上发送该数据。 | |||
| @@ -94,7 +94,7 @@ for event in node: | |||
|  | |||
| 这种从共享内存直接读取(“零拷贝”)的方式使得 `dora` 能够快速传输大量数据消息,因为数据本身不需要序列化、通过管道发送,也不需要由接收进程反序列化。 | |||
| 这种从共享内存直接读取(“零拷贝”)的方式使得 `dora` 能够快速传输大量数据信息,因为数据本身不需要序列化、通过管道发送,也不需要由接收进程反序列化。 | |||
| 对于小数据有效载荷(低于 `ZERO_COPY_THRESHOLD` ),数据可能会直接在消息本身内发送(例如,通过通信管道复制),因为设置共享内存的开销可能大于复制小数据的成本。 | |||
| @@ -122,6 +122,6 @@ for event in node: | |||
| ## 总结 | |||
| 在本章中,我们了解到 `dora` 中的数据是通过 `INPUT` 数据消息在节点和算子之间传递的。为了实现高性能,尤其是在处理大数据量时, `dora` 主要使用 `Apache Arrow` 格式,并利用共享内存在进程间实现零拷贝数据传输。这意味着接收节点可以直接从发送节点写入的同一内存位置读取数据。`Drop Token` 机制确保此共享内存得到安全管理,并且仅在所有接收节点都处理完数据后才会释放。理解这些概念是理解 `dora` 在实时数据管道中性能特征的关键。 | |||
| 在本章中,我们了解到 `dora` 中的数据是通过 `INPUT` 数据信息在节点和算子之间传递的。为了实现高性能,尤其是在处理大数据量时, `dora` 主要使用 `Apache Arrow` 格式,并利用共享内存在进程间实现零拷贝数据传输。这意味着接收节点可以直接从发送节点写入的同一内存位置读取数据。`Drop Token` 机制确保此共享内存得到安全管理,并且仅在所有接收节点都处理完数据后才会释放。理解这些概念是理解 `dora` 在实时数据管道中性能特征的关键。 | |||
| 现在您已经了解了数据如何流动和表示,让我们看看您将用来在 `Node` 或 `Operator` 代码中与 `dora 运行时`进行交互的工具: **`API Bingding 绑定`** 。 | |||
| @@ -10,11 +10,9 @@ | |||
| 想象一下,您正在构建一个智能系统,它通过摄像头来检测物体,然后将看到的内容可视化地展示出来。这个系统需要几个不同的模块: | |||
| 1. 一个模块负责从摄像头获取图像。 | |||
| 2. 一个模块负责接收这些图像,并在其中找出物体(比如使用YOLO模型)。 | |||
| 3. 一个模块负责接收原始图像和检测结果,并将它们展示给您。 | |||
| 1. 一个模块负责从摄像头获取图像。 | |||
| 2. 一个模块负责接收这些图像,并在其中找出物体(比如使用YOLO模型)。 | |||
| 3. 一个模块负责接收原始图像和检测结果,并将它们展示给您。 | |||
| 这些模块之间需要相互“对话”。摄像头需要将图像发送给物体检测模块;同时,摄像头(为了显示原始图像)和物体检测模块(为了显示检测结果)都需要将信息发送给可视化模块。 | |||
| @@ -1,4 +1,4 @@ | |||
| # 命令行 | |||
| # 命令行接口 | |||
| 作者: [李扬](https://echoli.cn) | |||
| @@ -137,3 +137,4 @@ dora stop my_dataflow_id --coordinator-addr 192.168.1.100 | |||
| `Dora Coordinator` 是 `dora` 系统的中央编排器和指挥中心,对于管理分布在多台机器上的数据流至关重要。它接收来自 `Dora CLI` 的指令,跟踪可用的 `Dora Daemons` ,并根据数据流 YAML 蓝图协调在正确的机器上启动、停止和管理节点 。通过监督分布式系统,它使您能够无缝构建和管理复杂的多机器应用程序。 | |||
| 至此,我们对 `dora` 核心概念的入门教程就结束了。我们介绍了`数据流`、`构建块(节点、操作符)`、`通信机制(事件流、数据消息/Arrow Data、API 绑定)`以及`运行时基础架构(命令行界面、守护进程、协调器)`。现在,您对 `dora` 工作原理及其主要组件的作用有了基本的了解,这将帮助您更深入地构建自己的实时数据流应用程序。 | |||
| @@ -1,4 +1,4 @@ | |||
| # 守候进程 | |||
| # 守护进程 | |||
| 作者: [李扬](https://echoli.cn) | |||
| @@ -1,4 +1,4 @@ | |||
| # 事件流 | |||
| # 事件流处理 | |||
| 作者: [李扬](https://echoli.cn) | |||
| @@ -127,3 +127,4 @@ print("Node stopping.") | |||
| 在本章中,我们了解到节点是 `dora` 数据流应用程序中独立的工作单元。它们在数据流 `YAML` 文件中定义,具有唯一的 `ID`、用于接收数据的特定输入以及用于生成数据的输出。每个节点都作为独立的进程运行,其内部逻辑(使用您选择的语言编写的 `dora API`)负责接收输入、执行任务和发送输出。`Dora 运行时`负责启动这些进程并根据 `YAML` 蓝图设置通信管道。 | |||
| 现在我们了解了各个处理单元(节点),让我们看一下在节点内部构建逻辑的常用方法,特别是在处理许多输入和输出时: **`Operator 操作符`** 的概念。 | |||
| @@ -188,3 +188,4 @@ class Operator: | |||
| 在本章中,我们了解到 `Operator` 是运行在 `Dora Runtime` 节点进程中的模块化逻辑。它们在 `Dataflow YAML` 的 `Node` 块中定义,允许您在单个节点内构建复杂的处理流水线。`Operator` 使用 `Operator API` 接收输入并发送输出, `dora-runtime` 负责加载它们、在它们之间建立内部通信,以及在节点的外部输入/输出和 `Operator` 的输入/输出之间路由数据。这提供了一种创建可复用处理步骤的方法。 | |||
| 现在我们了解了节点和操作符,让我们看看数据在系统中移动的基本概念: **`Event Stream 事件流`** 。 | |||
| @@ -8,7 +8,7 @@ | |||
| "preview": "rspress preview" | |||
| }, | |||
| "dependencies": { | |||
| "rspress": "^1.40.2" | |||
| "rspress": "^1.45.0" | |||
| }, | |||
| "devDependencies": { | |||
| "@types/node": "^18.11.17" | |||
| @@ -17,7 +17,7 @@ export default defineConfig({ | |||
| // }, | |||
| head: [ | |||
| '<meta name="Author" content="李扬">', | |||
| // '<script>var _hmt = _hmt || [];(function() {var hm = document.createElement("script");hm.src="https://hm.baidu.com/hm.js?bad2b636058313c698986f4096bb5742";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm, s);})();</script>' | |||
| '<script>var _hmt = _hmt || [];(function() {var hm = document.createElement("script");hm.src="https://hm.baidu.com/hm.js?bad2b636058313c698986f4096bb5742";var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm, s);})();</script>' | |||
| ], | |||
| themeConfig: { | |||
| socialLinks: [ | |||
| @@ -34,8 +34,11 @@ export default defineConfig({ | |||
| enableScrollToTop: true, | |||
| enableContentAnimation: true, | |||
| searchPlaceholderText: '搜索文档', | |||
| lastUpdated: false, | |||
| lastUpdated: true, | |||
| lastUpdatedText: '上次更新', | |||
| footer: { | |||
| message: '<img src="/logo.svg" style="width:30px;display:inline;"><br>Dora中文社区 © 2025 <a href="/">doracc.com</a><br><a href="https://beian.miit.gov.cn/" rel="noreferrer"> 苏ICP备14007268号-19 </a> | <img src="/beian.png" style="width:12px;display:inline;"><a href="https://beian.mps.gov.cn/#/query/webSearch?code=32050602013520" rel="noreferrer"> 苏公网安备32050602013520号 </a>', | |||
| }, | |||
| }, | |||
| markdown: { | |||
| showLineNumbers: true, | |||
| @@ -47,16 +50,6 @@ export default defineConfig({ | |||
| mediumZoom: { | |||
| selector: '.rspress-doc img', | |||
| }, | |||
| builderConfig: { | |||
| html: { | |||
| tags: [ | |||
| { | |||
| tag: 'script', | |||
| attrs: { | |||
| src: 'https://hm.baidu.com/hm.js?bad2b636058313c698986f4096bb5742' | |||
| } | |||
| } | |||
| ] | |||
| } | |||
| } | |||
| globalStyles: path.join(__dirname, 'styles/global.css'), | |||
| globalUIComponents: [path.join(__dirname, 'components', 'compTongji.tsx')], | |||
| }); | |||
| @@ -1,33 +0,0 @@ | |||
| // import Theme from 'rspress/theme'; | |||
| // // import './index.css'; | |||
| // const Layout = () => <Theme.Layout | |||
| // // bottom={ | |||
| // // <div className='doracc-footer'> | |||
| // // <p><img src="/logo.svg" style={{ width: '30px', display: 'inline' }} /></p> | |||
| // // <p>Dora中文社区 © 2025 <a href="/">doracc.com</a></p> | |||
| // // <p><a href="https://beian.miit.gov.cn/" rel="noreferrer"> 苏ICP备14007268号-19 </a> | <img src="/beian.png" style={{ width: '12px', display: 'inline' }} /><a href="https://beian.mps.gov.cn/#/query/webSearch?code=32050602013520" rel="noreferrer"> 苏公网安备32050602013520号 </a></p> | |||
| // // </div> | |||
| // // } | |||
| // // beforeDocFooter={ | |||
| // // <div style={{ textAlign: "center", marginTop: "40px", paddingTop: "20px", borderTop: "1px solid #ccc" }}> | |||
| // // <p> | |||
| // // <a rel="license" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh"> | |||
| // // <img alt="知识共享许可协议" style={{ borderWidth: 0, margin: "0 auto" }} src="https://i.creativecommons.org/l/by-nc-nd/4.0/88x31.png"/> | |||
| // // </a> | |||
| // // </p> | |||
| // // <p> | |||
| // // 本作品采用<a rel="license" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh">知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议</a>进行许可 | |||
| // // </p> | |||
| // // </div> | |||
| // // } | |||
| // afterDocFooter={<div className='giscus giscus-frame'>qqqqq</div>} | |||
| // /> | |||
| // export default { | |||
| // ...Theme, | |||
| // Layout, | |||
| // }; | |||
| // export * from 'rspress/theme'; | |||
| @@ -8,9 +8,9 @@ | |||
| integrity sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q== | |||
| "@bufbuild/protobuf@^2.5.0": | |||
| version "2.6.0" | |||
| resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-2.6.0.tgz#82f10cbd2eff47b1e9196967749b26f916b808e8" | |||
| integrity sha512-6cuonJVNOIL7lTj5zgo/Rc2bKAo4/GvN+rKCrUj7GdEHRzCk8zKOfFwUsL9nAVk5rSIsRmlgcpLzTRysopEeeg== | |||
| version "2.6.1" | |||
| resolved "https://registry.yarnpkg.com/@bufbuild/protobuf/-/protobuf-2.6.1.tgz#6d80aa2c0bf6a493d66609ff1ad84d1a0c15acf5" | |||
| integrity sha512-DaG6XlyKpz08bmHY5SGX2gfIllaqtDJ/KwVoxsmP22COOLYwDBe7yD3DZGwXem/Xq7QOc9cuR7R3MpAv5CFfDw== | |||
| "@jsonjoy.com/base64@^1.1.1": | |||
| version "1.1.2" | |||
| @@ -240,10 +240,10 @@ | |||
| error-stack-parser "^2.1.4" | |||
| html-entities "^2.6.0" | |||
| "@rspress/core@1.44.0": | |||
| version "1.44.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/core/-/core-1.44.0.tgz#26ae8968ba093ecdbf7f3bbbdbf069f67bf986a4" | |||
| integrity sha512-xlHeE71Ch4AWRKxQkFFOttBIl8vPJskQOEsEo0DQChz90nvio5ijh1G6cdVHseBumJeX2ZaHjYCbw5OeouKGSA== | |||
| "@rspress/core@1.45.0": | |||
| version "1.45.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/core/-/core-1.45.0.tgz#44deb327745917282c46c769a65942e99a7a73ac" | |||
| integrity sha512-82S5AdAHT3g+xJhgdK0f1Jg/azWauhOInDDxyuhodX3/f251odahCFE2qz/FWxCmjK+jGI7h6hq0eUtl58u/uQ== | |||
| dependencies: | |||
| "@mdx-js/loader" "^2.3.0" | |||
| "@mdx-js/mdx" "^2.3.0" | |||
| @@ -253,13 +253,13 @@ | |||
| "@rsbuild/plugin-react" "~1.3.1" | |||
| "@rsbuild/plugin-sass" "~1.3.0" | |||
| "@rspress/mdx-rs" "0.6.6" | |||
| "@rspress/plugin-auto-nav-sidebar" "1.44.0" | |||
| "@rspress/plugin-container-syntax" "1.44.0" | |||
| "@rspress/plugin-last-updated" "1.44.0" | |||
| "@rspress/plugin-medium-zoom" "1.44.0" | |||
| "@rspress/runtime" "1.44.0" | |||
| "@rspress/shared" "1.44.0" | |||
| "@rspress/theme-default" "1.44.0" | |||
| "@rspress/plugin-auto-nav-sidebar" "1.45.0" | |||
| "@rspress/plugin-container-syntax" "1.45.0" | |||
| "@rspress/plugin-last-updated" "1.45.0" | |||
| "@rspress/plugin-medium-zoom" "1.45.0" | |||
| "@rspress/runtime" "1.45.0" | |||
| "@rspress/shared" "1.45.0" | |||
| "@rspress/theme-default" "1.45.0" | |||
| enhanced-resolve "5.18.0" | |||
| github-slugger "^2.0.0" | |||
| hast-util-from-html "^2.0.3" | |||
| @@ -338,63 +338,63 @@ | |||
| "@rspress/mdx-rs-win32-arm64-msvc" "0.6.6" | |||
| "@rspress/mdx-rs-win32-x64-msvc" "0.6.6" | |||
| "@rspress/plugin-auto-nav-sidebar@1.44.0": | |||
| version "1.44.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/plugin-auto-nav-sidebar/-/plugin-auto-nav-sidebar-1.44.0.tgz#dd1f91b97f522c14ee0d456d3051ae84343dd082" | |||
| integrity sha512-KnbV2z2qVxA8ZLgFMqdWmfh3l/xgV2p57w/QOixVdN93KfI9lwKGn3ReodOcf15fAImZjMFAJ602FPLFKG9qTQ== | |||
| "@rspress/plugin-auto-nav-sidebar@1.45.0": | |||
| version "1.45.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/plugin-auto-nav-sidebar/-/plugin-auto-nav-sidebar-1.45.0.tgz#8c7f12051571946c1776edf1249777ee69fa68f2" | |||
| integrity sha512-/zrIZ3dznyC8CZUftk2N9U31Ov3zRURnv9pi3+RJdx0znZla1ju1RGDGNj7bD/RKIGmRElxfa+7L+NJGpMrfjA== | |||
| dependencies: | |||
| "@rspress/shared" "1.44.0" | |||
| "@rspress/shared" "1.45.0" | |||
| "@rspress/plugin-container-syntax@1.44.0": | |||
| version "1.44.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/plugin-container-syntax/-/plugin-container-syntax-1.44.0.tgz#05b8189928c0f4ad77f12ff089fde4b8cdab62f6" | |||
| integrity sha512-KvnFGUVNyroHNzZaln6TIv4Ucz+OCzuwNpNRlMQRHJPLQiJQf28KCSbkpJsLHZpS4SemX5u2OQkMCLF+KyqgYQ== | |||
| "@rspress/plugin-container-syntax@1.45.0": | |||
| version "1.45.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/plugin-container-syntax/-/plugin-container-syntax-1.45.0.tgz#e08c6531000235a15fa5abe6da15723b60bb1327" | |||
| integrity sha512-vlGKAquuBYoFU49D2ZiFD6EJzWwoh2SZs/8SHk1z6edF0FPRER229zoaOHIu67XZchTUJ3Hp2BxPqo8LYqRsdQ== | |||
| dependencies: | |||
| "@rspress/shared" "1.44.0" | |||
| "@rspress/shared" "1.45.0" | |||
| "@rspress/plugin-last-updated@1.44.0": | |||
| version "1.44.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/plugin-last-updated/-/plugin-last-updated-1.44.0.tgz#c9e2ead21f8971d6a6be5d1ca427650263e9e382" | |||
| integrity sha512-/OSVzNHNLgBKuHaUvtwiAA10kLeiywzIV6nrFb9MVoZicJedxtwaL6DRgjyG/QQbfTUGle7u1G7RjbumVmfjMw== | |||
| "@rspress/plugin-last-updated@1.45.0": | |||
| version "1.45.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/plugin-last-updated/-/plugin-last-updated-1.45.0.tgz#43458c97a519133a0f561c3ccf729c588d988d00" | |||
| integrity sha512-AANrFKmBWLZ9GWvHtT5ShRrqoqcHh8O+DO4f5+Xw104bVDRNH8yluxIzzeEJhX59u47N5v0oQ+EGkofr5JFkEA== | |||
| dependencies: | |||
| "@rspress/shared" "1.44.0" | |||
| "@rspress/shared" "1.45.0" | |||
| "@rspress/plugin-medium-zoom@1.44.0": | |||
| version "1.44.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/plugin-medium-zoom/-/plugin-medium-zoom-1.44.0.tgz#87898b1c2c130b65abec1e42a9a5c9a391cd85b0" | |||
| integrity sha512-IFUviQ5hhc/1XNcVb7pX5gJ30X9+ZIasDUS+BM7Mh9Z0mvl6roCWbqLD5PIaLnOIyhJv44X2zxKUKj15DKx2Fw== | |||
| "@rspress/plugin-medium-zoom@1.45.0": | |||
| version "1.45.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/plugin-medium-zoom/-/plugin-medium-zoom-1.45.0.tgz#292018dbe7b54339748286d147c26b744328c2e0" | |||
| integrity sha512-mdXNlSVZHioztxlmzlh8RLRqlVxTIUytEGKVeqZHzhXT/iC9RAPewNbMmPmHVTG1uTcW2i64OCuxWNLdelc3nA== | |||
| dependencies: | |||
| medium-zoom "1.1.0" | |||
| "@rspress/runtime@1.44.0": | |||
| version "1.44.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/runtime/-/runtime-1.44.0.tgz#fc095bacb6fadaed9c9e33d809295dc813ebda83" | |||
| integrity sha512-Bu/rzl+uJpVVmzmtmX7kKj3kAF/K8r+yaXAc7+2quUZ662OWVYIRTsP5PCG306QjLMZzqQwVjqyj5frdqbtxxw== | |||
| "@rspress/runtime@1.45.0": | |||
| version "1.45.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/runtime/-/runtime-1.45.0.tgz#05d93209e9f7dacf60f61735c35dcd8d74b05e15" | |||
| integrity sha512-hYBxeFqtfEBbYARN4LERod7aePbe4SoDxZMFFmbFAmVECjf4UK57y6Blq5a4u8kSttGcUMryc9BCwXPw+7MHXg== | |||
| dependencies: | |||
| "@rspress/shared" "1.44.0" | |||
| "@rspress/shared" "1.45.0" | |||
| react "^18.3.1" | |||
| react-dom "^18.3.1" | |||
| react-helmet-async "^1.3.0" | |||
| react-router-dom "^6.29.0" | |||
| "@rspress/shared@1.44.0": | |||
| version "1.44.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/shared/-/shared-1.44.0.tgz#03df792b2481c0f5bdd38df75e00b198ae91e6f8" | |||
| integrity sha512-a+yf9/UZRJHEaIA7ktAahaQC/iby/UBpNz+gWyQRYkQgkJdIhaVITWT51lCjYXKjv09yT68RmCVG3Yvs1kC0JQ== | |||
| "@rspress/shared@1.45.0": | |||
| version "1.45.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/shared/-/shared-1.45.0.tgz#c2fbfe5218d82729d51603703328eb9dd1673376" | |||
| integrity sha512-/M3AKChGVyKcX0MzPWpFIT2tFFsDLluHXCwww54LbMJBUKJm53FfKna0IUKMUesP9/A98RIb4Gsmx3tI18jCRw== | |||
| dependencies: | |||
| "@rsbuild/core" "~1.3.18" | |||
| gray-matter "4.0.3" | |||
| lodash-es "^4.17.21" | |||
| unified "^10.1.2" | |||
| "@rspress/theme-default@1.44.0": | |||
| version "1.44.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/theme-default/-/theme-default-1.44.0.tgz#856f338c21854b2991fd1146db46e27e38716f6b" | |||
| integrity sha512-bk7IT9QPyveSnwJ3+3wCpA6F2f4oOS4GxlBKQRbOSK4CcTt0O2CmH3QgfaRIOS5j5U9+qck0UmTKljQOUyG8/A== | |||
| "@rspress/theme-default@1.45.0": | |||
| version "1.45.0" | |||
| resolved "https://registry.yarnpkg.com/@rspress/theme-default/-/theme-default-1.45.0.tgz#0ba792a709d26adab5fdc75f573da435273ca41d" | |||
| integrity sha512-54BbZ81owAt1jxpZFIpjgnqR/9wZR5QbF15OHxCvm240Uq3w0amB4kavL7RWiqwHLQZOkmXvvIQXysh6aDkj3Q== | |||
| dependencies: | |||
| "@mdx-js/react" "2.3.0" | |||
| "@rspress/runtime" "1.44.0" | |||
| "@rspress/shared" "1.44.0" | |||
| "@rspress/runtime" "1.45.0" | |||
| "@rspress/shared" "1.45.0" | |||
| body-scroll-lock "4.0.0-beta.0" | |||
| copy-to-clipboard "^3.3.3" | |||
| flexsearch "0.7.43" | |||
| @@ -480,9 +480,9 @@ | |||
| integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== | |||
| "@types/node@^18.11.17": | |||
| version "18.19.119" | |||
| resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.119.tgz#e7c2098b8c0243af0005503a6d5da92e0d989c84" | |||
| integrity sha512-d0F6m9itIPaKnrvEMlzE48UjwZaAnFW7Jwibacw9MNdqadjKNpUm9tfJYDwmShJmgqcoqYUX3EMKO1+RWiuuNg== | |||
| version "18.19.120" | |||
| resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.120.tgz#07b3bd73875956d5281fa27e6d77a66415f7d455" | |||
| integrity sha512-WtCGHFXnVI8WHLxDAt5TbnCM4eSE+nI0QN2NJtwzcgMhht2eNz6V9evJrk+lwC8bCY8OWV5Ym8Jz7ZEyGnKnMA== | |||
| dependencies: | |||
| undici-types "~5.26.4" | |||
| @@ -1965,9 +1965,9 @@ picomatch@^2.0.4, picomatch@^2.2.1: | |||
| integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== | |||
| picomatch@^4.0.2: | |||
| version "4.0.2" | |||
| resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" | |||
| integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== | |||
| version "4.0.3" | |||
| resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" | |||
| integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== | |||
| postcss@^8.5.6: | |||
| version "8.5.6" | |||
| @@ -2183,14 +2183,14 @@ rspack-plugin-virtual-module@0.1.13: | |||
| dependencies: | |||
| fs-extra "^11.1.1" | |||
| rspress@^1.40.2: | |||
| version "1.44.0" | |||
| resolved "https://registry.yarnpkg.com/rspress/-/rspress-1.44.0.tgz#a7e4932a65bb5b06e38a47c8bddc4ea06eafe30b" | |||
| integrity sha512-ZEZblWRiXHFsD+sdOsGtHok8fZ1YT9wc9aE20WT1+1HGAjybYSppcVYs+eJsLwhlemWn6JS++FwrP4hUfUaprA== | |||
| rspress@^1.45.0: | |||
| version "1.45.0" | |||
| resolved "https://registry.yarnpkg.com/rspress/-/rspress-1.45.0.tgz#bcc2f7e539fb01d31858128e153be7b04227823f" | |||
| integrity sha512-sQb3u+E3D/5mrquKj9AKz1gVIK+Nk6NqrNuS7ZixzxZY+1u7uVES1WW8hhEbHXq/eDN+vRVhj0kEs5b66ed4ow== | |||
| dependencies: | |||
| "@rsbuild/core" "~1.3.18" | |||
| "@rspress/core" "1.44.0" | |||
| "@rspress/shared" "1.44.0" | |||
| "@rspress/core" "1.45.0" | |||
| "@rspress/shared" "1.45.0" | |||
| cac "^6.7.14" | |||
| chokidar "^3.6.0" | |||
| picocolors "^1.1.1" | |||